Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
For ease of implementation, the full IDL is provided, where "ms-oaut.idl" is the IDL found in [MS-OAUT] Appendix A.
-
import "ms-dtyp.idl"; import "ms-oaut.idl"; typedef GUID *REFGUID; interface IWbemClassObject; interface IWbemServices; interface IWbemObjectSink; interface IEnumWbemClassObject; interface IWbemCallResult; interface IWbemContext; interface IWbemBackupRestore; interface IWbemBackupRestoreEx; interface IWbemLoginClientID; interface IWbemLevel1Login; interface IWbemLoginHelper; [ restricted, uuid(8BC3F05E-D86B-11d0-A075-00C04FB68820) ] coclass WbemLevel1Login { interface IWbemLevel1Login; }; typedef long HRESULT; typedef [v1_enum] enum tag_WBEM_QUERY_FLAG_TYPE { WBEM_FLAG_DEEP = 0, WBEM_FLAG_SHALLOW = 1, WBEM_FLAG_PROTOTYPE = 2 } WBEM_QUERY_FLAG_TYPE; typedef [v1_enum] enum tag_WBEM_CHANGE_FLAG_TYPE { WBEM_FLAG_CREATE_OR_UPDATE = 0x00, WBEM_FLAG_UPDATE_ONLY = 0x01, WBEM_FLAG_CREATE_ONLY = 0x02, WBEM_FLAG_UPDATE_SAFE_MODE = 0x20, WBEM_FLAG_UPDATE_FORCE_MODE = 0x40 } WBEM_CHANGE_FLAG_TYPE; typedef [v1_enum] enum tag_WBEM_CONNECT_OPTIONS { WBEM_FLAG_CONNECT_REPOSITORY_ONLY = 0x40, WBEM_FLAG_CONNECT_PROVIDERS = 0x100 } WBEM_CONNECT_OPTIONS; typedef [v1_enum] enum tag_WBEM_GENERIC_FLAG_TYPE { WBEM_FLAG_RETURN_WBEM_COMPLETE = 0x0, WBEM_FLAG_RETURN_IMMEDIATELY = 0x10, WBEM_FLAG_FORWARD_ONLY = 0x20, WBEM_FLAG_NO_ERROR_OBJECT = 0x40, WBEM_FLAG_SEND_STATUS = 0x80, WBEM_FLAG_ENSURE_LOCATABLE = 0x100, WBEM_FLAG_DIRECT_READ = 0x200, WBEM_MASK_RESERVED_FLAGS = 0x1F000, WBEM_FLAG_USE_AMENDED_QUALIFIERS = 0x20000, WBEM_FLAG_STRONG_VALIDATION = 0x100000 } WBEM_GENERIC_FLAG_TYPE; typedef enum tag_WBEM_STATUS_TYPE { WBEM_STATUS_COMPLETE = 0, WBEM_STATUS_REQUIREMENTS = 0x01, WBEM_STATUS_PROGRESS = 2 } WBEM_STATUS_TYPE; typedef [v1_enum] enum tag_WBEM_TIMEOUT_TYPE { WBEM_NO_WAIT = 0, WBEM_INFINITE = 0xFFFFFFFF } WBEM_TIMEOUT_TYPE; typedef [v1_enum] enum tag_WBEM_BACKUP_RESTORE_FLAGS { WBEM_FLAG_BACKUP_RESTORE_FORCE_SHUTDOWN = 1 } WBEM_BACKUP_RESTORE_FLAGS; typedef [v1_enum] enum tag_WBEMSTATUS { WBEM_S_NO_ERROR = 0x00, WBEM_S_FALSE = 0x01, WBEM_S_TIMEDOUT = 0x40004, WBEM_S_NEW_STYLE = 0x400FF, WBEM_S_PARTIAL_RESULTS = 0x40010, WBEM_E_FAILED = 0x80041001, WBEM_E_NOT_FOUND = 0x80041002, WBEM_E_ACCESS_DENIED = 0x80041003, WBEM_E_PROVIDER_FAILURE = 0x80041004, WBEM_E_TYPE_MISMATCH = 0x80041005, WBEM_E_OUT_OF_MEMORY = 0x80041006, WBEM_E_INVALID_CONTEXT = 0x80041007, WBEM_E_INVALID_PARAMETER = 0x80041008, WBEM_E_NOT_AVAILABLE = 0x80041009, WBEM_E_CRITICAL_ERROR = 0x8004100a, WBEM_E_NOT_SUPPORTED = 0x8004100C, WBEM_E_PROVIDER_NOT_FOUND = 0x80041011, WBEM_E_INVALID_PROVIDER_REGISTRATION = 0x80041012, WBEM_E_PROVIDER_LOAD_FAILURE = 0x80041013, WBEM_E_INITIALIZATION_FAILURE = 0x80041014, WBEM_E_TRANSPORT_FAILURE = 0x80041015, WBEM_E_INVALID_OPERATION = 0x80041016, WBEM_E_ALREADY_EXISTS = 0x80041019, WBEM_E_UNEXPECTED = 0x8004101d, WBEM_E_INCOMPLETE_CLASS = 0x80041020, WBEM_E_SHUTTING_DOWN = 0x80041033, E_NOTIMPL = 0x80004001, WBEM_E_INVALID_SUPERCLASS = 0x8004100D, WBEM_E_INVALID_NAMESPACE = 0x8004100E, WBEM_E_INVALID_OBJECT = 0x8004100F, WBEM_E_INVALID_CLASS = 0x80041010, WBEM_E_INVALID_QUERY = 0x80041017, WBEM_E_INVALID_QUERY_TYPE = 0x80041018, WBEM_E_PROVIDER_NOT_CAPABLE = 0x80041024, WBEM_E_CLASS_HAS_CHILDREN = 0x80041025, WBEM_E_CLASS_HAS_INSTANCES = 0x80041026, WBEM_E_ILLEGAL_NULL = 0x80041028, WBEM_E_INVALID_CIM_TYPE = 0x8004102D, WBEM_E_INVALID_METHOD = 0x8004102E, WBEM_E_INVALID_METHOD_PARAMETERS = 0x8004102F, WBEM_E_INVALID_PROPERTY = 0x80041031, WBEM_E_CALL_CANCELLED = 0x80041032, WBEM_E_INVALID_OBJECT_PATH = 0x8004103A, WBEM_E_OUT_OF_DISK_SPACE = 0x8004103B, WBEM_E_UNSUPPORTED_PUT_EXTENSION = 0x8004103D, WBEM_E_QUOTA_VIOLATION = 0x8004106c, WBEM_E_SERVER_TOO_BUSY = 0x80041045, WBEM_E_METHOD_NOT_IMPLEMENTED = 0x80041055, WBEM_E_METHOD_DISABLED = 0x80041056, WBEM_E_UNPARSABLE_QUERY = 0x80041058, WBEM_E_NOT_EVENT_CLASS = 0x80041059, WBEM_E_MISSING_GROUP_WITHIN = 0x8004105A, WBEM_E_MISSING_AGGREGATION_LIST = 0x8004105B, WBEM_E_PROPERTY_NOT_AN_OBJECT = 0x8004105c, WBEM_E_AGGREGATING_BY_OBJECT = 0x8004105d, WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING = 0x80041060, WBEM_E_QUEUE_OVERFLOW = 0x80041061, WBEM_E_PRIVILEGE_NOT_HELD = 0x80041062, WBEM_E_INVALID_OPERATOR = 0x80041063, WBEM_E_CANNOT_BE_ABSTRACT = 0x80041065, WBEM_E_AMENDED_OBJECT = 0x80041066, WBEM_E_VETO_PUT = 0x8004107A, WBEM_E_PROVIDER_SUSPENDED = 0x80041081, WBEM_E_ENCRYPTED_CONNECTION_REQUIRED = 0x80041087, WBEM_E_PROVIDER_TIMED_OUT = 0x80041088, WBEM_E_NO_KEY = 0x80041089, WBEM_E_PROVIDER_DISABLED = 0x8004108a, WBEM_E_REGISTRATION_TOO_BROAD = 0x80042001, WBEM_E_REGISTRATION_TOO_PRECISE = 0x80042002 } WBEMSTATUS; [ restricted, uuid(674B6698-EE92-11d0-AD71-00C04FD8FDFF) ] coclass WbemContext { interface IWbemContext; }; [ uuid(9A653086-174F-11d2-B5F9-00104B703EFD) ] coclass WbemClassObject { interface IWbemClassObject; }; [ uuid(C49E32C6-BC8B-11d2-85D4-00105A1F8304) ] coclass WbemBackupRestore { interface IWbemBackupRestoreEx; }; #define OPTIONAL in, unique interface IWbemQualifierSet; [ local, restricted, object, uuid(dc12a681-737f-11cf-884d-00aa004b2e24) ] interface IWbemClassObject : IUnknown { }; interface IWbemServices; [ object, restricted, uuid(7c857801-7381-11cf-884d-00aa004b2e24) ] interface IWbemObjectSink : IUnknown { HRESULT Indicate( [in] long lObjectCount, [in, size_is(lObjectCount)] IWbemClassObject** apObjArray ); HRESULT SetStatus( [in] long lFlags, [in] HRESULT hResult, [in] BSTR strParam, [in] IWbemClassObject* pObjParam ); }; [ object, restricted, uuid(027947e1-d731-11ce-a357-000000000001) ] interface IEnumWbemClassObject : IUnknown { HRESULT Reset(); HRESULT Next( [in] long lTimeout, [in] ULONG uCount, [out, size_is(uCount), length_is(*puReturned)] IWbemClassObject** apObjects, [out] ULONG* puReturned ); HRESULT NextAsync( [in] ULONG uCount, [in] IWbemObjectSink* pSink ); HRESULT Clone( [out] IEnumWbemClassObject** ppEnum ); HRESULT Skip( [in] long lTimeout, [in] ULONG nCount ); }; [ object, restricted, local, uuid(44aca674-e8fc-11d0-a07c-00c04fb68820) ] interface IWbemContext : IUnknown { }; [ object, restricted, uuid(44aca675-e8fc-11d0-a07c-00c04fb68820) ] interface IWbemCallResult : IUnknown { HRESULT GetResultObject( [in] long lTimeout, [out] IWbemClassObject** ppResultObject ); HRESULT GetResultString( [in] long lTimeout, [out] BSTR* pstrResultString ); HRESULT GetResultServices( [in] long lTimeout, [out] IWbemServices** ppServices ); HRESULT GetCallStatus( [in] long lTimeout, [out] long* plStatus ); }; [ object, restricted, uuid(9556dc99-828c-11cf-a37e-00aa003240c7), pointer_default(unique) ] interface IWbemServices : IUnknown { HRESULT OpenNamespace( [in] const BSTR strNamespace, [in] long lFlags, [in] IWbemContext* pCtx, [out, in, unique] IWbemServices** ppWorkingNamespace, [out, in, unique] IWbemCallResult** ppResult ); HRESULT CancelAsyncCall( [in] IWbemObjectSink* pSink ); HRESULT QueryObjectSink( [in] long lFlags, [out] IWbemObjectSink** ppResponseHandler ); HRESULT GetObject( [in] const BSTR strObjectPath, [in] long lFlags, [in] IWbemContext* pCtx, [out, in, unique] IWbemClassObject** ppObject, [out, in, unique] IWbemCallResult** ppCallResult ); HRESULT GetObjectAsync( [in] const BSTR strObjectPath, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); HRESULT PutClass( [in] IWbemClassObject* pObject, [in] long lFlags, [in] IWbemContext* pCtx, [out, in, unique] IWbemCallResult** ppCallResult ); HRESULT PutClassAsync( [in] IWbemClassObject* pObject, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); HRESULT DeleteClass( [in] const BSTR strClass, [in] long lFlags, [in] IWbemContext* pCtx, [out, in, unique] IWbemCallResult** ppCallResult ); HRESULT DeleteClassAsync( [in] const BSTR strClass, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); HRESULT CreateClassEnum( [in] const BSTR strSuperclass, [in] long lFlags, [in] IWbemContext* pCtx, [out] IEnumWbemClassObject** ppEnum ); HRESULT CreateClassEnumAsync( [in] const BSTR strSuperclass, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); HRESULT PutInstance( [in] IWbemClassObject* pInst, [in] long lFlags, [in] IWbemContext* pCtx, [out, in, unique] IWbemCallResult** ppCallResult ); HRESULT PutInstanceAsync( [in] IWbemClassObject* pInst, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); HRESULT DeleteInstance( [in] const BSTR strObjectPath, [in] long lFlags, [in] IWbemContext* pCtx, [out, in, unique] IWbemCallResult** ppCallResult ); HRESULT DeleteInstanceAsync( [in] const BSTR strObjectPath, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); HRESULT CreateInstanceEnum( [in] const BSTR strSuperClass, [in] long lFlags, [in] IWbemContext* pCtx, [out] IEnumWbemClassObject** ppEnum ); HRESULT CreateInstanceEnumAsync( [in] const BSTR strSuperClass, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); HRESULT ExecQuery( [in] const BSTR strQueryLanguage, [in] const BSTR strQuery, [in] long lFlags, [in] IWbemContext* pCtx, [out] IEnumWbemClassObject** ppEnum ); HRESULT ExecQueryAsync( [in] const BSTR strQueryLanguage, [in] const BSTR strQuery, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); HRESULT ExecNotificationQuery( [in] const BSTR strQueryLanguage, [in] const BSTR strQuery, [in] long lFlags, [in] IWbemContext* pCtx, [out] IEnumWbemClassObject** ppEnum ); HRESULT ExecNotificationQueryAsync( [in] const BSTR strQueryLanguage, [in] const BSTR strQuery, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemObjectSink* pResponseHandler ); HRESULT ExecMethod( [in] const BSTR strObjectPath, [in] const BSTR strMethodName, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemClassObject* pInParams, [out, in, unique] IWbemClassObject** ppOutParams, [out, in, unique] IWbemCallResult** ppCallResult ); HRESULT ExecMethodAsync( [in] const BSTR strObjectPath, [in] const BSTR strMethodName, [in] long lFlags, [in] IWbemContext* pCtx, [in] IWbemClassObject* pInParams, [in] IWbemObjectSink* pResponseHandler ); }; [ object, restricted, uuid(C49E32C7-BC8B-11d2-85D4-00105A1F8304) ] interface IWbemBackupRestore : IUnknown { HRESULT Backup( [in, string] LPCWSTR strBackupToFile, [in] long lFlags ); HRESULT Restore( [in, string] LPCWSTR strRestoreFromFile, [in] long lFlags ); }; [ object, restricted, uuid(A359DEC5-E813-4834-8A2A-BA7F1D777D76) ] interface IWbemBackupRestoreEx : IWbemBackupRestore { HRESULT Pause(); HRESULT Resume(); }; typedef enum _WBEM_REFR_VERSION_NUMBER { WBEM_REFRESHER_VERSION = 2 } WBEM_REFR_VERSION_NUMBER; typedef [v1_enum] enum _WBEM_INSTANCE_BLOB_TYPE { WBEM_BLOB_TYPE_ALL = 2, WBEM_BLOB_TYPE_ERROR = 3, WBEM_BLOB_TYPE_ENUM = 4 } WBEM_INSTANCE_BLOB_TYPE; typedef struct _WBEM_REFRESHED_OBJECT { long m_lRequestId; WBEM_INSTANCE_BLOB_TYPE m_lBlobType; long m_lBlobLength; [size_is(m_lBlobLength)] byte* m_pbBlob; } WBEM_REFRESHED_OBJECT; [ restricted, uuid(F1E9C5B2-F59B-11d2-B362-00105A1F8177) ] interface IWbemRemoteRefresher : IUnknown { HRESULT RemoteRefresh( [in] long lFlags, [out] long* plNumObjects, [out, size_is(,*plNumObjects)] WBEM_REFRESHED_OBJECT** paObjects ); HRESULT StopRefreshing( [in] long lNumIds, [in, size_is(lNumIds)] long* aplIds, [in] long lFlags ); HRESULT Opnum5NotUsedOnWire( [in] long lFlags, [out] GUID* pGuid ); }; typedef struct { IWbemRemoteRefresher* m_pRefresher; IWbemClassObject* m_pTemplate; GUID m_Guid; } _WBEM_REFRESH_INFO_REMOTE; typedef struct { [string] wchar_t* m_wszNamespace; IWbemClassObject* m_pTemplate; } _WBEM_REFRESH_INFO_NON_HIPERF; typedef enum { WBEM_REFRESH_TYPE_INVALID = 0, WBEM_REFRESH_TYPE_REMOTE = 3, WBEM_REFRESH_TYPE_NON_HIPERF = 6 }WBEM_REFRESH_TYPE; typedef [switch_type(long)] union { [case (WBEM_REFRESH_TYPE_REMOTE)] _WBEM_REFRESH_INFO_REMOTE m_Remote; [case (WBEM_REFRESH_TYPE_NON_HIPERF)] _WBEM_REFRESH_INFO_NON_HIPERF m_NonHiPerf; [case (WBEM_REFRESH_TYPE_INVALID)] HRESULT m_hres; } WBEM_REFRESH_INFO_UNION; typedef struct { long m_lType; [switch_is(m_lType)] WBEM_REFRESH_INFO_UNION m_Info; long m_lCancelId; } _WBEM_REFRESH_INFO; typedef struct { [string] LPSTR m_szMachineName; DWORD m_dwProcessId; GUID m_guidRefresherId; } _WBEM_REFRESHER_ID; typedef enum { WBEM_RECONNECT_TYPE_OBJECT = 0, WBEM_RECONNECT_TYPE_ENUM = 1, WBEM_RECONNECT_TYPE_LAST = 2 }WBEM_RECONNECT_TYPE; typedef struct { long m_lType; [string] LPCWSTR m_pwcsPath; } _WBEM_RECONNECT_INFO; typedef struct { long m_lId; HRESULT m_hr; } _WBEM_RECONNECT_RESULTS; [ restricted, uuid(2C9273E0-1DC3-11d3-B364-00105A1F8177) ] interface IWbemRefreshingServices : IUnknown { HRESULT AddObjectToRefresher( [in] _WBEM_REFRESHER_ID* pRefresherId, [in, string] LPCWSTR wszPath, [in] long lFlags, [in] IWbemContext* pContext, [in] DWORD dwClientRefrVersion, [out] _WBEM_REFRESH_INFO* pInfo, [out] DWORD* pdwSvrRefrVersion ); HRESULT AddObjectToRefresherByTemplate( [in] _WBEM_REFRESHER_ID* pRefresherId, [in] IWbemClassObject* pTemplate, [in] long lFlags, [in] IWbemContext* pContext, [in] DWORD dwClientRefrVersion, [out] _WBEM_REFRESH_INFO* pInfo, [out] DWORD* pdwSvrRefrVersion ); HRESULT AddEnumToRefresher( [in] _WBEM_REFRESHER_ID* pRefresherId, [in, string] LPCWSTR wszClass, [in] long lFlags, [in] IWbemContext* pContext, [in] DWORD dwClientRefrVersion, [out] _WBEM_REFRESH_INFO* pInfo, [out] DWORD* pdwSvrRefrVersion ); HRESULT RemoveObjectFromRefresher( [in] _WBEM_REFRESHER_ID* pRefresherId, [in] long lId, [in] long lFlags, [in] DWORD dwClientRefrVersion, [out] DWORD* pdwSvrRefrVersion ); HRESULT GetRemoteRefresher( [in] _WBEM_REFRESHER_ID* pRefresherId, [in] long lFlags, [in] DWORD dwClientRefrVersion, [out] IWbemRemoteRefresher** ppRemRefresher, [out] GUID* pGuid, [out] DWORD* pdwSvrRefrVersion ); HRESULT ReconnectRemoteRefresher( [in] _WBEM_REFRESHER_ID* pRefresherId, [in] long lFlags, [in] long lNumObjects, [in] DWORD dwClientRefrVersion, [in, size_is(lNumObjects)] _WBEM_RECONNECT_INFO* apReconnectInfo, [in, out, size_is(lNumObjects)] _WBEM_RECONNECT_RESULTS* apReconnectResults, [out] DWORD* pdwSvrRefrVersion ); }; [ restricted, object, uuid(423EC01E-2E35-11d2-B604-00104B703EFD) ] interface IWbemWCOSmartEnum : IUnknown { HRESULT Next( [in] REFGUID proxyGUID, [in] long lTimeout, [in] ULONG uCount, [out] ULONG* puReturned, [out] ULONG* pdwBuffSize, [out, size_is(,*pdwBuffSize)] byte** pBuffer ); }; [ restricted, object, uuid(1C1C45EE-4395-11d2-B60B-00104B703EFD) ] interface IWbemFetchSmartEnum : IUnknown { HRESULT GetSmartEnum( [out] IWbemWCOSmartEnum** ppSmartEnum ); }; [ restricted, object, uuid(d4781cd6-e5d3-44df-ad94-930efe48a887) ] interface IWbemLoginClientID : IUnknown { HRESULT SetClientInfo( [in, unique, string ] LPWSTR wszClientMachine, [in] long lClientProcId, [in] long lReserved ); }; [ object, restricted, uuid(F309AD18-D86A-11d0-A075-00C04FB68820), pointer_default(unique) ] interface IWbemLevel1Login : IUnknown { HRESULT EstablishPosition( [in, unique, string] wchar_t* reserved1, [in] DWORD reserved2, [out] DWORD* LocaleVersion ); HRESULT RequestChallenge( [in, unique, string] wchar_t* reserved1, [in, unique, string] wchar_t* reserved2, [out, size_is(16), length_is(16)] unsigned char* reserved3 ); HRESULT WBEMLogin( [in, unique, string] wchar_t* reserved1, [in, size_is(16), length_is(16), unique] unsigned char* reserved2, [in] long reserved3, [in] IWbemContext* reserved4, [out] IWbemServices** reserved5 ); HRESULT NTLMLogin( [in, unique, string] LPWSTR wszNetworkResource, [in, unique, string] LPWSTR wszPreferredLocale, [in] long lFlags, [in] IWbemContext* pCtx, [out] IWbemServices** ppNamespace ); }; [ restricted, object, uuid(541679AB-2E5F-11d3-B34E-00104BCC4B4A) ] interface IWbemLoginHelper : IUnknown { HRESULT SetEvent( [in] LPCSTR sEventToSet ); };