xref: /reactos/sdk/include/psdk/wbemdisp.idl (revision 50cf16b3)
1/*
2 * Copyright 2013 Hans Leidekker for CodeWeavers
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19import "dispex.idl";
20
21#ifndef __WIDL__
22#define threading(model)
23#define progid(str)
24#define vi_progid(str)
25#endif
26
27[
28    uuid(565783c6-cb41-11d1-8b02-00600806d9b6),
29    helpstring("Microsoft WMI Scripting V1.2 Library"),
30    lcid(0x0000),
31    version(1.2)
32]
33library WbemScripting
34{
35
36importlib("stdole2.tlb");
37
38interface ISWbemEventSource;
39interface ISWbemLocator;
40interface ISWbemMethod;
41interface ISWbemMethodSet;
42interface ISWbemNamedValue;
43interface ISWbemNamedValueSet;
44interface ISWbemObject;
45interface ISWbemObjectPath;
46interface ISWbemObjectSet;
47interface ISWbemPrivilege;
48interface ISWbemPrivilegeSet;
49interface ISWbemProperty;
50interface ISWbemPropertySet;
51interface ISWbemQualifier;
52interface ISWbemQualifierSet;
53interface ISWbemSecurity;
54interface ISWbemServices;
55
56typedef
57[
58    v1_enum,
59    uuid(bf078c2a-07d9-11d2-8b21-00600806d9b6)
60]
61enum WbemTimeout
62{
63    wbemTimeoutInfinite = 0xffffffff
64} WbemTimeout;
65
66typedef
67[
68    v1_enum,
69    uuid(4a249b72-fc9a-11d1-8b1e-00600806d9b6)
70]
71enum WbemChangeFlagEnum
72{
73    wbemChangeFlagCreateOrUpdate   = 0,
74    wbemChangeFlagUpdateOnly       = 0x00000001,
75    wbemChangeFlagCreateOnly       = 0x00000002,
76    wbemChangeFlagUpdateCompatible = 0x00000000,
77    wbemChangeFlagUpdateSafeMode   = 0x00000020,
78    wbemChangeFlagUpdateForceMode  = 0x00000040,
79    wbemChangeFlagStrongValidation = 0x00000080,
80    wbemChangeFlagAdvisory         = 0x00010000
81} WbemChangeFlagEnum;
82
83typedef
84[
85    v1_enum,
86    uuid(4a249b73-fc9a-11d1-8b1e-00600806d9b6)
87]
88enum WbemFlagEnum
89{
90    wbemFlagReturnImmediately    = 0x00010,
91    wbemFlagReturnWhenComplete   = 0,
92    wbemFlagBidirectional        = 0,
93    wbemFlagForwardOnly          = 0x00020,
94    wbemFlagNoErrorObject        = 0x00040,
95    wbemFlagReturnErrorObject    = 0,
96    wbemFlagSendStatus           = 0x00080,
97    wbemFlagDontSendStatus       = 0,
98    wbemFlagEnsureLocatable      = 0x00100,
99    wbemFlagDirectRead           = 0x00200,
100    wbemFlagSendOnlySelected     = 0,
101    wbemFlagUseAmendedQualifiers = 0x20000,
102    wbemFlagGetDefault           = 0x0,
103    wbemFlagSpawnInstance        = 0x00001,
104    wbemFlagUseCurrentTime       = 0x00001
105} WbemFlagEnum;
106
107typedef
108[
109    v1_enum,
110    uuid(4a249b76-fc9a-11d1-8b1e-00600806d9b6)
111]
112enum WbemQueryFlagEnum
113{
114    wbemQueryFlagDeep,
115    wbemQueryFlagShallow,
116    wbemQueryFlagPrototype
117} WbemQueryFlagEnum;
118
119typedef
120[
121    v1_enum,
122    uuid(4A249B79-FC9A-11d1-8B1E-00600806D9B6)
123]
124enum WbemComparisonFlagEnum
125{
126    wbemComparisonFlagIncludeAll          = 0,
127    wbemComparisonFlagIgnoreQualifiers    = 1,
128    wbemComparisonFlagIgnoreObjectSource  = 2,
129    wbemComparisonFlagIgnoreDefaultValues = 4,
130    wbemComparisonFlagIgnoreClass         = 8,
131    wbemComparisonFlagIgnoreCase          = 16,
132    wbemComparisonFlagIgnoreFlavor        = 32
133} WbemComparisonFlagEnum;
134
135[
136    object,
137    local,
138    uuid(27d54d92-0ebe-11d2-8b22-00600806d9b6),
139    dual,
140    hidden,
141    oleautomation,
142    nonextensible
143]
144interface ISWbemEventSource : IDispatch
145{
146    [ id(1) ]
147    HRESULT NextEvent(
148        [in, defaultvalue(wbemTimeoutInfinite)] long iTimeoutMs,
149        [out, retval] ISWbemObject **objWbemObject);
150
151    [ id(2), propget ]
152    HRESULT Security_(
153        [out, retval] ISWbemSecurity **objWbemSecurity);
154};
155
156[
157    object,
158    local,
159    uuid(76a6415b-cb41-11d1-8b02-00600806d9b6),
160    dual,
161    hidden,
162    oleautomation,
163    pointer_default(unique)
164]
165interface ISWbemLocator : IDispatch
166{
167    [ id(1) ]
168    HRESULT ConnectServer(
169        [in, defaultvalue(".")] BSTR strServer,
170        [in, defaultvalue("")]  BSTR strNamespace,
171        [in, defaultvalue("")]  BSTR strUser,
172        [in, defaultvalue("")]  BSTR strPassword,
173        [in, defaultvalue("")]  BSTR strLocale,
174        [in, defaultvalue("")]  BSTR strAuthority,
175        [in, defaultvalue(0)]   long iSecurityFlags,
176        [in, defaultvalue(0)]   IDispatch *objWbemNamedValueSet,
177        [out, retval] ISWbemServices **objWbemServices);
178
179    [ id(2), propget ]
180    HRESULT Security_([out, retval] ISWbemSecurity **objWbemSecurity);
181};
182
183[
184    object,
185    local,
186    uuid(422e8e90-d955-11d1-8b09-00600806d9b6),
187    dual,
188    hidden,
189    oleautomation,
190    pointer_default(unique),
191    nonextensible
192]
193interface ISWbemMethod : IDispatch
194{
195    [ id(1), propget ]
196    HRESULT Name(
197        [out, retval] BSTR *strName);
198
199    [ id(2), propget ]
200    HRESULT Origin(
201        [out, retval] BSTR *strOrigin);
202
203    [ id(3), propget ]
204    HRESULT InParameters(
205        [out, retval] ISWbemObject **objWbemInParameters);
206
207    [ id(4), propget ]
208    HRESULT OutParameters(
209        [out, retval] ISWbemObject **objWbemOutParameters);
210
211    [ id(5), propget ]
212    HRESULT Qualifiers_(
213        [out, retval] ISWbemQualifierSet **objWbemQualifierSet);
214};
215
216[
217    object,
218    local,
219    uuid(c93ba292-d955-11d1-8b09-00600806d9b6),
220    dual,
221    hidden,
222    oleautomation,
223    nonextensible
224]
225interface ISWbemMethodSet : IDispatch
226{
227    [ id(DISPID_NEWENUM), propget, restricted ]
228    HRESULT _NewEnum(
229        [out, retval] IUnknown **pUnk);
230
231    [ id(DISPID_VALUE) ]
232    HRESULT Item(
233        [in] BSTR strName,
234        [in, defaultvalue(0)] long iFlags,
235        [out, retval] ISWbemMethod **objWbemMethod);
236
237    [ id(1), propget ]
238    HRESULT Count(
239        [out, retval] long *iCount);
240};
241
242[
243    object,
244    local,
245    uuid(76a64164-cb41-11d1-8b02-00600806d9b6),
246    dual,
247    hidden,
248    oleautomation
249]
250interface ISWbemNamedValue : IDispatch
251{
252    [ id(DISPID_VALUE), propget ]
253    HRESULT Value(
254        [out, retval] VARIANT *varValue);
255
256    [ id(DISPID_VALUE), propput ]
257    HRESULT Value(
258        [in] VARIANT *varValue);
259
260    [ id(2), propget ]
261    HRESULT Name(
262        [out, retval] BSTR *strName);
263};
264
265[
266    object,
267    local,
268    uuid(cf2376ea-ce8c-11d1-8b05-00600806d9b6),
269    dual,
270    hidden,
271    oleautomation
272]
273interface ISWbemNamedValueSet : IDispatch
274{
275    [ id(DISPID_NEWENUM), propget, restricted ]
276    HRESULT _NewEnum(
277        [out, retval] IUnknown **pUnk);
278
279    [ id(DISPID_VALUE) ]
280    HRESULT Item(
281        [in] BSTR strName,
282        [in, defaultvalue(0)] long iFlags,
283        [out, retval] ISWbemNamedValue **objWbemNamedValue);
284
285    [ id(1), propget ]
286    HRESULT Count(
287        [out, retval] long *iCount);
288
289    [ id(2) ]
290    HRESULT Add(
291        [in] BSTR strName,
292        [in] VARIANT *varValue,
293        [in, defaultvalue(0)] long iFlags,
294        [out, retval] ISWbemNamedValue **objWbemNamedValue);
295
296    [ id(3) ]
297    HRESULT Remove(
298        [in] BSTR strName,
299        [in, defaultvalue(0)] long iFlags);
300
301    [ id(4) ]
302    HRESULT Clone(
303        [out, retval] ISWbemNamedValueSet **objWbemNamedValueSet);
304
305    [ id(5) ]
306    HRESULT DeleteAll();
307};
308
309[
310    object,
311    local,
312    uuid(76A6415A-CB41-11d1-8B02-00600806D9B6),
313    dual,
314    hidden,
315    oleautomation
316]
317interface ISWbemObject : IDispatch
318{
319    [ id(1) ]
320    HRESULT Put_(
321        [in, defaultvalue(wbemChangeFlagCreateOrUpdate)] long iFlags,
322        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
323        [out, retval] ISWbemObjectPath **objWbemObjectPath);
324
325    [ id(2) ]
326    HRESULT PutAsync_(
327        [in] IDispatch *objWbemSink,
328        [in, defaultvalue(wbemChangeFlagCreateOrUpdate)] long iFlags,
329        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
330        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
331
332    [ id (3) ]
333    HRESULT Delete_(
334        [in, defaultvalue(0)] long iFlags,
335        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet);
336
337    [ id (4) ]
338    HRESULT DeleteAsync_(
339        [in] IDispatch *objWbemSink,
340        [in, defaultvalue(0)] long iFlags,
341        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
342        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
343
344    [ id(5) ]
345    HRESULT Instances_(
346        [in, defaultvalue(wbemFlagReturnImmediately)] long iFlags,
347        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
348        [out, retval] ISWbemObjectSet **objWbemObjectSet);
349
350    [ id(6) ]
351    HRESULT InstancesAsync_(
352        [in] IDispatch *objWbemSink,
353        [in, defaultvalue(0)] long iFlags,
354        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
355        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
356
357    [ id(7) ]
358    HRESULT Subclasses_(
359        [in, defaultvalue(wbemFlagReturnImmediately|wbemQueryFlagDeep)] long iFlags,
360        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
361        [out, retval] ISWbemObjectSet **objWbemObjectSet);
362
363    [ id(8) ]
364    HRESULT SubclassesAsync_(
365        [in] IDispatch *objWbemSink,
366        [in, defaultvalue(wbemQueryFlagDeep)] long iFlags,
367        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
368        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
369
370    [ id(9) ]
371    HRESULT Associators_(
372        [in, defaultvalue("")] BSTR strAssocClass,
373        [in, defaultvalue("")] BSTR strResultClass,
374        [in, defaultvalue("")] BSTR strResultRole,
375        [in, defaultvalue("")] BSTR strRole,
376        [in, defaultvalue(FALSE)] VARIANT_BOOL bClassesOnly,
377        [in, defaultvalue(FALSE)] VARIANT_BOOL bSchemaOnly,
378        [in, defaultvalue("")] BSTR strRequiredAssocQualifier,
379        [in, defaultvalue("")] BSTR strRequiredQualifier,
380        [in, defaultvalue(wbemFlagReturnImmediately)] long iFlags,
381        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
382        [out, retval] ISWbemObjectSet **objWbemObjectSet);
383
384    [ id(10) ]
385    HRESULT AssociatorsAsync_(
386        [in] IDispatch *objWbemSink,
387        [in, defaultvalue("")] BSTR strAssocClass,
388        [in, defaultvalue("")] BSTR strResultClass,
389        [in, defaultvalue("")] BSTR strResultRole,
390        [in, defaultvalue("")] BSTR strRole,
391        [in, defaultvalue(FALSE)] VARIANT_BOOL bClassesOnly,
392        [in, defaultvalue(FALSE)] VARIANT_BOOL bSchemaOnly,
393        [in, defaultvalue("")] BSTR strRequiredAssocQualifier,
394        [in, defaultvalue("")] BSTR strRequiredQualifier,
395        [in, defaultvalue(0)] long iFlags,
396        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
397        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
398
399    [ id(11) ]
400    HRESULT References_(
401        [in, defaultvalue("")] BSTR strResultClass,
402        [in, defaultvalue("")] BSTR strRole,
403        [in, defaultvalue(FALSE)] VARIANT_BOOL bClassesOnly,
404        [in, defaultvalue(FALSE)] VARIANT_BOOL bSchemaOnly,
405        [in, defaultvalue("")] BSTR strRequiredQualifier,
406        [in, defaultvalue(wbemFlagReturnImmediately)] long iFlags,
407        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
408        [out, retval] ISWbemObjectSet **objWbemObjectSet);
409
410    [ id(12) ]
411    HRESULT ReferencesAsync_(
412        [in] IDispatch *objWbemSink,
413        [in, defaultvalue("")] BSTR strResultClass,
414        [in, defaultvalue("")] BSTR strRole,
415        [in, defaultvalue(FALSE)] VARIANT_BOOL bClassesOnly,
416        [in, defaultvalue(FALSE)] VARIANT_BOOL bSchemaOnly,
417        [in, defaultvalue("")] BSTR strRequiredQualifier,
418        [in, defaultvalue(0)] long iFlags,
419        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
420        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
421
422    [ id(13) ]
423    HRESULT ExecMethod_(
424        [in] BSTR strMethodName,
425        [in, defaultvalue(0)] IDispatch *objWbemInParameters,
426        [in, defaultvalue(0)] long iFlags,
427        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
428        [out, retval] ISWbemObject **objWbemOutParameters);
429
430    [ id(14) ]
431    HRESULT ExecMethodAsync_(
432        [in] IDispatch *objWbemSink,
433        [in] BSTR strMethodName,
434        [in, defaultvalue(0)] IDispatch *objWbemInParameters,
435        [in, defaultvalue(0)] long iFlags,
436        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
437        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
438
439    [ id(15) ]
440    HRESULT Clone_(
441        [out, retval] ISWbemObject **objWbemObject);
442
443    [ id(16) ]
444    HRESULT GetObjectText_(
445        [in, defaultvalue(0)] long iFlags,
446        [out, retval] BSTR *strObjectText);
447
448    [ id(17) ]
449    HRESULT SpawnDerivedClass_(
450        [in, defaultvalue(0)] long iFlags,
451        [out, retval] ISWbemObject **objWbemObject);
452
453    [ id(18) ]
454    HRESULT SpawnInstance_(
455        [in, defaultvalue(0)] long iFlags,
456        [out, retval] ISWbemObject **objWbemObject);
457
458    [ id(19) ]
459    HRESULT CompareTo_(
460        [in] IDispatch *objWbemObject,
461        [in, defaultvalue(wbemComparisonFlagIncludeAll)] long iFlags,
462        [out, retval] VARIANT_BOOL *bResult);
463
464    [ id(20), propget ]
465    HRESULT Qualifiers_(
466        [out, retval] ISWbemQualifierSet **objWbemQualifierSet);
467
468    [ id(21), propget ]
469    HRESULT Properties_(
470        [out, retval] ISWbemPropertySet **objWbemPropertySet);
471
472    [ id(22), propget ]
473    HRESULT Methods_(
474        [out, retval] ISWbemMethodSet **objWbemMethodSet);
475
476    [ id(23), propget ]
477    HRESULT Derivation_(
478        [out, retval] VARIANT *strClassNameArray);
479
480    [ id(24), propget ]
481    HRESULT Path_(
482        [out, retval] ISWbemObjectPath **objWbemObjectPath);
483
484    [ id(25), propget ]
485    HRESULT Security_(
486        [out, retval] ISWbemSecurity **objWbemSecurity);
487};
488
489[
490    object,
491    local,
492    uuid(5791bc27-ce9c-11d1-97bf-0000f81e849c),
493    dual,
494    hidden,
495    oleautomation,
496    pointer_default(unique)
497]
498interface ISWbemObjectPath : IDispatch
499{
500    [ id(DISPID_VALUE), propget ]
501    HRESULT Path(
502        [out, retval] BSTR *strPath);
503
504    [ id(DISPID_VALUE), propput ]
505    HRESULT Path(
506        [in] BSTR strPath);
507
508    [ id(1), propget ]
509    HRESULT RelPath(
510        [out, retval] BSTR *strRelPath);
511
512    [ id(1), propput ]
513    HRESULT RelPath(
514        [in] BSTR strRelPath);
515
516    [ id(2), propget ]
517    HRESULT Server(
518        [out, retval] BSTR *strServer);
519
520    [ id(2), propput ]
521    HRESULT Server(
522        [in] BSTR strServer);
523
524    [ id(3), propget ]
525    HRESULT Namespace(
526        [out, retval] BSTR *strNamespace);
527
528    [ id(3), propput ]
529    HRESULT Namespace(
530        [in] BSTR strNamespace);
531
532    [ id(4), propget ]
533    HRESULT ParentNamespace(
534        [out, retval] BSTR *strParentNamespace);
535
536    [ id(5), propget ]
537    HRESULT DisplayName(
538        [out, retval] BSTR *strDisplayName);
539
540    [ id(5), propput ]
541    HRESULT DisplayName(
542        [in] BSTR strDisplayName);
543
544    [ id(6), propget ]
545    HRESULT Class(
546        [out, retval] BSTR *strClass);
547
548    [ id(6), propput ]
549    HRESULT Class(
550        [in] BSTR strClass);
551
552    [ id(7), propget ]
553    HRESULT IsClass(
554        [out, retval] VARIANT_BOOL *bIsClass);
555
556    [ id(8) ]
557    HRESULT SetAsClass();
558
559    [ id(9), propget ]
560    HRESULT IsSingleton(
561        [out, retval] VARIANT_BOOL *bIsSingleton);
562
563    [ id(10) ]
564    HRESULT SetAsSingleton();
565
566    [ id(11), propget ]
567    HRESULT Keys(
568        [out, retval] ISWbemNamedValueSet **objWbemNamedValueSet);
569
570    [ id(12), propget ]
571    HRESULT Security_(
572        [out, retval] ISWbemSecurity **objWbemSecurity);
573
574    [ id(13), propget ]
575    HRESULT Locale(
576        [out, retval] BSTR *strLocale);
577
578    [ id(13), propput ]
579    HRESULT Locale(
580        [in] BSTR strLocale);
581
582    [ id(14), propget ]
583    HRESULT Authority(
584        [out, retval] BSTR *strAuthority);
585
586    [ id(14), propput ]
587    HRESULT Authority(
588        [in] BSTR strAuthority);
589};
590
591[
592    object,
593    local,
594    uuid(76a6415f-cb41-11d1-8b02-00600806d9b6),
595    dual,
596    hidden,
597    oleautomation,
598    nonextensible
599]
600interface ISWbemObjectSet : IDispatch
601{
602    [ id(DISPID_NEWENUM), propget, restricted ]
603    HRESULT _NewEnum(
604        [out, retval] IUnknown **pUnk);
605
606    [ id(DISPID_VALUE) ]
607    HRESULT Item(
608        [in] BSTR strObjectPath,
609        [in, defaultvalue(0)] long iFlags,
610        [out, retval] ISWbemObject **objWbemObject);
611
612    [ id(1), propget ]
613    HRESULT Count(
614        [out, retval] long *iCount);
615
616    [ id(4), propget ]
617    HRESULT Security_(
618        [out, retval] ISWbemSecurity **objWbemSecurity);
619
620    [ id(5) ]
621    HRESULT ItemIndex(
622        [in] long lIndex,
623        [out, retval] ISWbemObject **objWbemObject);
624};
625
626typedef
627[
628    v1_enum,
629    uuid(176d2f70-5af3-11d2-8b4a-00600806d9b6)
630]
631enum WbemPrivilegeEnum
632{
633    wbemPrivilegeCreateToken          = 1,
634    wbemPrivilegePrimaryToken         = 2,
635    wbemPrivilegeLockMemory           = 3,
636    wbemPrivilegeIncreaseQuota        = 4,
637    wbemPrivilegeMachineAccount       = 5,
638    wbemPrivilegeTcb                  = 6,
639    wbemPrivilegeSecurity             = 7,
640    wbemPrivilegeTakeOwnership        = 8,
641    wbemPrivilegeLoadDriver           = 9,
642    wbemPrivilegeSystemProfile        = 10,
643    wbemPrivilegeSystemtime           = 11,
644    wbemPrivilegeProfileSingleProcess = 12,
645    wbemPrivilegeIncreaseBasePriority = 13,
646    wbemPrivilegeCreatePagefile       = 14,
647    wbemPrivilegeCreatePermanent      = 15,
648    wbemPrivilegeBackup               = 16,
649    wbemPrivilegeRestore              = 17,
650    wbemPrivilegeShutdown             = 18,
651    wbemPrivilegeDebug                = 19,
652    wbemPrivilegeAudit                = 20,
653    wbemPrivilegeSystemEnvironment    = 21,
654    wbemPrivilegeChangeNotify         = 22,
655    wbemPrivilegeRemoteShutdown       = 23,
656    wbemPrivilegeUndock               = 24,
657    wbemPrivilegeSyncAgent            = 25,
658    wbemPrivilegeEnableDelegation     = 26,
659    wbemPrivilegeManageVolume         = 27
660} WbemPrivilegeEnum;
661
662[
663    object,
664    local,
665    uuid(26ee67bd-5804-11d2-8b4a-00600806d9b6),
666    dual,
667    hidden,
668    oleautomation,
669    nonextensible
670]
671interface ISWbemPrivilege : IDispatch
672{
673    [ id(DISPID_VALUE), propget ]
674    HRESULT IsEnabled(
675        [out, retval] VARIANT_BOOL *bIsEnabled);
676
677    [ id(DISPID_VALUE), propput ]
678    HRESULT IsEnabled(
679        [in] VARIANT_BOOL bIsEnabled);
680
681    [ id(1), propget ]
682    HRESULT Name(
683        [out, retval] BSTR *strDisplayName);
684
685    [ id(2), propget ]
686    HRESULT DisplayName(
687        [out, retval] BSTR *strDisplayName);
688
689    [ id(3), propget ]
690    HRESULT Identifier(
691        [out, retval] WbemPrivilegeEnum *iPrivilege);
692};
693
694[
695    object,
696    local,
697    uuid(26ee67bf-5804-11d2-8b4a-00600806d9b6),
698    dual,
699    hidden,
700    oleautomation,
701    nonextensible
702]
703interface ISWbemPrivilegeSet : IDispatch
704{
705    [ id(DISPID_NEWENUM), propget, restricted ]
706    HRESULT _NewEnum(
707        [out, retval] IUnknown **pUnk);
708
709    [ id(DISPID_VALUE) ]
710    HRESULT Item(
711        [in] WbemPrivilegeEnum iPrivilege,
712        [out, retval] ISWbemPrivilege **objWbemPrivilege);
713
714    [ id(1), propget ]
715    HRESULT Count(
716        [out, retval] long *iCount);
717
718    [ id(2) ]
719    HRESULT Add(
720        [in] WbemPrivilegeEnum iPrivilege,
721        [in, defaultvalue(TRUE)] VARIANT_BOOL bIsEnabled,
722        [out, retval] ISWbemPrivilege **objWbemPrivilege);
723
724    [ id(3) ]
725    HRESULT Remove(
726        [in] WbemPrivilegeEnum iPrivilege);
727
728    [ id(4) ]
729    HRESULT DeleteAll();
730
731    [ id(5) ]
732    HRESULT AddAsString(
733        [in] BSTR strPrivilege,
734        [in, defaultvalue(TRUE)] VARIANT_BOOL bIsEnabled,
735        [out, retval] ISWbemPrivilege **objWbemPrivilege);
736};
737
738typedef
739[
740    v1_enum,
741    uuid(4a249b7b-fc9a-11d1-8b1e-00600806d9b6),
742]
743enum WbemCimtypeEnum
744{
745    wbemCimtypeSint16    = 2,
746    wbemCimtypeSint32    = 3,
747    wbemCimtypeReal32    = 4,
748    wbemCimtypeReal64    = 5,
749    wbemCimtypeString    = 8,
750    wbemCimtypeBoolean   = 11,
751    wbemCimtypeObject    = 13,
752    wbemCimtypeSint8     = 16,
753    wbemCimtypeUint8     = 17,
754    wbemCimtypeUint16    = 18,
755    wbemCimtypeUint32    = 19,
756    wbemCimtypeSint64    = 20,
757    wbemCimtypeUint64    = 21,
758    wbemCimtypeDatetime  = 101,
759    wbemCimtypeReference = 102,
760    wbemCimtypeChar16    = 103
761} WbemCimtypeEnum;
762
763[
764    object,
765    local,
766    uuid(1a388f98-d4ba-11d1-8b09-00600806d9b6),
767    dual,
768    hidden,
769    oleautomation,
770    pointer_default(unique)
771]
772interface ISWbemProperty : IDispatch
773{
774    [ id(DISPID_VALUE), propget ]
775    HRESULT Value(
776        [out, retval] VARIANT *varValue);
777
778    [ id(DISPID_VALUE), propput ]
779    HRESULT Value(
780        [in] VARIANT *varValue);
781
782    [ id(1), propget ]
783    HRESULT Name(
784        [out, retval] BSTR *strName);
785
786    [ id(2), propget ]
787    HRESULT IsLocal(
788        [out, retval] VARIANT_BOOL *bIsLocal);
789
790    [ id(3), propget ]
791    HRESULT Origin(
792        [out, retval] BSTR *strOrigin);
793
794    [ id(4), propget ]
795    HRESULT CIMType(
796        [out, retval] WbemCimtypeEnum *iCimType);
797
798    [ id(5), propget ]
799    HRESULT Qualifiers_(
800        [out, retval] ISWbemQualifierSet **objWbemQualifierSet);
801
802    [ id(6), propget ]
803    HRESULT IsArray(
804        [out, retval] VARIANT_BOOL *bIsArray);
805};
806
807[
808    object,
809    local,
810    uuid(dea0a7b2-d4ba-11d1-8b09-00600806d9b6),
811    dual,
812    hidden,
813    oleautomation
814]
815interface ISWbemPropertySet : IDispatch
816{
817    [ id(DISPID_NEWENUM), propget, restricted ]
818    HRESULT _NewEnum(
819        [out, retval] IUnknown **pUnk);
820
821    [ id(DISPID_VALUE) ]
822    HRESULT Item(
823        [in] BSTR strName,
824        [in, defaultvalue(0)] long iFlags,
825        [out, retval] ISWbemProperty **objWbemProperty);
826
827    [ id(1), propget ]
828    HRESULT Count(
829        [out, retval] long *iCount);
830
831    [ id(2) ]
832    HRESULT Add(
833        [in] BSTR strName,
834        [in] WbemCimtypeEnum iCIMType,
835        [in, defaultvalue(FALSE)] VARIANT_BOOL bIsArray,
836        [in, defaultvalue(0)] long iFlags,
837        [out, retval] ISWbemProperty **objWbemProperty);
838
839    [ id(3) ]
840    HRESULT Remove(
841        [in] BSTR strName,
842        [in, defaultvalue(0)] long iFlags);
843};
844
845[
846    object,
847    local,
848    uuid(79b05932-d3b7-11d1-8b06-00600806d9b6),
849    dual,
850    hidden,
851    oleautomation,
852    nonextensible,
853    pointer_default(unique)
854]
855interface ISWbemQualifier : IDispatch
856{
857    [ id(DISPID_VALUE), propget ]
858    HRESULT Value(
859        [out, retval] VARIANT *varValue);
860
861    [ id(DISPID_VALUE), propput ]
862    HRESULT Value(
863        [in] VARIANT *varValue);
864
865    [ id(1), propget ]
866    HRESULT Name(
867        [out, retval] BSTR *strName);
868
869    [ id(2), propget ]
870    HRESULT IsLocal(
871        [out, retval] VARIANT_BOOL *bIsLocal);
872
873    [ id(3), propget ]
874    HRESULT PropagatesToSubclass(
875        [out, retval] VARIANT_BOOL *bPropagatesToSubclass);
876
877    [ id(3), propput ]
878    HRESULT PropagatesToSubclass(
879        [in] VARIANT_BOOL bPropagatesToSubclass);
880
881    [ id(4), propget ]
882    HRESULT PropagatesToInstance(
883        [out, retval] VARIANT_BOOL *bPropagatesToInstance);
884
885    [ id(4), propput ]
886    HRESULT PropagatesToInstance(
887        [in] VARIANT_BOOL bPropagatesToInstance);
888
889    [ id(5), propget ]
890    HRESULT IsOverridable(
891        [out, retval] VARIANT_BOOL *bIsOverridable);
892
893    [ id(5), propput ]
894    HRESULT IsOverridable(
895        [in] VARIANT_BOOL bIsOverridable);
896
897    [ id(6), propget ]
898    HRESULT IsAmended(
899        [out, retval] VARIANT_BOOL *bIsAmended);
900};
901
902[
903    object,
904    local,
905    uuid(9b16ed16-d3df-11d1-8b08-00600806d9b6),
906    dual,
907    hidden,
908    oleautomation,
909    nonextensible
910]
911interface ISWbemQualifierSet : IDispatch
912{
913    [ id(DISPID_NEWENUM), propget, restricted ]
914    HRESULT _NewEnum(
915        [out, retval] IUnknown **pUnk);
916
917    [ id(DISPID_VALUE) ]
918    HRESULT Item(
919        [in] BSTR name,
920        [in, defaultvalue(0)] long iFlags,
921        [out, retval] ISWbemQualifier **objWbemQualifier);
922
923    [ id(1), propget ]
924    HRESULT Count(
925        [out, retval] long *iCount);
926
927    [ id(2) ]
928    HRESULT Add(
929        [in] BSTR strName,
930        [in] VARIANT *varVal,
931        [in, defaultvalue(TRUE)] VARIANT_BOOL bPropagatesToSubclass,
932        [in, defaultvalue(TRUE)] VARIANT_BOOL bPropagatesToInstance,
933        [in, defaultvalue(TRUE)] VARIANT_BOOL bIsOverridable,
934        [in, defaultvalue(0)] long iFlags,
935        [out, retval] ISWbemQualifier **objWbemQualifier);
936
937    [ id(3) ]
938    HRESULT Remove(
939        [in] BSTR strName,
940        [in, defaultvalue(0)] long iFlags);
941};
942
943typedef
944[
945    v1_enum,
946    uuid(b54d66e8-2287-11d2-8b33-00600806d9b6)
947]
948enum WbemImpersonationLevelEnum
949{
950    wbemImpersonationLevelAnonymous   = 1,
951    wbemImpersonationLevelIdentify    = 2,
952    wbemImpersonationLevelImpersonate = 3,
953    wbemImpersonationLevelDelegate    = 4
954} WbemImpersonationLevelEnum;
955
956typedef
957[
958    v1_enum,
959    uuid(b54d66e7-2287-11d2-8b33-00600806d9b6)
960]
961enum WbemAuthenticationLevelEnum
962{
963    wbemAuthenticationLevelDefault      = 0,
964    wbemAuthenticationLevelNone         = 1,
965    wbemAuthenticationLevelConnect      = 2,
966    wbemAuthenticationLevelCall         = 3,
967    wbemAuthenticationLevelPkt          = 4,
968    wbemAuthenticationLevelPktIntegrity = 5,
969    wbemAuthenticationLevelPktPrivacy   = 6
970} WbemAuthenticationLevelEnum;
971
972[
973    object,
974    local,
975    uuid(b54d66e6-2287-11d2-8b33-00600806d9b6),
976    dual,
977    hidden,
978    oleautomation,
979    nonextensible
980]
981interface ISWbemSecurity : IDispatch
982{
983    [ id(1), propget ]
984    HRESULT ImpersonationLevel(
985        [out, retval] WbemImpersonationLevelEnum *iImpersonationLevel);
986
987    [ id(1), propput ]
988    HRESULT ImpersonationLevel(
989        [in] WbemImpersonationLevelEnum iImpersonationLevel);
990
991    [ id(2), propget ]
992    HRESULT AuthenticationLevel(
993        [out, retval] WbemAuthenticationLevelEnum *iAuthenticationLevel);
994
995    [ id(2), propput ]
996    HRESULT AuthenticationLevel(
997        [in] WbemAuthenticationLevelEnum iAuthenticationLevel);
998
999    [ id(3), propget ]
1000    HRESULT Privileges(
1001        [out, retval] ISWbemPrivilegeSet **objWbemPrivilegeSet);
1002};
1003
1004[
1005    object,
1006    local,
1007    uuid(76a6415c-cb41-11d1-8b02-00600806d9b6),
1008    dual,
1009    hidden,
1010    oleautomation,
1011    pointer_default(unique)
1012]
1013interface ISWbemServices : IDispatch
1014{
1015    [ id(1) ]
1016    HRESULT Get(
1017        [in, defaultvalue("")] BSTR strObjectPath,
1018        [in, defaultvalue(0)] long iFlags,
1019        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1020        [out, retval] ISWbemObject **objWbemObject);
1021
1022    [ id(2) ]
1023    HRESULT GetAsync(
1024        [in] IDispatch *objWbemSink,
1025        [in, defaultvalue("")] BSTR strObjectPath,
1026        [in, defaultvalue(0)] long iFlags,
1027        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1028        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
1029
1030    [ id(3) ]
1031    HRESULT Delete(
1032        [in] BSTR strObjectPath,
1033        [in, defaultvalue(0)] long iFlags,
1034        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet);
1035
1036    [ id(4) ]
1037    HRESULT DeleteAsync(
1038        [in] IDispatch *objWbemSink,
1039        [in] BSTR strObjectPath,
1040        [in, defaultvalue(0)] long iFlags,
1041        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1042        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
1043
1044    [ id(5) ]
1045    HRESULT InstancesOf(
1046        [in] BSTR strClass,
1047        [in, defaultvalue(wbemFlagReturnImmediately)] long iFlags,
1048        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1049        [out, retval] ISWbemObjectSet **objWbemObjectSet);
1050
1051    [ id(6) ]
1052    HRESULT InstancesOfAsync(
1053        [in] IDispatch *objWbemSink,
1054        [in] BSTR strClass,
1055        [in, defaultvalue(0)] long iFlags,
1056        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1057        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
1058
1059    [ id(7) ]
1060    HRESULT SubclassesOf(
1061        [in, defaultvalue("")]  BSTR strSuperclass,
1062        [in, defaultvalue(wbemFlagReturnImmediately|wbemQueryFlagDeep)]  long iFlags,
1063        [in, defaultvalue(0)]  IDispatch *objWbemNamedValueSet,
1064        [out, retval] ISWbemObjectSet **objWbemObjectSet);
1065
1066    [ id(8) ]
1067    HRESULT SubclassesOfAsync(
1068        [in] IDispatch *objWbemSink,
1069        [in, defaultvalue("")] BSTR strSuperclass,
1070        [in, defaultvalue(wbemQueryFlagDeep)] long iFlags,
1071        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1072        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
1073
1074    [ id(9) ]
1075    HRESULT ExecQuery(
1076        [in] BSTR strQuery,
1077        [in, defaultvalue("WQL")] BSTR strQueryLanguage,
1078        [in, defaultvalue(wbemFlagReturnImmediately)] long iFlags,
1079        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1080        [out, retval] ISWbemObjectSet **objWbemObjectSet);
1081
1082    [ id(10) ]
1083    HRESULT ExecQueryAsync(
1084        [in] IDispatch *objWbemSink,
1085        [in] BSTR strQuery,
1086        [in, defaultvalue("WQL")] BSTR strQueryLanguage,
1087        [in, defaultvalue(0)] long lFlags,
1088        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1089        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
1090
1091    [ id(11) ]
1092    HRESULT AssociatorsOf(
1093        [in] BSTR strObjectPath,
1094        [in, defaultvalue("")] BSTR strAssocClass,
1095        [in, defaultvalue("")] BSTR strResultClass,
1096        [in, defaultvalue("")] BSTR strResultRole,
1097        [in, defaultvalue("")] BSTR strRole,
1098        [in, defaultvalue(FALSE)] VARIANT_BOOL bClassesOnly,
1099        [in, defaultvalue(FALSE)] VARIANT_BOOL bSchemaOnly,
1100        [in, defaultvalue("")] BSTR strRequiredAssocQualifier,
1101        [in, defaultvalue("")] BSTR strRequiredQualifier,
1102        [in, defaultvalue(wbemFlagReturnImmediately)] long iFlags,
1103        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1104        [out, retval] ISWbemObjectSet **objWbemObjectSet);
1105
1106    [ id(12) ]
1107    HRESULT AssociatorsOfAsync(
1108        [in] IDispatch *objWbemSink,
1109        [in] BSTR strObjectPath,
1110        [in, defaultvalue("")] BSTR strAssocClass,
1111        [in, defaultvalue("")] BSTR strResultClass,
1112        [in, defaultvalue("")] BSTR strResultRole,
1113        [in, defaultvalue("")] BSTR strRole,
1114        [in, defaultvalue(FALSE)] VARIANT_BOOL bClassesOnly,
1115        [in, defaultvalue(FALSE)] VARIANT_BOOL bSchemaOnly,
1116        [in, defaultvalue("")] BSTR strRequiredAssocQualifier,
1117        [in, defaultvalue("")] BSTR strRequiredQualifier,
1118        [in, defaultvalue(0)] long iFlags,
1119        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1120        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
1121
1122    [ id(13) ]
1123    HRESULT ReferencesTo(
1124        [in] BSTR strObjectPath,
1125        [in, defaultvalue("")] BSTR strResultClass,
1126        [in, defaultvalue("")] BSTR strRole,
1127        [in, defaultvalue(FALSE)] VARIANT_BOOL bClassesOnly,
1128        [in, defaultvalue(FALSE)] VARIANT_BOOL bSchemaOnly,
1129        [in, defaultvalue("")] BSTR strRequiredQualifier,
1130        [in, defaultvalue(wbemFlagReturnImmediately)] long iFlags,
1131        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1132        [out, retval] ISWbemObjectSet **objWbemObjectSet);
1133
1134    [ id(14) ]
1135    HRESULT ReferencesToAsync(
1136        [in] IDispatch *objWbemSink,
1137        [in] BSTR strObjectPath,
1138        [in, defaultvalue("")] BSTR strResultClass,
1139        [in, defaultvalue("")] BSTR strRole,
1140        [in, defaultvalue(FALSE)] VARIANT_BOOL bClassesOnly,
1141        [in, defaultvalue(FALSE)] VARIANT_BOOL bSchemaOnly,
1142        [in, defaultvalue("")] BSTR strRequiredQualifier,
1143        [in, defaultvalue(0)] long iFlags,
1144        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1145        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
1146
1147    [ id(15) ]
1148    HRESULT ExecNotificationQuery(
1149        [in] BSTR strQuery,
1150        [in, defaultvalue("WQL")] BSTR strQueryLanguage,
1151        [in, defaultvalue(wbemFlagReturnImmediately|wbemFlagForwardOnly)] long iFlags,
1152        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1153        [out, retval] ISWbemEventSource **objWbemEventSource);
1154
1155    [ id(16) ]
1156    HRESULT ExecNotificationQueryAsync(
1157        [in] IDispatch *objWbemSink,
1158        [in] BSTR strQuery,
1159        [in, defaultvalue("WQL")] BSTR strQueryLanguage,
1160        [in, defaultvalue(0)] long iFlags,
1161        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1162        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
1163
1164    [ id(17) ]
1165    HRESULT ExecMethod(
1166        [in] BSTR strObjectPath,
1167        [in] BSTR strMethodName,
1168        [in, defaultvalue(0)] IDispatch *objWbemInParameters,
1169        [in, defaultvalue(0)] long iFlags,
1170        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1171        [out, retval] ISWbemObject **objWbemOutParameters);
1172
1173    [ id(18) ]
1174    HRESULT ExecMethodAsync(
1175        [in] IDispatch *objWbemSink,
1176        [in] BSTR strObjectPath,
1177        [in] BSTR strMethodName,
1178        [in, defaultvalue(0)] IDispatch *objWbemInParameters,
1179        [in, defaultvalue(0)] long iFlags,
1180        [in, defaultvalue(0)] IDispatch *objWbemNamedValueSet,
1181        [in, defaultvalue(0)] IDispatch *objWbemAsyncContext);
1182
1183    [ id(19), propget ]
1184    HRESULT Security_(
1185        [out, retval] ISWbemSecurity **objWbemSecurity);
1186};
1187
1188[
1189    threading(apartment),
1190    uuid(76a64158-cb41-11d1-8b02-00600806d9b6),
1191    progid("WbemScripting.SWbemLocator.1"),
1192    vi_progid("WbemScripting.SWbemLocator")
1193]
1194coclass SWbemLocator
1195{
1196    interface ISWbemLocator;
1197};
1198
1199}; /* WbemScripting */
1200