winapi_ui_automation/um/
wbemdisp.rs

1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6use ctypes::c_long;
7use shared::winerror::HRESULT;
8use shared::wtypes::{BSTR, DATE, VARIANT_BOOL};
9use um::oaidl::{DISPID, IDispatch, IDispatchVtbl, VARIANT};
10use um::unknwnbase::IUnknown;
11// extern RPC_IF_HANDLE __MIDL_itf_wbemdisp_0000_0000_v0_0_c_ifspec;
12// extern RPC_IF_HANDLE __MIDL_itf_wbemdisp_0000_0000_v0_0_s_ifspec;
13ENUM!{enum WbemChangeFlagEnum {
14    wbemChangeFlagCreateOrUpdate = 0,
15    wbemChangeFlagUpdateOnly = 0x1,
16    wbemChangeFlagCreateOnly = 0x2,
17    wbemChangeFlagUpdateCompatible = 0,
18    wbemChangeFlagUpdateSafeMode = 0x20,
19    wbemChangeFlagUpdateForceMode = 0x40,
20    wbemChangeFlagStrongValidation = 0x80,
21    wbemChangeFlagAdvisory = 0x10000,
22}}
23ENUM!{enum WbemFlagEnum {
24    wbemFlagReturnImmediately = 0x10,
25    wbemFlagReturnWhenComplete = 0,
26    wbemFlagBidirectional = 0,
27    wbemFlagForwardOnly = 0x20,
28    wbemFlagNoErrorObject = 0x40,
29    wbemFlagReturnErrorObject = 0,
30    wbemFlagSendStatus = 0x80,
31    wbemFlagDontSendStatus = 0,
32    wbemFlagEnsureLocatable = 0x100,
33    wbemFlagDirectRead = 0x200,
34    wbemFlagSendOnlySelected = 0,
35    wbemFlagUseAmendedQualifiers = 0x20000,
36    wbemFlagGetDefault = 0,
37    wbemFlagSpawnInstance = 0x1,
38    wbemFlagUseCurrentTime = 0x1,
39}}
40ENUM!{enum WbemQueryFlagEnum {
41    wbemQueryFlagDeep = 0,
42    wbemQueryFlagShallow = 1,
43    wbemQueryFlagPrototype = 2,
44}}
45ENUM!{enum WbemTextFlagEnum {
46    wbemTextFlagNoFlavors = 0x1,
47}}
48ENUM!{enum WbemTimeout {
49    wbemTimeoutInfinite = 0xffffffff,
50}}
51ENUM!{enum WbemComparisonFlagEnum {
52    wbemComparisonFlagIncludeAll = 0,
53    wbemComparisonFlagIgnoreQualifiers = 0x1,
54    wbemComparisonFlagIgnoreObjectSource = 0x2,
55    wbemComparisonFlagIgnoreDefaultValues = 0x4,
56    wbemComparisonFlagIgnoreClass = 0x8,
57    wbemComparisonFlagIgnoreCase = 0x10,
58    wbemComparisonFlagIgnoreFlavor = 0x20,
59}}
60ENUM!{enum WbemCimtypeEnum {
61    wbemCimtypeSint8 = 16,
62    wbemCimtypeUint8 = 17,
63    wbemCimtypeSint16 = 2,
64    wbemCimtypeUint16 = 18,
65    wbemCimtypeSint32 = 3,
66    wbemCimtypeUint32 = 19,
67    wbemCimtypeSint64 = 20,
68    wbemCimtypeUint64 = 21,
69    wbemCimtypeReal32 = 4,
70    wbemCimtypeReal64 = 5,
71    wbemCimtypeBoolean = 11,
72    wbemCimtypeString = 8,
73    wbemCimtypeDatetime = 101,
74    wbemCimtypeReference = 102,
75    wbemCimtypeChar16 = 103,
76    wbemCimtypeObject = 13,
77}}
78ENUM!{enum WbemErrorEnum {
79    wbemNoErr = 0,
80    wbemErrFailed = 0x80041001,
81    wbemErrNotFound = 0x80041002,
82    wbemErrAccessDenied = 0x80041003,
83    wbemErrProviderFailure = 0x80041004,
84    wbemErrTypeMismatch = 0x80041005,
85    wbemErrOutOfMemory = 0x80041006,
86    wbemErrInvalidContext = 0x80041007,
87    wbemErrInvalidParameter = 0x80041008,
88    wbemErrNotAvailable = 0x80041009,
89    wbemErrCriticalError = 0x8004100a,
90    wbemErrInvalidStream = 0x8004100b,
91    wbemErrNotSupported = 0x8004100c,
92    wbemErrInvalidSuperclass = 0x8004100d,
93    wbemErrInvalidNamespace = 0x8004100e,
94    wbemErrInvalidObject = 0x8004100f,
95    wbemErrInvalidClass = 0x80041010,
96    wbemErrProviderNotFound = 0x80041011,
97    wbemErrInvalidProviderRegistration = 0x80041012,
98    wbemErrProviderLoadFailure = 0x80041013,
99    wbemErrInitializationFailure = 0x80041014,
100    wbemErrTransportFailure = 0x80041015,
101    wbemErrInvalidOperation = 0x80041016,
102    wbemErrInvalidQuery = 0x80041017,
103    wbemErrInvalidQueryType = 0x80041018,
104    wbemErrAlreadyExists = 0x80041019,
105    wbemErrOverrideNotAllowed = 0x8004101a,
106    wbemErrPropagatedQualifier = 0x8004101b,
107    wbemErrPropagatedProperty = 0x8004101c,
108    wbemErrUnexpected = 0x8004101d,
109    wbemErrIllegalOperation = 0x8004101e,
110    wbemErrCannotBeKey = 0x8004101f,
111    wbemErrIncompleteClass = 0x80041020,
112    wbemErrInvalidSyntax = 0x80041021,
113    wbemErrNondecoratedObject = 0x80041022,
114    wbemErrReadOnly = 0x80041023,
115    wbemErrProviderNotCapable = 0x80041024,
116    wbemErrClassHasChildren = 0x80041025,
117    wbemErrClassHasInstances = 0x80041026,
118    wbemErrQueryNotImplemented = 0x80041027,
119    wbemErrIllegalNull = 0x80041028,
120    wbemErrInvalidQualifierType = 0x80041029,
121    wbemErrInvalidPropertyType = 0x8004102a,
122    wbemErrValueOutOfRange = 0x8004102b,
123    wbemErrCannotBeSingleton = 0x8004102c,
124    wbemErrInvalidCimType = 0x8004102d,
125    wbemErrInvalidMethod = 0x8004102e,
126    wbemErrInvalidMethodParameters = 0x8004102f,
127    wbemErrSystemProperty = 0x80041030,
128    wbemErrInvalidProperty = 0x80041031,
129    wbemErrCallCancelled = 0x80041032,
130    wbemErrShuttingDown = 0x80041033,
131    wbemErrPropagatedMethod = 0x80041034,
132    wbemErrUnsupportedParameter = 0x80041035,
133    wbemErrMissingParameter = 0x80041036,
134    wbemErrInvalidParameterId = 0x80041037,
135    wbemErrNonConsecutiveParameterIds = 0x80041038,
136    wbemErrParameterIdOnRetval = 0x80041039,
137    wbemErrInvalidObjectPath = 0x8004103a,
138    wbemErrOutOfDiskSpace = 0x8004103b,
139    wbemErrBufferTooSmall = 0x8004103c,
140    wbemErrUnsupportedPutExtension = 0x8004103d,
141    wbemErrUnknownObjectType = 0x8004103e,
142    wbemErrUnknownPacketType = 0x8004103f,
143    wbemErrMarshalVersionMismatch = 0x80041040,
144    wbemErrMarshalInvalidSignature = 0x80041041,
145    wbemErrInvalidQualifier = 0x80041042,
146    wbemErrInvalidDuplicateParameter = 0x80041043,
147    wbemErrTooMuchData = 0x80041044,
148    wbemErrServerTooBusy = 0x80041045,
149    wbemErrInvalidFlavor = 0x80041046,
150    wbemErrCircularReference = 0x80041047,
151    wbemErrUnsupportedClassUpdate = 0x80041048,
152    wbemErrCannotChangeKeyInheritance = 0x80041049,
153    wbemErrCannotChangeIndexInheritance = 0x80041050,
154    wbemErrTooManyProperties = 0x80041051,
155    wbemErrUpdateTypeMismatch = 0x80041052,
156    wbemErrUpdateOverrideNotAllowed = 0x80041053,
157    wbemErrUpdatePropagatedMethod = 0x80041054,
158    wbemErrMethodNotImplemented = 0x80041055,
159    wbemErrMethodDisabled = 0x80041056,
160    wbemErrRefresherBusy = 0x80041057,
161    wbemErrUnparsableQuery = 0x80041058,
162    wbemErrNotEventClass = 0x80041059,
163    wbemErrMissingGroupWithin = 0x8004105a,
164    wbemErrMissingAggregationList = 0x8004105b,
165    wbemErrPropertyNotAnObject = 0x8004105c,
166    wbemErrAggregatingByObject = 0x8004105d,
167    wbemErrUninterpretableProviderQuery = 0x8004105f,
168    wbemErrBackupRestoreWinmgmtRunning = 0x80041060,
169    wbemErrQueueOverflow = 0x80041061,
170    wbemErrPrivilegeNotHeld = 0x80041062,
171    wbemErrInvalidOperator = 0x80041063,
172    wbemErrLocalCredentials = 0x80041064,
173    wbemErrCannotBeAbstract = 0x80041065,
174    wbemErrAmendedObject = 0x80041066,
175    wbemErrClientTooSlow = 0x80041067,
176    wbemErrNullSecurityDescriptor = 0x80041068,
177    wbemErrTimeout = 0x80041069,
178    wbemErrInvalidAssociation = 0x8004106a,
179    wbemErrAmbiguousOperation = 0x8004106b,
180    wbemErrQuotaViolation = 0x8004106c,
181    wbemErrTransactionConflict = 0x8004106d,
182    wbemErrForcedRollback = 0x8004106e,
183    wbemErrUnsupportedLocale = 0x8004106f,
184    wbemErrHandleOutOfDate = 0x80041070,
185    wbemErrConnectionFailed = 0x80041071,
186    wbemErrInvalidHandleRequest = 0x80041072,
187    wbemErrPropertyNameTooWide = 0x80041073,
188    wbemErrClassNameTooWide = 0x80041074,
189    wbemErrMethodNameTooWide = 0x80041075,
190    wbemErrQualifierNameTooWide = 0x80041076,
191    wbemErrRerunCommand = 0x80041077,
192    wbemErrDatabaseVerMismatch = 0x80041078,
193    wbemErrVetoPut = 0x80041079,
194    wbemErrVetoDelete = 0x8004107a,
195    wbemErrInvalidLocale = 0x80041080,
196    wbemErrProviderSuspended = 0x80041081,
197    wbemErrSynchronizationRequired = 0x80041082,
198    wbemErrNoSchema = 0x80041083,
199    wbemErrProviderAlreadyRegistered = 0x80041084,
200    wbemErrProviderNotRegistered = 0x80041085,
201    wbemErrFatalTransportError = 0x80041086,
202    wbemErrEncryptedConnectionRequired = 0x80041087,
203    wbemErrRegistrationTooBroad = 0x80042001,
204    wbemErrRegistrationTooPrecise = 0x80042002,
205    wbemErrTimedout = 0x80043001,
206    wbemErrResetToDefault = 0x80043002,
207}}
208ENUM!{enum WbemAuthenticationLevelEnum {
209    wbemAuthenticationLevelDefault = 0,
210    wbemAuthenticationLevelNone = 1,
211    wbemAuthenticationLevelConnect = 2,
212    wbemAuthenticationLevelCall = 3,
213    wbemAuthenticationLevelPkt = 4,
214    wbemAuthenticationLevelPktIntegrity = 5,
215    wbemAuthenticationLevelPktPrivacy = 6,
216}}
217ENUM!{enum WbemImpersonationLevelEnum {
218    wbemImpersonationLevelAnonymous = 1,
219    wbemImpersonationLevelIdentify = 2,
220    wbemImpersonationLevelImpersonate = 3,
221    wbemImpersonationLevelDelegate = 4,
222}}
223ENUM!{enum WbemPrivilegeEnum {
224    wbemPrivilegeCreateToken = 1,
225    wbemPrivilegePrimaryToken = 2,
226    wbemPrivilegeLockMemory = 3,
227    wbemPrivilegeIncreaseQuota = 4,
228    wbemPrivilegeMachineAccount = 5,
229    wbemPrivilegeTcb = 6,
230    wbemPrivilegeSecurity = 7,
231    wbemPrivilegeTakeOwnership = 8,
232    wbemPrivilegeLoadDriver = 9,
233    wbemPrivilegeSystemProfile = 10,
234    wbemPrivilegeSystemtime = 11,
235    wbemPrivilegeProfileSingleProcess = 12,
236    wbemPrivilegeIncreaseBasePriority = 13,
237    wbemPrivilegeCreatePagefile = 14,
238    wbemPrivilegeCreatePermanent = 15,
239    wbemPrivilegeBackup = 16,
240    wbemPrivilegeRestore = 17,
241    wbemPrivilegeShutdown = 18,
242    wbemPrivilegeDebug = 19,
243    wbemPrivilegeAudit = 20,
244    wbemPrivilegeSystemEnvironment = 21,
245    wbemPrivilegeChangeNotify = 22,
246    wbemPrivilegeRemoteShutdown = 23,
247    wbemPrivilegeUndock = 24,
248    wbemPrivilegeSyncAgent = 25,
249    wbemPrivilegeEnableDelegation = 26,
250    wbemPrivilegeManageVolume = 27,
251}}
252ENUM!{enum WbemObjectTextFormatEnum {
253    wbemObjectTextFormatCIMDTD20 = 1,
254    wbemObjectTextFormatWMIDTD20 = 2,
255}}
256ENUM!{enum WbemConnectOptionsEnum {
257    wbemConnectFlagUseMaxWait = 0x80,
258}}
259// EXTERN_C const IID LIBID_WbemScripting;
260// EXTERN_C const IID IID_ISWbemServices;
261DEFINE_GUID!{IID_ISWbemServices,
262    0x76a6415c, 0xcb41, 0x11d1, 0x8b, 0x02, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
263RIDL!{#[uuid(0x76a6415c, 0xcb41, 0x11d1, 0x8b, 0x02, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
264interface ISWbemServices(ISWbemServicesVtbl): IDispatch(IDispatchVtbl) {
265    fn Get(
266        strObjectPath: BSTR,
267        iFlags: c_long,
268        objWbemNamedValueSet: *mut IDispatch,
269        objWbemObject: *mut *mut ISWbemObject,
270    ) -> HRESULT,
271    fn GetAsync(
272        objWbemSink: *mut IDispatch,
273        strObjectPath: BSTR,
274        iFlags: c_long,
275        objWbemNamedValueSet: *mut IDispatch,
276        objWbemAsyncContext: *mut IDispatch,
277    ) -> HRESULT,
278    fn Delete(
279        strObjectPath: BSTR,
280        iFlags: c_long,
281        objWbemNamedValueSet: *mut IDispatch,
282    ) -> HRESULT,
283    fn DeleteAsync(
284        objWbemSink: *mut IDispatch,
285        strObjectPath: BSTR,
286        iFlags: c_long,
287        objWbemNamedValueSet: *mut IDispatch,
288        objWbemAsyncContext: *mut IDispatch,
289    ) -> HRESULT,
290    fn InstancesOf(
291        strClass: BSTR,
292        iFlags: c_long,
293        objWbemNamedValueSet: *mut IDispatch,
294        objWbemObjectSet: *mut *mut ISWbemObjectSet,
295    ) -> HRESULT,
296    fn InstancesOfAsync(
297        objWbemSink: *mut IDispatch,
298        strClass: BSTR,
299        iFlags: c_long,
300        objWbemNamedValueSet: *mut IDispatch,
301        objWbemAsyncContext: *mut IDispatch,
302    ) -> HRESULT,
303    fn SubclassesOf(
304        strSuperclass: BSTR,
305        iFlags: c_long,
306        objWbemNamedValueSet: *mut IDispatch,
307        objWbemObjectSet: *mut *mut ISWbemObjectSet,
308    ) -> HRESULT,
309    fn SubclassesOfAsync(
310        objWbemSink: *mut IDispatch,
311        strSuperclass: BSTR,
312        iFlags: c_long,
313        objWbemNamedValueSet: *mut IDispatch,
314        objWbemAsyncContext: *mut IDispatch,
315    ) -> HRESULT,
316    fn ExecQuery(
317        strQuery: BSTR,
318        strQueryLanguage: BSTR,
319        iFlags: c_long,
320        objWbemNamedValueSet: *mut IDispatch,
321        objWbemObjectSet: *mut *mut ISWbemObjectSet,
322    ) -> HRESULT,
323    fn ExecQueryAsync(
324        objWbemSink: *mut IDispatch,
325        strQuery: BSTR,
326        strQueryLanguage: BSTR,
327        lFlags: c_long,
328        objWbemNamedValueSet: *mut IDispatch,
329        objWbemAsyncContext: *mut IDispatch,
330    ) -> HRESULT,
331    fn AssociatorsOf(
332        strObjectPath: BSTR,
333        strAssocClass: BSTR,
334        strResultClass: BSTR,
335        strResultRole: BSTR,
336        strRole: BSTR,
337        bClassesOnly: VARIANT_BOOL,
338        bSchemaOnly: VARIANT_BOOL,
339        strRequiredAssocQualifier: BSTR,
340        strRequiredQualifier: BSTR,
341        iFlags: c_long,
342        objWbemNamedValueSet: *mut IDispatch,
343        objWbemObjectSet: *mut *mut ISWbemObjectSet,
344    ) -> HRESULT,
345    fn AssociatorsOfAsync(
346        objWbemSink: *mut IDispatch,
347        strObjectPath: BSTR,
348        strAssocClass: BSTR,
349        strResultClass: BSTR,
350        strResultRole: BSTR,
351        strRole: BSTR,
352        bClassesOnly: VARIANT_BOOL,
353        bSchemaOnly: VARIANT_BOOL,
354        strRequiredAssocQualifier: BSTR,
355        strRequiredQualifier: BSTR,
356        iFlags: c_long,
357        objWbemNamedValueSet: *mut IDispatch,
358        objWbemAsyncContext: *mut IDispatch,
359    ) -> HRESULT,
360    fn ReferencesTo(
361        strObjectPath: BSTR,
362        strResultClass: BSTR,
363        strRole: BSTR,
364        bClassesOnly: VARIANT_BOOL,
365        bSchemaOnly: VARIANT_BOOL,
366        strRequiredQualifier: BSTR,
367        iFlags: c_long,
368        objWbemNamedValueSet: *mut IDispatch,
369        objWbemObjectSet: *mut *mut ISWbemObjectSet,
370    ) -> HRESULT,
371    fn ReferencesToAsync(
372        objWbemSink: *mut IDispatch,
373        strObjectPath: BSTR,
374        strResultClass: BSTR,
375        strRole: BSTR,
376        bClassesOnly: VARIANT_BOOL,
377        bSchemaOnly: VARIANT_BOOL,
378        strRequiredQualifier: BSTR,
379        iFlags: c_long,
380        objWbemNamedValueSet: *mut IDispatch,
381        objWbemAsyncContext: *mut IDispatch,
382    ) -> HRESULT,
383    fn ExecNotificationQuery(
384        strQuery: BSTR,
385        strQueryLanguage: BSTR,
386        iFlags: c_long,
387        objWbemNamedValueSet: *mut IDispatch,
388        objWbemEventSource: *mut *mut ISWbemEventSource,
389    ) -> HRESULT,
390    fn ExecNotificationQueryAsync(
391        objWbemSink: *mut IDispatch,
392        strQuery: BSTR,
393        strQueryLanguage: BSTR,
394        iFlags: c_long,
395        objWbemNamedValueSet: *mut IDispatch,
396        objWbemAsyncContext: *mut IDispatch,
397    ) -> HRESULT,
398    fn ExecMethod(
399        strObjectPath: BSTR,
400        strMethodName: BSTR,
401        objWbemInParameters: *mut IDispatch,
402        iFlags: c_long,
403        objWbemNamedValueSet: *mut IDispatch,
404        objWbemOutParameters: *mut *mut ISWbemObject,
405    ) -> HRESULT,
406    fn ExecMethodAsync(
407        objWbemSink: *mut IDispatch,
408        strObjectPath: BSTR,
409        strMethodName: BSTR,
410        objWbemInParameters: *mut IDispatch,
411        iFlags: c_long,
412        objWbemNamedValueSet: *mut IDispatch,
413        objWbemAsyncContext: *mut IDispatch,
414    ) -> HRESULT,
415    fn get_Security_(
416        objWbemSecurity: *mut *mut ISWbemSecurity,
417    ) -> HRESULT,
418}}
419// EXTERN_C const IID IID_ISWbemLocator;
420DEFINE_GUID!{IID_ISWbemLocator,
421    0x76a6415b, 0xcb41, 0x11d1, 0x8b, 0x02, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
422RIDL!{#[uuid(0x76a6415b, 0xcb41, 0x11d1, 0x8b, 0x02, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
423interface ISWbemLocator(ISWbemLocatorVtbl): IDispatch(IDispatchVtbl) {
424    fn ConnectServer(
425        strServer: BSTR,
426        strNamespace: BSTR,
427        strUser: BSTR,
428        strPassword: BSTR,
429        strLocale: BSTR,
430        strAuthority: BSTR,
431        iSecurityFlags: c_long,
432        objWbemNamedValueSet: *mut IDispatch,
433        objWbemServices: *mut *mut ISWbemServices,
434    ) -> HRESULT,
435    fn get_Security_(
436        objWbemSecurity: *mut *mut ISWbemSecurity,
437    ) -> HRESULT,
438}}
439pub const WBEMS_DISPID_DERIVATION: DISPID = 23;
440// EXTERN_C const IID IID_ISWbemObject;
441DEFINE_GUID!{IID_ISWbemObject,
442    0x76a6415a, 0xcb41, 0x11d1, 0x8b, 0x02, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
443RIDL!{#[uuid(0x76a6415a, 0xcb41, 0x11d1, 0x8b, 0x02, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
444interface ISWbemObject(ISWbemObjectVtbl): IDispatch(IDispatchVtbl) {
445    fn Put_(
446        iFlags: c_long,
447        objWbemNamedValueSet: *mut IDispatch,
448        objWbemObjectPath: *mut *mut ISWbemObjectPath,
449    ) -> HRESULT,
450    fn PutAsync_(
451        objWbemSink: *mut IDispatch,
452        iFlags: c_long,
453        objWbemNamedValueSet: *mut IDispatch,
454        objWbemAsyncContext: *mut IDispatch,
455    ) -> HRESULT,
456    fn Delete_(
457        iFlags: c_long,
458        objWbemNamedValueSet: *mut IDispatch,
459    ) -> HRESULT,
460    fn DeleteAsync_(
461        objWbemSink: *mut IDispatch,
462        iFlags: c_long,
463        objWbemNamedValueSet: *mut IDispatch,
464        objWbemAsyncContext: *mut IDispatch,
465    ) -> HRESULT,
466    fn Instances_(
467        iFlags: c_long,
468        objWbemNamedValueSet: *mut IDispatch,
469        objWbemObjectSet: *mut *mut ISWbemObjectSet,
470    ) -> HRESULT,
471    fn InstancesAsync_(
472        objWbemSink: *mut IDispatch,
473        iFlags: c_long,
474        objWbemNamedValueSet: *mut IDispatch,
475        objWbemAsyncContext: *mut IDispatch,
476    ) -> HRESULT,
477    fn Subclasses_(
478        iFlags: c_long,
479        objWbemNamedValueSet: *mut IDispatch,
480        objWbemObjectSet: *mut *mut ISWbemObjectSet,
481    ) -> HRESULT,
482    fn SubclassesAsync_(
483        objWbemSink: *mut IDispatch,
484        iFlags: c_long,
485        objWbemNamedValueSet: *mut IDispatch,
486        objWbemAsyncContext: *mut IDispatch,
487    ) -> HRESULT,
488    fn Associators_(
489        strAssocClass: BSTR,
490        strResultClass: BSTR,
491        strResultRole: BSTR,
492        strRole: BSTR,
493        bClassesOnly: VARIANT_BOOL,
494        bSchemaOnly: VARIANT_BOOL,
495        strRequiredAssocQualifier: BSTR,
496        strRequiredQualifier: BSTR,
497        iFlags: c_long,
498        objWbemNamedValueSet: *mut IDispatch,
499        objWbemObjectSet: *mut *mut ISWbemObjectSet,
500    ) -> HRESULT,
501    fn AssociatorsAsync_(
502        objWbemSink: *mut IDispatch,
503        strAssocClass: BSTR,
504        strResultClass: BSTR,
505        strResultRole: BSTR,
506        strRole: BSTR,
507        bClassesOnly: VARIANT_BOOL,
508        bSchemaOnly: VARIANT_BOOL,
509        strRequiredAssocQualifier: BSTR,
510        strRequiredQualifier: BSTR,
511        iFlags: c_long,
512        objWbemNamedValueSet: *mut IDispatch,
513        objWbemAsyncContext: *mut IDispatch,
514    ) -> HRESULT,
515    fn References_(
516        strResultClass: BSTR,
517        strRole: BSTR,
518        bClassesOnly: VARIANT_BOOL,
519        bSchemaOnly: VARIANT_BOOL,
520        strRequiredQualifier: BSTR,
521        iFlags: c_long,
522        objWbemNamedValueSet: *mut IDispatch,
523        objWbemObjectSet: *mut *mut ISWbemObjectSet,
524    ) -> HRESULT,
525    fn ReferencesAsync_(
526        objWbemSink: *mut IDispatch,
527        strResultClass: BSTR,
528        strRole: BSTR,
529        bClassesOnly: VARIANT_BOOL,
530        bSchemaOnly: VARIANT_BOOL,
531        strRequiredQualifier: BSTR,
532        iFlags: c_long,
533        objWbemNamedValueSet: *mut IDispatch,
534        objWbemAsyncContext: *mut IDispatch,
535    ) -> HRESULT,
536    fn ExecMethod_(
537        strMethodName: BSTR,
538        objWbemInParameters: *mut IDispatch,
539        iFlags: c_long,
540        objWbemNamedValueSet: *mut IDispatch,
541        objWbemOutParameters: *mut *mut ISWbemObject,
542    ) -> HRESULT,
543    fn ExecMethodAsync_(
544        objWbemSink: *mut IDispatch,
545        strMethodName: BSTR,
546        objWbemInParameters: *mut IDispatch,
547        iFlags: c_long,
548        objWbemNamedValueSet: *mut IDispatch,
549        objWbemAsyncContext: *mut IDispatch,
550    ) -> HRESULT,
551    fn Clone_(
552        objWbemObject: *mut *mut ISWbemObject,
553    ) -> HRESULT,
554    fn GetObjectText_(
555        iFlags: c_long,
556        strObjectText: *mut BSTR,
557    ) -> HRESULT,
558    fn SpawnDerivedClass_(
559        iFlags: c_long,
560        objWbemObject: *mut *mut ISWbemObject,
561    ) -> HRESULT,
562    fn SpawnInstance_(
563        iFlags: c_long,
564        objWbemObject: *mut *mut ISWbemObject,
565    ) -> HRESULT,
566    fn CompareTo_(
567        objWbemObject: *mut IDispatch,
568        iFlags: c_long,
569        bResult: *mut VARIANT_BOOL,
570    ) -> HRESULT,
571    fn get_Qualifiers_(
572        objWbemQualifierSet: *mut *mut ISWbemQualifierSet,
573    ) -> HRESULT,
574    fn get_Properties_(
575        objWbemPropertySet: *mut *mut ISWbemPropertySet,
576    ) -> HRESULT,
577    fn get_Methods_(
578        objWbemMethodSet: *mut *mut ISWbemMethodSet,
579    ) -> HRESULT,
580    fn get_Derivation_(
581        strClassNameArray: *mut VARIANT,
582    ) -> HRESULT,
583    fn get_Path_(
584        objWbemObjectPath: *mut *mut ISWbemObjectPath,
585    ) -> HRESULT,
586    fn get_Security_(
587        objWbemSecurity: *mut *mut ISWbemSecurity,
588    ) -> HRESULT,
589}}
590// EXTERN_C const IID IID_ISWbemObjectSet;
591DEFINE_GUID!{IID_ISWbemObjectSet,
592    0x76a6415f, 0xcb41, 0x11d1, 0x8b, 0x02, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
593RIDL!{#[uuid(0x76a6415f, 0xcb41, 0x11d1, 0x8b, 0x02, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
594interface ISWbemObjectSet(ISWbemObjectSetVtbl): IDispatch(IDispatchVtbl) {
595    fn get__NewEnum(
596        pUnk: *mut *mut IUnknown,
597    ) -> HRESULT,
598    fn Item(
599        strObjectPath: BSTR,
600        iFlags: c_long,
601        objWbemObject: *mut *mut ISWbemObject,
602    ) -> HRESULT,
603    fn get_Count(
604        iCount: *mut c_long,
605    ) -> HRESULT,
606    fn get_Security_(
607        objWbemSecurity: *mut *mut ISWbemSecurity,
608    ) -> HRESULT,
609    fn ItemIndex(
610        lIndex: c_long,
611        objWbemObject: *mut *mut ISWbemObject,
612    ) -> HRESULT,
613}}
614// EXTERN_C const IID IID_ISWbemNamedValue;
615DEFINE_GUID!{IID_ISWbemNamedValue,
616    0x76a64164, 0xcb41, 0x11d1, 0x8b, 0x02, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
617RIDL!{#[uuid(0x76a64164, 0xcb41, 0x11d1, 0x8b, 0x02, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
618interface ISWbemNamedValue(ISWbemNamedValueVtbl): IDispatch(IDispatchVtbl) {
619    fn get_Value(
620        varValue: *mut VARIANT,
621    ) -> HRESULT,
622    fn put_Value(
623        varValue: *mut VARIANT,
624    ) -> HRESULT,
625    fn get_Name(
626        strName: *mut BSTR,
627    ) -> HRESULT,
628}}
629// EXTERN_C const IID IID_ISWbemNamedValueSet;
630DEFINE_GUID!{IID_ISWbemNamedValueSet,
631    0xcf2376ea, 0xce8c, 0x11d1, 0x8b, 0x05, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
632RIDL!{#[uuid(0xcf2376ea, 0xce8c, 0x11d1, 0x8b, 0x05, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
633interface ISWbemNamedValueSet(ISWbemNamedValueSetVtbl): IDispatch(IDispatchVtbl) {
634    fn get__NewEnum(
635        pUnk: *mut *mut IUnknown,
636    ) -> HRESULT,
637    fn Item(
638        strName: BSTR,
639        iFlags: c_long,
640        objWbemNamedValue: *mut *mut ISWbemNamedValue,
641    ) -> HRESULT,
642    fn get_Count(
643        iCount: *mut c_long,
644    ) -> HRESULT,
645    fn Add(
646        strName: BSTR,
647        varValue: *mut VARIANT,
648        iFlags: c_long,
649        objWbemNamedValue: *mut *mut ISWbemNamedValue,
650    ) -> HRESULT,
651    fn Remove(
652        strName: BSTR,
653        iFlags: c_long,
654    ) -> HRESULT,
655    fn Clone(
656        objWbemNamedValueSet: *mut *mut ISWbemNamedValueSet,
657    ) -> HRESULT,
658    fn DeleteAll() -> HRESULT,
659}}
660// EXTERN_C const IID IID_ISWbemQualifier;
661DEFINE_GUID!{IID_ISWbemQualifier,
662    0x79b05932, 0xd3b7, 0x11d1, 0x8b, 0x06, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
663RIDL!{#[uuid(0x79b05932, 0xd3b7, 0x11d1, 0x8b, 0x06, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
664interface ISWbemQualifier(ISWbemQualifierVtbl): IDispatch(IDispatchVtbl) {
665    fn get_Value(
666        varValue: *mut VARIANT,
667    ) -> HRESULT,
668    fn put_Value(
669        varValue: *mut VARIANT,
670    ) -> HRESULT,
671    fn get_Name(
672        strName: *mut BSTR,
673    ) -> HRESULT,
674    fn get_IsLocal(
675        bIsLocal: *mut VARIANT_BOOL,
676    ) -> HRESULT,
677    fn get_PropagatesToSubclass(
678        bPropagatesToSubclass: *mut VARIANT_BOOL,
679    ) -> HRESULT,
680    fn put_PropagatesToSubclass(
681        bPropagatesToSubclass: VARIANT_BOOL,
682    ) -> HRESULT,
683    fn get_PropagatesToInstance(
684        bPropagatesToInstance: *mut VARIANT_BOOL,
685    ) -> HRESULT,
686    fn put_PropagatesToInstance(
687        bPropagatesToInstance: VARIANT_BOOL,
688    ) -> HRESULT,
689    fn get_IsOverridable(
690        bIsOverridable: *mut VARIANT_BOOL,
691    ) -> HRESULT,
692    fn put_IsOverridable(
693        bIsOverridable: VARIANT_BOOL,
694    ) -> HRESULT,
695    fn get_IsAmended(
696        bIsAmended: *mut VARIANT_BOOL,
697    ) -> HRESULT,
698}}
699// EXTERN_C const IID IID_ISWbemQualifierSet;
700DEFINE_GUID!{IID_ISWbemQualifierSet,
701    0x9b16ed16, 0xd3df, 0x11d1, 0x8b, 0x08, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
702RIDL!{#[uuid(0x9b16ed16, 0xd3df, 0x11d1, 0x8b, 0x08, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
703interface ISWbemQualifierSet(ISWbemQualifierSetVtbl): IDispatch(IDispatchVtbl) {
704    fn get__NewEnum(
705        pUnk: *mut *mut IUnknown,
706    ) -> HRESULT,
707    fn Item(
708        name: BSTR,
709        iFlags: c_long,
710        objWbemQualifier: *mut *mut ISWbemQualifier,
711    ) -> HRESULT,
712    fn get_Count(
713        iCount: *mut c_long,
714    ) -> HRESULT,
715    fn Add(
716        strName: BSTR,
717        varVal: *mut VARIANT,
718        bPropagatesToSubclass: VARIANT_BOOL,
719        bPropagatesToInstance: VARIANT_BOOL,
720        bIsOverridable: VARIANT_BOOL,
721        iFlags: c_long,
722        objWbemQualifier: *mut *mut ISWbemQualifier,
723    ) -> HRESULT,
724    fn Remove(
725        strName: BSTR,
726        iFlags: c_long,
727    ) -> HRESULT,
728}}
729// EXTERN_C const IID IID_ISWbemProperty;
730DEFINE_GUID!{IID_ISWbemProperty,
731    0x1a388f98, 0xd4ba, 0x11d1, 0x8b, 0x09, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
732RIDL!{#[uuid(0x1a388f98, 0xd4ba, 0x11d1, 0x8b, 0x09, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
733interface ISWbemProperty(ISWbemPropertyVtbl): IDispatch(IDispatchVtbl) {
734    fn get_Value(
735        varValue: *mut VARIANT,
736    ) -> HRESULT,
737    fn put_Value(
738        varValue: *mut VARIANT,
739    ) -> HRESULT,
740    fn get_Name(
741        strName: *mut BSTR,
742    ) -> HRESULT,
743    fn get_IsLocal(
744        bIsLocal: *mut VARIANT_BOOL,
745    ) -> HRESULT,
746    fn get_Origin(
747        strOrigin: *mut BSTR,
748    ) -> HRESULT,
749    fn get_CIMType(
750        iCimType: *mut WbemCimtypeEnum,
751    ) -> HRESULT,
752    fn get_Qualifiers_(
753        objWbemQualifierSet: *mut *mut ISWbemQualifierSet,
754    ) -> HRESULT,
755    fn get_IsArray(
756        bIsArray: *mut VARIANT_BOOL,
757    ) -> HRESULT,
758}}
759// EXTERN_C const IID IID_ISWbemPropertySet;
760DEFINE_GUID!{IID_ISWbemPropertySet,
761    0xdea0a7b2, 0xd4ba, 0x11d1, 0x8b, 0x09, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
762RIDL!{#[uuid(0xdea0a7b2, 0xd4ba, 0x11d1, 0x8b, 0x09, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
763interface ISWbemPropertySet(ISWbemPropertySetVtbl): IDispatch(IDispatchVtbl) {
764    fn get__NewEnum(
765        pUnk: *mut *mut IUnknown,
766    ) -> HRESULT,
767    fn Item(
768        strName: BSTR,
769        iFlags: c_long,
770        objWbemProperty: *mut *mut ISWbemProperty,
771    ) -> HRESULT,
772    fn get_Count(
773        iCount: *mut c_long,
774    ) -> HRESULT,
775    fn Add(
776        strName: BSTR,
777        iCIMType: WbemCimtypeEnum,
778        bIsArray: VARIANT_BOOL,
779        iFlags: c_long,
780        objWbemProperty: *mut *mut ISWbemProperty,
781    ) -> HRESULT,
782    fn Remove(
783        strName: BSTR,
784        iFlags: c_long,
785    ) -> HRESULT,
786}}
787// EXTERN_C const IID IID_ISWbemMethod;
788DEFINE_GUID!{IID_ISWbemMethod,
789    0x422e8e90, 0xd955, 0x11d1, 0x8b, 0x09, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
790RIDL!{#[uuid(0x422e8e90, 0xd955, 0x11d1, 0x8b, 0x09, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
791interface ISWbemMethod(ISWbemMethodVtbl): IDispatch(IDispatchVtbl) {
792    fn get_Name(
793        strName: *mut BSTR,
794    ) -> HRESULT,
795    fn get_Origin(
796        strOrigin: *mut BSTR,
797    ) -> HRESULT,
798    fn get_InParameters(
799        objWbemInParameters: *mut *mut ISWbemObject,
800    ) -> HRESULT,
801    fn get_OutParameters(
802        objWbemOutParameters: *mut *mut ISWbemObject,
803    ) -> HRESULT,
804    fn get_Qualifiers_(
805        objWbemQualifierSet: *mut *mut ISWbemQualifierSet,
806    ) -> HRESULT,
807}}
808// EXTERN_C const IID IID_ISWbemMethodSet;
809DEFINE_GUID!{IID_ISWbemMethodSet,
810    0xc93ba292, 0xd955, 0x11d1, 0x8b, 0x09, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
811RIDL!{#[uuid(0xc93ba292, 0xd955, 0x11d1, 0x8b, 0x09, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
812interface ISWbemMethodSet(ISWbemMethodSetVtbl): IDispatch(IDispatchVtbl) {
813    fn get__NewEnum(
814        pUnk: *mut *mut IUnknown,
815    ) -> HRESULT,
816    fn Item(
817        strName: BSTR,
818        iFlags: c_long,
819        objWbemMethod: *mut *mut ISWbemMethod,
820    ) -> HRESULT,
821    fn get_Count(
822        iCount: *mut c_long,
823    ) -> HRESULT,
824}}
825// EXTERN_C const IID IID_ISWbemEventSource;
826DEFINE_GUID!{IID_ISWbemEventSource,
827    0x27d54d92, 0x0ebe, 0x11d2, 0x8b, 0x22, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
828RIDL!{#[uuid(0x27d54d92, 0x0ebe, 0x11d2, 0x8b, 0x22, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
829interface ISWbemEventSource(ISWbemEventSourceVtbl): IDispatch(IDispatchVtbl) {
830    fn NextEvent(
831        iTimeoutMs: c_long,
832        objWbemObject: *mut *mut ISWbemObject,
833    ) -> HRESULT,
834    fn get_Security_(
835        objWbemSecurity: *mut *mut ISWbemSecurity,
836    ) -> HRESULT,
837}}
838// EXTERN_C const IID IID_ISWbemObjectPath;
839DEFINE_GUID!{IID_ISWbemObjectPath,
840    0x5791bc27, 0xce9c, 0x11d1, 0x97, 0xbf, 0x00, 0x00, 0xf8, 0x1e, 0x84, 0x9c}
841RIDL!{#[uuid(0x5791bc27, 0xce9c, 0x11d1, 0x97, 0xbf, 0x00, 0x00, 0xf8, 0x1e, 0x84, 0x9c)]
842interface ISWbemObjectPath(ISWbemObjectPathVtbl): IDispatch(IDispatchVtbl) {
843    fn get_Path(
844        strPath: *mut BSTR,
845    ) -> HRESULT,
846    fn put_Path(
847        strPath: BSTR,
848    ) -> HRESULT,
849    fn get_RelPath(
850        strRelPath: *mut BSTR,
851    ) -> HRESULT,
852    fn put_RelPath(
853        strRelPath: BSTR,
854    ) -> HRESULT,
855    fn get_Server(
856        strServer: *mut BSTR,
857    ) -> HRESULT,
858    fn put_Server(
859        strServer: BSTR,
860    ) -> HRESULT,
861    fn get_Namespace(
862        strNamespace: *mut BSTR,
863    ) -> HRESULT,
864    fn put_Namespace(
865        strNamespace: BSTR,
866    ) -> HRESULT,
867    fn get_ParentNamespace(
868        strParentNamespace: *mut BSTR,
869    ) -> HRESULT,
870    fn get_DisplayName(
871        strDisplayName: *mut BSTR,
872    ) -> HRESULT,
873    fn put_DisplayName(
874        strDisplayName: BSTR,
875    ) -> HRESULT,
876    fn get_Class(
877        strClass: *mut BSTR,
878    ) -> HRESULT,
879    fn put_Class(
880        strClass: BSTR,
881    ) -> HRESULT,
882    fn get_IsClass(
883        bIsClass: *mut VARIANT_BOOL,
884    ) -> HRESULT,
885    fn SetAsClass() -> HRESULT,
886    fn get_IsSingleton(
887        bIsSingleton: *mut VARIANT_BOOL,
888    ) -> HRESULT,
889    fn SetAsSingleton() -> HRESULT,
890    fn get_Keys(
891        objWbemNamedValueSet: *mut *mut ISWbemNamedValueSet,
892    ) -> HRESULT,
893    fn get_Security_(
894        objWbemSecurity: *mut *mut ISWbemSecurity,
895    ) -> HRESULT,
896    fn get_Locale(
897        strLocale: *mut BSTR,
898    ) -> HRESULT,
899    fn put_Locale(
900        strLocale: BSTR,
901    ) -> HRESULT,
902    fn get_Authority(
903        strAuthority: *mut BSTR,
904    ) -> HRESULT,
905    fn put_Authority(
906        strAuthority: BSTR,
907    ) -> HRESULT,
908}}
909// EXTERN_C const IID IID_ISWbemLastError;
910DEFINE_GUID!{IID_ISWbemLastError,
911    0xd962db84, 0xd4bb, 0x11d1, 0x8b, 0x09, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
912RIDL!{#[uuid(0xd962db84, 0xd4bb, 0x11d1, 0x8b, 0x09, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
913interface ISWbemLastError(ISWbemLastErrorVtbl): ISWbemObject(ISWbemObjectVtbl) {}}
914// EXTERN_C const IID DIID_ISWbemSinkEvents;
915DEFINE_GUID!{IID_ISWbemSinkEvents,
916    0x75718ca0, 0xf029, 0x11d1, 0xa1, 0xac, 0x00, 0xc0, 0x4f, 0xb6, 0xc2, 0x23}
917RIDL!{#[uuid(0x75718ca0, 0xf029, 0x11d1, 0xa1, 0xac, 0x00, 0xc0, 0x4f, 0xb6, 0xc2, 0x23)]
918interface ISWbemSinkEvents(ISWbemSinkEventsVtbl): IDispatch(IDispatchVtbl) {}}
919// EXTERN_C const IID IID_ISWbemSink;
920DEFINE_GUID!{IID_ISWbemSink,
921    0x75718c9f, 0xf029, 0x11d1, 0xa1, 0xac, 0x00, 0xc0, 0x4f, 0xb6, 0xc2, 0x23}
922RIDL!{#[uuid(0x75718c9f, 0xf029, 0x11d1, 0xa1, 0xac, 0x00, 0xc0, 0x4f, 0xb6, 0xc2, 0x23)]
923interface ISWbemSink(ISWbemSinkVtbl): IDispatch(IDispatchVtbl) {
924    fn Cancel() -> HRESULT,
925}}
926// EXTERN_C const IID IID_ISWbemSecurity;
927DEFINE_GUID!{IID_ISWbemSecurity,
928    0xb54d66e6, 0x2287, 0x11d2, 0x8b, 0x33, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
929RIDL!{#[uuid(0xb54d66e6, 0x2287, 0x11d2, 0x8b, 0x33, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
930interface ISWbemSecurity(ISWbemSecurityVtbl): IDispatch(IDispatchVtbl) {
931    fn get_ImpersonationLevel(
932        iImpersonationLevel: *mut WbemImpersonationLevelEnum,
933    ) -> HRESULT,
934    fn put_ImpersonationLevel(
935        iImpersonationLevel: WbemImpersonationLevelEnum,
936    ) -> HRESULT,
937    fn get_AuthenticationLevel(
938        iAuthenticationLevel: *mut WbemAuthenticationLevelEnum,
939    ) -> HRESULT,
940    fn put_AuthenticationLevel(
941        iAuthenticationLevel: WbemAuthenticationLevelEnum,
942    ) -> HRESULT,
943    fn get_Privileges(
944        objWbemPrivilegeSet: *mut *mut ISWbemPrivilegeSet,
945    ) -> HRESULT,
946}}
947// EXTERN_C const IID IID_ISWbemPrivilege;
948DEFINE_GUID!{IID_ISWbemPrivilege,
949    0x26ee67bd, 0x5804, 0x11d2, 0x8b, 0x4a, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
950RIDL!{#[uuid(0x26ee67bd, 0x5804, 0x11d2, 0x8b, 0x4a, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
951interface ISWbemPrivilege(ISWbemPrivilegeVtbl): IDispatch(IDispatchVtbl) {
952    fn get_IsEnabled(
953        bIsEnabled: *mut VARIANT_BOOL,
954    ) -> HRESULT,
955    fn put_IsEnabled(
956        bIsEnabled: VARIANT_BOOL,
957    ) -> HRESULT,
958    fn get_Name(
959        strDisplayName: *mut BSTR,
960    ) -> HRESULT,
961    fn get_DisplayName(
962        strDisplayName: *mut BSTR,
963    ) -> HRESULT,
964    fn get_Identifier(
965        iPrivilege: *mut WbemPrivilegeEnum,
966    ) -> HRESULT,
967}}
968// EXTERN_C const IID IID_ISWbemPrivilegeSet;
969DEFINE_GUID!{IID_ISWbemPrivilegeSet,
970    0x26ee67bf, 0x5804, 0x11d2, 0x8b, 0x4a, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6}
971RIDL!{#[uuid(0x26ee67bf, 0x5804, 0x11d2, 0x8b, 0x4a, 0x00, 0x60, 0x08, 0x06, 0xd9, 0xb6)]
972interface ISWbemPrivilegeSet(ISWbemPrivilegeSetVtbl): IDispatch(IDispatchVtbl) {
973    fn get__NewEnum(
974        pUnk: *mut *mut IUnknown,
975    ) -> HRESULT,
976    fn Item(
977        iPrivilege: WbemPrivilegeEnum,
978        objWbemPrivilege: *mut *mut ISWbemPrivilege,
979    ) -> HRESULT,
980    fn get_Count(
981        iCount: *mut c_long,
982    ) -> HRESULT,
983    fn Add(
984        iPrivilege: WbemPrivilegeEnum,
985        bIsEnabled: VARIANT_BOOL,
986        objWbemPrivilege: *mut *mut ISWbemPrivilege,
987    ) -> HRESULT,
988    fn Remove(
989        iPrivilege: WbemPrivilegeEnum,
990    ) -> HRESULT,
991    fn DeleteAll() -> HRESULT,
992    fn AddAsString(
993        strPrivilege: BSTR,
994        bIsEnabled: VARIANT_BOOL,
995        objWbemPrivilege: *mut *mut ISWbemPrivilege,
996    ) -> HRESULT,
997}}
998// EXTERN_C const IID IID_ISWbemServicesEx;
999DEFINE_GUID!{IID_ISWbemServicesEx,
1000    0xd2f68443, 0x85dc, 0x427e, 0x91, 0xd8, 0x36, 0x65, 0x54, 0xcc, 0x75, 0x4c}
1001RIDL!{#[uuid(0xd2f68443, 0x85dc, 0x427e, 0x91, 0xd8, 0x36, 0x65, 0x54, 0xcc, 0x75, 0x4c)]
1002interface ISWbemServicesEx(ISWbemServicesExVtbl): ISWbemServices(ISWbemServicesVtbl) {
1003    fn Put(
1004        objWbemObject: *mut ISWbemObjectEx,
1005        iFlags: c_long,
1006        objWbemNamedValueSet: *mut IDispatch,
1007        objWbemObjectPath: *mut *mut ISWbemObjectPath,
1008    ) -> HRESULT,
1009    fn PutAsync(
1010        objWbemSink: *mut ISWbemSink,
1011        objWbemObject: *mut ISWbemObjectEx,
1012        iFlags: c_long,
1013        objWbemNamedValueSet: *mut IDispatch,
1014        objWbemAsyncContext: *mut IDispatch,
1015    ) -> HRESULT,
1016}}
1017// EXTERN_C const IID IID_ISWbemObjectEx;
1018DEFINE_GUID!{IID_ISWbemObjectEx,
1019    0x269ad56a, 0x8a67, 0x4129, 0xbc, 0x8c, 0x05, 0x06, 0xdc, 0xfe, 0x98, 0x80}
1020RIDL!{#[uuid(0x269ad56a, 0x8a67, 0x4129, 0xbc, 0x8c, 0x05, 0x06, 0xdc, 0xfe, 0x98, 0x80)]
1021interface ISWbemObjectEx(ISWbemObjectExVtbl): ISWbemObject(ISWbemObjectVtbl) {
1022    fn Refresh_(
1023        iFlags: c_long,
1024        objWbemNamedValueSet: *mut IDispatch,
1025    ) -> HRESULT,
1026    fn get_SystemProperties_(
1027        objWbemPropertySet: *mut *mut ISWbemPropertySet,
1028    ) -> HRESULT,
1029    fn GetText_(
1030        iObjectTextFormat: WbemObjectTextFormatEnum,
1031        iFlags: c_long,
1032        objWbemNamedValueSet: *mut IDispatch,
1033        bsText: *mut BSTR,
1034    ) -> HRESULT,
1035    fn SetFromText_(
1036        bsText: BSTR,
1037        iObjectTextFormat: WbemObjectTextFormatEnum,
1038        iFlags: c_long,
1039        objWbemNamedValueSet: *mut IDispatch,
1040    ) -> HRESULT,
1041}}
1042// EXTERN_C const IID IID_ISWbemDateTime;
1043DEFINE_GUID!{IID_ISWbemDateTime,
1044    0x5e97458a, 0xcf77, 0x11d3, 0xb3, 0x8f, 0x00, 0x10, 0x5a, 0x1f, 0x47, 0x3a}
1045RIDL!{#[uuid(0x5e97458a, 0xcf77, 0x11d3, 0xb3, 0x8f, 0x00, 0x10, 0x5a, 0x1f, 0x47, 0x3a)]
1046interface ISWbemDateTime(ISWbemDateTimeVtbl): IDispatch(IDispatchVtbl) {
1047    fn get_Value(
1048        strValue: *mut BSTR,
1049    ) -> HRESULT,
1050    fn put_Value(
1051        strValue: BSTR,
1052    ) -> HRESULT,
1053    fn get_Year(
1054        iYear: *mut c_long,
1055    ) -> HRESULT,
1056    fn put_Year(
1057        iYear: c_long,
1058    ) -> HRESULT,
1059    fn get_YearSpecified(
1060        bYearSpecified: *mut VARIANT_BOOL,
1061    ) -> HRESULT,
1062    fn put_YearSpecified(
1063        bYearSpecified: VARIANT_BOOL,
1064    ) -> HRESULT,
1065    fn get_Month(
1066        iMonth: *mut c_long,
1067    ) -> HRESULT,
1068    fn put_Month(
1069        iMonth: c_long,
1070    ) -> HRESULT,
1071    fn get_MonthSpecified(
1072        bMonthSpecified: *mut VARIANT_BOOL,
1073    ) -> HRESULT,
1074    fn put_MonthSpecified(
1075        bMonthSpecified: VARIANT_BOOL,
1076    ) -> HRESULT,
1077    fn get_Day(
1078        iDay: *mut c_long,
1079    ) -> HRESULT,
1080    fn put_Day(
1081        iDay: c_long,
1082    ) -> HRESULT,
1083    fn get_DaySpecified(
1084        bDaySpecified: *mut VARIANT_BOOL,
1085    ) -> HRESULT,
1086    fn put_DaySpecified(
1087        bDaySpecified: VARIANT_BOOL,
1088    ) -> HRESULT,
1089    fn get_Hours(
1090        iHours: *mut c_long,
1091    ) -> HRESULT,
1092    fn put_Hours(
1093        iHours: c_long,
1094    ) -> HRESULT,
1095    fn get_HoursSpecified(
1096        bHoursSpecified: *mut VARIANT_BOOL,
1097    ) -> HRESULT,
1098    fn put_HoursSpecified(
1099        bHoursSpecified: VARIANT_BOOL,
1100    ) -> HRESULT,
1101    fn get_Minutes(
1102        iMinutes: *mut c_long,
1103    ) -> HRESULT,
1104    fn put_Minutes(
1105        iMinutes: c_long,
1106    ) -> HRESULT,
1107    fn get_MinutesSpecified(
1108        bMinutesSpecified: *mut VARIANT_BOOL,
1109    ) -> HRESULT,
1110    fn put_MinutesSpecified(
1111        bMinutesSpecified: VARIANT_BOOL,
1112    ) -> HRESULT,
1113    fn get_Seconds(
1114        iSeconds: *mut c_long,
1115    ) -> HRESULT,
1116    fn put_Seconds(
1117        iSeconds: c_long,
1118    ) -> HRESULT,
1119    fn get_SecondsSpecified(
1120        bSecondsSpecified: *mut VARIANT_BOOL,
1121    ) -> HRESULT,
1122    fn put_SecondsSpecified(
1123        bSecondsSpecified: VARIANT_BOOL,
1124    ) -> HRESULT,
1125    fn get_Microseconds(
1126        iMicroseconds: *mut c_long,
1127    ) -> HRESULT,
1128    fn put_Microseconds(
1129        iMicroseconds: c_long,
1130    ) -> HRESULT,
1131    fn get_MicrosecondsSpecified(
1132        bMicrosecondsSpecified: *mut VARIANT_BOOL,
1133    ) -> HRESULT,
1134    fn put_MicrosecondsSpecified(
1135        bMicrosecondsSpecified: VARIANT_BOOL,
1136    ) -> HRESULT,
1137    fn get_UTC(
1138        iUTC: *mut c_long,
1139    ) -> HRESULT,
1140    fn put_UTC(
1141        iUTC: c_long,
1142    ) -> HRESULT,
1143    fn get_UTCSpecified(
1144        bUTCSpecified: *mut VARIANT_BOOL,
1145    ) -> HRESULT,
1146    fn put_UTCSpecified(
1147        bUTCSpecified: VARIANT_BOOL,
1148    ) -> HRESULT,
1149    fn get_IsInterval(
1150        bIsInterval: *mut VARIANT_BOOL,
1151    ) -> HRESULT,
1152    fn put_IsInterval(
1153        bIsInterval: VARIANT_BOOL,
1154    ) -> HRESULT,
1155    fn GetVarDate(
1156        bIsLocal: VARIANT_BOOL,
1157        dVarDate: *mut DATE,
1158    ) -> HRESULT,
1159    fn SetVarDate(
1160        dVarDate: DATE,
1161        bIsLocal: VARIANT_BOOL,
1162    ) -> HRESULT,
1163    fn GetFileTime(
1164        bIsLocal: VARIANT_BOOL,
1165        strFileTime: *mut BSTR,
1166    ) -> HRESULT,
1167    fn SetFileTime(
1168        strFileTime: BSTR,
1169        bIsLocal: VARIANT_BOOL,
1170    ) -> HRESULT,
1171}}
1172// EXTERN_C const IID IID_ISWbemRefresher;
1173DEFINE_GUID!{IID_ISWbemRefresher,
1174    0x14d8250e, 0xd9c2, 0x11d3, 0xb3, 0x8f, 0x00, 0x10, 0x5a, 0x1f, 0x47, 0x3a}
1175RIDL!{#[uuid(0x14d8250e, 0xd9c2, 0x11d3, 0xb3, 0x8f, 0x00, 0x10, 0x5a, 0x1f, 0x47, 0x3a)]
1176interface ISWbemRefresher(ISWbemRefresherVtbl): IDispatch(IDispatchVtbl) {
1177    fn get__NewEnum(
1178        pUnk: *mut *mut IUnknown,
1179    ) -> HRESULT,
1180    fn Item(
1181        iIndex: c_long,
1182        objWbemRefreshableItem: *mut *mut ISWbemRefreshableItem,
1183    ) -> HRESULT,
1184    fn get_Count(
1185        iCount: *mut c_long,
1186    ) -> HRESULT,
1187    fn Add(
1188        objWbemServices: *mut ISWbemServicesEx,
1189        bsInstancePath: BSTR,
1190        iFlags: c_long,
1191        objWbemNamedValueSet: *mut IDispatch,
1192        objWbemRefreshableItem: *mut *mut ISWbemRefreshableItem,
1193    ) -> HRESULT,
1194    fn AddEnum(
1195        objWbemServices: *mut ISWbemServicesEx,
1196        bsClassName: BSTR,
1197        iFlags: c_long,
1198        objWbemNamedValueSet: *mut IDispatch,
1199        objWbemRefreshableItem: *mut *mut ISWbemRefreshableItem,
1200    ) -> HRESULT,
1201    fn Remove(
1202        iIndex: c_long,
1203        iFlags: c_long,
1204    ) -> HRESULT,
1205    fn Refresh(
1206        iFlags: c_long,
1207    ) -> HRESULT,
1208    fn get_AutoReconnect(
1209        bCount: *mut VARIANT_BOOL,
1210    ) -> HRESULT,
1211    fn put_AutoReconnect(
1212        bCount: VARIANT_BOOL,
1213    ) -> HRESULT,
1214    fn DeleteAll() -> HRESULT,
1215}}
1216// EXTERN_C const IID IID_ISWbemRefreshableItem;
1217DEFINE_GUID!{IID_ISWbemRefreshableItem,
1218    0x5ad4bf92, 0xdaab, 0x11d3, 0xb3, 0x8f, 0x00, 0x10, 0x5a, 0x1f, 0x47, 0x3a}
1219RIDL!{#[uuid(0x5ad4bf92, 0xdaab, 0x11d3, 0xb3, 0x8f, 0x00, 0x10, 0x5a, 0x1f, 0x47, 0x3a)]
1220interface ISWbemRefreshableItem(ISWbemRefreshableItemVtbl): IDispatch(IDispatchVtbl) {
1221    fn get_Index(
1222        iIndex: *mut c_long,
1223    ) -> HRESULT,
1224    fn get_Refresher(
1225        objWbemRefresher: *mut *mut ISWbemRefresher,
1226    ) -> HRESULT,
1227    fn get_IsSet(
1228        bIsSet: *mut VARIANT_BOOL,
1229    ) -> HRESULT,
1230    fn get_Object(
1231        objWbemObject: *mut *mut ISWbemObjectEx,
1232    ) -> HRESULT,
1233    fn get_ObjectSet(
1234        objWbemObjectSet: *mut *mut ISWbemObjectSet,
1235    ) -> HRESULT,
1236    fn Remove(
1237        iFlags: c_long,
1238    ) -> HRESULT,
1239}}
1240DEFINE_GUID!{CLSID_SWbemLocator,
1241    0x76A64158, 0xCB41, 0x11d1, 0x8B, 0x02, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1242// class DECLSPEC_UUID("76A64158-CB41-11d1-8B02-00600806D9B6")
1243// SWbemLocator;
1244DEFINE_GUID!{CLSID_SWbemNamedValueSet,
1245    0x9AED384E, 0xCE8B, 0x11d1, 0x8B, 0x05, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1246// class DECLSPEC_UUID("9AED384E-CE8B-11d1-8B05-00600806D9B6")
1247// SWbemNamedValueSet;
1248DEFINE_GUID!{CLSID_SWbemObjectPath,
1249    0x5791BC26, 0xCE9C, 0x11d1, 0x97, 0xBF, 0x00, 0x00, 0xF8, 0x1E, 0x84, 0x9C}
1250// class DECLSPEC_UUID("5791BC26-CE9C-11d1-97BF-0000F81E849C")
1251// SWbemObjectPath;
1252DEFINE_GUID!{CLSID_SWbemLastError,
1253    0xC2FEEEAC, 0xCFCD, 0x11d1, 0x8B, 0x05, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1254// class DECLSPEC_UUID("C2FEEEAC-CFCD-11d1-8B05-00600806D9B6")
1255// SWbemLastError;
1256DEFINE_GUID!{CLSID_SWbemSink,
1257    0x75718C9A, 0xF029, 0x11d1, 0xA1, 0xAC, 0x00, 0xC0, 0x4F, 0xB6, 0xC2, 0x23}
1258// class DECLSPEC_UUID("75718C9A-F029-11d1-A1AC-00C04FB6C223")
1259// SWbemSink;
1260DEFINE_GUID!{CLSID_SWbemDateTime,
1261    0x47DFBE54, 0xCF76, 0x11d3, 0xB3, 0x8F, 0x00, 0x10, 0x5A, 0x1F, 0x47, 0x3A}
1262// class DECLSPEC_UUID("47DFBE54-CF76-11d3-B38F-00105A1F473A")
1263// SWbemDateTime;
1264DEFINE_GUID!{CLSID_SWbemRefresher,
1265    0xD269BF5C, 0xD9C1, 0x11d3, 0xB3, 0x8F, 0x00, 0x10, 0x5A, 0x1F, 0x47, 0x3A}
1266// class DECLSPEC_UUID("D269BF5C-D9C1-11d3-B38F-00105A1F473A")
1267// SWbemRefresher;
1268DEFINE_GUID!{CLSID_SWbemServices,
1269    0x04B83D63, 0x21AE, 0x11d2, 0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1270// class DECLSPEC_UUID("04B83D63-21AE-11d2-8B33-00600806D9B6")
1271// SWbemServices;
1272DEFINE_GUID!{CLSID_SWbemServicesEx,
1273    0x62E522DC, 0x8CF3, 0x40a8, 0x8B, 0x2E, 0x37, 0xD5, 0x95, 0x65, 0x1E, 0x40}
1274// class DECLSPEC_UUID("62E522DC-8CF3-40a8-8B2E-37D595651E40")
1275// SWbemServicesEx;
1276DEFINE_GUID!{CLSID_SWbemObject,
1277    0x04B83D62, 0x21AE, 0x11d2, 0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1278// class DECLSPEC_UUID("04B83D62-21AE-11d2-8B33-00600806D9B6")
1279// SWbemObject;
1280DEFINE_GUID!{CLSID_SWbemObjectEx,
1281    0xD6BDAFB2, 0x9435, 0x491f, 0xBB, 0x87, 0x6A, 0xA0, 0xF0, 0xBC, 0x31, 0xA2}
1282// class DECLSPEC_UUID("D6BDAFB2-9435-491f-BB87-6AA0F0BC31A2")
1283// SWbemObjectEx;
1284DEFINE_GUID!{CLSID_SWbemObjectSet,
1285    0x04B83D61, 0x21AE, 0x11d2, 0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1286// class DECLSPEC_UUID("04B83D61-21AE-11d2-8B33-00600806D9B6")
1287// SWbemObjectSet;
1288DEFINE_GUID!{CLSID_SWbemNamedValue,
1289    0x04B83D60, 0x21AE, 0x11d2, 0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1290// class DECLSPEC_UUID("04B83D60-21AE-11d2-8B33-00600806D9B6")
1291// SWbemNamedValue;
1292DEFINE_GUID!{CLSID_SWbemQualifier,
1293    0x04B83D5F, 0x21AE, 0x11d2, 0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1294// class DECLSPEC_UUID("04B83D5F-21AE-11d2-8B33-00600806D9B6")
1295// SWbemQualifier;
1296DEFINE_GUID!{CLSID_SWbemQualifierSet,
1297    0x04B83D5E, 0x21AE, 0x11d2, 0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1298// class DECLSPEC_UUID("04B83D5E-21AE-11d2-8B33-00600806D9B6")
1299// SWbemQualifierSet;
1300DEFINE_GUID!{CLSID_SWbemProperty,
1301    0x04B83D5D, 0x21AE, 0x11d2, 0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1302// class DECLSPEC_UUID("04B83D5D-21AE-11d2-8B33-00600806D9B6")
1303// SWbemProperty;
1304DEFINE_GUID!{CLSID_SWbemPropertySet,
1305    0x04B83D5C, 0x21AE, 0x11d2, 0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1306// class DECLSPEC_UUID("04B83D5C-21AE-11d2-8B33-00600806D9B6")
1307// SWbemPropertySet;
1308DEFINE_GUID!{CLSID_SWbemMethod,
1309    0x04B83D5B, 0x21AE, 0x11d2, 0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1310// class DECLSPEC_UUID("04B83D5B-21AE-11d2-8B33-00600806D9B6")
1311// SWbemMethod;
1312DEFINE_GUID!{CLSID_SWbemMethodSet,
1313    0x04B83D5A, 0x21AE, 0x11d2, 0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1314// class DECLSPEC_UUID("04B83D5A-21AE-11d2-8B33-00600806D9B6")
1315// SWbemMethodSet;
1316DEFINE_GUID!{CLSID_SWbemEventSource,
1317    0x04B83D58, 0x21AE, 0x11d2, 0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1318// class DECLSPEC_UUID("04B83D58-21AE-11d2-8B33-00600806D9B6")
1319// SWbemEventSource;
1320DEFINE_GUID!{CLSID_SWbemSecurity,
1321    0xB54D66E9, 0x2287, 0x11d2, 0x8B, 0x33, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1322// class DECLSPEC_UUID("B54D66E9-2287-11d2-8B33-00600806D9B6")
1323// SWbemSecurity;
1324DEFINE_GUID!{CLSID_SWbemPrivilege,
1325    0x26EE67BC, 0x5804, 0x11d2, 0x8B, 0x4A, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1326// class DECLSPEC_UUID("26EE67BC-5804-11d2-8B4A-00600806D9B6")
1327// SWbemPrivilege;
1328DEFINE_GUID!{CLSID_SWbemPrivilegeSet,
1329    0x26EE67BE, 0x5804, 0x11d2, 0x8B, 0x4A, 0x00, 0x60, 0x08, 0x06, 0xD9, 0xB6}
1330// class DECLSPEC_UUID("26EE67BE-5804-11d2-8B4A-00600806D9B6")
1331// SWbemPrivilegeSet;
1332DEFINE_GUID!{CLSID_SWbemRefreshableItem,
1333    0x8C6854BC, 0xDE4B, 0x11d3, 0xB3, 0x90, 0x00, 0x10, 0x5A, 0x1F, 0x47, 0x3A}
1334// class DECLSPEC_UUID("8C6854BC-DE4B-11d3-B390-00105A1F473A")
1335// SWbemRefreshableItem;
1336pub const WBEMS_DISPID_OBJECT_READY: DISPID = 1;
1337pub const WBEMS_DISPID_COMPLETED: DISPID = 2;
1338pub const WBEMS_DISPID_PROGRESS: DISPID = 3;
1339pub const WBEMS_DISPID_OBJECT_PUT: DISPID = 4;
1340pub const WBEMS_DISPID_CONNECTION_READY: DISPID = 5;
1341// extern RPC_IF_HANDLE __MIDL_itf_wbemdisp_0000_0018_v0_0_c_ifspec;
1342// extern RPC_IF_HANDLE __MIDL_itf_wbemdisp_0000_0018_v0_0_s_ifspec;
1343// extern RPC_IF_HANDLE __MIDL_itf_wbemdisp_0000_0026_v0_0_c_ifspec;
1344// extern RPC_IF_HANDLE __MIDL_itf_wbemdisp_0000_0026_v0_0_s_ifspec;