373 lines
9.4 KiB
Plaintext
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);
|
|
|
|
};
|