cpp_quote("/*******************************************************************************/" ) cpp_quote("/* */" ) cpp_quote("/* Copyright © Microsoft Corporation. All rights reserved. */" ) cpp_quote("/* */" ) cpp_quote("/*******************************************************************************/" ) import "objidl.idl"; import "oleidl.idl"; import "oaidl.idl"; import "wbemcli.idl"; import "wmiutils.idl"; // this is used by providers that do not wish to be instantiated // by winmgmt, rather the provider registers it's participation // in servicing client requests as and when desired. This is // primarily used by providers that act on the part of application // hosts and that export management information only when they are activated // via some application scenario. [uuid(4cfc7932-0f9d-4bef-9c32-8ea2a6b56fcb)] coclass WbemDecoupledRegistrar { interface IWbemDecoupledRegistrar ; }; [uuid(f5f75737-2843-4f22-933d-c76a97cda62f)] coclass WbemDecoupledBasicEventProvider { interface IWbemDecoupledBasicEventProvider ; }; [object, local, uuid(1005cbcf-e64f-4646-bcd3-3a089d8a84b4)] interface IWbemDecoupledRegistrar : IUnknown { HRESULT Register ( [in] long a_Flags , [in] IWbemContext *a_Context , [in] LPCWSTR a_User , [in] LPCWSTR a_Locale , [in] LPCWSTR a_Scope , [in] LPCWSTR a_Registration , [in] IUnknown *a_Unknown ) ; HRESULT UnRegister () ; } ; [object, local, uuid(86336d20-ca11-4786-9ef1-bc8a946b42fc)] interface IWbemDecoupledBasicEventProvider : IWbemDecoupledRegistrar { HRESULT GetSink ( [in] long a_Flags , [in] IWbemContext *a_Context , [out] IWbemObjectSink **a_Sink ) ; HRESULT GetService ( [in] long a_Flags , [in] IWbemContext *a_Context , [out] IWbemServices **a_Service ) ; } ; typedef VARIANT WBEM_VARIANT; typedef [string] WCHAR* WBEM_WSTR; typedef [string] const WCHAR* WBEM_CWSTR; #define OPTIONAL in, unique typedef struct _tag_WmiInternalContext { unsigned __int64 m_IdentifyHandle ; unsigned long m_ProcessIdentifier ; } WmiInternalContext ; [object, uuid(1be41571-91dd-11d1-aeb2-00c04fb68820)] interface IWbemProviderInitSink : IUnknown { HRESULT SetStatus( [in] LONG lStatus, [in] LONG lFlags ); }; [restricted, object, uuid(e246107b-b06e-11d0-ad61-00c04fd8fdff)] interface IWbemUnboundObjectSink : IUnknown { HRESULT IndicateToConsumer( [in] IWbemClassObject* pLogicalConsumer, [in] long lNumObjects, [in, size_is(lNumObjects)] IWbemClassObject** apObjects); }; [object,uuid(41aa40e6-2fba-4e80-ade9-34306567206d)] interface _IWmiProviderSubsystemRegistrar : IUnknown { HRESULT Register ( [in] long a_Flags , [in] IWbemContext *a_Context , [in,unique] LPCWSTR a_User , [in,unique] LPCWSTR a_Locale , [in] LPCWSTR a_Scope , [in] LPCWSTR a_Registration , [in] DWORD a_ProcessIdentifier , [in] IUnknown *a_Unknown , [in] GUID a_Identity ) ; HRESULT UnRegister ( [in] long a_Flags , [in] IWbemContext *a_Context , [in,unique] LPCWSTR a_User , [in,unique] LPCWSTR a_Locale , [in] LPCWSTR a_Scope , [in] LPCWSTR a_Registration , [in] GUID a_Identity ) ; } ; [object, uuid(6919dd07-1637-4611-a8a7-c16fac5b2d53)] interface Internal_IWbemProviderInit : IUnknown { HRESULT Internal_Initialize ( [in] WmiInternalContext a_InternalContext , [in, unique, string] LPWSTR wszUser, [in] LONG lFlags, [in, string] LPWSTR wszNamespace, [in, unique, string] LPWSTR wszLocale, [in] IWbemServices* pNamespace, [in] IWbemContext* pCtx, [in] IWbemProviderInitSink* pInitSink ) ; }; [restricted, object, uuid(2b322b6e-a9df-44e3-97bf-259e3583fda4)] interface Internal_IWbemProviderIdentity : IUnknown { HRESULT Internal_SetRegistrationObject( [in] WmiInternalContext a_InternalContext , [in] long lFlags, [in] IWbemClassObject* pProvReg); }; [object, uuid(f50a28cf-5c9c-4f7e-9d80-e25e16e18c59)] interface Internal_IWbemServices : IUnknown { // Context. // ======== HRESULT Internal_OpenNamespace ( [in] WmiInternalContext a_InternalContext , [in] const BSTR strNamespace, [in] long lFlags, [in] IWbemContext* pCtx, [out, OPTIONAL] IWbemServices** ppWorkingNamespace, [out, OPTIONAL] IWbemCallResult** ppResult ); HRESULT Internal_CancelAsyncCall( [in] WmiInternalContext a_InternalContext , [in] IWbemObjectSink* pSink ); HRESULT Internal_QueryObjectSink( [in] WmiInternalContext a_InternalContext , [in] long lFlags, [out] IWbemObjectSink** ppResponseHandler ); // Classes and instances. // ====================== HRESULT Internal_GetObject( [in] WmiInternalContext a_InternalContext , [in] const BSTR strObjectPath, [in] long lFlags, [in] IWbemContext* pCtx, [out, OPTIONAL] IWbemClassObject** ppObject, [out, OPTIONAL] IWbemCallResult** ppCallResult ); HRESULT Internal_GetObjectAsync( [in] WmiInternalContext a_InternalContext , [in] const BSTR strObjectPath, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); // Class manipulation. // =================== HRESULT Internal_PutClass( [in] WmiInternalContext a_InternalContext , [in] IWbemClassObject* pObject, [in] long lFlags, [in] IWbemContext* pCtx, [out, OPTIONAL] IWbemCallResult** ppCallResult ); HRESULT Internal_PutClassAsync( [in] WmiInternalContext a_InternalContext , [in] IWbemClassObject* pObject, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); HRESULT Internal_DeleteClass( [in] WmiInternalContext a_InternalContext , [in] const BSTR strClass, [in] long lFlags, [in] IWbemContext* pCtx, [out, OPTIONAL] IWbemCallResult** ppCallResult ); HRESULT Internal_DeleteClassAsync( [in] WmiInternalContext a_InternalContext , [in] const BSTR strClass, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); HRESULT Internal_CreateClassEnum( [in] WmiInternalContext a_InternalContext , [in] const BSTR strSuperclass, [in] long lFlags, [in] IWbemContext* pCtx, [out] IEnumWbemClassObject** ppEnum ); HRESULT Internal_CreateClassEnumAsync( [in] WmiInternalContext a_InternalContext , [in] const BSTR strSuperclass, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); // Instances. // ========== HRESULT Internal_PutInstance( [in] WmiInternalContext a_InternalContext , [in] IWbemClassObject* pInst, [in] long lFlags, [in] IWbemContext* pCtx, [out, OPTIONAL] IWbemCallResult** ppCallResult ); HRESULT Internal_PutInstanceAsync( [in] WmiInternalContext a_InternalContext , [in] IWbemClassObject* pInst, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); HRESULT Internal_DeleteInstance( [in] WmiInternalContext a_InternalContext , [in] const BSTR strObjectPath, [in] long lFlags, [in] IWbemContext* pCtx, [out, OPTIONAL] IWbemCallResult** ppCallResult ); HRESULT Internal_DeleteInstanceAsync( [in] WmiInternalContext a_InternalContext , [in] const BSTR strObjectPath, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); HRESULT Internal_CreateInstanceEnum( [in] WmiInternalContext a_InternalContext , [in] const BSTR strFilter, // allow more things than a class name [in] long lFlags, [in] IWbemContext* pCtx, [out] IEnumWbemClassObject** ppEnum ); HRESULT Internal_CreateInstanceEnumAsync( [in] WmiInternalContext a_InternalContext , [in] const BSTR strFilter, // allow more things than a class name [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); // Queries. // ======== HRESULT Internal_ExecQuery( [in] WmiInternalContext a_InternalContext , [in] const BSTR strQueryLanguage, [in] const BSTR strQuery, [in] long lFlags, [in] IWbemContext* pCtx, [out] IEnumWbemClassObject** ppEnum ); HRESULT Internal_ExecQueryAsync( [in] WmiInternalContext a_InternalContext , [in] const BSTR strQueryLanguage, [in] const BSTR strQuery, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); HRESULT Internal_ExecNotificationQuery( [in] WmiInternalContext a_InternalContext , [in] const BSTR strQueryLanguage, [in] const BSTR strQuery, [in] long lFlags, [in] IWbemContext* pCtx, [out] IEnumWbemClassObject** ppEnum ); HRESULT Internal_ExecNotificationQueryAsync( [in] WmiInternalContext a_InternalContext , [in] const BSTR strQueryLanguage, [in] const BSTR strQuery, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); // Methods // ======= HRESULT Internal_ExecMethod( [in] WmiInternalContext a_InternalContext , [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 Internal_ExecMethodAsync( [in] WmiInternalContext a_InternalContext , [in] const BSTR strObjectPath, [in] const BSTR strMethodName, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemClassObject* pInParams, [in] IWbemObjectSink* pResponseHandler ); }; //*************************************************************************** //*************************************************************************** [object,uuid(2db9fa90-9973-46cf-b310-9865b644699d)] interface Internal_IWbemObjectSink : IUnknown { HRESULT Internal_Indicate( [in] WmiInternalContext a_InternalContext , [in] long lObjectCount, [in, size_is(lObjectCount)] IWbemClassObject** apObjArray ); HRESULT Internal_SetStatus( [in] WmiInternalContext a_InternalContext , [in] long lFlags, [in] HRESULT hResult, [in] BSTR strParam, [in] IWbemClassObject* pObjParam ); }; //*************************************************************************** //*************************************************************************** [object,uuid(ac9ea02a-2c8a-4acd-b562-d7e8ebee8e8e)] interface Internal_IEnumWbemClassObject : IUnknown { HRESULT Internal_Reset( [in] WmiInternalContext a_InternalContext ); HRESULT Internal_Next( [in] WmiInternalContext a_InternalContext , [in] long lTimeout, [in] ULONG uCount, [out, size_is(uCount), length_is(*puReturned)] IWbemClassObject** apObjects, [out] ULONG* puReturned ); HRESULT Internal_NextAsync( [in] WmiInternalContext a_InternalContext , [in] ULONG uCount, [in] IWbemObjectSink* pSink ); HRESULT Internal_Clone( [in] WmiInternalContext a_InternalContext , [out] IEnumWbemClassObject** ppEnum ); HRESULT Internal_Skip( [in] WmiInternalContext a_InternalContext , [in] long lTimeout, [in] ULONG nCount ); }; //*************************************************************************** //*************************************************************************** [object,uuid(11caa957-4e80-474e-a819-7fd72148ada9)] interface Internal_IWbemPropertyProvider : IUnknown { HRESULT Internal_GetProperty( [in] WmiInternalContext a_InternalContext , [in] long lFlags, [in] const BSTR strLocale, [in] const BSTR strClassMapping, [in] const BSTR strInstMapping, [in] const BSTR strPropMapping, [out] VARIANT* pvValue ); HRESULT Internal_PutProperty( [in] WmiInternalContext a_InternalContext , [in] long lFlags, [in] const BSTR strLocale, [in] const BSTR strClassMapping, [in] const BSTR strInstMapping, [in] const BSTR strPropMapping, [in] const VARIANT* pvValue ); }; //*************************************************************************** //*************************************************************************** [object,uuid(fd450835-cf1b-4c87-9fd2-5e0d42fde081)] interface Internal_IWbemEventProvider : IUnknown { HRESULT Internal_ProvideEvents( [in] WmiInternalContext a_InternalContext , [in] IWbemObjectSink* pSink, [in] long lFlags ); }; //*************************************************************************** //*************************************************************************** [object,uuid(df2373f5-efb2-475c-ad58-3102d61967d4)] interface Internal_IWbemEventProviderSecurity : IUnknown { HRESULT Internal_AccessCheck( [in] WmiInternalContext a_InternalContext , [in] WBEM_CWSTR wszQueryLanguage, [in] WBEM_CWSTR wszQuery, [in] long lSidLength, [in, size_is(lSidLength), unique] const BYTE* pSid ); }; //*************************************************************************** //*************************************************************************** [object,uuid(854d745c-6742-42c0-8bb9-01ec466b6e87)] interface Internal_IWbemEventConsumerProvider : IUnknown { HRESULT Internal_FindConsumer( [in] WmiInternalContext a_InternalContext , [in] IWbemClassObject* pLogicalConsumer, [out] IWbemUnboundObjectSink** ppConsumer ); }; //*************************************************************************** //*************************************************************************** [object,uuid(88f3781c-6902-4647-9a6b-a74f450af861)] interface Internal_IWbemEventConsumerProviderEx : Internal_IWbemEventConsumerProvider { HRESULT Internal_ValidateSubscription( [in] WmiInternalContext a_InternalContext , [in] IWbemClassObject* pLogicalConsumer ); }; //*************************************************************************** //*************************************************************************** [object,uuid(8a0dc377-a9d3-41cb-bd69-ae1fdaf2dc68)] interface Internal_IWbemEventProviderQuerySink : IUnknown { HRESULT Internal_NewQuery( [in] WmiInternalContext a_InternalContext , [in] unsigned long dwId, [in] WBEM_WSTR wszQueryLanguage, [in] WBEM_WSTR wszQuery ); HRESULT Internal_CancelQuery( [in] WmiInternalContext a_InternalContext , [in] unsigned long dwId ); }; //*************************************************************************** //*************************************************************************** [object,uuid(a210bfe9-c9f7-4919-b114-0d98b3d5341e)] interface Internal_IWbemUnboundObjectSink : IUnknown { HRESULT Internal_IndicateToConsumer( [in] WmiInternalContext a_InternalContext , [in] IWbemClassObject* pLogicalConsumer, [in] long lNumObjects, [in, size_is(lNumObjects)] IWbemClassObject** apObjects ); }; [object,uuid(fec1b0ac-5808-4033-a915-c0185934581e)] interface _IWmiProviderSite : IUnknown { HRESULT GetSite ( [out] DWORD *a_ProcessIdentifier ) ; HRESULT SetContainer ( [in,unique] IUnknown *a_Container ) ; } ;