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

51 lines
1.3 KiB
Plaintext

// private interfaces for use by the Decoupled Event Provider
import "WbemDCpl.idl";
[object, uuid(4875DE77-E623-11d2-9CB3-00105A1F4801)]
interface IWbemDecoupledEventSinkLocator : IUnknown
{
// "Sink available"
HRESULT Connect([in] IUnknown* pDecoupledProvider);
// "Sink's no good any more"
HRESULT Disconnect();
};
[object, uuid(BF9AD5BE-F0FB-11d2-9CC2-00105A1F4801)]
interface IWbemDecoupledEventProvider : IUnknown
{
HRESULT Connect(
[in] long lFlags,
[in] IUnknown* pPseudoSink,
[out] IWbemObjectSink** ppSink,
[out] IWbemServices** ppNamespace);
// "Here's a provider services, gimmee info
HRESULT SetProviderServices([in] IUnknown* pProviderServices, [in] long lFlags, [out] DWORD* dwID);
// "provider services no good any more"
HRESULT Disconnect([in] DWORD dwID);
};
[object, uuid(00B0204A-EC79-11d2-9CB7-00105A1F4801)]
interface IWbemDecoupledEventProviderLocator : IUnknown
{
// Retrieve decoupled provider from ROT entry.
HRESULT GetProvider([out] IWbemDecoupledEventProvider** pDecoupledProvider);
};
[uuid(E002E4EF-E6EA-11d2-9CB3-00105A1F4801)]
library PassiveProvider
{
[uuid(E002E4EE-E6EA-11d2-9CB3-00105A1F4801)]
coclass PseudoProvider
{
interface IWbemDecoupledEventProvider;
interface IWbemDecoupledEventProviderLocator;
};
coclass PseudoSink;
};