~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to librpc/idl/wmi.idl

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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