windows-nt/Source/XPSP1/NT/public/sdk/inc/xmltrnsf.idl
2020-09-26 16:20:57 +08:00

373 lines
9.4 KiB
Plaintext

import "msxml.idl";
import "wbemdisp.idl";
[
uuid(979D18F7-D1D2-4ee2-803D-A4C7A98DF75B),
lcid(0x00),
version(1.0),
helpstring("Microsoft WMI XML Transformer V1.0")
]
library WmiXMLTransformer
{
importlib("stdole32.tlb");
interface IWmiXMLTransformer;
typedef
[
v1_enum,
uuid(28D1EEA5-D41E-46c2-B42D-6CE0B9B4D7A7),
helpstring("Specifies Encoding required")
]
enum WmiXMLEncoding
{
// TODO - integrate this enumeration with the core team's when they are ready
wmiXML_CIM_DTD_2_0 = 0x0, // The DMTF DTD
wmiXML_WMI_DTD_2_0 = 0x1, // Same as the WMI Nova DTD
wmiXML_WMI_DTD_WHISTLER = 0x2
} WmiXMLEncoding;
typedef
[
v1_enum,
uuid(598BCA7A-E40E-4265-8517-C9A86E2FC07E),
helpstring("Specifies the compilation operation to perform")
]
enum WmiXMLCompilationTypeEnum
{
WmiXMLCompilationWellFormCheck = 0x0,
WmiXMLCompilationValidityCheck = 0x1,
WmiXMLCompilationFullCompileAndLoad = 0x2
} WmiXMLCompilationTypeEnum;
[
uuid(A2BB0F35-458E-4075-8A4B-F92664943917),
helpstring("WMI XML Transformer Control")
]
coclass WmiXMLTransformer
{
[default] interface IWmiXMLTransformer;
};
};
/*************************************************
* A collection of IXMLDOMDocuments
* This is used for output from enumerations and queries
* The primary purpose of this is to prevent reading of all the data from a socket
* in the XML/HTTP case. Instead every call to Next() on the enumerator results in further data
* being read from the socket.
**************************************************/
[
local,
object,
uuid(3E46A227-5207-4603-8440-9FCC5AF16407),
oleautomation,
dual,
hidden,
nonextensible,
helpstring("A collection of IXMLDOMDocument objects")
]
interface ISWbemXMLDocumentSet : IDispatch
{
// Standard property required on all collections
[id(DISPID_NEWENUM), propget, restricted] HRESULT _NewEnum ([out, retval] IUnknown **pUnk);
[
id(DISPID_VALUE),
helpstring("Not Implemented")
]
HRESULT Item (
[in] BSTR strObjectPath,
[in, defaultvalue(0)] long iFlags,
[out, retval] IXMLDOMDocument **ppXMLDocument
);
[
id(1),
propget,
helpstring("Not Implemented")
]
HRESULT Count ([out, retval] long *iCount);
[
id(2),
helpstring("The next item in this collection. This is primarily for C++ programs that dont want to use the enumerator")
]
HRESULT NextDocument ([out, retval, unique] IXMLDOMDocument **ppDoc);
[
id(3),
helpstring("Skips past the next document in the enumerator")
]
HRESULT SkipNextDocument ();
};
/*************************************************
* The primary interface for the transformer.
* This scriptable interface allows for both read (get, enums, queries)
* and write (compile) operations. It also exposes a few
* properties to control the amount of information in the output,
* for authentication credentials etc.
**************************************************/
[
object,
local,
uuid(FB624102-3145-4daf-B0EA-FF5A31178600),
dual,
hidden,
nonextensible,
oleautomation,
helpstring("WMI XML Transformer Dual Interface")
]
interface IWmiXMLTransformer : IDispatch
{
[
propget,
id(1),
helpstring("Specifies the type of XML Encoding to use")
]
HRESULT XMLEncodingType([retval, out] WmiXMLEncoding *piEncoding);
[
propput,
id(1)
]
HRESULT XMLEncodingType([in] WmiXMLEncoding iEncoding);
[
propget,
id(2),
helpstring("Specifies the level of Qualifier information in the output XML")
]
HRESULT QualifierFilter([retval, out] VARIANT_BOOL *bQualifierFilter);
[
propput,
id(2)
]
HRESULT QualifierFilter([in] VARIANT_BOOL bQualifierFilter);
[
propget,
id(3),
helpstring("Specifies whether to decorate elements with Class origin information")
]
HRESULT ClassOriginFilter([retval, out] VARIANT_BOOL *bClassOriginFilter);
[
propput,
id(3)
]
HRESULT ClassOriginFilter([in] VARIANT_BOOL bClassOriginFilter);
[
propget,
id(4),
helpstring("Specifies the user name to be used for the operation")
]
HRESULT User([retval, out] BSTR * strUser);
[
propput,
id(4)
]
HRESULT User ([in] BSTR strUser);
[
propget,
id(5),
helpstring("Specifies the password name to be used for the operation")
]
HRESULT Password([retval, out] BSTR * strPassword);
[
propput,
id(5)
]
HRESULT Password ([in] BSTR strPassword);
[
propget,
id(6),
helpstring("Specifies the Authority (domain/machine)name to be used for the operation")
]
HRESULT Authority([retval, out] BSTR * strAuthority);
[
propput,
id(6)
]
HRESULT Authority ([in] BSTR strAuthority);
[
propget,
id(7),
helpstring("Specifies the Impersonation level used for the operation. Standard RPC constants")
]
HRESULT ImpersonationLevel([retval, out] DWORD * pdwImpersonationLevel);
[
propput,
id(7)
]
HRESULT ImpersonationLevel ([in] DWORD dwImpersonationLevel);
[
propget,
id(8),
helpstring("Specifies the AuthenticationLevel used for the operation. Standard RPC constants")
]
HRESULT AuthenticationLevel([retval, out] DWORD * pdwAuthenticationLevel);
[
propput,
id(8)
]
HRESULT AuthenticationLevel ([in] DWORD dwAuthenticationLevel);
[
propget,
id(9),
helpstring("Specifies the locale name to be used for the operation")
]
HRESULT Locale([retval, out] BSTR * strLocale);
[
propput,
id(9)
]
HRESULT Locale ([in] BSTR strLocale);
[
propget,
id(10),
helpstring("Specifies whether only local elements (properties and methods) are to be included in output")
]
HRESULT LocalOnly([retval, out] VARIANT_BOOL *bLocalOnly);
[
propput,
id(10)
]
HRESULT LocalOnly([in] VARIANT_BOOL bLocalOnly);
[
helpstring("Maps a single class or instance to XML"),
id(11)
]
HRESULT GetObject(
// Identifies an object name to get
[in] BSTR strObjectPath,
// The IWbemContext object
[in, defaultvalue(0)] /*ISWbemNamedValueSet*/IDispatch *pCtx,
// On successful return contains XML document stream
[out,retval] IXMLDOMDocument **ppXMLDocument
);
[
helpstring("Maps a query result set to XML"),
id(12)
]
HRESULT ExecQuery(
// Identifies a namespace to connect to
[in] BSTR strNamespacePath,
// CIM query to be evaluated
[in] BSTR strQuery,
// The language name of the query to be evaluated
[in, defaultvalue("WQL")] BSTR strQueryLanguage,
// The IWbemContext object
[in, defaultvalue(0)] /*ISWbemNamedValueSet*/IDispatch *pCtx,
// On successful return contains a collection of documents
[out,retval] ISWbemXMLDocumentSet **ppXMLDocumentSet
);
[
helpstring("Enumerates sub classes of a specified class"),
id(13)
]
HRESULT EnumClasses(
// Identifies the class path of the super class
[in] BSTR strSuperClassPath,
// Whether to do a deep enumeration
[in] VARIANT_BOOL bDeep,
// The IWbemContext object
[in, defaultvalue(0)] /*ISWbemNamedValueSet*/IDispatch *pCtx,
// On successful return contains a collection of documents
[out,retval] ISWbemXMLDocumentSet **ppXMLDocumentSet
);
[
helpstring("Enumerates instances of a specific class"),
id(14)
]
HRESULT EnumInstances(
// Identifies the class path of the class whose instances are to be enumerated
[in] BSTR strClassPath,
// Whether to do a deep enumeration
[in] VARIANT_BOOL bDeep,
// The IWbemContext object
[in, defaultvalue(0)] /*ISWbemNamedValueSet*/IDispatch *pCtx,
// On successful return contains a collection of documents
[out,retval] ISWbemXMLDocumentSet **ppXMLDocumentSet
);
[
helpstring("Enumerates sub class names of a specific class"),
id(15)
]
HRESULT EnumClassNames(
// Identifies the class path of the super class
[in] BSTR strSuperClassPath,
// Whether to do a deep enumeration
[in] VARIANT_BOOL bDeep,
// The IWbemContext object
[in, defaultvalue(0)] /*ISWbemNamedValueSet*/IDispatch *pCtx,
// On successful return contains a collection of documents
[out,retval] ISWbemXMLDocumentSet **ppXMLDocumentSet
);
[
helpstring("Enumerate instance names of a specific class"),
id(16)
]
HRESULT EnumInstanceNames(
// Identifies the class path of the class whose instances are to be enumerated
[in] BSTR strClassPath,
// The IWbemContext object
[in, defaultvalue(0)] /*ISWbemNamedValueSet*/IDispatch *pCtx,
// On successful return contains a collection of documents
[out,retval] ISWbemXMLDocumentSet **ppXMLDocumentSet
);
[
helpstring("Compile a specified file"),
id(17)
]
HRESULT Compile (
// If this is a VT_BSTR, then it the string is used as the input XML data
// If this is a VT_UNKNOWN, then it is queried for Istream and the result is used
// as the input stream
[in] VARIANT *pvInputSource,
// Identifies a namespace to connect to
[in] BSTR strNamespacePath,
// Class Flags - A combination of the flags used for PutClass WMI call
[in] LONG lClassFlags,
// Instance Flags - A combination of the flags used for PutInstance WMI call
[in] LONG lInstanceFlags,
// What operation to do
[in] WmiXMLCompilationTypeEnum iOperation,
// The IWbemContext object
[in] /*ISWbemNamedValueSet*/IDispatch *pCtx,
// Whether the compilation was successful
[out, retval] VARIANT_BOOL *pStatus
);
[
id(18),
propget,
helpstring ("The collection of privileges for this object")
]
HRESULT Privileges ([out, retval] ISWbemPrivilegeSet **objWbemPrivilegeSet);
[
id(19),
propget,
helpstring ("The last compilation error, if any")
]
HRESULT CompilationErrors ([out, retval] BSTR *pstrErrors);
};