2 * Copyright 2013 Hans Leidekker for CodeWeavers
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.
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.
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
22 #define threading(model)
24 #define vi_progid(str)
28 uuid(565783c6-cb41-11d1-8b02-00600806d9b6),
29 helpstring("Microsoft WMI Scripting V1.2 Library"),
36 importlib("stdole2.tlb");
38 interface ISWbemEventSource;
39 interface ISWbemLocator;
40 interface ISWbemMethod;
41 interface ISWbemMethodSet;
42 interface ISWbemNamedValue;
43 interface ISWbemNamedValueSet;
44 interface ISWbemObject;
45 interface ISWbemObjectPath;
46 interface ISWbemObjectSet;
47 interface ISWbemPrivilege;
48 interface ISWbemPrivilegeSet;
49 interface ISWbemProperty;
50 interface ISWbemPropertySet;
51 interface ISWbemQualifier;
52 interface ISWbemQualifierSet;
53 interface ISWbemSecurity;
54 interface ISWbemServices;
59 uuid(27d54d92-0ebe-11d2-8b22-00600806d9b6),
65 interface ISWbemEventSource : IDispatch
70 [out, retval] ISWbemObject **objWbemObject);
74 [out, retval] ISWbemSecurity **objWbemSecurity);
80 uuid(76a6415b-cb41-11d1-8b02-00600806d9b6),
84 pointer_default(unique)
86 interface ISWbemLocator : IDispatch
89 HRESULT ConnectServer(
91 [in] BSTR strNamespace,
93 [in] BSTR strPassword,
95 [in] BSTR strAuthority,
96 [in] long iSecurityFlags,
97 [in] IDispatch *objWbemNamedValueSet,
98 [out, retval] ISWbemServices **objWbemServices);
102 ISWbemSecurity **objWbemSecurity);
108 uuid(422e8e90-d955-11d1-8b09-00600806d9b6),
112 pointer_default(unique),
115 interface ISWbemMethod : IDispatch
119 [out, retval] BSTR *strName);
123 [out, retval] BSTR *strOrigin);
126 HRESULT InParameters(
127 [out, retval] ISWbemObject **objWbemInParameters);
130 HRESULT OutParameters(
131 [out, retval] ISWbemObject **objWbemOutParameters);
135 [out, retval] ISWbemQualifierSet **objWbemQualifierSet);
141 uuid(c93ba292-d955-11d1-8b09-00600806d9b6),
147 interface ISWbemMethodSet : IDispatch
149 [ id(DISPID_NEWENUM), propget, restricted ]
151 [out, retval] IUnknown **pUnk);
157 [out, retval] ISWbemMethod **objWbemMethod);
161 [out, retval] long *iCount);
167 uuid(76a64164-cb41-11d1-8b02-00600806d9b6),
172 interface ISWbemNamedValue : IDispatch
174 [ id(DISPID_VALUE), propget ]
176 [out, retval] VARIANT *varValue);
178 [ id(DISPID_VALUE), propput ]
180 [in] VARIANT *varValue);
184 [out, retval] BSTR *strName);
190 uuid(cf2376ea-ce8c-11d1-8b05-00600806d9b6),
195 interface ISWbemNamedValueSet : IDispatch
197 [ id(DISPID_NEWENUM), propget, restricted ]
199 [out, retval] IUnknown **pUnk);
205 [out, retval] ISWbemNamedValue **objWbemNamedValue);
209 [out, retval] long *iCount);
214 [in] VARIANT *varValue,
216 [out, retval] ISWbemNamedValue **objWbemNamedValue);
225 [out, retval] ISWbemNamedValueSet **objWbemNamedValueSet);
234 uuid(76A6415A-CB41-11d1-8B02-00600806D9B6),
239 interface ISWbemObject : IDispatch
244 [in] IDispatch *objWbemNamedValueSet,
245 [out, retval] ISWbemObjectPath **objWbemObjectPath);
249 [in] IDispatch *objWbemSink,
251 [in] IDispatch *objWbemNamedValueSet,
252 [in] IDispatch *objWbemAsyncContext);
257 [in] IDispatch *objWbemNamedValueSet);
260 HRESULT DeleteAsync_(
261 [in] IDispatch *objWbemSink,
263 [in] IDispatch *objWbemNamedValueSet,
264 [in] IDispatch *objWbemAsyncContext);
269 [in] IDispatch *objWbemNamedValueSet,
270 [out, retval] ISWbemObjectSet **objWbemObjectSet);
273 HRESULT InstancesAsync_(
274 [in] IDispatch *objWbemSink,
276 [in] IDispatch *objWbemNamedValueSet,
277 [in] IDispatch *objWbemAsyncContext);
282 [in] IDispatch *objWbemNamedValueSet,
283 [out, retval] ISWbemObjectSet **objWbemObjectSet);
286 HRESULT SubclassesAsync_(
287 [in] IDispatch *objWbemSink,
289 [in] IDispatch *objWbemNamedValueSet,
290 [in] IDispatch *objWbemAsyncContext);
293 HRESULT Associators_(
294 [in] BSTR strAssocClass,
295 [in] BSTR strResultClass,
296 [in] BSTR strResultRole,
298 [in] VARIANT_BOOL bClassesOnly,
299 [in] VARIANT_BOOL bSchemaOnly,
300 [in] BSTR strRequiredAssocQualifier,
301 [in] BSTR strRequiredQualifier,
303 [in] IDispatch *objWbemNamedValueSet,
304 [out, retval] ISWbemObjectSet **objWbemObjectSet);
307 HRESULT AssociatorsAsync_(
308 [in] IDispatch *objWbemSink,
309 [in] BSTR strAssocClass,
310 [in] BSTR strResultClass,
311 [in] BSTR strResultRole,
313 [in] VARIANT_BOOL bClassesOnly,
314 [in] VARIANT_BOOL bSchemaOnly,
315 [in] BSTR strRequiredAssocQualifier,
316 [in] BSTR strRequiredQualifier,
318 [in] IDispatch *objWbemNamedValueSet,
319 [in] IDispatch *objWbemAsyncContext);
323 [in] BSTR strResultClass,
325 [in] VARIANT_BOOL bClassesOnly,
326 [in] VARIANT_BOOL bSchemaOnly,
327 [in] BSTR strRequiredQualifier,
329 [in] IDispatch *objWbemNamedValueSet,
330 [out, retval] ISWbemObjectSet **objWbemObjectSet);
333 HRESULT ReferencesAsync_(
334 [in] IDispatch *objWbemSink,
335 [in] BSTR strResultClass,
337 [in] VARIANT_BOOL bClassesOnly,
338 [in] VARIANT_BOOL bSchemaOnly,
339 [in] BSTR strRequiredQualifier,
341 [in] IDispatch *objWbemNamedValueSet,
342 [in] IDispatch *objWbemAsyncContext);
346 [in] BSTR strMethodName,
347 [in] IDispatch *objWbemInParameters,
349 [in] IDispatch *objWbemNamedValueSet,
350 [out, retval] ISWbemObject **objWbemOutParameters);
353 HRESULT ExecMethodAsync_(
354 [in] IDispatch *objWbemSink,
355 [in] BSTR strMethodName,
356 [in] IDispatch *objWbemInParameters,
358 [in] IDispatch *objWbemNamedValueSet,
359 [in] IDispatch *objWbemAsyncContext);
363 [out, retval] ISWbemObject **objWbemObject);
366 HRESULT GetObjectText_(
368 [out, retval] BSTR *strObjectText);
371 HRESULT SpawnDerivedClass_(
373 [out, retval] ISWbemObject **objWbemObject);
376 HRESULT SpawnInstance_(
378 [out, retval] ISWbemObject **objWbemObject);
382 [in] IDispatch *objWbemObject,
384 [out, retval] VARIANT_BOOL *bResult);
388 [out, retval] ISWbemQualifierSet **objWbemQualifierSet);
392 [out, retval] ISWbemPropertySet **objWbemPropertySet);
396 [out, retval] ISWbemMethodSet **objWbemMethodSet);
400 [out, retval] VARIANT *strClassNameArray);
404 [out, retval] ISWbemObjectPath **objWbemObjectPath);
408 [out, retval] ISWbemSecurity **objWbemSecurity);
414 uuid(5791bc27-ce9c-11d1-97bf-0000f81e849c),
418 pointer_default(unique)
420 interface ISWbemObjectPath : IDispatch
422 [ id(DISPID_VALUE), propget ]
424 [out, retval] BSTR *strPath);
426 [ id(DISPID_VALUE), propput ]
432 [out, retval] BSTR *strRelPath);
436 [in] BSTR strRelPath);
440 [out, retval] BSTR *strServer);
444 [in] BSTR strServer);
448 [out, retval] BSTR *strNamespace);
452 [in] BSTR strNamespace);
455 HRESULT ParentNamespace(
456 [out, retval] BSTR *strParentNamespace);
460 [out, retval] BSTR *strDisplayName);
464 [in] BSTR strDisplayName);
468 [out, retval] BSTR *strClass);
476 [out, retval] VARIANT_BOOL *bIsClass);
479 HRESULT SetAsClass();
483 [out, retval] VARIANT_BOOL *bIsSingleton);
486 HRESULT SetAsSingleton();
490 [out, retval] ISWbemNamedValueSet **objWbemNamedValueSet);
494 [out, retval] ISWbemSecurity **objWbemSecurity);
498 [out, retval] BSTR *strLocale);
502 [in] BSTR strLocale);
506 [out, retval] BSTR *strAuthority);
510 [in] BSTR strAuthority);
516 uuid(76a6415f-cb41-11d1-8b02-00600806d9b6),
522 interface ISWbemObjectSet : IDispatch
524 [ id(DISPID_NEWENUM), propget, restricted ]
526 [out, retval] IUnknown **pUnk);
530 [in] BSTR strObjectPath,
532 [out, retval] ISWbemObject **objWbemObject);
536 [out, retval] long *iCount);
540 [out, retval] ISWbemSecurity **objWbemSecurity);
545 [out, retval] ISWbemObject **objWbemObject);
551 uuid(176d2f70-5af3-11d2-8b4a-00600806d9b6)
553 enum WbemPrivilegeEnum
555 wbemPrivilegeCreateToken = 1,
556 wbemPrivilegePrimaryToken = 2,
557 wbemPrivilegeLockMemory = 3,
558 wbemPrivilegeIncreaseQuota = 4,
559 wbemPrivilegeMachineAccount = 5,
560 wbemPrivilegeTcb = 6,
561 wbemPrivilegeSecurity = 7,
562 wbemPrivilegeTakeOwnership = 8,
563 wbemPrivilegeLoadDriver = 9,
564 wbemPrivilegeSystemProfile = 10,
565 wbemPrivilegeSystemtime = 11,
566 wbemPrivilegeProfileSingleProcess = 12,
567 wbemPrivilegeIncreaseBasePriority = 13,
568 wbemPrivilegeCreatePagefile = 14,
569 wbemPrivilegeCreatePermanent = 15,
570 wbemPrivilegeBackup = 16,
571 wbemPrivilegeRestore = 17,
572 wbemPrivilegeShutdown = 18,
573 wbemPrivilegeDebug = 19,
574 wbemPrivilegeAudit = 20,
575 wbemPrivilegeSystemEnvironment = 21,
576 wbemPrivilegeChangeNotify = 22,
577 wbemPrivilegeRemoteShutdown = 23,
578 wbemPrivilegeUndock = 24,
579 wbemPrivilegeSyncAgent = 25,
580 wbemPrivilegeEnableDelegation = 26,
581 wbemPrivilegeManageVolume = 27
587 uuid(26ee67bd-5804-11d2-8b4a-00600806d9b6),
593 interface ISWbemPrivilege : IDispatch
595 [ id(DISPID_VALUE), propget ]
597 [out, retval] VARIANT_BOOL *bIsEnabled);
599 [ id(DISPID_VALUE), propput ]
601 [in] VARIANT_BOOL bIsEnabled);
605 [out, retval] BSTR *strDisplayName);
609 [out, retval] BSTR *strDisplayName);
613 [out, retval] WbemPrivilegeEnum *iPrivilege);
619 uuid(26ee67bf-5804-11d2-8b4a-00600806d9b6),
625 interface ISWbemPrivilegeSet : IDispatch
627 [ id(DISPID_NEWENUM), propget, restricted ]
629 [out, retval] IUnknown **pUnk);
633 [in] WbemPrivilegeEnum iPrivilege,
634 [out, retval] ISWbemPrivilege **objWbemPrivilege);
638 [out, retval] long *iCount);
642 [in] WbemPrivilegeEnum iPrivilege,
643 [in] VARIANT_BOOL bIsEnabled,
644 [out, retval] ISWbemPrivilege **objWbemPrivilege);
648 [in] WbemPrivilegeEnum iPrivilege);
655 [in] BSTR strPrivilege,
656 [in] VARIANT_BOOL bIsEnabled,
657 [out, retval] ISWbemPrivilege **objWbemPrivilege);
663 uuid(4a249b7b-fc9a-11d1-8b1e-00600806d9b6),
667 wbemCimtypeSint16 = 2,
668 wbemCimtypeSint32 = 3,
669 wbemCimtypeReal32 = 4,
670 wbemCimtypeReal64 = 5,
671 wbemCimtypeString = 8,
672 wbemCimtypeBoolean = 11,
673 wbemCimtypeObject = 13,
674 wbemCimtypeSint8 = 16,
675 wbemCimtypeUint8 = 17,
676 wbemCimtypeUint16 = 18,
677 wbemCimtypeUint32 = 19,
678 wbemCimtypeSint64 = 20,
679 wbemCimtypeUint64 = 21,
680 wbemCimtypeDatetime = 101,
681 wbemCimtypeReference = 102,
682 wbemCimtypeChar16 = 103
688 uuid(1a388f98-d4ba-11d1-8b09-00600806d9b6),
692 pointer_default(unique)
694 interface ISWbemProperty : IDispatch
696 [ id(DISPID_VALUE), propget ]
698 [out, retval] VARIANT *varValue);
700 [ id(DISPID_VALUE), propput ]
702 [in] VARIANT *varValue);
706 [out, retval] BSTR *strName);
710 [out, retval] VARIANT_BOOL *bIsLocal);
714 [out, retval] BSTR *strOrigin);
718 [out, retval] WbemCimtypeEnum *iCimType);
722 [out, retval] ISWbemQualifierSet **objWbemQualifierSet);
726 [out, retval] VARIANT_BOOL *bIsArray);
732 uuid(dea0a7b2-d4ba-11d1-8b09-00600806d9b6),
737 interface ISWbemPropertySet : IDispatch
739 [ id(DISPID_NEWENUM), propget, restricted ]
741 [out, retval] IUnknown **pUnk);
747 [out, retval] ISWbemProperty **objWbemProperty);
751 [out, retval] long *iCount);
756 [in] WbemCimtypeEnum iCIMType,
757 [in] VARIANT_BOOL bIsArray,
759 [out, retval] ISWbemProperty **objWbemProperty);
770 uuid(79b05932-d3b7-11d1-8b06-00600806d9b6),
775 pointer_default(unique)
777 interface ISWbemQualifier : IDispatch
779 [ id(DISPID_VALUE), propget ]
781 [out, retval] VARIANT *varValue);
783 [ id(DISPID_VALUE), propput ]
785 [in] VARIANT *varValue);
789 [out, retval] BSTR *strName);
793 [out, retval] VARIANT_BOOL *bIsLocal);
796 HRESULT PropagatesToSubclass(
797 [out, retval] VARIANT_BOOL *bPropagatesToSubclass);
800 HRESULT PropagatesToSubclass(
801 [in] VARIANT_BOOL bPropagatesToSubclass);
804 HRESULT PropagatesToInstance(
805 [out, retval] VARIANT_BOOL *bPropagatesToInstance);
808 HRESULT PropagatesToInstance(
809 [in] VARIANT_BOOL bPropagatesToInstance);
812 HRESULT IsOverridable(
813 [out, retval] VARIANT_BOOL *bIsOverridable);
816 HRESULT IsOverridable(
817 [in] VARIANT_BOOL bIsOverridable);
821 [out, retval] VARIANT_BOOL *bIsAmended);
827 uuid(9b16ed16-d3df-11d1-8b08-00600806d9b6),
833 interface ISWbemQualifierSet : IDispatch
835 [ id(DISPID_NEWENUM), propget, restricted ]
837 [out, retval] IUnknown **pUnk);
843 [out, retval] ISWbemQualifier **objWbemQualifier);
847 [out, retval] long *iCount);
852 [in] VARIANT *varVal,
853 [in] VARIANT_BOOL bPropagatesToSubclass,
854 [in] VARIANT_BOOL bPropagatesToInstance,
855 [in] VARIANT_BOOL bIsOverridable,
857 [out, retval] ISWbemQualifier **objWbemQualifier);
868 uuid(b54d66e8-2287-11d2-8b33-00600806d9b6)
870 enum WbemImpersonationLevelEnum
872 wbemImpersonationLevelAnonymous = 1,
873 wbemImpersonationLevelIdentify = 2,
874 wbemImpersonationLevelImpersonate = 3,
875 wbemImpersonationLevelDelegate = 4
876 } WbemImpersonationLevelEnum;
881 uuid(b54d66e7-2287-11d2-8b33-00600806d9b6)
883 enum WbemAuthenticationLevelEnum
885 wbemAuthenticationLevelDefault = 0,
886 wbemAuthenticationLevelNone = 1,
887 wbemAuthenticationLevelConnect = 2,
888 wbemAuthenticationLevelCall = 3,
889 wbemAuthenticationLevelPkt = 4,
890 wbemAuthenticationLevelPktIntegrity = 5,
891 wbemAuthenticationLevelPktPrivacy = 6
892 } WbemAuthenticationLevelEnum;
897 uuid(b54d66e6-2287-11d2-8b33-00600806d9b6),
903 interface ISWbemSecurity : IDispatch
906 HRESULT ImpersonationLevel(
907 [out, retval] WbemImpersonationLevelEnum *iImpersonationLevel);
910 HRESULT ImpersonationLevel(
911 [in] WbemImpersonationLevelEnum iImpersonationLevel);
914 HRESULT AuthenticationLevel(
915 [out, retval] WbemAuthenticationLevelEnum *iAuthenticationLevel);
918 HRESULT AuthenticationLevel(
919 [in] WbemAuthenticationLevelEnum iAuthenticationLevel);
923 [out, retval] ISWbemPrivilegeSet **objWbemPrivilegeSet);
929 uuid(76a6415c-cb41-11d1-8b02-00600806d9b6),
933 pointer_default(unique)
935 interface ISWbemServices : IDispatch
939 [in] BSTR strObjectPath,
941 [in] IDispatch *objWbemNamedValueSet,
942 [out, retval] ISWbemObject **objWbemObject);
946 [in] IDispatch *objWbemSink,
947 [in] BSTR strObjectPath,
949 [in] IDispatch *objWbemNamedValueSet,
950 [in] IDispatch *objWbemAsyncContext);
954 [in] BSTR strObjectPath,
956 [in] IDispatch *objWbemNamedValueSet);
960 [in] IDispatch *objWbemSink,
961 [in] BSTR strObjectPath,
963 [in] IDispatch *objWbemNamedValueSet,
964 [in] IDispatch *objWbemAsyncContext);
970 [in] IDispatch *objWbemNamedValueSet,
971 [out, retval] ISWbemObjectSet **objWbemObjectSet);
974 HRESULT InstancesOfAsync(
975 [in] IDispatch *objWbemSink,
978 [in] IDispatch *objWbemNamedValueSet,
979 [in] IDispatch *objWbemAsyncContext);
982 HRESULT SubclassesOf(
983 [in] BSTR strSuperclass,
985 [in] IDispatch *objWbemNamedValueSet,
986 [out, retval] ISWbemObjectSet **objWbemObjectSet);
989 HRESULT SubclassesOfAsync(
990 [in] IDispatch *objWbemSink,
991 [in] BSTR strSuperclass,
993 [in] IDispatch *objWbemNamedValueSet,
994 [in] IDispatch *objWbemAsyncContext);
999 [in] BSTR strQueryLanguage,
1001 [in] IDispatch *objWbemNamedValueSet,
1002 [out, retval] ISWbemObjectSet **objWbemObjectSet);
1005 HRESULT ExecQueryAsync(
1006 [in] IDispatch *objWbemSink,
1008 [in] BSTR strQueryLanguage,
1010 [in] IDispatch *objWbemNamedValueSet,
1011 [in] IDispatch *objWbemAsyncContext);
1014 HRESULT AssociatorsOf(
1015 [in] BSTR strObjectPath,
1016 [in] BSTR strAssocClass,
1017 [in] BSTR strResultClass,
1018 [in] BSTR strResultRole,
1020 [in] VARIANT_BOOL bClassesOnly,
1021 [in] VARIANT_BOOL bSchemaOnly,
1022 [in] BSTR strRequiredAssocQualifier,
1023 [in] BSTR strRequiredQualifier,
1025 [in] IDispatch *objWbemNamedValueSet,
1026 [out, retval] ISWbemObjectSet **objWbemObjectSet);
1029 HRESULT AssociatorsOfAsync(
1030 [in] IDispatch *objWbemSink,
1031 [in] BSTR strObjectPath,
1032 [in] BSTR strAssocClass,
1033 [in] BSTR strResultClass,
1034 [in] BSTR strResultRole,
1036 [in] VARIANT_BOOL bClassesOnly,
1037 [in] VARIANT_BOOL bSchemaOnly,
1038 [in] BSTR strRequiredAssocQualifier,
1039 [in] BSTR strRequiredQualifier,
1041 [in] IDispatch *objWbemNamedValueSet,
1042 [in] IDispatch *objWbemAsyncContext);
1045 HRESULT ReferencesTo(
1046 [in] BSTR strObjectPath,
1047 [in] BSTR strResultClass,
1049 [in] VARIANT_BOOL bClassesOnly,
1050 [in] VARIANT_BOOL bSchemaOnly,
1051 [in] BSTR strRequiredQualifier,
1053 [in] IDispatch *objWbemNamedValueSet,
1054 [out, retval] ISWbemObjectSet **objWbemObjectSet);
1057 HRESULT ReferencesToAsync(
1058 [in] IDispatch *objWbemSink,
1059 [in] BSTR strObjectPath,
1060 [in] BSTR strResultClass,
1062 [in] VARIANT_BOOL bClassesOnly,
1063 [in] VARIANT_BOOL bSchemaOnly,
1064 [in] BSTR strRequiredQualifier,
1066 [in] IDispatch *objWbemNamedValueSet,
1067 [in] IDispatch *objWbemAsyncContext);
1070 HRESULT ExecNotificationQuery(
1072 [in] BSTR strQueryLanguage,
1074 [in] IDispatch *objWbemNamedValueSet,
1075 [out, retval] ISWbemEventSource **objWbemEventSource);
1078 HRESULT ExecNotificationQueryAsync(
1079 [in] IDispatch *objWbemSink,
1081 [in] BSTR strQueryLanguage,
1083 [in] IDispatch *objWbemNamedValueSet,
1084 [in] IDispatch *objWbemAsyncContext);
1088 [in] BSTR strObjectPath,
1089 [in] BSTR strMethodName,
1090 [in] IDispatch *objWbemInParameters,
1092 [in] IDispatch *objWbemNamedValueSet,
1093 [out, retval] ISWbemObject **objWbemOutParameters);
1096 HRESULT ExecMethodAsync(
1097 [in] IDispatch *objWbemSink,
1098 [in] BSTR strObjectPath,
1099 [in] BSTR strMethodName,
1100 [in] IDispatch *objWbemInParameters,
1102 [in] IDispatch *objWbemNamedValueSet,
1103 [in] IDispatch *objWbemAsyncContext);
1107 [out, retval] ISWbemSecurity **objWbemSecurity);
1111 threading(apartment),
1112 uuid(76a64158-cb41-11d1-8b02-00600806d9b6),
1113 progid("WbemScripting.SWbemLocator.1"),
1114 vi_progid("WbemScripting.SWbemLocator")
1116 coclass SWbemLocator
1118 interface ISWbemLocator;
1121 }; /* WbemScripting */