Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

851 lines
21 KiB

  1. //***************************************************************************
  2. //
  3. // CONNMGREX.IDL
  4. // Interface definition identical to WBEMCLI.IDL.
  5. // NOTE: this file was created to define wbem interfaces used in the
  6. // connmgr interface methods.
  7. //
  8. //***************************************************************************
  9. [uuid(7ec196fe-7005-11d1-ad90-00c04fd8fdff)]
  10. library WbemClient_v1
  11. {
  12. importlib("stdole32.tlb");
  13. interface IWbemClassObject;
  14. interface IWbemObjectAccess;
  15. interface IWbemQualifierSet;
  16. interface IWbemServices;
  17. interface IWbemLocator;
  18. interface IWbemObjectSink;
  19. interface IEnumWbemClassObject;
  20. interface IWbemCallResult;
  21. interface IWbemContext;
  22. interface IUnsecuredApartment;
  23. /////////////////////////////////////////////////////////////////
  24. //
  25. typedef [v1_enum] enum tag_WBEM_GENUS_TYPE
  26. {
  27. WBEM_GENUS_CLASS = 1,
  28. WBEM_GENUS_INSTANCE = 2
  29. } WBEM_GENUS_TYPE;
  30. typedef [v1_enum] enum tag_WBEM_CHANGE_FLAG_TYPE
  31. {
  32. WBEM_FLAG_CREATE_OR_UPDATE = 0,
  33. WBEM_FLAG_UPDATE_ONLY = 0x1,
  34. WBEM_FLAG_CREATE_ONLY = 0x2
  35. } WBEM_CHANGE_FLAG_TYPE;
  36. typedef [v1_enum] enum tag_WBEM_GENERIC_FLAG_TYPE
  37. {
  38. WBEM_FLAG_RETURN_IMMEDIATELY = 0x10,
  39. WBEM_FLAG_RETURN_WBEM_COMPLETE = 0,
  40. WBEM_FLAG_BIDIRECTIONAL = 0,
  41. WBEM_FLAG_FORWARD_ONLY = 0x20,
  42. WBEM_FLAG_NO_ERROR_OBJECT = 0x40,
  43. WBEM_FLAG_RETURN_ERROR_OBJECT = 0,
  44. WBEM_FLAG_SEND_STATUS = 0x80,
  45. WBEM_FLAG_DONT_SEND_STATUS = 0,
  46. WBEM_FLAG_ENSURE_LOCATABLE = 0x100,
  47. WBEM_FLAG_SEND_ONLY_SELECTED = 0,
  48. // backward-compatibility
  49. WBEM_RETURN_WHEN_COMPLETE = 0,
  50. WBEM_RETURN_IMMEDIATELY = 0x10,
  51. } WBEM_GENERIC_FLAG_TYPE;
  52. typedef enum tag_WBEM_STATUS_TYPE
  53. {
  54. WBEM_STATUS_COMPLETE = 0,
  55. WBEM_STATUS_REQUIREMENTS = 1,
  56. WBEM_STATUS_PROGRESS = 2,
  57. } WBEM_STATUS_TYPE;
  58. typedef [v1_enum] enum tag_WBEM_TIMEOUT_TYPE
  59. {
  60. WBEM_NO_WAIT = 0,
  61. WBEM_INFINITE = 0xFFFFFFFF,
  62. } WBEM_TIMEOUT_TYPE;
  63. typedef [v1_enum] enum tag_WBEM_CONDITION_FLAG_TYPE
  64. {
  65. WBEM_FLAG_ALWAYS = 0,
  66. WBEM_FLAG_ONLY_IF_TRUE = 0x1,
  67. WBEM_FLAG_ONLY_IF_FALSE = 0x2,
  68. WBEM_FLAG_ONLY_IF_IDENTICAL = 0x3,
  69. WBEM_MASK_PRIMARY_CONDITION = 0x3,
  70. WBEM_FLAG_KEYS_ONLY = 0x4,
  71. WBEM_FLAG_REFS_ONLY = 0x8,
  72. WBEM_FLAG_LOCAL_ONLY = 0x10,
  73. WBEM_FLAG_PROPAGATED_ONLY = 0x20,
  74. WBEM_FLAG_SYSTEM_ONLY = 0x30,
  75. WBEM_FLAG_NONSYSTEM_ONLY = 0x40,
  76. WBEM_MASK_CONDITION_ORIGIN = 0x70
  77. } WBEM_CONDITION_FLAG_TYPE;
  78. typedef [v1_enum] enum tag_WBEM_FLAVOR_TYPE
  79. {
  80. WBEM_FLAVOR_DONT_PROPAGATE = 0,
  81. WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE = 0x1,
  82. WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS = 0x2,
  83. WBEM_FLAVOR_MASK_PROPAGATION = 0x0F,
  84. WBEM_FLAVOR_OVERRIDABLE = 0,
  85. WBEM_FLAVOR_NOT_OVERRIDABLE = 0x10,
  86. WBEM_FLAVOR_MASK_PERMISSIONS = 0x10,
  87. WBEM_FLAVOR_ORIGIN_LOCAL = 0,
  88. WBEM_FLAVOR_ORIGIN_PROPAGATED = 0x20,
  89. WBEM_FLAVOR_ORIGIN_SYSTEM = 0x40,
  90. WBEM_FLAVOR_MASK_ORIGIN = 0x60
  91. } WBEM_FLAVOR_TYPE;
  92. typedef [v1_enum] enum tag_WBEM_QUERY_FLAG_TYPE
  93. {
  94. WBEM_FLAG_DEEP = 0,
  95. WBEM_FLAG_SHALLOW = 1,
  96. WBEM_FLAG_PROTOTYPE = 2
  97. } WBEM_QUERY_FLAG_TYPE;
  98. typedef [v1_enum] enum tag_WBEM_LIMITATION_FLAG_TYPE
  99. {
  100. WBEM_FLAG_EXCLUDE_OBJECT_QUALIFIERS = 0x10,
  101. WBEM_FLAG_EXCLUDE_PROPERTY_QUALIFIERS = 0x20
  102. } WBEM_LIMITATION_FLAG_TYPE;
  103. typedef [v1_enum] enum tag_WBEM_TEXT_FLAG_TYPE
  104. {
  105. WBEM_FLAG_NO_FLAVORS = 0x1
  106. } WBEM_TEXT_FLAG_TYPE;
  107. typedef [v1_enum] enum tag_WBEM_COMPARISON_FLAG
  108. {
  109. WBEM_COMPARISON_INCLUDE_ALL = 0,
  110. WBEM_FLAG_IGNORE_QUALIFIERS = 0x1,
  111. WBEM_FLAG_IGNORE_OBJECT_SOURCE = 0x2,
  112. WBEM_FLAG_IGNORE_DEFAULT_VALUES = 0x4,
  113. WBEM_FLAG_IGNORE_CLASS = 0x8,
  114. WBEM_FLAG_IGNORE_CASE = 0x10,
  115. WBEM_FLAG_IGNORE_FLAVOR = 0x20
  116. } WBEM_COMPARISON_FLAG;
  117. typedef [v1_enum] enum tag_WBEM_LOCKING
  118. {
  119. WBEM_FLAG_ALLOW_READ = 0x1,
  120. } WBEM_LOCKING_FLAG_TYPE;
  121. typedef [v1_enum] enum tag_CIMTYPE_ENUMERATION
  122. {
  123. CIM_ILLEGAL = 0xfff,
  124. CIM_EMPTY = 0,
  125. CIM_SINT8 = 16,
  126. CIM_UINT8 = 17,
  127. CIM_SINT16 = 2,
  128. CIM_UINT16 = 18,
  129. CIM_SINT32 = 3,
  130. CIM_UINT32 = 19,
  131. CIM_SINT64 = 20,
  132. CIM_UINT64 = 21,
  133. CIM_REAL32 = 4,
  134. CIM_REAL64 = 5,
  135. CIM_BOOLEAN = 11,
  136. CIM_STRING = 8,
  137. CIM_DATETIME = 101,
  138. CIM_REFERENCE = 102,
  139. CIM_CHAR16 = 103,
  140. CIM_OBJECT = 13,
  141. CIM_FLAG_ARRAY = 0x2000
  142. } CIMTYPE_ENUMERATION;
  143. typedef long CIMTYPE;
  144. /////////////////////////////////////////////////////////////////
  145. //
  146. typedef [v1_enum] enum tag_WBEMSTATUS
  147. {
  148. WBEM_NO_ERROR = 0,
  149. WBEM_S_NO_ERROR = 0,
  150. WBEM_S_SAME = 0,
  151. // Non-error status codes.
  152. // =======================
  153. WBEM_S_FALSE = 1,
  154. WBEM_S_ALREADY_EXISTS = 0x40001,
  155. WBEM_S_RESET_TO_DEFAULT,
  156. WBEM_S_DIFFERENT,
  157. WBEM_S_TIMEDOUT,
  158. WBEM_S_NO_MORE_DATA,
  159. WBEM_S_OPERATION_CANCELLED,
  160. WBEM_S_PENDING,
  161. WBEM_S_DUPLICATE_OBJECTS,
  162. // Errors.
  163. // =======
  164. WBEM_E_FAILED = 0x80041001,
  165. WBEM_E_NOT_FOUND,
  166. WBEM_E_ACCESS_DENIED,
  167. WBEM_E_PROVIDER_FAILURE,
  168. WBEM_E_TYPE_MISMATCH,
  169. WBEM_E_OUT_OF_MEMORY,
  170. WBEM_E_INVALID_CONTEXT,
  171. WBEM_E_INVALID_PARAMETER,
  172. WBEM_E_NOT_AVAILABLE,
  173. WBEM_E_CRITICAL_ERROR,
  174. WBEM_E_INVALID_STREAM,
  175. WBEM_E_NOT_SUPPORTED,
  176. WBEM_E_INVALID_SUPERCLASS,
  177. WBEM_E_INVALID_NAMESPACE,
  178. WBEM_E_INVALID_OBJECT,
  179. WBEM_E_INVALID_CLASS,
  180. WBEM_E_PROVIDER_NOT_FOUND,
  181. WBEM_E_INVALID_PROVIDER_REGISTRATION,
  182. WBEM_E_PROVIDER_LOAD_FAILURE,
  183. WBEM_E_INITIALIZATION_FAILURE,
  184. WBEM_E_TRANSPORT_FAILURE,
  185. WBEM_E_INVALID_OPERATION,
  186. WBEM_E_INVALID_QUERY,
  187. WBEM_E_INVALID_QUERY_TYPE,
  188. WBEM_E_ALREADY_EXISTS,
  189. WBEM_E_OVERRIDE_NOT_ALLOWED,
  190. WBEM_E_PROPAGATED_QUALIFIER,
  191. WBEM_E_PROPAGATED_PROPERTY,
  192. WBEM_E_UNEXPECTED,
  193. WBEM_E_ILLEGAL_OPERATION,
  194. WBEM_E_CANNOT_BE_KEY,
  195. WBEM_E_INCOMPLETE_CLASS,
  196. WBEM_E_INVALID_SYNTAX,
  197. WBEM_E_NONDECORATED_OBJECT,
  198. WBEM_E_READ_ONLY,
  199. WBEM_E_PROVIDER_NOT_CAPABLE,
  200. WBEM_E_CLASS_HAS_CHILDREN,
  201. WBEM_E_CLASS_HAS_INSTANCES,
  202. WBEM_E_QUERY_NOT_IMPLEMENTED,
  203. WBEM_E_ILLEGAL_NULL,
  204. WBEM_E_INVALID_QUALIFIER_TYPE,
  205. WBEM_E_INVALID_PROPERTY_TYPE,
  206. WBEM_E_VALUE_OUT_OF_RANGE,
  207. WBEM_E_CANNOT_BE_SINGLETON,
  208. WBEM_E_INVALID_CIM_TYPE,
  209. WBEM_E_INVALID_METHOD,
  210. WBEM_E_INVALID_METHOD_PARAMETERS,
  211. WBEM_E_SYSTEM_PROPERTY,
  212. WBEM_E_INVALID_PROPERTY,
  213. WBEM_E_CALL_CANCELLED,
  214. WBEM_E_SHUTTING_DOWN,
  215. WBEM_E_PROPAGATED_METHOD,
  216. WBEM_E_UNSUPPORTED_PARAMETER,
  217. WBEM_E_MISSING_PARAMETER_ID,
  218. WBEM_E_INVALID_PARAMETER_ID,
  219. WBEM_E_NONCONSECUTIVE_PARAMETER_IDS,
  220. WBEM_E_PARAMETER_ID_ON_RETVAL,
  221. WBEM_E_INVALID_OBJECT_PATH,
  222. WBEM_E_OUT_OF_DISK_SPACE,
  223. WBEMESS_E_REGISTRATION_TOO_BROAD = 0x80042001,
  224. WBEMESS_E_REGISTRATION_TOO_PRECISE
  225. } WBEMSTATUS;
  226. [restricted, uuid(4590f811-1d3a-11d0-891f-00aa004b2e24)]
  227. coclass WbemLocator
  228. {
  229. interface IWbemLocator;
  230. };
  231. [restricted, uuid(674B6698-EE92-11d0-AD71-00C04FD8FDFF)]
  232. coclass WbemContext
  233. {
  234. interface IWbemContext;
  235. };
  236. [uuid(49bd2028-1523-11d1-ad79-00c04fd8fdff)]
  237. coclass UnsecuredApartment
  238. {
  239. interface IUnsecuredApartment;
  240. };
  241. };
  242. #define OPTIONAL in, unique
  243. interface IWbemQualifierSet;
  244. [local, restricted, object, uuid(dc12a681-737f-11cf-884d-00aa004b2e24)]
  245. interface IWbemClassObject : IUnknown
  246. {
  247. HRESULT GetQualifierSet(
  248. [out] IWbemQualifierSet** ppQualSet
  249. );
  250. HRESULT Get(
  251. [in] BSTR strName,
  252. [in] long lFlags,
  253. [out, OPTIONAL] VARIANT* pVal,
  254. [out, OPTIONAL] CIMTYPE* pType,
  255. [out, OPTIONAL] long* plFlavor
  256. );
  257. HRESULT Put(
  258. [in] BSTR strName,
  259. [in] long lFlags,
  260. [in] VARIANT* pVal,
  261. [in] CIMTYPE Type
  262. );
  263. HRESULT Delete(
  264. [in] BSTR strName
  265. );
  266. HRESULT GetNames(
  267. [in] BSTR strQualifierName,
  268. [in] long lFlags,
  269. [in] VARIANT* pQualifierVal,
  270. [out] SAFEARRAY (BSTR)* pNames
  271. );
  272. HRESULT BeginEnumeration([in] long lEnumFlags);
  273. HRESULT Next(
  274. [in] long lFlags,
  275. [out, OPTIONAL] BSTR* pstrName,
  276. [out, OPTIONAL] VARIANT* pVal,
  277. [out, OPTIONAL] CIMTYPE* pType,
  278. [out, OPTIONAL] long* plFlavor
  279. );
  280. HRESULT EndEnumeration();
  281. HRESULT GetPropertyQualifierSet(
  282. [in] BSTR pstrProperty,
  283. [out] IWbemQualifierSet** ppQualSet
  284. );
  285. HRESULT Clone(
  286. [out] IWbemClassObject** ppCopy
  287. );
  288. HRESULT GetObjectText(
  289. [in] long lFlags,
  290. [out] BSTR* pstrObjectText
  291. );
  292. HRESULT SpawnDerivedClass(
  293. [in] long lFlags,
  294. [out] IWbemClassObject** ppNewClass
  295. );
  296. HRESULT SpawnInstance(
  297. [in] long lFlags,
  298. [out] IWbemClassObject** ppNewInstance
  299. );
  300. HRESULT CompareTo(
  301. [in] long lFlags,
  302. [in] IWbemClassObject* pCompareTo
  303. );
  304. HRESULT GetPropertyOrigin(
  305. [in] BSTR strName,
  306. [out] BSTR* pstrClassName);
  307. HRESULT InheritsFrom(
  308. [in] BSTR strAncestor
  309. );
  310. // Method manipulation.
  311. // ====================
  312. HRESULT GetMethod(
  313. [in] BSTR strName,
  314. [in] long lFlags,
  315. [out] IWbemClassObject** ppInSignature,
  316. [out] IWbemClassObject** ppOutSignature
  317. );
  318. HRESULT PutMethod(
  319. [in] BSTR strName,
  320. [in] long lFlags,
  321. [in] IWbemClassObject* pInSignature,
  322. [in] IWbemClassObject* pOutSignature
  323. );
  324. HRESULT DeleteMethod(
  325. [in] BSTR strName
  326. );
  327. HRESULT BeginMethodEnumeration([in] long lEnumFlags);
  328. HRESULT NextMethod(
  329. [in] long lFlags,
  330. [out, OPTIONAL] BSTR* pstrName,
  331. [out, OPTIONAL] IWbemClassObject** ppInSignature,
  332. [out, OPTIONAL] IWbemClassObject** ppOutSignature
  333. );
  334. HRESULT EndMethodEnumeration();
  335. HRESULT GetMethodQualifierSet(
  336. [in] BSTR strMethod,
  337. [out] IWbemQualifierSet** ppQualSet
  338. );
  339. HRESULT GetMethodOrigin(
  340. [in] BSTR strMethodName,
  341. [out] BSTR* pstrClassName
  342. );
  343. };
  344. [object, restricted, local, uuid(dc12a680-737f-11cf-884d-00aa004b2e24)]
  345. interface IWbemQualifierSet : IUnknown
  346. {
  347. HRESULT Get(
  348. [in] BSTR strName,
  349. [in] long lFlags,
  350. [out, OPTIONAL] VARIANT* pVal,
  351. [out, OPTIONAL] long* plFlavor
  352. );
  353. HRESULT Put(
  354. [in] BSTR strName,
  355. [in] VARIANT* pVal,
  356. [in] long lFlavor
  357. );
  358. HRESULT Delete(
  359. [in] BSTR strName
  360. );
  361. HRESULT GetNames(
  362. [in] long lFlags,
  363. [out] SAFEARRAY (BSTR)* pNames
  364. );
  365. HRESULT BeginEnumeration([in] long lFlags);
  366. HRESULT Next(
  367. [in] long lFlags,
  368. [out, OPTIONAL] BSTR* pstrName,
  369. [out, OPTIONAL] VARIANT* pVal,
  370. [out, OPTIONAL] long* plFlavor
  371. );
  372. HRESULT EndEnumeration();
  373. };
  374. interface IWbemServices;
  375. [object, restricted, local, uuid(dc12a687-737f-11cf-884d-00aa004b2e24),
  376. pointer_default(unique)]
  377. interface IWbemLocator : IUnknown
  378. {
  379. HRESULT ConnectServer(
  380. [in] BSTR strNetworkResource,
  381. [in] BSTR strUser,
  382. [in] BSTR strPassword,
  383. [in] BSTR strLocale,
  384. [in] long lSecurityFlags,
  385. [in] BSTR strAuthority,
  386. [in] IWbemContext* pCtx,
  387. [out] IWbemServices** ppNamespace
  388. );
  389. };
  390. /////////////////////////////////////////////////////////////////
  391. [object, restricted, uuid(7c857801-7381-11cf-884d-00aa004b2e24)]
  392. interface IWbemObjectSink : IUnknown
  393. {
  394. HRESULT Indicate(
  395. [in] long lObjectCount,
  396. [in, size_is(lObjectCount)]
  397. IWbemClassObject** apObjArray
  398. );
  399. HRESULT SetStatus(
  400. [in] long lFlags,
  401. [in] HRESULT hResult,
  402. [in] BSTR strParam,
  403. [in] IWbemClassObject* pObjParam
  404. );
  405. };
  406. [object, restricted, uuid(027947e1-d731-11ce-a357-000000000001)]
  407. interface IEnumWbemClassObject : IUnknown
  408. {
  409. HRESULT Reset();
  410. HRESULT Next(
  411. [in] long lTimeout,
  412. [in] ULONG uCount,
  413. [out, size_is(uCount), length_is(*puReturned)]
  414. IWbemClassObject** apObjects,
  415. [out] ULONG* puReturned
  416. );
  417. HRESULT NextAsync(
  418. [in] ULONG uCount,
  419. [in] IWbemObjectSink* pSink
  420. );
  421. HRESULT Clone(
  422. [out] IEnumWbemClassObject** ppEnum
  423. );
  424. HRESULT Skip(
  425. [in] long lTimeout,
  426. [in] ULONG nCount
  427. );
  428. };
  429. /////////////////////////////////////////////////////////////////////////
  430. [object, restricted, local, uuid(44aca674-e8fc-11d0-a07c-00c04fb68820)]
  431. interface IWbemContext : IUnknown
  432. {
  433. HRESULT Clone([out] IWbemContext** ppNewCopy);
  434. HRESULT GetNames(
  435. [in] long lFlags,
  436. [out] SAFEARRAY (BSTR)* pNames
  437. );
  438. HRESULT BeginEnumeration([in] long lFlags);
  439. HRESULT Next(
  440. [in] long lFlags,
  441. [out] BSTR* pstrName,
  442. [out] VARIANT* pValue
  443. );
  444. HRESULT EndEnumeration();
  445. HRESULT SetValue(
  446. [in] BSTR strName,
  447. [in] long lFlags,
  448. [in] VARIANT* pValue
  449. );
  450. HRESULT GetValue(
  451. [in] BSTR strName,
  452. [in] long lFlags,
  453. [out] VARIANT* pValue
  454. );
  455. HRESULT DeleteValue(
  456. [in] BSTR strName,
  457. [in] long lFlags
  458. );
  459. HRESULT DeleteAll();
  460. };
  461. [object, restricted, uuid(44aca675-e8fc-11d0-a07c-00c04fb68820)]
  462. interface IWbemCallResult : IUnknown
  463. {
  464. HRESULT GetResultObject(
  465. [in] long lTimeout,
  466. [out] IWbemClassObject** ppResultObject
  467. );
  468. HRESULT GetResultString(
  469. [in] long lTimeout,
  470. [out] BSTR* pstrResultString
  471. );
  472. HRESULT GetResultServices(
  473. [in] long lTimeout,
  474. [out] IWbemServices** ppServices
  475. );
  476. HRESULT GetCallStatus(
  477. [in] long lTimeout,
  478. [out] long* plStatus
  479. );
  480. };
  481. /////////////////////////////////////////////////////////////////////////
  482. [object, restricted, uuid(9556dc99-828c-11cf-a37e-00aa003240c7),
  483. pointer_default(unique)]
  484. interface IWbemServices : IUnknown
  485. {
  486. // Context.
  487. // ========
  488. HRESULT OpenNamespace(
  489. [in] BSTR strNamespace,
  490. [in] long lFlags,
  491. [in] IWbemContext* pCtx,
  492. [out, OPTIONAL] IWbemServices** ppWorkingNamespace,
  493. [out, OPTIONAL] IWbemCallResult** ppResult
  494. );
  495. HRESULT CancelAsyncCall(
  496. [in] IWbemObjectSink* pSink
  497. );
  498. HRESULT QueryObjectSink(
  499. [in] long lFlags,
  500. [out] IWbemObjectSink** ppResponseHandler
  501. );
  502. // Classes and instances.
  503. // ======================
  504. HRESULT GetObject(
  505. [in] BSTR strObjectPath,
  506. [in] long lFlags,
  507. [in] IWbemContext* pCtx,
  508. [out, OPTIONAL] IWbemClassObject** ppObject,
  509. [out, OPTIONAL] IWbemCallResult** ppCallResult
  510. );
  511. HRESULT GetObjectAsync(
  512. [in] BSTR strObjectPath,
  513. [in] long lFlags,
  514. [in] IWbemContext* pCtx,
  515. [in] IWbemObjectSink* pResponseHandler
  516. );
  517. // Class manipulation.
  518. // ===================
  519. HRESULT PutClass(
  520. [in] IWbemClassObject* pObject,
  521. [in] long lFlags,
  522. [in] IWbemContext* pCtx,
  523. [out, OPTIONAL] IWbemCallResult** ppCallResult
  524. );
  525. HRESULT PutClassAsync(
  526. [in] IWbemClassObject* pObject,
  527. [in] long lFlags,
  528. [in] IWbemContext* pCtx,
  529. [in] IWbemObjectSink* pResponseHandler
  530. );
  531. HRESULT DeleteClass(
  532. [in] BSTR strClass,
  533. [in] long lFlags,
  534. [in] IWbemContext* pCtx,
  535. [out, OPTIONAL] IWbemCallResult** ppCallResult
  536. );
  537. HRESULT DeleteClassAsync(
  538. [in] BSTR strClass,
  539. [in] long lFlags,
  540. [in] IWbemContext* pCtx,
  541. [in] IWbemObjectSink* pResponseHandler
  542. );
  543. HRESULT CreateClassEnum(
  544. [in] BSTR strSuperclass,
  545. [in] long lFlags,
  546. [in] IWbemContext* pCtx,
  547. [out] IEnumWbemClassObject** ppEnum
  548. );
  549. HRESULT CreateClassEnumAsync(
  550. [in] BSTR strSuperclass,
  551. [in] long lFlags,
  552. [in] IWbemContext* pCtx,
  553. [in] IWbemObjectSink* pResponseHandler
  554. );
  555. // Instances.
  556. // ==========
  557. HRESULT PutInstance(
  558. [in] IWbemClassObject* pInst,
  559. [in] long lFlags,
  560. [in] IWbemContext* pCtx,
  561. [out, OPTIONAL] IWbemCallResult** ppCallResult
  562. );
  563. HRESULT PutInstanceAsync(
  564. [in] IWbemClassObject* pInst,
  565. [in] long lFlags,
  566. [in] IWbemContext* pCtx,
  567. [in] IWbemObjectSink* pResponseHandler
  568. );
  569. HRESULT DeleteInstance(
  570. [in] BSTR strObjectPath,
  571. [in] long lFlags,
  572. [in] IWbemContext* pCtx,
  573. [out, OPTIONAL] IWbemCallResult** ppCallResult
  574. );
  575. HRESULT DeleteInstanceAsync(
  576. [in] BSTR strObjectPath,
  577. [in] long lFlags,
  578. [in] IWbemContext* pCtx,
  579. [in] IWbemObjectSink* pResponseHandler
  580. );
  581. HRESULT CreateInstanceEnum(
  582. [in] BSTR strClass,
  583. [in] long lFlags,
  584. [in] IWbemContext* pCtx,
  585. [out] IEnumWbemClassObject** ppEnum
  586. );
  587. HRESULT CreateInstanceEnumAsync(
  588. [in] BSTR strClass,
  589. [in] long lFlags,
  590. [in] IWbemContext* pCtx,
  591. [in] IWbemObjectSink* pResponseHandler
  592. );
  593. // Queries.
  594. // ========
  595. HRESULT ExecQuery(
  596. [in] BSTR strQueryLanguage,
  597. [in] BSTR strQuery,
  598. [in] long lFlags,
  599. [in] IWbemContext* pCtx,
  600. [out] IEnumWbemClassObject** ppEnum
  601. );
  602. HRESULT ExecQueryAsync(
  603. [in] BSTR strQueryLanguage,
  604. [in] BSTR strQuery,
  605. [in] long lFlags,
  606. [in] IWbemContext* pCtx,
  607. [in] IWbemObjectSink* pResponseHandler
  608. );
  609. HRESULT ExecNotificationQuery(
  610. [in] BSTR strQueryLanguage,
  611. [in] BSTR strQuery,
  612. [in] long lFlags,
  613. [in] IWbemContext* pCtx,
  614. [out] IEnumWbemClassObject** ppEnum
  615. );
  616. HRESULT ExecNotificationQueryAsync(
  617. [in] BSTR strQueryLanguage,
  618. [in] BSTR strQuery,
  619. [in] long lFlags,
  620. [in] IWbemContext* pCtx,
  621. [in] IWbemObjectSink* pResponseHandler
  622. );
  623. // Methods
  624. // =======
  625. HRESULT ExecMethod(
  626. [in] BSTR strObjectPath,
  627. [in] BSTR strMethodName,
  628. [in] long lFlags,
  629. [in] IWbemContext* pCtx,
  630. [in] IWbemClassObject* pInParams,
  631. [out, OPTIONAL] IWbemClassObject** ppOutParams,
  632. [out, OPTIONAL] IWbemCallResult** ppCallResult
  633. );
  634. HRESULT ExecMethodAsync(
  635. [in] BSTR strObjectPath,
  636. [in] BSTR strMethodName,
  637. [in] long lFlags,
  638. [in] IWbemContext* pCtx,
  639. [in] IWbemClassObject* pInParams,
  640. [in] IWbemObjectSink* pResponseHandler
  641. );
  642. };
  643. [local, restricted, object, uuid(49353c9a-516b-11d1-aea6-00c04fb68820)]
  644. interface IWbemObjectAccess : IWbemClassObject
  645. {
  646. HRESULT GetPropertyHandle(
  647. [in] BSTR strPropertyName,
  648. [out] CIMTYPE* pType,
  649. [out] long* plHandle
  650. );
  651. HRESULT WritePropertyValue(
  652. [in] long lHandle,
  653. [in] long lNumBytes,
  654. [in, size_is(lNumBytes)] byte* aData
  655. );
  656. HRESULT ReadPropertyValue(
  657. [in] long lHandle,
  658. [in] long lBufferSize,
  659. [out] long* plNumBytes,
  660. [out, size_is(lBufferSize), length_is(*plNumBytes)] byte* aData
  661. );
  662. HRESULT ReadDWORD(
  663. [in] long lHandle,
  664. [out] DWORD* pdw
  665. );
  666. HRESULT WriteDWORD(
  667. [in] long lHandle,
  668. [in] DWORD dw
  669. );
  670. HRESULT ReadQWORD(
  671. [in] long lHandle,
  672. [out] unsigned __int64* pqw
  673. );
  674. HRESULT WriteQWORD(
  675. [in] long lHandle,
  676. [in] unsigned __int64 pw
  677. );
  678. HRESULT GetPropertyInfoByHandle(
  679. [in] long lHandle,
  680. [out] BSTR* pstrName,
  681. [out] CIMTYPE* pType);
  682. HRESULT Lock(
  683. [in] long lFlags
  684. );
  685. HRESULT Unlock(
  686. [in] long lFlags
  687. );
  688. };
  689. [restricted, uuid(1cfaba8c-1523-11d1-ad79-00c04fd8fdff), object]
  690. interface IUnsecuredApartment : IUnknown
  691. {
  692. HRESULT CreateObjectStub(
  693. [in] IUnknown* pObject,
  694. [out] IUnknown** ppStub);
  695. };