|
|
cpp_quote("/*******************************************************************************/" ) cpp_quote("/* */" ) cpp_quote("/* Copyright � Microsoft Corporation. All rights reserved. */" ) cpp_quote("/* */" ) /* WBEMPROV.IDL */ /* */ cpp_quote("/* This IDL file defines the interfaces that WBEM providers need in */" ) cpp_quote("/* addition to the client interfaces defined in WBEMCLI.IDL */" ) cpp_quote("/* */" ) cpp_quote("/*******************************************************************************/" )
import "objidl.idl"; import "oleidl.idl"; import "oaidl.idl"; import "wbemcli.idl";
typedef VARIANT WBEM_VARIANT; typedef [string] WCHAR* WBEM_WSTR; typedef [string] const WCHAR* WBEM_CWSTR;
typedef [v1_enum] enum tag_WBEM_PROVIDER_REQUIREMENTS_TYPE { WBEM_REQUIREMENTS_START_POSTFILTER = 0, WBEM_REQUIREMENTS_STOP_POSTFILTER = 1, WBEM_REQUIREMENTS_RECHECK_SUBSCRIPTIONS = 2 } WBEM_PROVIDER_REQUIREMENTS_TYPE;
[uuid(092df710-7010-11d1-ad90-00c04fd8fdff)] library WbemProviders_v1 { interface IWbemPropertyProvider; interface IWbemUnboundObjectSink; interface IWbemEventProvider; interface IWbemEventProviderQuerySink; interface IWbemEventProviderSecurity; interface IWbemEventConsumerProvider;
interface IWbemProviderInitSink; interface IWbemProviderInit; interface IWbemHiPerfProvider;
interface IWbemDecoupledRegistrar ;
///////////////////////////////////////////////////////////////// //
[uuid(cb8555cc-9128-11d1-ad9b-00c04fd8fdff)] coclass WbemAdministrativeLocator { interface IWbemLocator; };
// this assumes that the transport has verified that // the user has access. Unlike the Administrative locator, // it increases the count of external connections
[uuid(cd184336-9128-11d1-ad9b-00c04fd8fdff)] coclass WbemAuthenticatedLocator { interface IWbemLocator; };
// this is used by providers who dont know if a user // has access or not.
[uuid(443E7B79-DE31-11d2-B340-00104BCC4B4A)] coclass WbemUnauthenticatedLocator { interface IWbemLocator; };
// 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 ; };
};
#define OPTIONAL in, unique
[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); };
///////////////////////////////////////////////////////////////// // //
[restricted, object, uuid(CE61E841-65BC-11d0-B6BD-00AA003240C7)]
interface IWbemPropertyProvider : IUnknown { HRESULT GetProperty( [in] long lFlags, [in] const BSTR strLocale, [in] const BSTR strClassMapping, [in] const BSTR strInstMapping, [in] const BSTR strPropMapping, [out] VARIANT* pvValue ); HRESULT PutProperty( [in] long lFlags, [in] const BSTR strLocale, [in] const BSTR strClassMapping, [in] const BSTR strInstMapping, [in] const BSTR strPropMapping, [in] const VARIANT* pvValue ); };
[restricted, object, uuid(e245105b-b06e-11d0-ad61-00c04fd8fdff)] interface IWbemEventProvider : IUnknown { HRESULT ProvideEvents( [in] IWbemObjectSink* pSink, [in] long lFlags ); };
[restricted, object, uuid(580acaf8-fa1c-11d0-ad72-00c04fd8fdff)] interface IWbemEventProviderQuerySink : IUnknown { HRESULT NewQuery( [in] unsigned long dwId, [in] WBEM_WSTR wszQueryLanguage, [in] WBEM_WSTR wszQuery ); HRESULT CancelQuery( [in] unsigned long dwId); };
[restricted, object, uuid(631f7d96-d993-11d2-b339-00105a1f4aaf)] interface IWbemEventProviderSecurity : IUnknown { HRESULT AccessCheck( [in] WBEM_CWSTR wszQueryLanguage, [in] WBEM_CWSTR wszQuery, [in] long lSidLength, [in, size_is(lSidLength), unique] const BYTE* pSid); };
[restricted, object, uuid(631f7d97-d993-11d2-b339-00105a1f4aaf)] interface IWbemProviderIdentity : IUnknown { HRESULT SetRegistrationObject( [in] long lFlags, [in] IWbemClassObject* pProvReg); };
[restricted, object, uuid(e246107a-b06e-11d0-ad61-00c04fd8fdff)] interface IWbemEventConsumerProvider : IUnknown { HRESULT FindConsumer( [in] IWbemClassObject* pLogicalConsumer, [out] IWbemUnboundObjectSink** ppConsumer); };
typedef enum tag_WBEM_EXTRA_RETURN_CODES { WBEM_S_INITIALIZED = 0, WBEM_S_LIMITED_SERVICE = 0x43001, WBEM_S_INDIRECTLY_UPDATED, WBEM_S_SUBJECT_TO_SDS,
WBEM_E_RETRY_LATER = 0x80043001, WBEM_E_RESOURCE_CONTENTION, } WBEM_EXTRA_RETURN_CODES;
typedef enum tag_WBEM_PROVIDER_FLAGS { WBEM_FLAG_OWNER_UPDATE = 0x10000, } WBEM_PROVIDER_FLAGS;
[object, uuid(1be41571-91dd-11d1-aeb2-00c04fb68820)]
interface IWbemProviderInitSink : IUnknown { HRESULT SetStatus( [in] LONG lStatus, [in] LONG lFlags ); };
[object, uuid(1be41572-91dd-11d1-aeb2-00c04fb68820)]
interface IWbemProviderInit : IUnknown { HRESULT Initialize( [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 ); };
[local, restricted, object, uuid(49353c93-516b-11d1-aea6-00c04fb68820)] interface IWbemHiPerfProvider : IUnknown { HRESULT QueryInstances( [in] IWbemServices* pNamespace, [in, string] WCHAR* wszClass, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pSink // Return IWbemClassObject ptrs );
HRESULT CreateRefresher( [in] IWbemServices* pNamespace, [in] long lFlags, [out] IWbemRefresher** ppRefresher);
HRESULT CreateRefreshableObject( [in] IWbemServices* pNamespace, [in] IWbemObjectAccess* pTemplate, [in] IWbemRefresher* pRefresher, [in] long lFlags, [in] IWbemContext* pContext, [out] IWbemObjectAccess** ppRefreshable, [out] long* plId);
HRESULT StopRefreshing( [in] IWbemRefresher* pRefresher, [in] long lId, [in] long lFlags);
HRESULT CreateRefreshableEnum( [in] IWbemServices* pNamespace, [in, string] LPCWSTR wszClass, [in] IWbemRefresher* pRefresher, [in] long lFlags, [in] IWbemContext* pContext, [in] IWbemHiPerfEnum* pHiPerfEnum, [out] long* plId);
HRESULT GetObjects( [in] IWbemServices* pNamespace, [in] long lNumObjects, [in,out,size_is(lNumObjects)] IWbemObjectAccess** apObj, [in] long lFlags, [in] IWbemContext* pContext);
};
[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 [v1_enum] enum tag_WBEM_BATCH_TYPE { WBEM_FLAG_BATCH_IF_NEEDED = 0, WBEM_FLAG_MUST_BATCH = 0x1, WBEM_FLAG_MUST_NOT_BATCH = 0x2 } WBEM_BATCH_TYPE;
[object, restricted, uuid(3ae0080a-7e3a-4366-bf89-0feedc931659)] interface IWbemEventSink : IWbemObjectSink { HRESULT SetSinkSecurity( [in] long lSDLength, [in, size_is(lSDLength)] BYTE* pSD);
HRESULT IsActive();
HRESULT GetRestrictedSink( [in] long lNumQueries, [in, size_is(lNumQueries), string] const LPCWSTR* awszQueries, [in] IUnknown* pCallback, [out] IWbemEventSink** ppSink);
HRESULT SetBatchingParameters( [in] LONG lFlags, [in] DWORD dwMaxBufferSize, [in] DWORD dwMaxSendLatency); };
|