ddraw: Use wined3d_get_adapter_display_mode() in ddraw7_GetScanLine().
[wine] / include / wbemcli.idl
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
19 cpp_quote("DEFINE_GUID(CLSID_WbemLocator, 0x4590f811,0x1d3A,0x11d0,0x89,0x1f,0x00,0xaa,0x00,0x4b,0x2e,0x24);")
20 cpp_quote("DEFINE_GUID(CLSID_WbemStatusCode, 0xeb87e1bd,0x3233,0x11d2,0xae,0xc9,0x00,0xc0,0x4f,0xb6,0x88,0x20);")
21
22 import "oaidl.idl";
23 import "objidl.idl";
24
25 interface IWbemContext;
26 interface IWbemServices;
27 interface IWbemStatusCodeText;
28 interface IWbemCallResult;
29 interface IWbemObjectSink;
30 interface IWbemClassObject;
31 interface IEnumWbemClassObject;
32 interface IWbemQualifierSet;
33
34 typedef [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
179 typedef [v1_enum] enum tag_WBEM_TIMEOUT_TYPE
180 {
181     WBEM_NO_WAIT  = 0,
182     WBEM_INFINITE = 0xffffffff
183 } WBEM_TIMEOUT_TYPE;
184
185 typedef [v1_enum] enum tag_WBEM_CONDITION_FLAG_TYPE
186 {
187     WBEM_FLAG_ALWAYS                    = 0,
188     WBEM_FLAG_ONLY_IF_TRUE              = 0x1,
189     WBEM_FLAG_ONLY_IF_FALSE             = 0x2,
190     WBEM_FLAG_ONLY_IF_IDENTICAL         = 0x3,
191     WBEM_MASK_PRIMARY_CONDITION         = 0x3,
192     WBEM_FLAG_KEYS_ONLY                 = 0x4,
193     WBEM_FLAG_REFS_ONLY                 = 0x8,
194     WBEM_FLAG_LOCAL_ONLY                = 0x10,
195     WBEM_FLAG_PROPAGATED_ONLY           = 0x20,
196     WBEM_FLAG_SYSTEM_ONLY               = 0x30,
197     WBEM_FLAG_NONSYSTEM_ONLY            = 0x40,
198     WBEM_MASK_CONDITION_ORIGIN          = 0x70,
199     WBEM_FLAG_CLASS_OVERRIDES_ONLY      = 0x100,
200     WBEM_FLAG_CLASS_LOCAL_AND_OVERRIDES = 0x200,
201     WBEM_MASK_CLASS_CONDITION           = 0x300
202 } WBEM_CONDITION_FLAG_TYPE;
203
204 typedef [v1_enum] enum tag_WBEM_GENUS_TYPE
205 {
206     WBEM_GENUS_CLASS = 1,
207     WBEM_GENUS_INSTANCE = 2
208 } WBEM_GENUS_TYPE;
209
210 typedef [v1_enum] enum tag_CIMTYPE_ENUMERATION
211 {
212     CIM_ILLEGAL = 0xfff,
213     CIM_EMPTY   = 0,
214     CIM_SINT16  = 2,
215     CIM_SINT32  = 3,
216     CIM_REAL32  = 4,
217     CIM_REAL64  = 5,
218     CIM_STRING  = 8,
219     CIM_BOOLEAN = 11,
220     CIM_OBJECT  = 13,
221     CIM_SINT8   = 16,
222     CIM_UINT8   = 17,
223     CIM_UINT16  = 18,
224     CIM_UINT32  = 19,
225     CIM_SINT64  = 20,
226     CIM_UINT64  = 21,
227     CIM_DATETIME   = 101,
228     CIM_REFERENCE  = 102,
229     CIM_CHAR16     = 103,
230     CIM_FLAG_ARRAY = 0x2000
231 } CIMTYPE_ENUMERATION;
232
233 typedef long CIMTYPE;
234
235 [
236     object,
237     restricted,
238     local,
239     uuid(dc12a687-737f-11cf-884d-00aa004b2e24),
240     pointer_default(unique)
241 ]
242 interface IWbemLocator : IUnknown
243 {
244     HRESULT ConnectServer(
245         [in] const BSTR strNetworkResource,
246         [in] const BSTR strUser,
247         [in] const BSTR strPassword,
248         [in] const BSTR strLocale,
249         [in] LONG lSecurityFlags,
250         [in] const BSTR strAuthority,
251         [in] IWbemContext *pCtx,
252         [out] IWbemServices **ppNamespace);
253 };
254
255 [
256     object,
257     local,
258     uuid(eb87e1bc-3233-11d2-aec9-00c04fb68820)
259 ]
260 interface IWbemStatusCodeText : IUnknown
261 {
262     HRESULT GetErrorCodeText(
263         [in] HRESULT hRes,
264         [in] LCID LocaleId,
265         [in] LONG lFlags,
266         [out] BSTR *MessageText);
267
268     HRESULT GetFacilityCodeText(
269         [in] HRESULT hRes,
270         [in] LCID LocaleId,
271         [in] LONG lFlags,
272         [out] BSTR *MessageText);
273 };
274
275 typedef [v1_enum] enum tag_WBEM_GENERIC_FLAG_TYPE
276 {
277     WBEM_FLAG_RETURN_WBEM_COMPLETE      = 0,
278     WBEM_FLAG_BIDIRECTIONAL             = 0,
279     WBEM_FLAG_RETURN_ERROR_OBJECT       = 0,
280     WBEM_FLAG_DONT_SEND_STATUS          = 0,
281     WBEM_FLAG_SEND_ONLY_SELECTED        = 0,
282     WBEM_FLAG_RETURN_IMMEDIATELY        = 0x10,
283     WBEM_FLAG_FORWARD_ONLY              = 0x20,
284     WBEM_FLAG_NO_ERROR_OBJECT           = 0x40,
285     WBEM_FLAG_SEND_STATUS               = 0x80,
286     WBEM_FLAG_ENSURE_LOCATABLE          = 0x100,
287     WBEM_FLAG_DIRECT_READ               = 0x200,
288     WBEM_MASK_RESERVED_FLAGS            = 0x1f000,
289     WBEM_FLAG_USE_AMENDED_QUALIFIERS    = 0x20000,
290     WBEM_FLAG_STRONG_VALIDATION         = 0x100000
291 } WBEM_GENERIC_FLAG_TYPE;
292
293 [
294     object,
295     restricted,
296     uuid(9556dc99-828c-11cf-a37e-00aa003240c7),
297     pointer_default(unique)
298 ]
299 interface IWbemServices : IUnknown
300 {
301     HRESULT OpenNamespace(
302         [in] const BSTR strNamespace,
303         [in] long lFlags,
304         [in] IWbemContext *pCtx,
305         [out] IWbemServices **ppWorkingNamespace,
306         [out] IWbemCallResult **ppResult);
307
308     HRESULT CancelAsyncCall(
309         [in] IWbemObjectSink *pSink);
310
311     HRESULT QueryObjectSink(
312         [in] long lFlags,
313         [out] IWbemObjectSink **ppResponseHandler);
314
315     HRESULT GetObject(
316         [in] const BSTR strObjectPath,
317         [in] long lFlags,
318         [in] IWbemContext *pCtx,
319         [out] IWbemClassObject **ppObject,
320         [out] IWbemCallResult **ppCallResult);
321
322     HRESULT GetObjectAsync(
323         [in] const BSTR strObjectPath,
324         [in] long lFlags,
325         [in] IWbemContext *pCtx,
326         [in] IWbemObjectSink *pResponseHandler);
327
328     HRESULT PutClass(
329         [in] IWbemClassObject *pObject,
330         [in] long lFlags,
331         [in] IWbemContext *pCtx,
332         [out] IWbemCallResult **ppCallResult);
333
334     HRESULT PutClassAsync(
335         [in] IWbemClassObject *pObject,
336         [in] long lFlags,
337         [in] IWbemContext *pCtx,
338         [in] IWbemObjectSink *pResponseHandler);
339
340     HRESULT DeleteClass(
341         [in] const BSTR strClass,
342         [in] long lFlags,
343         [in] IWbemContext *pCtx,
344         [out] IWbemCallResult **ppCallResult);
345
346     HRESULT DeleteClassAsync(
347         [in] const BSTR strClass,
348         [in] long lFlags,
349         [in] IWbemContext *pCtx,
350         [in] IWbemObjectSink *pResponseHandler);
351
352     HRESULT CreateClassEnum(
353         [in] const BSTR strSuperclass,
354         [in] long lFlags,
355         [in] IWbemContext *pCtx,
356         [out] IEnumWbemClassObject **ppEnum);
357
358     HRESULT CreateClassEnumAsync(
359         [in] const BSTR strSuperclass,
360         [in] long lFlags,
361         [in] IWbemContext *pCtx,
362         [in] IWbemObjectSink *pResponseHandler);
363
364     HRESULT PutInstance(
365         [in] IWbemClassObject *pInst,
366         [in] long lFlags,
367         [in] IWbemContext *pCtx,
368         [out] IWbemCallResult **ppCallResult);
369
370     HRESULT PutInstanceAsync(
371         [in] IWbemClassObject *pInst,
372         [in] long lFlags,
373         [in] IWbemContext *pCtx,
374         [in] IWbemObjectSink *pResponseHandler);
375
376     HRESULT DeleteInstance(
377         [in] const BSTR strObjectPath,
378         [in] long lFlags,
379         [in] IWbemContext *pCtx,
380         [out] IWbemCallResult **ppCallResult);
381
382     HRESULT DeleteInstanceAsync(
383         [in] const BSTR strObjectPath,
384         [in] long lFlags,
385         [in] IWbemContext *pCtx,
386         [in] IWbemObjectSink *pResponseHandler);
387
388     HRESULT CreateInstanceEnum(
389         [in] const BSTR strFilter,
390         [in] long lFlags,
391         [in] IWbemContext *pCtx,
392         [out] IEnumWbemClassObject **ppEnum);
393
394     HRESULT CreateInstanceEnumAsync(
395         [in] const BSTR strFilter,
396         [in] long lFlags,
397         [in] IWbemContext *pCtx,
398         [in] IWbemObjectSink *pResponseHandler);
399
400     HRESULT ExecQuery(
401         [in] const BSTR strQueryLanguage,
402         [in] const BSTR strQuery,
403         [in] long lFlags,
404         [in] IWbemContext *pCtx,
405         [out] IEnumWbemClassObject **ppEnum);
406
407     HRESULT ExecQueryAsync(
408         [in] const BSTR strQueryLanguage,
409         [in] const BSTR strQuery,
410         [in] long lFlags,
411         [in] IWbemContext *pCtx,
412         [in] IWbemObjectSink *pResponseHandler);
413
414     HRESULT ExecNotificationQuery(
415         [in] const BSTR strQueryLanguage,
416         [in] const BSTR strQuery,
417         [in] long lFlags,
418         [in] IWbemContext *pCtx,
419         [out] IEnumWbemClassObject **ppEnum);
420
421     HRESULT ExecNotificationQueryAsync(
422         [in] const BSTR strQueryLanguage,
423         [in] const BSTR strQuery,
424         [in] long lFlags,
425         [in] IWbemContext *pCtx,
426         [in] IWbemObjectSink *pResponseHandler);
427
428     HRESULT ExecMethod(
429         [in] const BSTR strObjectPath,
430         [in] const BSTR strMethodName,
431         [in] long lFlags,
432         [in] IWbemContext *pCtx,
433         [in] IWbemClassObject *pInParams,
434         [out] IWbemClassObject **ppOutParams,
435         [out] IWbemCallResult **ppCallResult);
436
437     HRESULT ExecMethodAsync(
438         [in] const BSTR strObjectPath,
439         [in] const BSTR strMethodName,
440         [in] long lFlags,
441         [in] IWbemContext *pCtx,
442         [in] IWbemClassObject *pInParams,
443         [in] IWbemObjectSink *pResponseHandler);
444 };
445
446 [
447     object,
448     restricted,
449     uuid(027947e1-d731-11ce-a357-000000000001)
450 ]
451 interface IEnumWbemClassObject : IUnknown
452 {
453     HRESULT Reset();
454
455     HRESULT Next(
456         [in] long lTimeout,
457         [in] ULONG uCount,
458         [out, size_is(uCount), length_is(*puReturned)] IWbemClassObject **apObjects,
459         [out] ULONG *puReturned);
460
461     HRESULT NextAsync(
462         [in] ULONG uCount,
463         [in] IWbemObjectSink *pSink);
464
465     HRESULT Clone(
466         [out] IEnumWbemClassObject **ppEnum);
467
468     HRESULT Skip(
469         [in] long lTimeout,
470         [in] ULONG nCount);
471 };
472
473 [
474     object,
475     restricted,
476     local,
477     uuid(dc12a681-737f-11cf-884d-00aa004b2e24)
478 ]
479 interface IWbemClassObject : IUnknown
480 {
481     HRESULT GetQualifierSet(
482         [out] IWbemQualifierSet **ppQualSet);
483
484     HRESULT Get(
485         [in,string] LPCWSTR wszName,
486         [in] long lFlags,
487         [out] VARIANT *pVal,
488         [out] CIMTYPE *pType,
489         [out] long *plFlavor);
490
491     HRESULT Put(
492         [in,string] LPCWSTR wszName,
493         [in] long lFlags,
494         [in] VARIANT *pVal,
495         [in] CIMTYPE Type);
496
497     HRESULT Delete(
498         [in,string] LPCWSTR wszName);
499
500     HRESULT GetNames(
501         [in,string] LPCWSTR wszQualifierName,
502         [in] long lFlags,
503         [in] VARIANT *pQualifierVal,
504         [out] SAFEARRAY **pNames);
505
506     HRESULT BeginEnumeration(
507         [in] long lEnumFlags);
508
509     HRESULT Next(
510         [in] long lFlags,
511         [out] BSTR *strName,
512         [out] VARIANT *pVal,
513         [out] CIMTYPE *pType,
514         [out] long *plFlavor);
515
516     HRESULT EndEnumeration();
517
518     HRESULT GetPropertyQualifierSet(
519         [in,string] LPCWSTR wszProperty,
520         [out] IWbemQualifierSet **ppQualSet);
521
522     HRESULT Clone(
523         [out] IWbemClassObject **ppCopy);
524
525     HRESULT GetObjectText(
526         [in] long lFlags,
527         [out] BSTR *pstrObjectText);
528
529     HRESULT SpawnDerivedClass(
530         [in] long lFlags,
531         [out] IWbemClassObject **ppNewClass);
532
533     HRESULT SpawnInstance(
534         [in] long lFlags,
535         [out] IWbemClassObject **ppNewInstance);
536
537     HRESULT CompareTo(
538         [in] long lFlags,
539         [in] IWbemClassObject *pCompareTo);
540
541     HRESULT GetPropertyOrigin(
542         [in,string] LPCWSTR wszName,
543         [out] BSTR *pstrClassName);
544
545     HRESULT InheritsFrom(
546         [in] LPCWSTR strAncestor);
547
548     HRESULT GetMethod(
549         [in,string] LPCWSTR wszName,
550         [in] long lFlags,
551         [out] IWbemClassObject **ppInSignature,
552         [out] IWbemClassObject **ppOutSignature);
553
554     HRESULT PutMethod(
555         [in,string] LPCWSTR wszName,
556         [in] long lFlags,
557         [in] IWbemClassObject *pInSignature,
558         [in] IWbemClassObject *pOutSignature);
559
560     HRESULT DeleteMethod(
561         [in,string] LPCWSTR wszName);
562
563     HRESULT BeginMethodEnumeration(
564         [in] long lEnumFlags);
565
566     HRESULT NextMethod(
567         [in] long lFlags,
568         [out] BSTR *pstrName,
569         [out] IWbemClassObject **ppInSignature,
570         [out] IWbemClassObject **ppOutSignature);
571
572     HRESULT EndMethodEnumeration();
573
574     HRESULT GetMethodQualifierSet(
575         [in,string] LPCWSTR wszMethod,
576         [out] IWbemQualifierSet **ppQualSet);
577
578     HRESULT GetMethodOrigin(
579         [in,string] LPCWSTR wszMethodName,
580         [out] BSTR *pstrClassName);
581 }