2025-04-27 07:49:33 -04:00

187 lines
4.5 KiB
Plaintext

//***************************************************************************
//
// Copyright (c) 1997-1999 Microsoft Corporation
//
// wmixmlst.IDL
//
//
//***************************************************************************
import "unknwn.idl";
import "wbemcli.idl";
#define OPTIONAL in, unique
// This interface is a special wrapper around IEnumWbemClassObject with an added token for each argument
[
object,
uuid(BB31240F-D9DC-11d3-93FC-00805F853771),
helpstring("WMI XML IEnumWbemClassObject")
]
interface IWmiXMLEnumWbemClassObject : IUnknown
{
HRESULT Next(
[in] DWORD_PTR hToken,
[in] long lTimeout,
[in] ULONG uCount,
[out, size_is(uCount), length_is(*puReturned)] IWbemClassObject** apObjects,
[out] ULONG* puReturned
);
HRESULT FreeToken(
[in] DWORD_PTR hToken);
};
// This interface is a special wrapper around IWbemServices with an added token for each argument
[
object,
uuid(BB31240E-D9DC-11d3-93FC-00805F853771),
helpstring("WMI XML IWbemService")
]
interface IWmiXMLWbemServices: IUnknown
{
// Classes and instances.
// ======================
HRESULT GetObject(
[in] DWORD_PTR hToken,
[in] const BSTR strObjectPath,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out, OPTIONAL] IWbemClassObject** ppObject,
[out, OPTIONAL] IWbemCallResult** ppCallResult
);
// Class manipulation.
// ===================
HRESULT PutClass(
[in] DWORD_PTR hToken,
[in] IWbemClassObject* pObject,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out, OPTIONAL] IWbemCallResult** ppCallResult
);
HRESULT DeleteClass(
[in] DWORD_PTR hToken,
[in] const BSTR strClass,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out, OPTIONAL] IWbemCallResult** ppCallResult
);
HRESULT CreateClassEnum(
[in] DWORD_PTR hToken,
[in] const BSTR strSuperclass,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWmiXMLEnumWbemClassObject** ppEnum
);
// Instances.
// ==========
HRESULT PutInstance(
[in] DWORD_PTR hToken,
[in] IWbemClassObject* pInst,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out, OPTIONAL] IWbemCallResult** ppCallResult
);
HRESULT DeleteInstance(
[in] DWORD_PTR hToken,
[in] const BSTR strObjectPath,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out, OPTIONAL] IWbemCallResult** ppCallResult
);
HRESULT CreateInstanceEnum(
[in] DWORD_PTR hToken,
[in] const BSTR strClass,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWmiXMLEnumWbemClassObject** ppEnum
);
// Queries.
// ========
HRESULT ExecQuery(
[in] DWORD_PTR hToken,
[in] const BSTR strQueryLanguage,
[in] const BSTR strQuery,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWmiXMLEnumWbemClassObject** ppEnum
);
// Methods
// =======
HRESULT ExecMethod(
[in] DWORD_PTR hToken,
[in] const BSTR strObjectPath,
[in] const BSTR strMethodName,
[in] long lFlags,
[in] IWbemContext* pCtx,
[in] IWbemClassObject* pInParams,
[out, OPTIONAL] IWbemClassObject** ppOutParams,
[out, OPTIONAL] IWbemCallResult** ppCallResult
);
HRESULT FreeToken(
[in] DWORD_PTR hToken);
};
// This interface is the for the pluggable WMI XML Transport Extension
[
object,
uuid(2CA700A4-9E23-11d3-93EF-00805F853771),
helpstring("WMI XML Transport")
]
interface IWmiXMLTransport: IUnknown
{
[
helpstring("Retreives the HTTP method on the request packet")
]
HRESULT ConnectUsingToken(
[in] DWORD_PTR hToken,
[in] const BSTR strNetworkResource,
[in] const BSTR strLocale,
[in] long lSecurityFlags,
[in] const BSTR strAuthority,
[in] IWbemContext* pCtx,
[out] IWmiXMLWbemServices** ppNamespace
);
[
helpstring("Retreives the ProcessID of WinMgmt")
]
HRESULT GetPID(
[out] DWORD *pdwPID
);
};
[
uuid(2CA700A6-9E23-11d3-93EF-00805F853771)
]
library WmiXMLTransportLib
{
[
uuid(2CA700A5-9E23-11d3-93EF-00805F853771),
helpstring("WMI XML Stub object")
]
coclass WmiXMLTransport
{
interface IWmiXMLTransport;
};
};