WIP: Temporarily disable code used only in torture
[idra/samba.git] / librpc / idl / wmi.idl
1 /* 
2  * WMI IDL.  
3  * See http://en.wikipedia.org/wiki/Windows_Management_Instrumentation for more information.
4  */
5 #include "idl_types.h"
6
7 import "dcom.idl";
8 import "misc.idl";
9
10 [
11         uuid("8BC3F05E-D86B-11d0-A075-00C04FB68820")
12 ] coclass WbemLevel1Login
13 {
14     interface IWbemLevel1Login;
15
16 };
17
18 [
19         local,
20         object,
21         uuid("dc12a681-737f-11cf-884d-00aa004b2e24")
22 ]
23 interface IWbemClassObject : IUnknown
24 {
25
26         typedef [noprint] struct {
27                 [value(0x72657355)] uint32 flags;
28                 [string, charset(UTF16)] uint16 data[];
29         } BSTR;
30
31     WERROR Delete(
32         [in, string, charset(UTF16)] uint16 *wszName
33         );
34
35 };
36
37 [
38     uuid(9A653086-174F-11d2-B5F9-00104B703EFD)
39 ]
40 coclass WbemClassObject
41 {
42             interface IWbemClassObject;
43 };
44
45
46 [
47         uuid("9556dc99-828c-11cf-a37e-00aa003240c7"),
48         object,
49         pointer_default(unique)
50 ] interface IWbemServices : IUnknown
51 {
52     typedef [v1_enum] enum
53     {
54         RPC_S_CALL_FAILED               = 1726,
55
56         WBEM_NO_ERROR = 0,
57         WBEM_S_NO_ERROR = 0,
58         WBEM_S_SAME = 0,
59         WBEM_S_FALSE = 1,
60         WBEM_S_ALREADY_EXISTS           = 0x40001,
61         WBEM_S_RESET_TO_DEFAULT         = 0x40002,
62         WBEM_S_DIFFERENT                = 0x40003,
63         WBEM_S_TIMEDOUT                 = 0x40004,
64         WBEM_S_NO_MORE_DATA             = 0x40005,
65         WBEM_S_OPERATION_CANCELLED      = 0x40006,
66         WBEM_S_PENDING                  = 0x40007,
67         WBEM_S_DUPLICATE_OBJECTS        = 0x40008,
68         WBEM_S_ACCESS_DENIED            = 0x40009,
69         WBEM_S_PARTIAL_RESULTS          = 0x40010,
70         WBEM_S_NO_POSTHOOK              = 0x40011,
71         WBEM_S_POSTHOOK_WITH_BOTH       = 0x40012,
72         WBEM_S_POSTHOOK_WITH_NEW        = 0x40013,
73         WBEM_S_POSTHOOK_WITH_STATUS     = 0x40014,
74         WBEM_S_POSTHOOK_WITH_OLD        = 0x40015,
75         WBEM_S_REDO_PREHOOK_WITH_ORIGINAL_OBJECT = 0x40016,
76         WBEM_S_SOURCE_NOT_AVAILABLE     = 0x40017,
77         WBEM_E_FAILED                           = 0x80041001,
78         WBEM_E_NOT_FOUND                        = 0x80041002,
79         WBEM_E_ACCESS_DENIED                    = 0x80041003,
80         WBEM_E_PROVIDER_FAILURE                 = 0x80041004,
81         WBEM_E_TYPE_MISMATCH                    = 0x80041005,
82         WBEM_E_OUT_OF_MEMORY                    = 0x80041006,
83         WBEM_E_INVALID_CONTEXT                  = 0x80041007,
84         WBEM_E_INVALID_PARAMETER                = 0x80041008,
85         WBEM_E_NOT_AVAILABLE                    = 0x80041009,
86         WBEM_E_CRITICAL_ERROR                   = 0x8004100A,
87         WBEM_E_INVALID_STREAM                   = 0x8004100B,
88         WBEM_E_NOT_SUPPORTED                    = 0x8004100C,
89         WBEM_E_INVALID_SUPERCLASS               = 0x8004100D,
90         WBEM_E_INVALID_NAMESPACE                = 0x8004100E,
91         WBEM_E_INVALID_OBJECT                   = 0x8004100F,
92         WBEM_E_INVALID_CLASS                    = 0x80041010,
93         WBEM_E_PROVIDER_NOT_FOUND               = 0x80041011,
94         WBEM_E_INVALID_PROVIDER_REGISTRATION    = 0x80041012,
95         WBEM_E_PROVIDER_LOAD_FAILURE            = 0x80041013,
96         WBEM_E_INITIALIZATION_FAILURE           = 0x80041014,
97         WBEM_E_TRANSPORT_FAILURE                = 0x80041015,
98         WBEM_E_INVALID_OPERATION                = 0x80041016,
99         WBEM_E_INVALID_QUERY                    = 0x80041017,
100         WBEM_E_INVALID_QUERY_TYPE               = 0x80041018,
101         WBEM_E_ALREADY_EXISTS                   = 0x80041019,
102         WBEM_E_OVERRIDE_NOT_ALLOWED             = 0x8004101A,
103         WBEM_E_PROPAGATED_QUALIFIER             = 0x8004101B,
104         WBEM_E_PROPAGATED_PROPERTY              = 0x8004101C,
105         WBEM_E_UNEXPECTED                       = 0x8004101D,
106         WBEM_E_ILLEGAL_OPERATION                = 0x8004101E,
107         WBEM_E_CANNOT_BE_KEY                    = 0x8004101F,
108         WBEM_E_INCOMPLETE_CLASS                 = 0x80041020,
109         WBEM_E_INVALID_SYNTAX                   = 0x80041021,
110         WBEM_E_NONDECORATED_OBJECT              = 0x80041022,
111         WBEM_E_READ_ONLY                        = 0x80041023,
112         WBEM_E_PROVIDER_NOT_CAPABLE             = 0x80041024,
113         WBEM_E_CLASS_HAS_CHILDREN               = 0x80041025,
114         WBEM_E_CLASS_HAS_INSTANCES              = 0x80041026,
115         WBEM_E_QUERY_NOT_IMPLEMENTED            = 0x80041027,
116         WBEM_E_ILLEGAL_NULL                     = 0x80041028,
117         WBEM_E_INVALID_QUALIFIER_TYPE           = 0x80041029,
118         WBEM_E_INVALID_PROPERTY_TYPE            = 0x8004102A,
119         WBEM_E_VALUE_OUT_OF_RANGE               = 0x8004102B,
120         WBEM_E_CANNOT_BE_SINGLETON              = 0x8004102C,
121         WBEM_E_INVALID_CIM_TYPE                 = 0x8004102D,
122         WBEM_E_INVALID_METHOD                   = 0x8004102E,
123         WBEM_E_INVALID_METHOD_PARAMETERS        = 0x8004102F,
124         WBEM_E_SYSTEM_PROPERTY                  = 0x80041030,
125         WBEM_E_INVALID_PROPERTY                 = 0x80041031,
126         WBEM_E_CALL_CANCELLED                   = 0x80041032,
127         WBEM_E_SHUTTING_DOWN                    = 0x80041033,
128         WBEM_E_PROPAGATED_METHOD                = 0x80041034,
129         WBEM_E_UNSUPPORTED_PARAMETER            = 0x80041035,
130         WBEM_E_MISSING_PARAMETER_ID             = 0x80041036,
131         WBEM_E_INVALID_PARAMETER_ID             = 0x80041037,
132         WBEM_E_NONCONSECUTIVE_PARAMETER_IDS     = 0x80041038,
133         WBEM_E_PARAMETER_ID_ON_RETVAL           = 0x80041039,
134         WBEM_E_INVALID_OBJECT_PATH              = 0x8004103A,
135         WBEM_E_OUT_OF_DISK_SPACE                = 0x8004103B,
136         WBEM_E_BUFFER_TOO_SMALL                 = 0x8004103C,
137         WBEM_E_UNSUPPORTED_PUT_EXTENSION        = 0x8004103D,
138         WBEM_E_UNKNOWN_OBJECT_TYPE              = 0x8004103E,
139         WBEM_E_UNKNOWN_PACKET_TYPE              = 0x8004103F,
140         WBEM_E_MARSHAL_VERSION_MISMATCH         = 0x80041040,
141         WBEM_E_MARSHAL_INVALID_SIGNATURE        = 0x80041041,
142         WBEM_E_INVALID_QUALIFIER                = 0x80041042,
143         WBEM_E_INVALID_DUPLICATE_PARAMETER      = 0x80041043,
144         WBEM_E_TOO_MUCH_DATA                    = 0x80041044,
145         WBEM_E_SERVER_TOO_BUSY                  = 0x80041045,
146         WBEM_E_INVALID_FLAVOR                   = 0x80041046,
147         WBEM_E_CIRCULAR_REFERENCE               = 0x80041047,
148         WBEM_E_UNSUPPORTED_CLASS_UPDATE         = 0x80041048,
149         WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE    = 0x80041049,
150         WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE  = 0x80041050,
151         WBEM_E_TOO_MANY_PROPERTIES              = 0x80041051,
152         WBEM_E_UPDATE_TYPE_MISMATCH             = 0x80041052,
153         WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED      = 0x80041053,
154         WBEM_E_UPDATE_PROPAGATED_METHOD         = 0x80041054,
155         WBEM_E_METHOD_NOT_IMPLEMENTED           = 0x80041055,
156         WBEM_E_METHOD_DISABLED                  = 0x80041056,
157         WBEM_E_REFRESHER_BUSY                   = 0x80041057,
158         WBEM_E_UNPARSABLE_QUERY                 = 0x80041058,
159         WBEM_E_NOT_EVENT_CLASS                  = 0x80041059,
160         WBEM_E_MISSING_GROUP_WITHIN             = 0x8004105A,
161         WBEM_E_MISSING_AGGREGATION_LIST         = 0x8004105B,
162         WBEM_E_PROPERTY_NOT_AN_OBJECT           = 0x8004105C,
163         WBEM_E_AGGREGATING_BY_OBJECT            = 0x8004105D,
164         WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY   = 0x8004105F,
165         WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING   = 0x80041060,
166         WBEM_E_QUEUE_OVERFLOW                   = 0x80041061,
167         WBEM_E_PRIVILEGE_NOT_HELD               = 0x80041062,
168         WBEM_E_INVALID_OPERATOR                 = 0x80041063,
169         WBEM_E_LOCAL_CREDENTIALS                = 0x80041064,
170         WBEM_E_CANNOT_BE_ABSTRACT               = 0x80041065,
171         WBEM_E_AMENDED_OBJECT                   = 0x80041066,
172         WBEM_E_CLIENT_TOO_SLOW                  = 0x80041067,
173         WBEM_E_NULL_SECURITY_DESCRIPTOR         = 0x80041068,
174         WBEM_E_TIMED_OUT                        = 0x80041069,
175         WBEM_E_INVALID_ASSOCIATION              = 0x8004106A,
176         WBEM_E_AMBIGUOUS_OPERATION              = 0x8004106B,
177         WBEM_E_QUOTA_VIOLATION                  = 0x8004106C,
178         WBEM_E_RESERVED_001                     = 0x8004106D,
179         WBEM_E_RESERVED_002                     = 0x8004106E,
180         WBEM_E_UNSUPPORTED_LOCALE               = 0x8004106F,
181         WBEM_E_HANDLE_OUT_OF_DATE               = 0x80041070,
182         WBEM_E_CONNECTION_FAILED                = 0x80041071,
183         WBEM_E_INVALID_HANDLE_REQUEST           = 0x80041072,
184         WBEM_E_PROPERTY_NAME_TOO_WIDE           = 0x80041073,
185         WBEM_E_CLASS_NAME_TOO_WIDE              = 0x80041074,
186         WBEM_E_METHOD_NAME_TOO_WIDE             = 0x80041075,
187         WBEM_E_QUALIFIER_NAME_TOO_WIDE          = 0x80041076,
188         WBEM_E_RERUN_COMMAND                    = 0x80041077,
189         WBEM_E_DATABASE_VER_MISMATCH            = 0x80041078,
190         WBEM_E_VETO_DELETE                      = 0x80041079,
191         WBEM_E_VETO_PUT                         = 0x8004107A,
192         WBEM_E_INVALID_LOCALE                   = 0x80041080,
193         WBEM_E_PROVIDER_SUSPENDED               = 0x80041081,
194         WBEM_E_SYNCHRONIZATION_REQUIRED         = 0x80041082,
195         WBEM_E_NO_SCHEMA                        = 0x80041083,
196         WBEM_E_PROVIDER_ALREADY_REGISTERED      = 0x80041084,
197         WBEM_E_PROVIDER_NOT_REGISTERED          = 0x80041085,
198         WBEM_E_FATAL_TRANSPORT_ERROR            = 0x80041086,
199         WBEM_E_ENCRYPTED_CONNECTION_REQUIRED    = 0x80041087,
200         WBEM_E_PROVIDER_TIMED_OUT               = 0x80041088,
201         WBEM_E_NO_KEY                           = 0x80041089,
202         WBEM_E_PROVIDER_DISABLED                = 0x8004108a
203     }   WBEMSTATUS;
204
205     typedef [public] bitmap
206     {
207         WBEM_FLAG_RETURN_WBEM_COMPLETE          = 0,
208         WBEM_FLAG_BIDIRECTIONAL                         = 0,
209         WBEM_FLAG_RETURN_IMMEDIATELY            = 0x000010,
210         WBEM_FLAG_FORWARD_ONLY                          = 0x000020,
211         WBEM_FLAG_NO_ERROR_OBJECT                       = 0x000040,
212         WBEM_FLAG_SEND_STATUS                           = 0x000080,
213         WBEM_FLAG_ENSURE_LOCATABLE                      = 0x000100,
214         WBEM_FLAG_DIRECT_READ                           = 0x000200,
215         WBEM_FLAG_USE_AMENDED_QUALIFIERS        = 0x020000,
216         WBEM_FLAG_STRONG_VALIDATION             = 0x100000,
217         WBEM_FLAG_RETURN_ERROR_OBJECT           = 0,
218         WBEM_FLAG_DONT_SEND_STATUS                      = 0,
219         WBEM_FLAG_SEND_ONLY_SELECTED            = 0,
220
221         WBEM_RETURN_WHEN_COMPLETE                       = 0,
222         WBEM_RETURN_IMMEDIATELY                         = WBEM_FLAG_RETURN_IMMEDIATELY,
223
224         WBEM_MASK_RESERVED_FLAGS                        = 0x001F000
225     } WBEM_GENERIC_FLAG_TYPE;
226
227     typedef [public,v1_enum] enum tag_WBEM_TIMEOUT_TYPE
228     {
229         WBEM_NO_WAIT = 0,
230         WBEM_INFINITE = 0xFFFFFFFF
231     } WBEM_TIMEOUT_TYPE;
232
233     typedef [public,v1_enum] enum
234     {
235         CIM_EMPTY               = 0,
236         CIM_SINT16              = 2,
237         CIM_SINT32              = 3,
238         CIM_REAL32              = 4,
239         CIM_REAL64              = 5,
240         CIM_STRING              = 8,
241
242         CIM_BOOLEAN     = 11,
243         CIM_OBJECT      = 13,
244         CIM_SINT8       = 16,
245         CIM_UINT8       = 17,
246         CIM_UINT16      = 18,
247         CIM_UINT32      = 19,
248         CIM_SINT64      = 20,
249         CIM_UINT64      = 21,
250         CIM_DATETIME    = 101,
251         CIM_REFERENCE   = 102,
252         CIM_CHAR16              = 103,
253
254         CIM_FLAG_ARRAY  = 0x2000,
255         CIM_ILLEGAL     = 0x0fff,
256         CIM_TYPEMASK    = 0x2fff,
257
258         CIM_ARR_SINT8 = CIM_FLAG_ARRAY | CIM_SINT8,
259         CIM_ARR_UINT8 = CIM_FLAG_ARRAY | CIM_UINT8,
260         CIM_ARR_SINT16 = CIM_FLAG_ARRAY | CIM_SINT16,
261         CIM_ARR_UINT16 = CIM_FLAG_ARRAY | CIM_UINT16,
262         CIM_ARR_SINT32 = CIM_FLAG_ARRAY | CIM_SINT32,
263         CIM_ARR_UINT32 = CIM_FLAG_ARRAY | CIM_UINT32,
264         CIM_ARR_SINT64 = CIM_FLAG_ARRAY | CIM_SINT64,
265         CIM_ARR_UINT64 = CIM_FLAG_ARRAY | CIM_UINT64,
266         CIM_ARR_REAL32 = CIM_FLAG_ARRAY | CIM_REAL32,
267         CIM_ARR_REAL64 = CIM_FLAG_ARRAY | CIM_REAL64,
268         CIM_ARR_BOOLEAN = CIM_FLAG_ARRAY | CIM_BOOLEAN,
269         CIM_ARR_STRING = CIM_FLAG_ARRAY | CIM_STRING,
270         CIM_ARR_DATETIME = CIM_FLAG_ARRAY | CIM_DATETIME,
271         CIM_ARR_REFERENCE = CIM_FLAG_ARRAY | CIM_REFERENCE,
272         CIM_ARR_CHAR16 = CIM_FLAG_ARRAY | CIM_CHAR16,
273         CIM_ARR_OBJECT = CIM_FLAG_ARRAY | CIM_OBJECT
274
275     } CIMTYPE_ENUMERATION;
276
277     typedef [public,bitmap8bit] bitmap
278     {
279         WBEM_FLAVOR_FLAG_PROPAGATE_TO_INSTANCE = 0x1,
280         WBEM_FLAVOR_FLAG_PROPAGATE_TO_DERIVED_CLASS = 0x2,
281 /*        WBEM_FLAVOR_MASK_PROPAGATION = 0x0F, */
282
283         WBEM_FLAVOR_NOT_OVERRIDABLE = 0x10,
284 /*        WBEM_FLAVOR_MASK_PERMISSIONS = 0x10, */
285
286         WBEM_FLAVOR_ORIGIN_PROPAGATED = 0x20,
287         WBEM_FLAVOR_ORIGIN_SYSTEM = 0x40,
288 /*        WBEM_FLAVOR_MASK_ORIGIN = 0x60, */
289
290         WBEM_FLAVOR_AMENDED = 0x80
291 /*        WBEM_FLAVOR_MASK_AMENDED = 0x80 */
292
293     } WBEM_FLAVOR_TYPE;
294
295     typedef [public,bitmap8bit] bitmap
296     {
297                 WCF_DECORATIONS = 1,
298                 WCF_INSTANCE = 2,
299                 WCF_CLASS = 4,
300                 WCF_CLASS_PART_INTERNAL = 8
301         /*      WCF_CLASS_PART_SHARED = 0x104 */
302         } WCO_FLAGS;
303
304         typedef struct
305         {
306                 uint32 count;
307                 [ref,charset(UTF16)] uint16 *item[count];
308         } CIMSTRINGS;
309
310         typedef [public,bitmap8bit] bitmap {
311                 DEFAULT_FLAG_EMPTY = 1,
312                 DEFAULT_FLAG_INHERITED = 2
313         } DEFAULT_FLAGS;
314
315         WERROR OpenNamespace(
316                 [in] BSTR strNamespace,
317                 [in] long lFlags,
318                 [in] IWbemContext* pCtx,
319                 [out, in, unique] IWbemServices** ppWorkingNamespace,
320                 [out, in, unique] IWbemCallResult** ppResult
321                 );
322
323         WERROR CancelAsyncCall(
324                 [in] IWbemObjectSink* pSink
325                 );
326
327         WERROR QueryObjectSink(
328                 [in] long lFlags,
329                 [out] IWbemObjectSink** ppResponseHandler
330                 );
331
332         WERROR GetObject(
333                 [in] BSTR strObjectPath,
334                 [in] long lFlags,
335                 [in] IWbemContext* pCtx,
336                 [out, in, unique] IWbemClassObject** ppObject,
337                 [out, in, unique] IWbemCallResult** ppCallResult
338                 );
339
340
341         WERROR GetObjectAsync(
342                 [in] BSTR strObjectPath,
343                 [in] long lFlags,
344                 [in] IWbemContext* pCtx,
345                 [in] IWbemObjectSink* pResponseHandler
346                 );
347
348         WERROR PutClass(
349                 [in] IWbemClassObject* pObject,
350                 [in] long lFlags,
351                 [in] IWbemContext* pCtx,
352                 [out, in, unique] IWbemCallResult** ppCallResult
353                 );
354
355         WERROR PutClassAsync(
356                 [in] IWbemClassObject* pObject,
357                 [in] long lFlags,
358                 [in] IWbemContext* pCtx,
359                 [in] IWbemObjectSink* pResponseHandler
360                 );
361
362         WERROR DeleteClass(
363                 [in] BSTR strClass,
364                 [in] long lFlags,
365                 [in] IWbemContext* pCtx,
366                 [out, in, unique] IWbemCallResult** ppCallResult
367                 );
368
369         WERROR DeleteClassAsync(
370                 [in] BSTR strClass,
371                 [in] long lFlags,
372                 [in] IWbemContext* pCtx,
373                 [in] IWbemObjectSink* pResponseHandler
374                 );
375
376         WERROR CreateClassEnum(
377                 [in] BSTR strSuperclass,
378                 [in] long lFlags,
379                 [in] IWbemContext* pCtx,
380                 [out] IEnumWbemClassObject** ppEnum
381                 );
382
383         WERROR CreateClassEnumAsync(
384                 [in] BSTR strSuperclass,
385                 [in] long lFlags,
386                 [in] IWbemContext* pCtx,
387                 [in] IWbemObjectSink* pResponseHandler
388                 );
389
390         WERROR PutInstance(
391                 [in] IWbemClassObject* pInst,
392                 [in] long lFlags,
393                 [in] IWbemContext* pCtx,
394                 [out, in, unique] IWbemCallResult** ppCallResult
395                 );
396
397         WERROR PutInstanceAsync(
398                 [in] IWbemClassObject* pInst,
399                 [in] long lFlags,
400                 [in] IWbemContext* pCtx,
401                 [in] IWbemObjectSink* pResponseHandler
402                 );
403
404
405         WERROR DeleteInstance(
406                 [in] BSTR strObjectPath,
407                 [in] long lFlags,
408                 [in] IWbemContext* pCtx,
409                 [out, in, unique] IWbemCallResult** ppCallResult
410                 );
411
412
413         WERROR DeleteInstanceAsync(
414                 [in] BSTR strObjectPath,
415                 [in] long lFlags,
416                 [in] IWbemContext* pCtx,
417                 [in] IWbemObjectSink* pResponseHandler
418                 );
419
420
421     WERROR CreateInstanceEnum(
422         [in] BSTR strFilter,          /* allow more things than a class name */
423         [in] long lFlags,
424         [in,unique]  IWbemContext* pCtx,
425         [out] IEnumWbemClassObject** ppEnum
426         );
427
428         WERROR CreateInstanceEnumAsync(
429                 [in] BSTR strSuperClass,
430                 [in] long lFlags,
431                 [in] IWbemContext* pCtx,
432                 [in] IWbemObjectSink* pResponseHandler
433                 );
434
435     WERROR ExecQuery(
436         [in] BSTR strQueryLanguage,
437         [in] BSTR strQuery,
438         [in]  long lFlags,
439         [in,unique]  IWbemContext* pCtx,
440         [out] IEnumWbemClassObject** ppEnum
441         );
442
443         WERROR ExecQueryAsync(
444                 [in] BSTR strQueryLanguage,
445                 [in] BSTR strQuery,
446                 [in] long lFlags,
447                 [in] IWbemContext* pCtx,
448                 [in] IWbemObjectSink* pResponseHandler
449                 );
450
451     WERROR ExecNotificationQuery(
452         [in] BSTR strQueryLanguage,
453         [in] BSTR strQuery,
454         [in] long lFlags,
455         [in,unique]  IWbemContext* pCtx,
456         [out] IEnumWbemClassObject** ppEnum
457         );
458
459         WERROR ExecNotificationQueryAsync(
460                 [in] BSTR strQueryLanguage,
461                 [in] BSTR strQuery,
462                 [in] long lFlags,
463                 [in] IWbemContext* pCtx,
464                 [in] IWbemObjectSink* pResponseHandler
465                 );
466
467     WERROR ExecMethod(
468         [in] BSTR strObjectPath,
469         [in] BSTR strMethodName,
470         [in] long lFlags,
471         [in,unique] IWbemContext* pCtx,
472         [in,unique] IWbemClassObject* pInParams,
473         [in,out,unique] IWbemClassObject** ppOutParams,
474         [in,out,unique] IWbemCallResult** ppCallResult
475         );
476
477         WERROR ExecMethodAsync(
478                 [in] BSTR strObjectPath,
479                 [in] BSTR strMethodName,
480                 [in] uint32 lFlags,
481                 [in] IWbemContext* pCtx,
482                 [in] IWbemClassObject* pInParams,
483                 [in] IWbemObjectSink* pResponseHandler
484                 );
485 }
486
487 [
488         object, 
489         uuid(027947e1-d731-11ce-a357-000000000001),
490         pointer_default(unique)
491 ] interface IEnumWbemClassObject : IUnknown
492 {
493     WERROR Reset();
494
495     [call_as(Next)] WERROR IEnumWbemClassObject_Next(
496         [in]  int32 lTimeout,
497         [in]  uint32 uCount,
498                 [out, size_is(uCount), length_is(*puReturned)] IWbemClassObject** apObjects,
499                 [out] uint32* puReturned
500         );
501
502     WERROR NextAsync(
503         [in]  uint32 uCount,
504         [in]  IWbemObjectSink* pSink
505         );
506
507     WERROR IEnumWbemClassObject_Clone(
508         [out] IEnumWbemClassObject** ppEnum
509         );
510
511     WERROR Skip(
512         [in]  int32 lTimeout,
513         [in] uint32 nCount
514         );
515 };
516
517 [
518         object, 
519         local, 
520         uuid("44aca674-e8fc-11d0-a07c-00c04fb68820"),
521         pointer_default(unique)
522 ] interface IWbemContext : IUnknown
523 {
524     WERROR Clone([out] IWbemContext** ppNewCopy);
525
526     WERROR GetNames(
527 /*        [in] long lFlags, */
528 /*        [out] SAFEARRAY (BSTR)* pNames */
529         );
530
531     WERROR BeginEnumeration([in] long lFlags);
532
533     WERROR Next(
534 /*        [in]  long lFlags, */
535 /*        [out] BSTR* pstrName, */
536 /*        [out] VARIANT* pValue */
537         );
538
539     WERROR EndEnumeration();
540
541
542     WERROR SetValue(
543 /*        [in, string] LPCWSTR wszName, */
544 /*        [in] long lFlags */
545 /*        [in] VARIANT* pValue */
546         );
547
548     WERROR GetValue(
549 /*        [in, string] LPCWSTR wszName, */
550 /*        [in] long lFlags, */
551 /*        [out] VARIANT* pValue */
552         );
553
554     WERROR DeleteValue(
555 /*        [in, string] LPCWSTR wszName, */
556 /*        [in] long lFlags */
557         );
558
559     WERROR DeleteAll();
560 }
561
562 [
563         object,
564         uuid("F309AD18-D86A-11d0-A075-00C04FB68820"),
565         pointer_default(unique)
566 ] interface IWbemLevel1Login :  IUnknown
567 {
568         WERROR EstablishPosition(
569                 [in, unique, string, charset(UTF16)] uint16* wszLocaleList,
570                 [in] DWORD dwNumLocales,
571                 [out] DWORD* reserved
572                 );
573         WERROR RequestChallenge(
574                 [in, unique, string, charset(UTF16)] uint16* wszNetworkResource,
575                 [in, unique, string, charset(UTF16)] uint16* wszUser,
576                 [out, size_is(16), length_is(16)] uint8 * Nonce
577                 );
578         WERROR WBEMLogin(
579                 [in, unique, string, charset(UTF16)] uint16* wszPreferredLocale,
580                 [in, size_is(16), length_is(16), unique] uint8 * AccessToken,
581                 [in] long lFlags,
582                 [in] IWbemContext* pCtx,
583                 [out] IWbemServices** ppNamespace
584                 );
585
586
587         WERROR NTLMLogin(
588                 [in,unique,string,charset(UTF16)] uint16 *wszNetworkResource,
589                 [in,unique,string,charset(UTF16)] uint16 *wszPreferredLocale,
590                 [in]   long lFlags,
591                 [in,unique]   IWbemContext* pCtx,
592                 [out,ref]  IWbemServices** ppNamespace
593                 );
594
595 }
596
597 [
598         object,
599         uuid("423ec01e-2e35-11d2-b604-00104b703efd"),
600         pointer_default(unique)
601 ] interface IWbemWCOSmartEnum : IUnknown
602 {
603         typedef struct {
604                 uint32 size;
605                 char data[size];
606         } WBEMDATA;
607
608         typedef enum {
609                 WTYPE_SCHEMA = 1,
610                 WTYPE_CLASS = 2,
611                 WTYPE_OBJECT = 3
612         } WTYPES;
613
614         typedef [relative_base] struct {
615                 /*      [relative] WBEMDATA4 *data; */ /* 0x9 */
616                 uint32 data_size;
617                 uint8 wtype;
618         } WBEMDATA4;
619
620         typedef [relative_base] struct {
621                 [relative] WBEMDATA4 *data; /* 0x9 */
622                 uint32 data_size;
623                 uint8 wtype;
624         } WBEMDATA3;
625
626         typedef [relative_base] struct {
627                 [relative,size_is(obj_num)] WBEMDATA3 *data; /* 0x8 */
628                 uint32 data_size;
629                 uint32 obj_num;
630         } WBEMDATA2;
631
632         typedef [relative_base] struct {
633                 [relative] WBEMDATA2 *data; /* 0x8 */
634                 uint32 data_size;
635         } WBEMDATA1;
636
637         typedef [relative_base] struct {
638                 uint32 u1_0; /* 0 */
639                 hyper signature; /* 'WBEMDATA' */
640                 [relative] WBEMDATA1 *data; /* 0x1A */
641                 uint32 data_size;
642                 uint32 u2_0; /* 0 */
643                 uint8 ver_major; /* 1 */
644                 uint8 ver_minor; /* 0 - Win2000, 1 - WinXP/2003 */
645         } WBEMDATA0;
646
647         WERROR IWbemWCOSmartEnum_Next(
648                 [in,ref] GUID *gEWCO,
649                 [in] uint32 lTimeOut,
650                 [in] uint32 uCount,
651                 [in] uint32 unknown,
652                 [in,ref] GUID *gWCO,
653                 [out,ref] uint32 *puReturned,
654                 [out,ref] uint32 *pSize,
655                 [out,ref,size_is(,*pSize)] uint8 **pData
656                 );
657 }
658
659 [
660         object,
661         uuid("1c1c45ee-4395-11d2-b60b-00104b703efd"),
662         pointer_default(unique)
663 ] interface IWbemFetchSmartEnum : IUnknown
664 {
665         WERROR Fetch([out]      IWbemWCOSmartEnum** ppEnum);
666         WERROR Test([out]       IWbemClassObject** ppEnum);
667 }
668
669 [
670         object,
671         /*      restricted, */
672         uuid(44aca675-e8fc-11d0-a07c-00c04fb68820)
673 ] interface IWbemCallResult : IUnknown
674 {
675         WERROR GetResultObject(
676                                                    [in]  long lTimeout,
677                                                    [out] IWbemClassObject** ppResultObject
678                                                   );
679
680         WERROR GetResultString(
681                                                    [in]  long lTimeout,
682                                                    [out] BSTR* pstrResultString
683                                                   );
684
685         WERROR GetResultServices(
686                                                          [in]  long lTimeout,
687                                                          [out] IWbemServices** ppServices
688                                                         );
689
690         WERROR GetCallStatus(
691                                                  [in]  long lTimeout,
692                                                  [out] long* plStatus
693                                                 );
694 }
695
696
697 [
698         object,
699         restricted,
700         uuid(7c857801-7381-11cf-884d-00aa004b2e24)
701 ]
702 interface IWbemObjectSink : IUnknown
703 {
704         WERROR SetStatus(
705                                          [in] long lFlags,
706                                          [in] WERROR hResult,
707                                          [in] BSTR strParam,
708                                          [in] IWbemClassObject* pObjParam
709                                         );
710         WERROR Indicate(
711                                         [in] long lObjectCount,
712                                         [in, size_is(lObjectCount)] IWbemClassObject** apObjArray
713                                    );
714 };
715