~zulcss/samba/server-dailies-3.4

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