ole32/tests: Add test for SetClientSite.
[wine] / include / iads.idl
1 /*
2  * Copyright 2005 Francois Gouget
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 import "oaidl.idl";
20
21 typedef enum
22 {
23     ADS_RIGHT_DS_CREATE_CHILD         = 0x00000001,
24     ADS_RIGHT_DS_DELETE_CHILD         = 0x00000002,
25     ADS_RIGHT_ACTRL_DS_LIST           = 0x00000004,
26     ADS_RIGHT_DS_SELF                 = 0x00000008,
27     ADS_RIGHT_DS_READ_PROP            = 0x00000010,
28     ADS_RIGHT_DS_WRITE_PROP           = 0x00000020,
29     ADS_RIGHT_DS_DELETE_TREE          = 0x00000040,
30     ADS_RIGHT_DS_LIST_OBJECT          = 0x00000080,
31     ADS_RIGHT_DS_CONTROL_ACCESS       = 0x00000100,
32
33     ADS_RIGHT_DELETE                  = 0x00010000,
34     ADS_RIGHT_READ_CONTROL            = 0x00020000,
35     ADS_RIGHT_WRITE_DAC               = 0x00040000,
36     ADS_RIGHT_WRITE_OWNER             = 0x00080000,
37     ADS_RIGHT_SYNCHRONIZE             = 0x00100000,
38     ADS_RIGHT_ACCESS_SYSTEM_SECURITY  = 0x00200000,
39
40     ADS_RIGHT_GENERIC_ALL             = 0x10000000,
41     ADS_RIGHT_GENERIC_EXECUTE         = 0x20000000,
42     ADS_RIGHT_GENERIC_WRITE           = 0x40000000,
43     ADS_RIGHT_GENERIC_READ            = 0x80000000
44 } ADS_RIGHTS_ENUM;
45
46 typedef enum
47 {
48     ADS_SECURE_AUTHENTICATION     = 0x1,
49     ADS_USE_ENCRYPTION            = 0x2,
50     ADS_USE_SSL                   = 0x2,
51     ADS_READONLY_SERVER           = 0x4,
52     ADS_PROMPT_CREDENTIALS        = 0x8,
53     ADS_NO_AUTHENTICATION         = 0x10,
54     ADS_FAST_BIND                 = 0x20,
55     ADS_USE_SIGNING               = 0x40,
56     ADS_USE_SEALING               = 0x80,
57     ADS_USE_DELEGATION            = 0x100,
58     ADS_SERVER_BIND               = 0x200,
59     ADS_NO_REFERRAL_CHASING       = 0x400,
60     ADS_AUTH_RESERVED             = 0x80000000
61 } ADS_AUTHENTICATION_ENUM;
62
63 /*****************************************************************************
64  *    IADsContainer interface
65  */
66 [
67     object,
68     uuid(001677d0-fd16-11ce-abc4-02608c9e7553)
69 ]
70 interface IADsContainer: IDispatch
71 {
72     [propget] HRESULT Count(
73         [out, retval] long *retval);
74     [propget, restricted] HRESULT _NewEnum(
75         [out, retval] IUnknown **retval);
76     [propget] HRESULT Filter(
77         [out, retval] VARIANT *pvFilter);
78     [propput] HRESULT Filter(
79         [in] VARIANT vFilter);
80     [propget] HRESULT Hints(
81         [out, retval] VARIANT *pvHints);
82     [propput] HRESULT Hints(
83         [in] VARIANT vHints);
84     HRESULT GetObject(
85         [in] BSTR bstrClassName,
86         [in] BSTR bstrRelativeName,
87         [out, retval] IDispatch **ppObject);
88     HRESULT Create(
89         [in] BSTR bstrClassName,
90         [in] BSTR bstrRelativeName,
91         [out, retval] IDispatch **ppObject);
92     HRESULT Delete(
93         [in] BSTR bstrClassName,
94         [in] BSTR bstrRelativeName);
95     HRESULT CopyHere(
96         [in] BSTR bstrSourceName,
97         [in] BSTR bstrNewName,
98         [out, retval] IDispatch **ppObject);
99     HRESULT MoveHere(
100         [in] BSTR bstrSourceName,
101         [in] BSTR bstrNewName,
102         [out, retval] IDispatch **ppObject);
103 }
104
105 /*****************************************************************************
106  *    IADs interface
107  */
108 [
109     odl,
110     uuid(FD8256D0-FD15-11CE-ABC4-02608C9E7553),
111     dual,
112     oleautomation
113 ]
114 interface IADs : IDispatch
115 {
116     [id(0x00000002), propget]
117     HRESULT Name([out, retval] BSTR* retval);
118
119     [id(0x00000003), propget]
120     HRESULT Class([out, retval] BSTR* retval);
121
122     [id(0x00000004), propget]
123     HRESULT GUID([out, retval] BSTR* retval);
124
125     [id(0x00000005), propget]
126     HRESULT ADsPath([out, retval] BSTR* retval);
127
128     [id(0x00000006), propget]
129     HRESULT Parent([out, retval] BSTR* retval);
130
131     [id(0x00000007), propget]
132     HRESULT Schema([out, retval] BSTR* retval);
133
134     [id(0x00000008)]
135     HRESULT GetInfo();
136
137     [id(0x00000009)]
138     HRESULT SetInfo();
139
140     [id(0x0000000a)]
141     HRESULT Get([in] BSTR bstrName, [out, retval] VARIANT* pvProp);
142
143     [id(0x0000000b)]
144     HRESULT Put([in] BSTR bstrName, [in] VARIANT vProp);
145
146     [id(0x0000000c)]
147     HRESULT GetEx([in] BSTR bstrName, [out, retval] VARIANT* pvProp);
148
149     [id(0x0000000d)]
150     HRESULT PutEx([in] long lnControlCode, [in] BSTR bstrName, [in] VARIANT vProp);
151
152     [id(0x0000000e)]
153     HRESULT GetInfoEx( [in] VARIANT vProperties, [in] long lnReserved);
154 };
155
156 /*****************************************************************************
157  *    IADsMembers interface
158  */
159 [
160     odl,
161     uuid(451A0030-72EC-11CF-B03B-00AA006E0975),
162     dual,
163     oleautomation
164 ]
165 interface IADsMembers : IDispatch
166 {
167     [id(0x00000002), propget]
168     HRESULT Count([out, retval] long* plCount);
169
170     [id(0xfffffffc), propget]
171     HRESULT _NewEnum([out, retval] IUnknown** ppEnumerator);
172
173     [id(0x00000003), propget]
174     HRESULT Filter([out, retval] VARIANT* pvFilter);
175
176     [id(0x00000003), propput]
177     HRESULT Filter([in] VARIANT pvFilter);
178 };
179
180 /*****************************************************************************
181  *    IADsGroup interface
182  */
183 [
184     odl,
185     uuid(27636B00-410F-11CF-B1FF-02608C9E7553),
186     dual,
187     oleautomation
188 ]
189 interface IADsGroup : IADs {
190     [id(0x0000000f), propget]
191     HRESULT Description([out, retval] BSTR* retval);
192
193     [id(0x0000000f), propput]
194     HRESULT Description([in] BSTR retval);
195
196     [id(0x00000010)]
197     HRESULT Members([out, retval] IADsMembers** ppMembers);
198
199     [id(0x00000011)]
200     HRESULT IsMember([in] BSTR bstrMember, [out, retval] VARIANT_BOOL* bMember);
201
202     [id(0x00000012)]
203     HRESULT Add([in] BSTR bstrNewItem);
204
205     [id(0x00000013)]
206     HRESULT Remove([in] BSTR bstrItemToBeRemoved);
207 };
208
209 /*****************************************************************************
210  *    IADsUser interface
211  */
212 [
213     odl,
214     uuid(3E37E320-17E2-11CF-ABC4-02608C9E7553),
215     dual,
216     oleautomation
217 ]
218 interface IADsUser : IADs
219 {
220     [id(0x00000035), propget]
221     HRESULT BadLoginAddress([out, retval] BSTR* retval);
222
223     [id(0x00000036), propget]
224     HRESULT BadLoginCount([out, retval] long* retval);
225
226     [id(0x00000038), propget]
227     HRESULT LastLogin([out, retval] DATE* retval);
228
229     [id(0x00000039), propget]
230     HRESULT LastLogoff([out, retval] DATE* retval);
231
232     [id(0x0000003a), propget]
233     HRESULT LastFailedLogin([out, retval] DATE* retval);
234
235     [id(0x0000003b), propget]
236     HRESULT PasswordLastChanged([out, retval] DATE* retval);
237
238     [id(0x0000000f), propget]
239     HRESULT Description([out, retval] BSTR* retval);
240
241     [id(0x0000000f), propput]
242     HRESULT Description([in] BSTR retval);
243
244     [id(0x00000013), propget]
245     HRESULT Division([out, retval] BSTR* retval);
246
247     [id(0x00000013), propput]
248     HRESULT Division([in] BSTR retval);
249
250     [id(0x0000007a), propget]
251     HRESULT Department([out, retval] BSTR* retval);
252
253     [id(0x0000007a), propput]
254     HRESULT Department([in] BSTR retval);
255
256     [id(0x00000014), propget]
257     HRESULT EmployeeID([out, retval] BSTR* retval);
258
259     [id(0x00000014), propput]
260     HRESULT EmployeeID([in] BSTR retval);
261
262     [id(0x00000017), propget]
263     HRESULT FullName([out, retval] BSTR* retval);
264
265     [id(0x00000017), propput]
266     HRESULT FullName([in] BSTR retval);
267
268     [id(0x00000016), propget]
269     HRESULT FirstName([out, retval] BSTR* retval);
270
271     [id(0x00000016), propput]
272     HRESULT FirstName([in] BSTR retval);
273
274     [id(0x00000019), propget]
275     HRESULT LastName([out, retval] BSTR* retval);
276
277     [id(0x00000019), propput]
278     HRESULT LastName([in] BSTR retval);
279
280     [id(0x0000001b), propget]
281     HRESULT OtherName([out, retval] BSTR* retval);
282
283     [id(0x0000001b), propput]
284     HRESULT OtherName([in] BSTR retval);
285
286     [id(0x00000072), propget]
287     HRESULT NamePrefix([out, retval] BSTR* retval);
288
289     [id(0x00000072), propput]
290     HRESULT NamePrefix([in] BSTR retval);
291
292     [id(0x00000073), propget]
293     HRESULT NameSuffix([out, retval] BSTR* retval);
294
295     [id(0x00000073), propput]
296     HRESULT NameSuffix([in] BSTR retval);
297
298     [id(0x00000024), propget]
299     HRESULT Title([out, retval] BSTR* retval);
300
301     [id(0x00000024), propput]
302     HRESULT Title([in] BSTR retval);
303
304     [id(0x0000001a), propget]
305     HRESULT Manager([out, retval] BSTR* retval);
306
307     [id(0x0000001a), propput]
308     HRESULT Manager([in] BSTR retval);
309
310     [id(0x00000020), propget]
311     HRESULT TelephoneHome([out, retval] VARIANT* retval);
312
313     [id(0x00000020), propput]
314     HRESULT TelephoneHome([in] VARIANT retval);
315
316     [id(0x00000021), propget]
317     HRESULT TelephoneMobile([out, retval] VARIANT* retval);
318
319     [id(0x00000021), propput]
320     HRESULT TelephoneMobile([in] VARIANT retval);
321
322     [id(0x00000022), propget]
323     HRESULT TelephoneNumber([out, retval] VARIANT* retval);
324
325     [id(0x00000022), propput]
326     HRESULT TelephoneNumber([in] VARIANT retval);
327
328     [id(0x00000011), propget]
329     HRESULT TelephonePager([out, retval] VARIANT* retval);
330
331     [id(0x00000011), propput]
332     HRESULT TelephonePager([in] VARIANT retval);
333
334     [id(0x00000010), propget]
335     HRESULT FaxNumber([out, retval] VARIANT* retval);
336
337     [id(0x00000010), propput]
338     HRESULT FaxNumber([in] VARIANT retval);
339
340     [id(0x0000001c), propget]
341     HRESULT OfficeLocations([out, retval] VARIANT* retval);
342
343     [id(0x0000001c), propput]
344     HRESULT OfficeLocations([in] VARIANT retval);
345
346     [id(0x0000001e), propget]
347     HRESULT PostalAddresses([out, retval] VARIANT* retval);
348
349     [id(0x0000001e), propput]
350     HRESULT PostalAddresses([in] VARIANT retval);
351
352     [id(0x0000001f), propget]
353     HRESULT PostalCodes([out, retval] VARIANT* retval);
354
355     [id(0x0000001f), propput]
356     HRESULT PostalCodes([in] VARIANT retval);
357
358     [id(0x00000075), propget]
359     HRESULT SeeAlso([out, retval] VARIANT* retval);
360
361     [id(0x00000075), propput]
362     HRESULT SeeAlso([in] VARIANT retval);
363
364     [id(0x00000025), propget]
365     HRESULT AccountDisabled([out, retval] VARIANT_BOOL* retval);
366
367     [id(0x00000025), propput]
368     HRESULT AccountDisabled([in] VARIANT_BOOL retval);
369
370     [id(0x00000026), propget]
371     HRESULT AccountExpirationDate([out, retval] DATE* retval);
372
373     [id(0x00000026), propput]
374     HRESULT AccountExpirationDate([in] DATE retval);
375
376     [id(0x00000029), propget]
377     HRESULT GraceLoginsAllowed([out, retval] long* retval);
378
379     [id(0x00000029), propput]
380     HRESULT GraceLoginsAllowed([in] long retval);
381
382     [id(0x0000002a), propget]
383     HRESULT GraceLoginsRemaining([out, retval] long* retval);
384
385     [id(0x0000002a), propput]
386     HRESULT GraceLoginsRemaining([in] long retval);
387
388     [id(0x0000002b), propget]
389     HRESULT IsAccountLocked([out, retval] VARIANT_BOOL* retval);
390
391     [id(0x0000002b), propput]
392     HRESULT IsAccountLocked([in] VARIANT_BOOL retval);
393
394     [id(0x0000002d), propget]
395     HRESULT LoginHours([out, retval] VARIANT* retval);
396
397     [id(0x0000002d), propput]
398     HRESULT LoginHours([in] VARIANT retval);
399
400     [id(0x0000002e), propget]
401     HRESULT LoginWorkstations([out, retval] VARIANT* retval);
402
403     [id(0x0000002e), propput]
404     HRESULT LoginWorkstations([in] VARIANT retval);
405
406     [id(0x0000002f), propget]
407     HRESULT MaxLogins([out, retval] long* retval);
408
409     [id(0x0000002f), propput]
410     HRESULT MaxLogins([in] long retval);
411
412     [id(0x00000030), propget]
413     HRESULT MaxStorage([out, retval] long* retval);
414
415     [id(0x00000030), propput]
416     HRESULT MaxStorage([in] long retval);
417
418     [id(0x00000031), propget]
419     HRESULT PasswordExpirationDate([out, retval] DATE* retval);
420
421     [id(0x00000031), propput]
422     HRESULT PasswordExpirationDate([in] DATE retval);
423
424     [id(0x00000032), propget]
425     HRESULT PasswordMinimumLength([out, retval] long* retval);
426
427     [id(0x00000032), propput]
428     HRESULT PasswordMinimumLength([in] long retval);
429
430     [id(0x00000033), propget]
431     HRESULT PasswordRequired([out, retval] VARIANT_BOOL* retval);
432
433     [id(0x00000033), propput]
434     HRESULT PasswordRequired([in] VARIANT_BOOL retval);
435
436     [id(0x00000034), propget]
437     HRESULT RequireUniquePassword([out, retval] VARIANT_BOOL* retval);
438
439     [id(0x00000034), propput]
440     HRESULT RequireUniquePassword([in] VARIANT_BOOL retval);
441
442     [id(0x0000003c), propget]
443     HRESULT EmailAddress([out, retval] BSTR* retval);
444
445     [id(0x0000003c), propput]
446     HRESULT EmailAddress([in] BSTR retval);
447
448     [id(0x0000003d), propget]
449     HRESULT HomeDirectory([out, retval] BSTR* retval);
450
451     [id(0x0000003d), propput]
452     HRESULT HomeDirectory([in] BSTR retval);
453
454     [id(0x0000003e), propget]
455     HRESULT Languages([out, retval] VARIANT* retval);
456
457     [id(0x0000003e), propput]
458     HRESULT Languages([in] VARIANT retval);
459
460     [id(0x0000003f), propget]
461     HRESULT Profile([out, retval] BSTR* retval);
462
463     [id(0x0000003f), propput]
464     HRESULT Profile([in] BSTR retval);
465
466     [id(0x00000040), propget]
467     HRESULT LoginScript([out, retval] BSTR* retval);
468
469     [id(0x00000040), propput]
470     HRESULT LoginScript([in] BSTR retval);
471
472     [id(0x00000041), propget]
473     HRESULT Picture([out, retval] VARIANT* retval);
474
475     [id(0x00000041), propput]
476     HRESULT Picture([in] VARIANT retval);
477
478     [id(0x00000078), propget]
479     HRESULT HomePage([out, retval] BSTR* retval);
480
481     [id(0x00000078), propput]
482     HRESULT HomePage([in] BSTR retval);
483
484     [id(0x00000042)]
485     HRESULT Groups([out, retval] IADsMembers** ppGroups);
486
487     [id(0x00000043)]
488     HRESULT SetPassword([in] BSTR NewPassword);
489
490     [id(0x00000044)]
491     HRESULT ChangePassword([in] BSTR bstrOldPassword, [in] BSTR bstrNewPassword);
492 };