1/* 2 * Copyright 2009 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 19cpp_quote("DEFINE_GUID(CLSID_WbemLocator, 0x4590f811,0x1d3A,0x11d0,0x89,0x1f,0x00,0xaa,0x00,0x4b,0x2e,0x24);") 20cpp_quote("DEFINE_GUID(CLSID_WbemStatusCode, 0xeb87e1bd,0x3233,0x11d2,0xae,0xc9,0x00,0xc0,0x4f,0xb6,0x88,0x20);") 21 22import "oaidl.idl"; 23import "objidl.idl"; 24 25interface IWbemContext; 26interface IWbemServices; 27interface IWbemStatusCodeText; 28interface IWbemCallResult; 29interface IWbemObjectSink; 30interface IWbemClassObject; 31interface IEnumWbemClassObject; 32interface IWbemQualifierSet; 33 34typedef [v1_enum] enum tag_WBEMSTATUS 35{ 36 WBEM_NO_ERROR = 0, 37 WBEM_S_NO_ERROR = 0, 38 WBEM_S_SAME = 0, 39 WBEM_S_FALSE = 1, 40 WBEM_S_ALREADY_EXISTS = 0x40001, 41 WBEM_S_RESET_TO_DEFAULT = 0x40002, 42 WBEM_S_DIFFERENT = 0x40003, 43 WBEM_S_TIMEDOUT = 0x40004, 44 WBEM_S_NO_MORE_DATA = 0x40005, 45 WBEM_S_OPERATION_CANCELLED = 0x40006, 46 WBEM_S_PENDING = 0x40007, 47 WBEM_S_DUPLICATE_OBJECTS = 0x40008, 48 WBEM_S_ACCESS_DENIED = 0x40009, 49 WBEM_S_PARTIAL_RESULTS = 0x40010, 50 WBEM_S_SOURCE_NOT_AVAILABLE = 0x40017, 51 WBEM_E_FAILED = 0x80041001, 52 WBEM_E_NOT_FOUND = 0x80041002, 53 WBEM_E_ACCESS_DENIED = 0x80041003, 54 WBEM_E_PROVIDER_FAILURE = 0x80041004, 55 WBEM_E_TYPE_MISMATCH = 0x80041005, 56 WBEM_E_OUT_OF_MEMORY = 0x80041006, 57 WBEM_E_INVALID_CONTEXT = 0x80041007, 58 WBEM_E_INVALID_PARAMETER = 0x80041008, 59 WBEM_E_NOT_AVAILABLE = 0x80041009, 60 WBEM_E_CRITICAL_ERROR = 0x8004100a, 61 WBEM_E_INVALID_STREAM = 0x8004100b, 62 WBEM_E_NOT_SUPPORTED = 0x8004100c, 63 WBEM_E_INVALID_SUPERCLASS = 0x8004100d, 64 WBEM_E_INVALID_NAMESPACE = 0x8004100e, 65 WBEM_E_INVALID_OBJECT = 0x8004100f, 66 WBEM_E_INVALID_CLASS = 0x80041010, 67 WBEM_E_PROVIDER_NOT_FOUND = 0x80041011, 68 WBEM_E_INVALID_PROVIDER_REGISTRATION = 0x80041012, 69 WBEM_E_PROVIDER_LOAD_FAILURE = 0x80041013, 70 WBEM_E_INITIALIZATION_FAILURE = 0x80041014, 71 WBEM_E_TRANSPORT_FAILURE = 0x80041015, 72 WBEM_E_INVALID_OPERATION = 0x80041016, 73 WBEM_E_INVALID_QUERY = 0x80041017, 74 WBEM_E_INVALID_QUERY_TYPE = 0x80041018, 75 WBEM_E_ALREADY_EXISTS = 0x80041019, 76 WBEM_E_OVERRIDE_NOT_ALLOWED = 0x8004101a, 77 WBEM_E_PROPAGATED_QUALIFIER = 0x8004101b, 78 WBEM_E_PROPAGATED_PROPERTY = 0x8004101c, 79 WBEM_E_UNEXPECTED = 0x8004101d, 80 WBEM_E_ILLEGAL_OPERATION = 0x8004101e, 81 WBEM_E_CANNOT_BE_KEY = 0x8004101f, 82 WBEM_E_INCOMPLETE_CLASS = 0x80041020, 83 WBEM_E_INVALID_SYNTAX = 0x80041021, 84 WBEM_E_NONDECORATED_OBJECT = 0x80041022, 85 WBEM_E_READ_ONLY = 0x80041023, 86 WBEM_E_PROVIDER_NOT_CAPABLE = 0x80041024, 87 WBEM_E_CLASS_HAS_CHILDREN = 0x80041025, 88 WBEM_E_CLASS_HAS_INSTANCES = 0x80041026, 89 WBEM_E_QUERY_NOT_IMPLEMENTED = 0x80041027, 90 WBEM_E_ILLEGAL_NULL = 0x80041028, 91 WBEM_E_INVALID_QUALIFIER_TYPE = 0x80041029, 92 WBEM_E_INVALID_PROPERTY_TYPE = 0x8004102a, 93 WBEM_E_VALUE_OUT_OF_RANGE = 0x8004102b, 94 WBEM_E_CANNOT_BE_SINGLETON = 0x8004102c, 95 WBEM_E_INVALID_CIM_TYPE = 0x8004102d, 96 WBEM_E_INVALID_METHOD = 0x8004102e, 97 WBEM_E_INVALID_METHOD_PARAMETERS = 0x8004102f, 98 WBEM_E_SYSTEM_PROPERTY = 0x80041030, 99 WBEM_E_INVALID_PROPERTY = 0x80041031, 100 WBEM_E_CALL_CANCELLED = 0x80041032, 101 WBEM_E_SHUTTING_DOWN = 0x80041033, 102 WBEM_E_PROPAGATED_METHOD = 0x80041034, 103 WBEM_E_UNSUPPORTED_PARAMETER = 0x80041035, 104 WBEM_E_MISSING_PARAMETER_ID = 0x80041036, 105 WBEM_E_INVALID_PARAMETER_ID = 0x80041037, 106 WBEM_E_NONCONSECUTIVE_PARAMETER_IDS = 0x80041038, 107 WBEM_E_PARAMETER_ID_ON_RETVAL = 0x80041039, 108 WBEM_E_INVALID_OBJECT_PATH = 0x8004103a, 109 WBEM_E_OUT_OF_DISK_SPACE = 0x8004103b, 110 WBEM_E_BUFFER_TOO_SMALL = 0x8004103c, 111 WBEM_E_UNSUPPORTED_PUT_EXTENSION = 0x8004103d, 112 WBEM_E_UNKNOWN_OBJECT_TYPE = 0x8004103e, 113 WBEM_E_UNKNOWN_PACKET_TYPE = 0x8004103f, 114 WBEM_E_MARSHAL_VERSION_MISMATCH = 0x80041040, 115 WBEM_E_MARSHAL_INVALID_SIGNATURE = 0x80041041, 116 WBEM_E_INVALID_QUALIFIER = 0x80041042, 117 WBEM_E_INVALID_DUPLICATE_PARAMETER = 0x80041043, 118 WBEM_E_TOO_MUCH_DATA = 0x80041044, 119 WBEM_E_SERVER_TOO_BUSY = 0x80041045, 120 WBEM_E_INVALID_FLAVOR = 0x80041046, 121 WBEM_E_CIRCULAR_REFERENCE = 0x80041047, 122 WBEM_E_UNSUPPORTED_CLASS_UPDATE = 0x80041048, 123 WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE = 0x80041049, 124 WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE = 0x80041050, 125 WBEM_E_TOO_MANY_PROPERTIES = 0x80041051, 126 WBEM_E_UPDATE_TYPE_MISMATCH = 0x80041052, 127 WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED = 0x80041053, 128 WBEM_E_UPDATE_PROPAGATED_METHOD = 0x80041054, 129 WBEM_E_METHOD_NOT_IMPLEMENTED = 0x80041055, 130 WBEM_E_METHOD_DISABLED = 0x80041056, 131 WBEM_E_REFRESHER_BUSY = 0x80041057, 132 WBEM_E_UNPARSABLE_QUERY = 0x80041058, 133 WBEM_E_NOT_EVENT_CLASS = 0x80041059, 134 WBEM_E_MISSING_GROUP_WITHIN = 0x8004105a, 135 WBEM_E_MISSING_AGGREGATION_LIST = 0x8004105b, 136 WBEM_E_PROPERTY_NOT_AN_OBJECT = 0x8004105c, 137 WBEM_E_AGGREGATING_BY_OBJECT = 0x8004105d, 138 WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY = 0x8004105f, 139 WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING = 0x80041060, 140 WBEM_E_QUEUE_OVERFLOW = 0x80041061, 141 WBEM_E_PRIVILEGE_NOT_HELD = 0x80041062, 142 WBEM_E_INVALID_OPERATOR = 0x80041063, 143 WBEM_E_LOCAL_CREDENTIALS = 0x80041064, 144 WBEM_E_CANNOT_BE_ABSTRACT = 0x80041065, 145 WBEM_E_AMENDED_OBJECT = 0x80041066, 146 WBEM_E_CLIENT_TOO_SLOW = 0x80041067, 147 WBEM_E_NULL_SECURITY_DESCRIPTOR = 0x80041068, 148 WBEM_E_TIMED_OUT = 0x80041069, 149 WBEM_E_INVALID_ASSOCIATION = 0x8004106a, 150 WBEM_E_AMBIGUOUS_OPERATION = 0x8004106b, 151 WBEM_E_QUOTA_VIOLATION = 0x8004106c, 152 WBEM_E_RESERVED_001 = 0x8004106d, 153 WBEM_E_RESERVED_002 = 0x8004106e, 154 WBEM_E_UNSUPPORTED_LOCALE = 0x8004106f, 155 WBEM_E_HANDLE_OUT_OF_DATE = 0x80041070, 156 WBEM_E_CONNECTION_FAILED = 0x80041071, 157 WBEM_E_INVALID_HANDLE_REQUEST = 0x80041072, 158 WBEM_E_PROPERTY_NAME_TOO_WIDE = 0x80041073, 159 WBEM_E_CLASS_NAME_TOO_WIDE = 0x80041074, 160 WBEM_E_METHOD_NAME_TOO_WIDE = 0x80041075, 161 WBEM_E_QUALIFIER_NAME_TOO_WIDE = 0x80041076, 162 WBEM_E_RERUN_COMMAND = 0x80041077, 163 WBEM_E_DATABASE_VER_MISMATCH = 0x80041078, 164 WBEM_E_VETO_DELETE = 0x80041079, 165 WBEM_E_VETO_PUT = 0x8004107a, 166 WBEM_E_INVALID_LOCALE = 0x80041080, 167 WBEM_E_PROVIDER_SUSPENDED = 0x80041081, 168 WBEM_E_SYNCHRONIZATION_REQUIRED = 0x80041082, 169 WBEM_E_NO_SCHEMA = 0x80041083, 170 WBEM_E_PROVIDER_ALREADY_REGISTERED = 0x80041084, 171 WBEM_E_PROVIDER_NOT_REGISTERED = 0x80041085, 172 WBEM_E_FATAL_TRANSPORT_ERROR = 0x80041086, 173 WBEM_E_ENCRYPTED_CONNECTION_REQUIRED = 0x80041087, 174 WBEM_E_PROVIDER_TIMED_OUT = 0x80041088, 175 WBEM_E_NO_KEY = 0x80041089, 176 WBEM_E_PROVIDER_DISABLED = 0x8004108a 177} WBEMSTATUS; 178 179typedef [v1_enum] enum tag_WBEM_STATUS_TYPE 180{ 181 WBEM_STATUS_COMPLETE = 0, 182 WBEM_STATUS_REQUIREMENTS = 1, 183 WBEM_STATUS_PROGRESS = 2 184} WBEM_STATUS_TYPE; 185 186typedef [v1_enum] enum tag_WBEM_TIMEOUT_TYPE 187{ 188 WBEM_NO_WAIT = 0, 189 WBEM_INFINITE = 0xffffffff 190} WBEM_TIMEOUT_TYPE; 191 192typedef [v1_enum] enum tag_WBEM_CONDITION_FLAG_TYPE 193{ 194 WBEM_FLAG_ALWAYS = 0, 195 WBEM_FLAG_ONLY_IF_TRUE = 0x1, 196 WBEM_FLAG_ONLY_IF_FALSE = 0x2, 197 WBEM_FLAG_ONLY_IF_IDENTICAL = 0x3, 198 WBEM_MASK_PRIMARY_CONDITION = 0x3, 199 WBEM_FLAG_KEYS_ONLY = 0x4, 200 WBEM_FLAG_REFS_ONLY = 0x8, 201 WBEM_FLAG_LOCAL_ONLY = 0x10, 202 WBEM_FLAG_PROPAGATED_ONLY = 0x20, 203 WBEM_FLAG_SYSTEM_ONLY = 0x30, 204 WBEM_FLAG_NONSYSTEM_ONLY = 0x40, 205 WBEM_MASK_CONDITION_ORIGIN = 0x70, 206 WBEM_FLAG_CLASS_OVERRIDES_ONLY = 0x100, 207 WBEM_FLAG_CLASS_LOCAL_AND_OVERRIDES = 0x200, 208 WBEM_MASK_CLASS_CONDITION = 0x300 209} WBEM_CONDITION_FLAG_TYPE; 210 211typedef [v1_enum] enum tag_WBEM_FLAVOR_TYPE 212{ 213 WBEM_FLAVOR_DONT_PROPAGATE = 0, 214 WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE = 0x1, 215 WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS = 0x2, 216 WBEM_FLAVOR_MASK_PROPAGATION = 0xf, 217 WBEM_FLAVOR_OVERRIDABLE = 0, 218 WBEM_FLAVOR_NOT_OVERRIDABLE = 0x10, 219 WBEM_FLAVOR_MASK_PERMISSIONS = 0x10, 220 WBEM_FLAVOR_ORIGIN_LOCAL = 0, 221 WBEM_FLAVOR_ORIGIN_PROPAGATED = 0x20, 222 WBEM_FLAVOR_ORIGIN_SYSTEM = 0x40, 223 WBEM_FLAVOR_MASK_ORIGIN = 0x60, 224 WBEM_FLAVOR_NOT_AMENDED = 0, 225 WBEM_FLAVOR_AMENDED = 0x80, 226 WBEM_FLAVOR_MASK_AMENDED = 0x80 227} WBEM_FLAVOR_TYPE; 228 229typedef [v1_enum] enum tag_WBEM_GENUS_TYPE 230{ 231 WBEM_GENUS_CLASS = 1, 232 WBEM_GENUS_INSTANCE = 2 233} WBEM_GENUS_TYPE; 234 235typedef [v1_enum] enum tag_CIMTYPE_ENUMERATION 236{ 237 CIM_ILLEGAL = 0xfff, 238 CIM_EMPTY = 0, 239 CIM_SINT16 = 2, 240 CIM_SINT32 = 3, 241 CIM_REAL32 = 4, 242 CIM_REAL64 = 5, 243 CIM_STRING = 8, 244 CIM_BOOLEAN = 11, 245 CIM_OBJECT = 13, 246 CIM_SINT8 = 16, 247 CIM_UINT8 = 17, 248 CIM_UINT16 = 18, 249 CIM_UINT32 = 19, 250 CIM_SINT64 = 20, 251 CIM_UINT64 = 21, 252 CIM_DATETIME = 101, 253 CIM_REFERENCE = 102, 254 CIM_CHAR16 = 103, 255 CIM_FLAG_ARRAY = 0x2000 256} CIMTYPE_ENUMERATION; 257 258typedef long CIMTYPE; 259 260[ 261 object, 262 restricted, 263 local, 264 uuid(dc12a687-737f-11cf-884d-00aa004b2e24), 265 pointer_default(unique) 266] 267interface IWbemLocator : IUnknown 268{ 269 HRESULT ConnectServer( 270 [in] const BSTR strNetworkResource, 271 [in] const BSTR strUser, 272 [in] const BSTR strPassword, 273 [in] const BSTR strLocale, 274 [in] LONG lSecurityFlags, 275 [in] const BSTR strAuthority, 276 [in] IWbemContext *pCtx, 277 [out] IWbemServices **ppNamespace); 278}; 279 280[ 281 object, 282 local, 283 uuid(eb87e1bc-3233-11d2-aec9-00c04fb68820) 284] 285interface IWbemStatusCodeText : IUnknown 286{ 287 HRESULT GetErrorCodeText( 288 [in] HRESULT hRes, 289 [in] LCID LocaleId, 290 [in] LONG lFlags, 291 [out] BSTR *MessageText); 292 293 HRESULT GetFacilityCodeText( 294 [in] HRESULT hRes, 295 [in] LCID LocaleId, 296 [in] LONG lFlags, 297 [out] BSTR *MessageText); 298}; 299 300[ 301 object, 302 restricted, 303 uuid(7c857801-7381-11cf-884d-00aa004b2e24) 304] 305interface IWbemObjectSink : IUnknown 306{ 307 HRESULT Indicate( 308 [in] long lObjectCount, 309 [in, size_is(lObjectCount)] IWbemClassObject **apObjArray); 310 311 HRESULT SetStatus( 312 [in] long lFlags, 313 [in] HRESULT hResult, 314 [in] BSTR strParam, 315 [in] IWbemClassObject *pObjParam); 316}; 317 318typedef [v1_enum] enum tag_WBEM_GENERIC_FLAG_TYPE 319{ 320 WBEM_FLAG_RETURN_WBEM_COMPLETE = 0, 321 WBEM_FLAG_BIDIRECTIONAL = 0, 322 WBEM_FLAG_RETURN_ERROR_OBJECT = 0, 323 WBEM_FLAG_DONT_SEND_STATUS = 0, 324 WBEM_FLAG_SEND_ONLY_SELECTED = 0, 325 WBEM_FLAG_RETURN_IMMEDIATELY = 0x10, 326 WBEM_FLAG_FORWARD_ONLY = 0x20, 327 WBEM_FLAG_NO_ERROR_OBJECT = 0x40, 328 WBEM_FLAG_SEND_STATUS = 0x80, 329 WBEM_FLAG_ENSURE_LOCATABLE = 0x100, 330 WBEM_FLAG_DIRECT_READ = 0x200, 331 WBEM_MASK_RESERVED_FLAGS = 0x1f000, 332 WBEM_FLAG_USE_AMENDED_QUALIFIERS = 0x20000, 333 WBEM_FLAG_STRONG_VALIDATION = 0x100000 334} WBEM_GENERIC_FLAG_TYPE; 335 336[ 337 object, 338 restricted, 339 uuid(9556dc99-828c-11cf-a37e-00aa003240c7), 340 pointer_default(unique) 341] 342interface IWbemServices : IUnknown 343{ 344 HRESULT OpenNamespace( 345 [in] const BSTR strNamespace, 346 [in] long lFlags, 347 [in] IWbemContext *pCtx, 348 [out] IWbemServices **ppWorkingNamespace, 349 [out] IWbemCallResult **ppResult); 350 351 HRESULT CancelAsyncCall( 352 [in] IWbemObjectSink *pSink); 353 354 HRESULT QueryObjectSink( 355 [in] long lFlags, 356 [out] IWbemObjectSink **ppResponseHandler); 357 358 HRESULT GetObject( 359 [in] const BSTR strObjectPath, 360 [in] long lFlags, 361 [in] IWbemContext *pCtx, 362 [out] IWbemClassObject **ppObject, 363 [out] IWbemCallResult **ppCallResult); 364 365 HRESULT GetObjectAsync( 366 [in] const BSTR strObjectPath, 367 [in] long lFlags, 368 [in] IWbemContext *pCtx, 369 [in] IWbemObjectSink *pResponseHandler); 370 371 HRESULT PutClass( 372 [in] IWbemClassObject *pObject, 373 [in] long lFlags, 374 [in] IWbemContext *pCtx, 375 [out] IWbemCallResult **ppCallResult); 376 377 HRESULT PutClassAsync( 378 [in] IWbemClassObject *pObject, 379 [in] long lFlags, 380 [in] IWbemContext *pCtx, 381 [in] IWbemObjectSink *pResponseHandler); 382 383 HRESULT DeleteClass( 384 [in] const BSTR strClass, 385 [in] long lFlags, 386 [in] IWbemContext *pCtx, 387 [out] IWbemCallResult **ppCallResult); 388 389 HRESULT DeleteClassAsync( 390 [in] const BSTR strClass, 391 [in] long lFlags, 392 [in] IWbemContext *pCtx, 393 [in] IWbemObjectSink *pResponseHandler); 394 395 HRESULT CreateClassEnum( 396 [in] const BSTR strSuperclass, 397 [in] long lFlags, 398 [in] IWbemContext *pCtx, 399 [out] IEnumWbemClassObject **ppEnum); 400 401 HRESULT CreateClassEnumAsync( 402 [in] const BSTR strSuperclass, 403 [in] long lFlags, 404 [in] IWbemContext *pCtx, 405 [in] IWbemObjectSink *pResponseHandler); 406 407 HRESULT PutInstance( 408 [in] IWbemClassObject *pInst, 409 [in] long lFlags, 410 [in] IWbemContext *pCtx, 411 [out] IWbemCallResult **ppCallResult); 412 413 HRESULT PutInstanceAsync( 414 [in] IWbemClassObject *pInst, 415 [in] long lFlags, 416 [in] IWbemContext *pCtx, 417 [in] IWbemObjectSink *pResponseHandler); 418 419 HRESULT DeleteInstance( 420 [in] const BSTR strObjectPath, 421 [in] long lFlags, 422 [in] IWbemContext *pCtx, 423 [out] IWbemCallResult **ppCallResult); 424 425 HRESULT DeleteInstanceAsync( 426 [in] const BSTR strObjectPath, 427 [in] long lFlags, 428 [in] IWbemContext *pCtx, 429 [in] IWbemObjectSink *pResponseHandler); 430 431 HRESULT CreateInstanceEnum( 432 [in] const BSTR strFilter, 433 [in] long lFlags, 434 [in] IWbemContext *pCtx, 435 [out] IEnumWbemClassObject **ppEnum); 436 437 HRESULT CreateInstanceEnumAsync( 438 [in] const BSTR strFilter, 439 [in] long lFlags, 440 [in] IWbemContext *pCtx, 441 [in] IWbemObjectSink *pResponseHandler); 442 443 HRESULT ExecQuery( 444 [in] const BSTR strQueryLanguage, 445 [in] const BSTR strQuery, 446 [in] long lFlags, 447 [in] IWbemContext *pCtx, 448 [out] IEnumWbemClassObject **ppEnum); 449 450 HRESULT ExecQueryAsync( 451 [in] const BSTR strQueryLanguage, 452 [in] const BSTR strQuery, 453 [in] long lFlags, 454 [in] IWbemContext *pCtx, 455 [in] IWbemObjectSink *pResponseHandler); 456 457 HRESULT ExecNotificationQuery( 458 [in] const BSTR strQueryLanguage, 459 [in] const BSTR strQuery, 460 [in] long lFlags, 461 [in] IWbemContext *pCtx, 462 [out] IEnumWbemClassObject **ppEnum); 463 464 HRESULT ExecNotificationQueryAsync( 465 [in] const BSTR strQueryLanguage, 466 [in] const BSTR strQuery, 467 [in] long lFlags, 468 [in] IWbemContext *pCtx, 469 [in] IWbemObjectSink *pResponseHandler); 470 471 HRESULT ExecMethod( 472 [in] const BSTR strObjectPath, 473 [in] const BSTR strMethodName, 474 [in] long lFlags, 475 [in] IWbemContext *pCtx, 476 [in] IWbemClassObject *pInParams, 477 [out] IWbemClassObject **ppOutParams, 478 [out] IWbemCallResult **ppCallResult); 479 480 HRESULT ExecMethodAsync( 481 [in] const BSTR strObjectPath, 482 [in] const BSTR strMethodName, 483 [in] long lFlags, 484 [in] IWbemContext *pCtx, 485 [in] IWbemClassObject *pInParams, 486 [in] IWbemObjectSink *pResponseHandler); 487}; 488 489[ 490 object, 491 restricted, 492 uuid(027947e1-d731-11ce-a357-000000000001) 493] 494interface IEnumWbemClassObject : IUnknown 495{ 496 HRESULT Reset(); 497 498 HRESULT Next( 499 [in] long lTimeout, 500 [in] ULONG uCount, 501 [out, size_is(uCount), length_is(*puReturned)] IWbemClassObject **apObjects, 502 [out] ULONG *puReturned); 503 504 HRESULT NextAsync( 505 [in] ULONG uCount, 506 [in] IWbemObjectSink *pSink); 507 508 HRESULT Clone( 509 [out] IEnumWbemClassObject **ppEnum); 510 511 HRESULT Skip( 512 [in] long lTimeout, 513 [in] ULONG nCount); 514}; 515 516[ 517 object, 518 restricted, 519 local, 520 uuid(dc12a681-737f-11cf-884d-00aa004b2e24) 521] 522interface IWbemClassObject : IUnknown 523{ 524 HRESULT GetQualifierSet( 525 [out] IWbemQualifierSet **ppQualSet); 526 527 HRESULT Get( 528 [in,string] LPCWSTR wszName, 529 [in] long lFlags, 530 [out] VARIANT *pVal, 531 [out] CIMTYPE *pType, 532 [out] long *plFlavor); 533 534 HRESULT Put( 535 [in,string] LPCWSTR wszName, 536 [in] long lFlags, 537 [in] VARIANT *pVal, 538 [in] CIMTYPE Type); 539 540 HRESULT Delete( 541 [in,string] LPCWSTR wszName); 542 543 HRESULT GetNames( 544 [in,string] LPCWSTR wszQualifierName, 545 [in] long lFlags, 546 [in] VARIANT *pQualifierVal, 547 [out] SAFEARRAY **pNames); 548 549 HRESULT BeginEnumeration( 550 [in] long lEnumFlags); 551 552 HRESULT Next( 553 [in] long lFlags, 554 [out] BSTR *strName, 555 [out] VARIANT *pVal, 556 [out] CIMTYPE *pType, 557 [out] long *plFlavor); 558 559 HRESULT EndEnumeration(); 560 561 HRESULT GetPropertyQualifierSet( 562 [in,string] LPCWSTR wszProperty, 563 [out] IWbemQualifierSet **ppQualSet); 564 565 HRESULT Clone( 566 [out] IWbemClassObject **ppCopy); 567 568 HRESULT GetObjectText( 569 [in] long lFlags, 570 [out] BSTR *pstrObjectText); 571 572 HRESULT SpawnDerivedClass( 573 [in] long lFlags, 574 [out] IWbemClassObject **ppNewClass); 575 576 HRESULT SpawnInstance( 577 [in] long lFlags, 578 [out] IWbemClassObject **ppNewInstance); 579 580 HRESULT CompareTo( 581 [in] long lFlags, 582 [in] IWbemClassObject *pCompareTo); 583 584 HRESULT GetPropertyOrigin( 585 [in,string] LPCWSTR wszName, 586 [out] BSTR *pstrClassName); 587 588 HRESULT InheritsFrom( 589 [in] LPCWSTR strAncestor); 590 591 HRESULT GetMethod( 592 [in,string] LPCWSTR wszName, 593 [in] long lFlags, 594 [out] IWbemClassObject **ppInSignature, 595 [out] IWbemClassObject **ppOutSignature); 596 597 HRESULT PutMethod( 598 [in,string] LPCWSTR wszName, 599 [in] long lFlags, 600 [in] IWbemClassObject *pInSignature, 601 [in] IWbemClassObject *pOutSignature); 602 603 HRESULT DeleteMethod( 604 [in,string] LPCWSTR wszName); 605 606 HRESULT BeginMethodEnumeration( 607 [in] long lEnumFlags); 608 609 HRESULT NextMethod( 610 [in] long lFlags, 611 [out] BSTR *pstrName, 612 [out] IWbemClassObject **ppInSignature, 613 [out] IWbemClassObject **ppOutSignature); 614 615 HRESULT EndMethodEnumeration(); 616 617 HRESULT GetMethodQualifierSet( 618 [in,string] LPCWSTR wszMethod, 619 [out] IWbemQualifierSet **ppQualSet); 620 621 HRESULT GetMethodOrigin( 622 [in,string] LPCWSTR wszMethodName, 623 [out] BSTR *pstrClassName); 624} 625 626[ 627 object, 628 restricted, 629 local, 630 uuid(dc12a680-737f-11cf-884d-00aa004b2e24) 631] 632interface IWbemQualifierSet : IUnknown 633{ 634 HRESULT Get( 635 [in,string] LPCWSTR wszName, 636 [in] long lFlags, 637 [out] VARIANT *pVal, 638 [out] long *plFlavor); 639 640 HRESULT Put( 641 [in,string] LPCWSTR wszName, 642 [in] VARIANT *pVal, 643 [in] long lFlavor); 644 645 HRESULT Delete( 646 [in,string] LPCWSTR wszName); 647 648 HRESULT GetNames( 649 [in] long lFlags, 650 [out] SAFEARRAY **pNames); 651 652 HRESULT BeginEnumeration( 653 [in] long lFlags); 654 655 HRESULT Next( 656 [in] long lFlags, 657 [out] BSTR *pstrName, 658 [out] VARIANT *pVal, 659 [out] long *plFlavor); 660 661 HRESULT EndEnumeration(); 662}; 663