]>
Commit | Line | Data |
---|---|---|
1 | /* | |
2 | * os_win32/wbemcli_small.h | |
3 | * | |
4 | * Home page of code is: http://www.smartmontools.org | |
5 | * | |
6 | * This file was extracted from wbemcli.h of the w64 mingw-runtime package | |
7 | * (http://mingw-w64.sourceforge.net/). See original copyright below. | |
8 | */ | |
9 | ||
10 | /** | |
11 | * This file has no copyright assigned and is placed in the Public Domain. | |
12 | * This file is part of the w64 mingw-runtime package. | |
13 | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | |
14 | */ | |
15 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | |
16 | #define __REQUIRED_RPCNDR_H_VERSION__ 475 | |
17 | #endif | |
18 | ||
19 | #include "rpc.h" | |
20 | #include "rpcndr.h" | |
21 | ||
22 | #ifndef __RPCNDR_H_VERSION__ | |
23 | #error This stub requires an updated version of <rpcndr.h> | |
24 | #endif | |
25 | ||
26 | #include "windows.h" | |
27 | #include "ole2.h" | |
28 | ||
29 | #ifndef __wbemcli_h__ | |
30 | #define __wbemcli_h__ | |
31 | ||
32 | #if !defined(__cplusplus) || defined(CINTERFACE) | |
33 | #error C++ interfaces only | |
34 | #endif | |
35 | ||
36 | typedef struct IWbemQualifierSet IWbemQualifierSet; | |
37 | typedef struct IWbemObjectSink IWbemObjectSink; | |
38 | typedef struct IEnumWbemClassObject IEnumWbemClassObject; | |
39 | typedef struct IWbemCallResult IWbemCallResult; | |
40 | typedef struct IWbemContext IWbemContext; | |
41 | ||
42 | extern "C" { | |
43 | ||
44 | typedef enum tag_WBEM_GENERIC_FLAG_TYPE { | |
45 | WBEM_FLAG_RETURN_IMMEDIATELY = 0x10,WBEM_FLAG_RETURN_WBEM_COMPLETE = 0,WBEM_FLAG_BIDIRECTIONAL = 0,WBEM_FLAG_FORWARD_ONLY = 0x20, | |
46 | WBEM_FLAG_NO_ERROR_OBJECT = 0x40,WBEM_FLAG_RETURN_ERROR_OBJECT = 0,WBEM_FLAG_SEND_STATUS = 0x80,WBEM_FLAG_DONT_SEND_STATUS = 0, | |
47 | WBEM_FLAG_ENSURE_LOCATABLE = 0x100,WBEM_FLAG_DIRECT_READ = 0x200,WBEM_FLAG_SEND_ONLY_SELECTED = 0,WBEM_RETURN_WHEN_COMPLETE = 0, | |
48 | WBEM_RETURN_IMMEDIATELY = 0x10,WBEM_MASK_RESERVED_FLAGS = 0x1f000,WBEM_FLAG_USE_AMENDED_QUALIFIERS = 0x20000, | |
49 | WBEM_FLAG_STRONG_VALIDATION = 0x100000 | |
50 | } WBEM_GENERIC_FLAG_TYPE; | |
51 | ||
52 | typedef long CIMTYPE; | |
53 | ||
54 | struct IWbemClassObject : public IUnknown { | |
55 | public: | |
56 | virtual HRESULT WINAPI GetQualifierSet(IWbemQualifierSet **ppQualSet) = 0; | |
57 | virtual HRESULT WINAPI Get(LPCWSTR wszName,long lFlags,VARIANT *pVal,CIMTYPE *pType,long *plFlavor) = 0; | |
58 | virtual HRESULT WINAPI Put(LPCWSTR wszName,long lFlags,VARIANT *pVal,CIMTYPE Type) = 0; | |
59 | virtual HRESULT WINAPI Delete(LPCWSTR wszName) = 0; | |
60 | virtual HRESULT WINAPI GetNames(LPCWSTR wszQualifierName,long lFlags,VARIANT *pQualifierVal,SAFEARRAY **pNames) = 0; | |
61 | virtual HRESULT WINAPI BeginEnumeration(long lEnumFlags) = 0; | |
62 | virtual HRESULT WINAPI Next(long lFlags,BSTR *strName,VARIANT *pVal,CIMTYPE *pType,long *plFlavor) = 0; | |
63 | virtual HRESULT WINAPI EndEnumeration(void) = 0; | |
64 | virtual HRESULT WINAPI GetPropertyQualifierSet(LPCWSTR wszProperty,IWbemQualifierSet **ppQualSet) = 0; | |
65 | virtual HRESULT WINAPI Clone(IWbemClassObject **ppCopy) = 0; | |
66 | virtual HRESULT WINAPI GetObjectText(long lFlags,BSTR *pstrObjectText) = 0; | |
67 | virtual HRESULT WINAPI SpawnDerivedClass(long lFlags,IWbemClassObject **ppNewClass) = 0; | |
68 | virtual HRESULT WINAPI SpawnInstance(long lFlags,IWbemClassObject **ppNewInstance) = 0; | |
69 | virtual HRESULT WINAPI CompareTo(long lFlags,IWbemClassObject *pCompareTo) = 0; | |
70 | virtual HRESULT WINAPI GetPropertyOrigin(LPCWSTR wszName,BSTR *pstrClassName) = 0; | |
71 | virtual HRESULT WINAPI InheritsFrom(LPCWSTR strAncestor) = 0; | |
72 | virtual HRESULT WINAPI GetMethod(LPCWSTR wszName,long lFlags,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature) = 0; | |
73 | virtual HRESULT WINAPI PutMethod(LPCWSTR wszName,long lFlags,IWbemClassObject *pInSignature,IWbemClassObject *pOutSignature) = 0; | |
74 | virtual HRESULT WINAPI DeleteMethod(LPCWSTR wszName) = 0; | |
75 | virtual HRESULT WINAPI BeginMethodEnumeration(long lEnumFlags) = 0; | |
76 | virtual HRESULT WINAPI NextMethod(long lFlags,BSTR *pstrName,IWbemClassObject **ppInSignature,IWbemClassObject **ppOutSignature) = 0; | |
77 | virtual HRESULT WINAPI EndMethodEnumeration(void) = 0; | |
78 | virtual HRESULT WINAPI GetMethodQualifierSet(LPCWSTR wszMethod,IWbemQualifierSet **ppQualSet) = 0; | |
79 | virtual HRESULT WINAPI GetMethodOrigin(LPCWSTR wszMethodName,BSTR *pstrClassName) = 0; | |
80 | }; | |
81 | ||
82 | struct IWbemServices : public IUnknown { | |
83 | public: | |
84 | virtual HRESULT WINAPI OpenNamespace(const BSTR strNamespace,long lFlags,IWbemContext *pCtx,IWbemServices **ppWorkingNamespace,IWbemCallResult **ppResult) = 0; | |
85 | virtual HRESULT WINAPI CancelAsyncCall(IWbemObjectSink *pSink) = 0; | |
86 | virtual HRESULT WINAPI QueryObjectSink(long lFlags,IWbemObjectSink **ppResponseHandler) = 0; | |
87 | virtual HRESULT WINAPI GetObject(const BSTR strObjectPath,long lFlags,IWbemContext *pCtx,IWbemClassObject **ppObject,IWbemCallResult **ppCallResult) = 0; | |
88 | virtual HRESULT WINAPI GetObjectAsync(const BSTR strObjectPath,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0; | |
89 | virtual HRESULT WINAPI PutClass(IWbemClassObject *pObject,long lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) = 0; | |
90 | virtual HRESULT WINAPI PutClassAsync(IWbemClassObject *pObject,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0; | |
91 | virtual HRESULT WINAPI DeleteClass(const BSTR strClass,long lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) = 0; | |
92 | virtual HRESULT WINAPI DeleteClassAsync(const BSTR strClass,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0; | |
93 | virtual HRESULT WINAPI CreateClassEnum(const BSTR strSuperclass,long lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) = 0; | |
94 | virtual HRESULT WINAPI CreateClassEnumAsync(const BSTR strSuperclass,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0; | |
95 | virtual HRESULT WINAPI PutInstance(IWbemClassObject *pInst,long lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) = 0; | |
96 | virtual HRESULT WINAPI PutInstanceAsync(IWbemClassObject *pInst,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0; | |
97 | virtual HRESULT WINAPI DeleteInstance(const BSTR strObjectPath,long lFlags,IWbemContext *pCtx,IWbemCallResult **ppCallResult) = 0; | |
98 | virtual HRESULT WINAPI DeleteInstanceAsync(const BSTR strObjectPath,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0; | |
99 | virtual HRESULT WINAPI CreateInstanceEnum(const BSTR strFilter,long lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) = 0; | |
100 | virtual HRESULT WINAPI CreateInstanceEnumAsync(const BSTR strFilter,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0; | |
101 | virtual HRESULT WINAPI ExecQuery(const BSTR strQueryLanguage,const BSTR strQuery,long lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) = 0; | |
102 | virtual HRESULT WINAPI ExecQueryAsync(const BSTR strQueryLanguage,const BSTR strQuery,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0; | |
103 | virtual HRESULT WINAPI ExecNotificationQuery(const BSTR strQueryLanguage,const BSTR strQuery,long lFlags,IWbemContext *pCtx,IEnumWbemClassObject **ppEnum) = 0; | |
104 | virtual HRESULT WINAPI ExecNotificationQueryAsync(const BSTR strQueryLanguage,const BSTR strQuery,long lFlags,IWbemContext *pCtx,IWbemObjectSink *pResponseHandler) = 0; | |
105 | virtual HRESULT WINAPI ExecMethod(const BSTR strObjectPath,const BSTR strMethodName,long lFlags,IWbemContext *pCtx,IWbemClassObject *pInParams,IWbemClassObject **ppOutParams,IWbemCallResult **ppCallResult) = 0; | |
106 | virtual HRESULT WINAPI ExecMethodAsync(const BSTR strObjectPath,const BSTR strMethodName,long lFlags,IWbemContext *pCtx,IWbemClassObject *pInParams,IWbemObjectSink *pResponseHandler) = 0; | |
107 | }; | |
108 | ||
109 | EXTERN_C const IID IID_IWbemLocator; | |
110 | struct IWbemLocator : public IUnknown { | |
111 | public: | |
112 | virtual HRESULT WINAPI ConnectServer(const BSTR strNetworkResource,const BSTR strUser,const BSTR strPassword,const BSTR strLocale,long lSecurityFlags,const BSTR strAuthority,IWbemContext *pCtx,IWbemServices **ppNamespace) = 0; | |
113 | }; | |
114 | ||
115 | struct IEnumWbemClassObject : public IUnknown { | |
116 | public: | |
117 | virtual HRESULT WINAPI Reset(void) = 0; | |
118 | virtual HRESULT WINAPI Next(long lTimeout,ULONG uCount,IWbemClassObject **apObjects,ULONG *puReturned) = 0; | |
119 | virtual HRESULT WINAPI NextAsync(ULONG uCount,IWbemObjectSink *pSink) = 0; | |
120 | virtual HRESULT WINAPI Clone(IEnumWbemClassObject **ppEnum) = 0; | |
121 | virtual HRESULT WINAPI Skip(long lTimeout,ULONG nCount) = 0; | |
122 | }; | |
123 | ||
124 | EXTERN_C const CLSID CLSID_WbemLocator; | |
125 | ||
126 | typedef enum tag_WBEM_CONNECT_OPTIONS { | |
127 | WBEM_FLAG_CONNECT_REPOSITORY_ONLY = 0x40,WBEM_FLAG_CONNECT_USE_MAX_WAIT = 0x80,WBEM_FLAG_CONNECT_PROVIDERS = 0x100 | |
128 | } WBEM_CONNECT_OPTIONS; | |
129 | ||
130 | } | |
131 | #endif |