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 | /*
|
---|
20 | * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
|
---|
21 | * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
|
---|
22 | * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
|
---|
23 | * a choice of LGPL license versions is made available with the language indicating
|
---|
24 | * that LGPLv2 or any later version may be used, or where a choice of which version
|
---|
25 | * of the LGPL is applied is otherwise unspecified.
|
---|
26 | */
|
---|
27 |
|
---|
28 | import "oaidl.idl";
|
---|
29 |
|
---|
30 | typedef enum
|
---|
31 | {
|
---|
32 | ADS_RIGHT_DS_CREATE_CHILD = 0x00000001,
|
---|
33 | ADS_RIGHT_DS_DELETE_CHILD = 0x00000002,
|
---|
34 | ADS_RIGHT_ACTRL_DS_LIST = 0x00000004,
|
---|
35 | ADS_RIGHT_DS_SELF = 0x00000008,
|
---|
36 | ADS_RIGHT_DS_READ_PROP = 0x00000010,
|
---|
37 | ADS_RIGHT_DS_WRITE_PROP = 0x00000020,
|
---|
38 | ADS_RIGHT_DS_DELETE_TREE = 0x00000040,
|
---|
39 | ADS_RIGHT_DS_LIST_OBJECT = 0x00000080,
|
---|
40 | ADS_RIGHT_DS_CONTROL_ACCESS = 0x00000100,
|
---|
41 |
|
---|
42 | ADS_RIGHT_DELETE = 0x00010000,
|
---|
43 | ADS_RIGHT_READ_CONTROL = 0x00020000,
|
---|
44 | ADS_RIGHT_WRITE_DAC = 0x00040000,
|
---|
45 | ADS_RIGHT_WRITE_OWNER = 0x00080000,
|
---|
46 | ADS_RIGHT_SYNCHRONIZE = 0x00100000,
|
---|
47 | ADS_RIGHT_ACCESS_SYSTEM_SECURITY = 0x00200000,
|
---|
48 |
|
---|
49 | ADS_RIGHT_GENERIC_ALL = 0x10000000,
|
---|
50 | ADS_RIGHT_GENERIC_EXECUTE = 0x20000000,
|
---|
51 | ADS_RIGHT_GENERIC_WRITE = 0x40000000,
|
---|
52 | ADS_RIGHT_GENERIC_READ = 0x80000000
|
---|
53 | } ADS_RIGHTS_ENUM;
|
---|
54 |
|
---|
55 | typedef enum
|
---|
56 | {
|
---|
57 | ADS_SECURE_AUTHENTICATION = 0x1,
|
---|
58 | ADS_USE_ENCRYPTION = 0x2,
|
---|
59 | ADS_USE_SSL = 0x2,
|
---|
60 | ADS_READONLY_SERVER = 0x4,
|
---|
61 | ADS_PROMPT_CREDENTIALS = 0x8,
|
---|
62 | ADS_NO_AUTHENTICATION = 0x10,
|
---|
63 | ADS_FAST_BIND = 0x20,
|
---|
64 | ADS_USE_SIGNING = 0x40,
|
---|
65 | ADS_USE_SEALING = 0x80,
|
---|
66 | ADS_USE_DELEGATION = 0x100,
|
---|
67 | ADS_SERVER_BIND = 0x200,
|
---|
68 | ADS_NO_REFERRAL_CHASING = 0x400,
|
---|
69 | ADS_AUTH_RESERVED = 0x80000000
|
---|
70 | } ADS_AUTHENTICATION_ENUM;
|
---|
71 |
|
---|
72 | typedef enum
|
---|
73 | {
|
---|
74 | ADS_SEARCHPREF_ASYNCHRONOUS,
|
---|
75 | ADS_SEARCHPREF_DEREF_ALIASES,
|
---|
76 | ADS_SEARCHPREF_SIZE_LIMIT,
|
---|
77 | ADS_SEARCHPREF_TIME_LIMIT,
|
---|
78 | ADS_SEARCHPREF_ATTRIBTYPES_ONLY,
|
---|
79 | ADS_SEARCHPREF_SEARCH_SCOPE,
|
---|
80 | ADS_SEARCHPREF_TIMEOUT,
|
---|
81 | ADS_SEARCHPREF_PAGESIZE,
|
---|
82 | ADS_SEARCHPREF_PAGED_TIME_LIMIT,
|
---|
83 | ADS_SEARCHPREF_CHASE_REFERRALS,
|
---|
84 | ADS_SEARCHPREF_SORT_ON,
|
---|
85 | ADS_SEARCHPREF_CACHE_RESULTS,
|
---|
86 | ADS_SEARCHPREF_DIRSYNC,
|
---|
87 | ADS_SEARCHPREF_TOMBSTONE,
|
---|
88 | ADS_SEARCHPREF_VLV,
|
---|
89 | ADS_SEARCHPREF_ATTRIBUTE_QUERY,
|
---|
90 | ADS_SEARCHPREF_SECURITY_MASK,
|
---|
91 | ADS_SEARCHPREF_DIRSYNC_FLAG,
|
---|
92 | ADS_SEARCHPREF_EXTENDED_DN
|
---|
93 | } ADS_SEARCHPREF_ENUM;
|
---|
94 |
|
---|
95 | typedef ADS_SEARCHPREF_ENUM *PADS_SEARCHPREF_INFO;
|
---|
96 |
|
---|
97 | typedef enum
|
---|
98 | {
|
---|
99 | ADS_STATUS_S_OK,
|
---|
100 | ADS_STATUS_INVALID_SEARCHPREF,
|
---|
101 | ADS_STATUS_INVALID_SEARCHPREFVALUE
|
---|
102 | } ADS_STATUSENUM;
|
---|
103 |
|
---|
104 | typedef enum
|
---|
105 | {
|
---|
106 | ADSTYPE_INVALID,
|
---|
107 | ADSTYPE_DN_STRING,
|
---|
108 | ADSTYPE_CASE_EXACT_STRING,
|
---|
109 | ADSTYPE_CASE_IGNORE_STRING,
|
---|
110 | ADSTYPE_PRINTABLE_STRING,
|
---|
111 | ADSTYPE_NUMERIC_STRING,
|
---|
112 | ADSTYPE_BOOLEAN,
|
---|
113 | ADSTYPE_INTEGER,
|
---|
114 | ADSTYPE_OCTET_STRING,
|
---|
115 | ADSTYPE_UTC_TIME,
|
---|
116 | ADSTYPE_LARGE_INTEGER,
|
---|
117 | ADSTYPE_PROV_SPECIFIC,
|
---|
118 | ADSTYPE_OBJECT_CLASS,
|
---|
119 | ADSTYPE_CASEIGNORE_LIST,
|
---|
120 | ADSTYPE_OCTET_LIST,
|
---|
121 | ADSTYPE_PATH,
|
---|
122 | ADSTYPE_POSTALADDRESS,
|
---|
123 | ADSTYPE_TIMESTAMP,
|
---|
124 | ADSTYPE_BACKLINK,
|
---|
125 | ADSTYPE_TYPEDNAME,
|
---|
126 | ADSTYPE_HOLD,
|
---|
127 | ADSTYPE_NETADDRESS,
|
---|
128 | ADSTYPE_REPLICAPOINTER,
|
---|
129 | ADSTYPE_FAXNUMBER,
|
---|
130 | ADSTYPE_EMAIL,
|
---|
131 | ADSTYPE_NT_SECURITY_DESCRIPTOR,
|
---|
132 | ADSTYPE_UNKNOWN,
|
---|
133 | ADSTYPE_DN_WITH_BINARY,
|
---|
134 | ADSTYPE_DN_WITH_STRING
|
---|
135 | } ADSTYPEENUM;
|
---|
136 |
|
---|
137 | typedef enum
|
---|
138 | {
|
---|
139 | ADS_PASSWORD_ENCODE_REQUIRE_SSL,
|
---|
140 | ADS_PASSWORD_ENCODE_CLEAR
|
---|
141 | } ADS_PASSWORD_ENCODING_ENUM;
|
---|
142 |
|
---|
143 | typedef struct _ADS_CASEIGNORE_LIST
|
---|
144 | {
|
---|
145 | struct _ADS_CASEIGNORE_LIST *Next;
|
---|
146 | LPWSTR String;
|
---|
147 | } ADS_CASEIGNORE_LIST;
|
---|
148 |
|
---|
149 | typedef struct _ADS_OCTET_LIST
|
---|
150 | {
|
---|
151 | struct _ADS_OCTET_LIST *Next;
|
---|
152 | DWORD Length;
|
---|
153 | BYTE *Data;
|
---|
154 | } ADS_OCTET_LIST;
|
---|
155 |
|
---|
156 | typedef struct
|
---|
157 | {
|
---|
158 | DWORD Type;
|
---|
159 | LPWSTR VolumeName;
|
---|
160 | LPWSTR Path;
|
---|
161 | } ADS_PATH, *PADS_PATH;
|
---|
162 |
|
---|
163 | typedef struct
|
---|
164 | {
|
---|
165 | DWORD WholeSeconds;
|
---|
166 | DWORD EventID;
|
---|
167 | } ADS_TIMESTAMP;
|
---|
168 |
|
---|
169 |
|
---|
170 | typedef ADSTYPEENUM ADSTYPE;
|
---|
171 | typedef LPWSTR ADS_DN_STRING;
|
---|
172 | typedef LPWSTR *PADS_DN_STRING;
|
---|
173 | typedef LPWSTR ADS_CASE_EXACT_STRING;
|
---|
174 | typedef LPWSTR *PADS_CASE_EXACT_STRING;
|
---|
175 | typedef LPWSTR ADS_CASE_IGNORE_STRING;
|
---|
176 | typedef LPWSTR *PADS_CASE_IGNORE_STRING;
|
---|
177 | typedef LPWSTR ADS_PRINTABLE_STRING;
|
---|
178 | typedef LPWSTR *PADS_PRINTABLE_STRING;
|
---|
179 | typedef LPWSTR ADS_NUMERIC_STRING;
|
---|
180 | typedef LPWSTR *PADS_NUMERIC_STRING;
|
---|
181 | typedef DWORD ADS_BOOLEAN;
|
---|
182 | typedef DWORD *LPNDS_BOOLEAN;
|
---|
183 | typedef DWORD ADS_INTEGER;
|
---|
184 | typedef DWORD *PADS_INTEGER;
|
---|
185 | typedef SYSTEMTIME ADS_UTC_TIME;
|
---|
186 | typedef SYSTEMTIME *PADS_UTC_TIME;
|
---|
187 | typedef LARGE_INTEGER ADS_LARGE_INTEGER;
|
---|
188 | typedef LARGE_INTEGER *PADS_LARGE_INTEGER;
|
---|
189 | typedef LPWSTR ADS_OBJECT_CLASS;
|
---|
190 | typedef LPWSTR *PADS_OBJECT_CLASS;
|
---|
191 | typedef struct _ADS_OCTET_LIST *PADS_OCTET_LIST;
|
---|
192 | typedef struct _ADS_CASEIGNORE_LIST *PADS_CASEIGNORE_LIST;
|
---|
193 | typedef ADS_STATUSENUM ADS_STATUS;
|
---|
194 | typedef ADS_SEARCHPREF_ENUM ADS_SEARCHPREF;
|
---|
195 | typedef HANDLE ADS_SEARCH_HANDLE;
|
---|
196 | typedef HANDLE *PADS_SEARCH_HANDLE;
|
---|
197 |
|
---|
198 |
|
---|
199 | typedef struct
|
---|
200 | {
|
---|
201 | DWORD dwLength;
|
---|
202 | BYTE *lpValue;
|
---|
203 | } ADS_OCTET_STRING;
|
---|
204 |
|
---|
205 | typedef struct
|
---|
206 | {
|
---|
207 | DWORD dwLength;
|
---|
208 | BYTE *lpValue;
|
---|
209 | } ADS_PROV_SPECIFIC;
|
---|
210 |
|
---|
211 | typedef struct
|
---|
212 | {
|
---|
213 | LPWSTR PostalAddress[ 6 ];
|
---|
214 | } ADS_POSTALADDRESS, *PADS_POSTALADDRESS;
|
---|
215 |
|
---|
216 | typedef struct
|
---|
217 | {
|
---|
218 | LPWSTR ObjectName;
|
---|
219 | DWORD Level;
|
---|
220 | DWORD Interval;
|
---|
221 | } ADS_TYPEDNAME, *PADS_TYPEDNAME;
|
---|
222 |
|
---|
223 | typedef struct
|
---|
224 | {
|
---|
225 | DWORD RemoteID;
|
---|
226 | LPWSTR ObjectName;
|
---|
227 | } ADS_BACKLINK;
|
---|
228 |
|
---|
229 | typedef struct
|
---|
230 | {
|
---|
231 | LPWSTR ObjectName;
|
---|
232 | DWORD Amount;
|
---|
233 | } ADS_HOLD;
|
---|
234 |
|
---|
235 | typedef struct
|
---|
236 | {
|
---|
237 | DWORD AddressType;
|
---|
238 | DWORD AddressLength;
|
---|
239 | BYTE *Address;
|
---|
240 | } ADS_NETADDRESS, *PADS_NETADDRESS;
|
---|
241 |
|
---|
242 | typedef struct
|
---|
243 | {
|
---|
244 | LPWSTR ServerName;
|
---|
245 | DWORD ReplicaType;
|
---|
246 | DWORD ReplicaNumber;
|
---|
247 | DWORD Count;
|
---|
248 | PADS_NETADDRESS ReplicaAddressHints;
|
---|
249 | } ADS_REPLICAPOINTER, *PADS_REPLICAPOINTER;
|
---|
250 |
|
---|
251 | typedef struct
|
---|
252 | {
|
---|
253 | LPWSTR TelephoneNumber;
|
---|
254 | DWORD NumberOfBits;
|
---|
255 | BYTE *Parameters;
|
---|
256 | } ADS_FAXNUMBER, *PADS_FAXNUMBER;
|
---|
257 |
|
---|
258 |
|
---|
259 | typedef struct
|
---|
260 | {
|
---|
261 | LPWSTR Address;
|
---|
262 | DWORD Type;
|
---|
263 | } ADS_EMAIL, *PADS_EMAIL;
|
---|
264 |
|
---|
265 | typedef struct
|
---|
266 | {
|
---|
267 | DWORD dwLength;
|
---|
268 | BYTE *lpValue;
|
---|
269 | } ADS_NT_SECURITY_DESCRIPTOR;
|
---|
270 |
|
---|
271 | typedef struct
|
---|
272 | {
|
---|
273 | DWORD dwLength;
|
---|
274 | BYTE *lpBinaryValue;
|
---|
275 | LPWSTR pszDNString;
|
---|
276 | } ADS_DN_WITH_BINARY, *PADS_DN_WITH_BINARY;
|
---|
277 |
|
---|
278 | typedef struct
|
---|
279 | {
|
---|
280 | LPWSTR pszStringValue;
|
---|
281 | LPWSTR pszDNString;
|
---|
282 | } ADS_DN_WITH_STRING, *PADS_DN_WITH_STRING;
|
---|
283 |
|
---|
284 | typedef struct _adsvalue
|
---|
285 | {
|
---|
286 | ADSTYPE dwType;
|
---|
287 | union
|
---|
288 | {
|
---|
289 | ADS_DN_STRING DNString;
|
---|
290 | ADS_CASE_EXACT_STRING CaseExactString;
|
---|
291 | ADS_CASE_IGNORE_STRING CaseIgnoreString;
|
---|
292 | ADS_PRINTABLE_STRING PrintableString;
|
---|
293 | ADS_NUMERIC_STRING NumericString;
|
---|
294 | ADS_BOOLEAN Boolean;
|
---|
295 | ADS_INTEGER Integer;
|
---|
296 | ADS_OCTET_STRING OctetString;
|
---|
297 | ADS_UTC_TIME UTCTime;
|
---|
298 | ADS_LARGE_INTEGER LargeInteger;
|
---|
299 | ADS_OBJECT_CLASS ClassName;
|
---|
300 | ADS_PROV_SPECIFIC ProviderSpecific;
|
---|
301 | PADS_CASEIGNORE_LIST pCaseIgnoreList;
|
---|
302 | PADS_OCTET_LIST pOctetList;
|
---|
303 | PADS_PATH pPath;
|
---|
304 | PADS_POSTALADDRESS pPostalAddress;
|
---|
305 | ADS_TIMESTAMP Timestamp;
|
---|
306 | ADS_BACKLINK BackLink;
|
---|
307 | PADS_TYPEDNAME pTypedName;
|
---|
308 | ADS_HOLD Hold;
|
---|
309 | PADS_NETADDRESS pNetAddress;
|
---|
310 | PADS_REPLICAPOINTER pReplicaPointer;
|
---|
311 | PADS_FAXNUMBER pFaxNumber;
|
---|
312 | ADS_EMAIL Email;
|
---|
313 | ADS_NT_SECURITY_DESCRIPTOR SecurityDescriptor;
|
---|
314 | PADS_DN_WITH_BINARY pDNWithBinary;
|
---|
315 | PADS_DN_WITH_STRING pDNWithString;
|
---|
316 | };
|
---|
317 | } ADSVALUE, *PADSVALUE;
|
---|
318 |
|
---|
319 | typedef struct ads_searchpref_info
|
---|
320 | {
|
---|
321 | ADS_SEARCHPREF dwSearchPref;
|
---|
322 | ADSVALUE vValue;
|
---|
323 | ADS_STATUS dwStatus;
|
---|
324 | } ADS_SEARCHPREF_INFO;
|
---|
325 |
|
---|
326 | typedef struct ads_search_column
|
---|
327 | {
|
---|
328 | LPWSTR pszAttrName;
|
---|
329 | ADSTYPE dwADsType;
|
---|
330 | PADSVALUE pADsValues;
|
---|
331 | DWORD dwNumValues;
|
---|
332 | HANDLE hReserved;
|
---|
333 | } ADS_SEARCH_COLUMN, *PADS_SEARCH_COLUMN;
|
---|
334 |
|
---|
335 | /*****************************************************************************
|
---|
336 | * IADsContainer interface
|
---|
337 | */
|
---|
338 | [
|
---|
339 | object,
|
---|
340 | uuid(001677d0-fd16-11ce-abc4-02608c9e7553)
|
---|
341 | ]
|
---|
342 | interface IADsContainer: IDispatch
|
---|
343 | {
|
---|
344 | [propget] HRESULT Count(
|
---|
345 | [out, retval] long *retval);
|
---|
346 | [propget, restricted] HRESULT _NewEnum(
|
---|
347 | [out, retval] IUnknown **retval);
|
---|
348 | [propget] HRESULT Filter(
|
---|
349 | [out, retval] VARIANT *pvFilter);
|
---|
350 | [propput] HRESULT Filter(
|
---|
351 | [in] VARIANT vFilter);
|
---|
352 | [propget] HRESULT Hints(
|
---|
353 | [out, retval] VARIANT *pvHints);
|
---|
354 | [propput] HRESULT Hints(
|
---|
355 | [in] VARIANT vHints);
|
---|
356 | HRESULT GetObject(
|
---|
357 | [in] BSTR bstrClassName,
|
---|
358 | [in] BSTR bstrRelativeName,
|
---|
359 | [out, retval] IDispatch **ppObject);
|
---|
360 | HRESULT Create(
|
---|
361 | [in] BSTR bstrClassName,
|
---|
362 | [in] BSTR bstrRelativeName,
|
---|
363 | [out, retval] IDispatch **ppObject);
|
---|
364 | HRESULT Delete(
|
---|
365 | [in] BSTR bstrClassName,
|
---|
366 | [in] BSTR bstrRelativeName);
|
---|
367 | HRESULT CopyHere(
|
---|
368 | [in] BSTR bstrSourceName,
|
---|
369 | [in] BSTR bstrNewName,
|
---|
370 | [out, retval] IDispatch **ppObject);
|
---|
371 | HRESULT MoveHere(
|
---|
372 | [in] BSTR bstrSourceName,
|
---|
373 | [in] BSTR bstrNewName,
|
---|
374 | [out, retval] IDispatch **ppObject);
|
---|
375 | }
|
---|
376 |
|
---|
377 | /*****************************************************************************
|
---|
378 | * IADs interface
|
---|
379 | */
|
---|
380 | [
|
---|
381 | odl,
|
---|
382 | uuid(FD8256D0-FD15-11CE-ABC4-02608C9E7553),
|
---|
383 | dual,
|
---|
384 | oleautomation
|
---|
385 | ]
|
---|
386 | interface IADs : IDispatch
|
---|
387 | {
|
---|
388 | [id(0x00000002), propget]
|
---|
389 | HRESULT Name([out, retval] BSTR* retval);
|
---|
390 |
|
---|
391 | [id(0x00000003), propget]
|
---|
392 | HRESULT Class([out, retval] BSTR* retval);
|
---|
393 |
|
---|
394 | [id(0x00000004), propget]
|
---|
395 | HRESULT GUID([out, retval] BSTR* retval);
|
---|
396 |
|
---|
397 | [id(0x00000005), propget]
|
---|
398 | HRESULT ADsPath([out, retval] BSTR* retval);
|
---|
399 |
|
---|
400 | [id(0x00000006), propget]
|
---|
401 | HRESULT Parent([out, retval] BSTR* retval);
|
---|
402 |
|
---|
403 | [id(0x00000007), propget]
|
---|
404 | HRESULT Schema([out, retval] BSTR* retval);
|
---|
405 |
|
---|
406 | [id(0x00000008)]
|
---|
407 | HRESULT GetInfo();
|
---|
408 |
|
---|
409 | [id(0x00000009)]
|
---|
410 | HRESULT SetInfo();
|
---|
411 |
|
---|
412 | [id(0x0000000a)]
|
---|
413 | HRESULT Get([in] BSTR bstrName, [out, retval] VARIANT* pvProp);
|
---|
414 |
|
---|
415 | [id(0x0000000b)]
|
---|
416 | HRESULT Put([in] BSTR bstrName, [in] VARIANT vProp);
|
---|
417 |
|
---|
418 | [id(0x0000000c)]
|
---|
419 | HRESULT GetEx([in] BSTR bstrName, [out, retval] VARIANT* pvProp);
|
---|
420 |
|
---|
421 | [id(0x0000000d)]
|
---|
422 | HRESULT PutEx([in] long lnControlCode, [in] BSTR bstrName, [in] VARIANT vProp);
|
---|
423 |
|
---|
424 | [id(0x0000000e)]
|
---|
425 | HRESULT GetInfoEx( [in] VARIANT vProperties, [in] long lnReserved);
|
---|
426 | };
|
---|
427 |
|
---|
428 | /*****************************************************************************
|
---|
429 | * IADsMembers interface
|
---|
430 | */
|
---|
431 | [
|
---|
432 | odl,
|
---|
433 | uuid(451A0030-72EC-11CF-B03B-00AA006E0975),
|
---|
434 | dual,
|
---|
435 | oleautomation
|
---|
436 | ]
|
---|
437 | interface IADsMembers : IDispatch
|
---|
438 | {
|
---|
439 | [id(0x00000002), propget]
|
---|
440 | HRESULT Count([out, retval] long* plCount);
|
---|
441 |
|
---|
442 | [id(0xfffffffc), propget]
|
---|
443 | HRESULT _NewEnum([out, retval] IUnknown** ppEnumerator);
|
---|
444 |
|
---|
445 | [id(0x00000003), propget]
|
---|
446 | HRESULT Filter([out, retval] VARIANT* pvFilter);
|
---|
447 |
|
---|
448 | [id(0x00000003), propput]
|
---|
449 | HRESULT Filter([in] VARIANT pvFilter);
|
---|
450 | };
|
---|
451 |
|
---|
452 | /*****************************************************************************
|
---|
453 | * IADsGroup interface
|
---|
454 | */
|
---|
455 | [
|
---|
456 | odl,
|
---|
457 | uuid(27636B00-410F-11CF-B1FF-02608C9E7553),
|
---|
458 | dual,
|
---|
459 | oleautomation
|
---|
460 | ]
|
---|
461 | interface IADsGroup : IADs {
|
---|
462 | [id(0x0000000f), propget]
|
---|
463 | HRESULT Description([out, retval] BSTR* retval);
|
---|
464 |
|
---|
465 | [id(0x0000000f), propput]
|
---|
466 | HRESULT Description([in] BSTR retval);
|
---|
467 |
|
---|
468 | [id(0x00000010)]
|
---|
469 | HRESULT Members([out, retval] IADsMembers** ppMembers);
|
---|
470 |
|
---|
471 | [id(0x00000011)]
|
---|
472 | HRESULT IsMember([in] BSTR bstrMember, [out, retval] VARIANT_BOOL* bMember);
|
---|
473 |
|
---|
474 | [id(0x00000012)]
|
---|
475 | HRESULT Add([in] BSTR bstrNewItem);
|
---|
476 |
|
---|
477 | [id(0x00000013)]
|
---|
478 | HRESULT Remove([in] BSTR bstrItemToBeRemoved);
|
---|
479 | };
|
---|
480 |
|
---|
481 | /*****************************************************************************
|
---|
482 | * IADsUser interface
|
---|
483 | */
|
---|
484 | [
|
---|
485 | odl,
|
---|
486 | uuid(3E37E320-17E2-11CF-ABC4-02608C9E7553),
|
---|
487 | dual,
|
---|
488 | oleautomation
|
---|
489 | ]
|
---|
490 | interface IADsUser : IADs
|
---|
491 | {
|
---|
492 | [id(0x00000035), propget]
|
---|
493 | HRESULT BadLoginAddress([out, retval] BSTR* retval);
|
---|
494 |
|
---|
495 | [id(0x00000036), propget]
|
---|
496 | HRESULT BadLoginCount([out, retval] long* retval);
|
---|
497 |
|
---|
498 | [id(0x00000038), propget]
|
---|
499 | HRESULT LastLogin([out, retval] DATE* retval);
|
---|
500 |
|
---|
501 | [id(0x00000039), propget]
|
---|
502 | HRESULT LastLogoff([out, retval] DATE* retval);
|
---|
503 |
|
---|
504 | [id(0x0000003a), propget]
|
---|
505 | HRESULT LastFailedLogin([out, retval] DATE* retval);
|
---|
506 |
|
---|
507 | [id(0x0000003b), propget]
|
---|
508 | HRESULT PasswordLastChanged([out, retval] DATE* retval);
|
---|
509 |
|
---|
510 | [id(0x0000000f), propget]
|
---|
511 | HRESULT Description([out, retval] BSTR* retval);
|
---|
512 |
|
---|
513 | [id(0x0000000f), propput]
|
---|
514 | HRESULT Description([in] BSTR retval);
|
---|
515 |
|
---|
516 | [id(0x00000013), propget]
|
---|
517 | HRESULT Division([out, retval] BSTR* retval);
|
---|
518 |
|
---|
519 | [id(0x00000013), propput]
|
---|
520 | HRESULT Division([in] BSTR retval);
|
---|
521 |
|
---|
522 | [id(0x0000007a), propget]
|
---|
523 | HRESULT Department([out, retval] BSTR* retval);
|
---|
524 |
|
---|
525 | [id(0x0000007a), propput]
|
---|
526 | HRESULT Department([in] BSTR retval);
|
---|
527 |
|
---|
528 | [id(0x00000014), propget]
|
---|
529 | HRESULT EmployeeID([out, retval] BSTR* retval);
|
---|
530 |
|
---|
531 | [id(0x00000014), propput]
|
---|
532 | HRESULT EmployeeID([in] BSTR retval);
|
---|
533 |
|
---|
534 | [id(0x00000017), propget]
|
---|
535 | HRESULT FullName([out, retval] BSTR* retval);
|
---|
536 |
|
---|
537 | [id(0x00000017), propput]
|
---|
538 | HRESULT FullName([in] BSTR retval);
|
---|
539 |
|
---|
540 | [id(0x00000016), propget]
|
---|
541 | HRESULT FirstName([out, retval] BSTR* retval);
|
---|
542 |
|
---|
543 | [id(0x00000016), propput]
|
---|
544 | HRESULT FirstName([in] BSTR retval);
|
---|
545 |
|
---|
546 | [id(0x00000019), propget]
|
---|
547 | HRESULT LastName([out, retval] BSTR* retval);
|
---|
548 |
|
---|
549 | [id(0x00000019), propput]
|
---|
550 | HRESULT LastName([in] BSTR retval);
|
---|
551 |
|
---|
552 | [id(0x0000001b), propget]
|
---|
553 | HRESULT OtherName([out, retval] BSTR* retval);
|
---|
554 |
|
---|
555 | [id(0x0000001b), propput]
|
---|
556 | HRESULT OtherName([in] BSTR retval);
|
---|
557 |
|
---|
558 | [id(0x00000072), propget]
|
---|
559 | HRESULT NamePrefix([out, retval] BSTR* retval);
|
---|
560 |
|
---|
561 | [id(0x00000072), propput]
|
---|
562 | HRESULT NamePrefix([in] BSTR retval);
|
---|
563 |
|
---|
564 | [id(0x00000073), propget]
|
---|
565 | HRESULT NameSuffix([out, retval] BSTR* retval);
|
---|
566 |
|
---|
567 | [id(0x00000073), propput]
|
---|
568 | HRESULT NameSuffix([in] BSTR retval);
|
---|
569 |
|
---|
570 | [id(0x00000024), propget]
|
---|
571 | HRESULT Title([out, retval] BSTR* retval);
|
---|
572 |
|
---|
573 | [id(0x00000024), propput]
|
---|
574 | HRESULT Title([in] BSTR retval);
|
---|
575 |
|
---|
576 | [id(0x0000001a), propget]
|
---|
577 | HRESULT Manager([out, retval] BSTR* retval);
|
---|
578 |
|
---|
579 | [id(0x0000001a), propput]
|
---|
580 | HRESULT Manager([in] BSTR retval);
|
---|
581 |
|
---|
582 | [id(0x00000020), propget]
|
---|
583 | HRESULT TelephoneHome([out, retval] VARIANT* retval);
|
---|
584 |
|
---|
585 | [id(0x00000020), propput]
|
---|
586 | HRESULT TelephoneHome([in] VARIANT retval);
|
---|
587 |
|
---|
588 | [id(0x00000021), propget]
|
---|
589 | HRESULT TelephoneMobile([out, retval] VARIANT* retval);
|
---|
590 |
|
---|
591 | [id(0x00000021), propput]
|
---|
592 | HRESULT TelephoneMobile([in] VARIANT retval);
|
---|
593 |
|
---|
594 | [id(0x00000022), propget]
|
---|
595 | HRESULT TelephoneNumber([out, retval] VARIANT* retval);
|
---|
596 |
|
---|
597 | [id(0x00000022), propput]
|
---|
598 | HRESULT TelephoneNumber([in] VARIANT retval);
|
---|
599 |
|
---|
600 | [id(0x00000011), propget]
|
---|
601 | HRESULT TelephonePager([out, retval] VARIANT* retval);
|
---|
602 |
|
---|
603 | [id(0x00000011), propput]
|
---|
604 | HRESULT TelephonePager([in] VARIANT retval);
|
---|
605 |
|
---|
606 | [id(0x00000010), propget]
|
---|
607 | HRESULT FaxNumber([out, retval] VARIANT* retval);
|
---|
608 |
|
---|
609 | [id(0x00000010), propput]
|
---|
610 | HRESULT FaxNumber([in] VARIANT retval);
|
---|
611 |
|
---|
612 | [id(0x0000001c), propget]
|
---|
613 | HRESULT OfficeLocations([out, retval] VARIANT* retval);
|
---|
614 |
|
---|
615 | [id(0x0000001c), propput]
|
---|
616 | HRESULT OfficeLocations([in] VARIANT retval);
|
---|
617 |
|
---|
618 | [id(0x0000001e), propget]
|
---|
619 | HRESULT PostalAddresses([out, retval] VARIANT* retval);
|
---|
620 |
|
---|
621 | [id(0x0000001e), propput]
|
---|
622 | HRESULT PostalAddresses([in] VARIANT retval);
|
---|
623 |
|
---|
624 | [id(0x0000001f), propget]
|
---|
625 | HRESULT PostalCodes([out, retval] VARIANT* retval);
|
---|
626 |
|
---|
627 | [id(0x0000001f), propput]
|
---|
628 | HRESULT PostalCodes([in] VARIANT retval);
|
---|
629 |
|
---|
630 | [id(0x00000075), propget]
|
---|
631 | HRESULT SeeAlso([out, retval] VARIANT* retval);
|
---|
632 |
|
---|
633 | [id(0x00000075), propput]
|
---|
634 | HRESULT SeeAlso([in] VARIANT retval);
|
---|
635 |
|
---|
636 | [id(0x00000025), propget]
|
---|
637 | HRESULT AccountDisabled([out, retval] VARIANT_BOOL* retval);
|
---|
638 |
|
---|
639 | [id(0x00000025), propput]
|
---|
640 | HRESULT AccountDisabled([in] VARIANT_BOOL retval);
|
---|
641 |
|
---|
642 | [id(0x00000026), propget]
|
---|
643 | HRESULT AccountExpirationDate([out, retval] DATE* retval);
|
---|
644 |
|
---|
645 | [id(0x00000026), propput]
|
---|
646 | HRESULT AccountExpirationDate([in] DATE retval);
|
---|
647 |
|
---|
648 | [id(0x00000029), propget]
|
---|
649 | HRESULT GraceLoginsAllowed([out, retval] long* retval);
|
---|
650 |
|
---|
651 | [id(0x00000029), propput]
|
---|
652 | HRESULT GraceLoginsAllowed([in] long retval);
|
---|
653 |
|
---|
654 | [id(0x0000002a), propget]
|
---|
655 | HRESULT GraceLoginsRemaining([out, retval] long* retval);
|
---|
656 |
|
---|
657 | [id(0x0000002a), propput]
|
---|
658 | HRESULT GraceLoginsRemaining([in] long retval);
|
---|
659 |
|
---|
660 | [id(0x0000002b), propget]
|
---|
661 | HRESULT IsAccountLocked([out, retval] VARIANT_BOOL* retval);
|
---|
662 |
|
---|
663 | [id(0x0000002b), propput]
|
---|
664 | HRESULT IsAccountLocked([in] VARIANT_BOOL retval);
|
---|
665 |
|
---|
666 | [id(0x0000002d), propget]
|
---|
667 | HRESULT LoginHours([out, retval] VARIANT* retval);
|
---|
668 |
|
---|
669 | [id(0x0000002d), propput]
|
---|
670 | HRESULT LoginHours([in] VARIANT retval);
|
---|
671 |
|
---|
672 | [id(0x0000002e), propget]
|
---|
673 | HRESULT LoginWorkstations([out, retval] VARIANT* retval);
|
---|
674 |
|
---|
675 | [id(0x0000002e), propput]
|
---|
676 | HRESULT LoginWorkstations([in] VARIANT retval);
|
---|
677 |
|
---|
678 | [id(0x0000002f), propget]
|
---|
679 | HRESULT MaxLogins([out, retval] long* retval);
|
---|
680 |
|
---|
681 | [id(0x0000002f), propput]
|
---|
682 | HRESULT MaxLogins([in] long retval);
|
---|
683 |
|
---|
684 | [id(0x00000030), propget]
|
---|
685 | HRESULT MaxStorage([out, retval] long* retval);
|
---|
686 |
|
---|
687 | [id(0x00000030), propput]
|
---|
688 | HRESULT MaxStorage([in] long retval);
|
---|
689 |
|
---|
690 | [id(0x00000031), propget]
|
---|
691 | HRESULT PasswordExpirationDate([out, retval] DATE* retval);
|
---|
692 |
|
---|
693 | [id(0x00000031), propput]
|
---|
694 | HRESULT PasswordExpirationDate([in] DATE retval);
|
---|
695 |
|
---|
696 | [id(0x00000032), propget]
|
---|
697 | HRESULT PasswordMinimumLength([out, retval] long* retval);
|
---|
698 |
|
---|
699 | [id(0x00000032), propput]
|
---|
700 | HRESULT PasswordMinimumLength([in] long retval);
|
---|
701 |
|
---|
702 | [id(0x00000033), propget]
|
---|
703 | HRESULT PasswordRequired([out, retval] VARIANT_BOOL* retval);
|
---|
704 |
|
---|
705 | [id(0x00000033), propput]
|
---|
706 | HRESULT PasswordRequired([in] VARIANT_BOOL retval);
|
---|
707 |
|
---|
708 | [id(0x00000034), propget]
|
---|
709 | HRESULT RequireUniquePassword([out, retval] VARIANT_BOOL* retval);
|
---|
710 |
|
---|
711 | [id(0x00000034), propput]
|
---|
712 | HRESULT RequireUniquePassword([in] VARIANT_BOOL retval);
|
---|
713 |
|
---|
714 | [id(0x0000003c), propget]
|
---|
715 | HRESULT EmailAddress([out, retval] BSTR* retval);
|
---|
716 |
|
---|
717 | [id(0x0000003c), propput]
|
---|
718 | HRESULT EmailAddress([in] BSTR retval);
|
---|
719 |
|
---|
720 | [id(0x0000003d), propget]
|
---|
721 | HRESULT HomeDirectory([out, retval] BSTR* retval);
|
---|
722 |
|
---|
723 | [id(0x0000003d), propput]
|
---|
724 | HRESULT HomeDirectory([in] BSTR retval);
|
---|
725 |
|
---|
726 | [id(0x0000003e), propget]
|
---|
727 | HRESULT Languages([out, retval] VARIANT* retval);
|
---|
728 |
|
---|
729 | [id(0x0000003e), propput]
|
---|
730 | HRESULT Languages([in] VARIANT retval);
|
---|
731 |
|
---|
732 | [id(0x0000003f), propget]
|
---|
733 | HRESULT Profile([out, retval] BSTR* retval);
|
---|
734 |
|
---|
735 | [id(0x0000003f), propput]
|
---|
736 | HRESULT Profile([in] BSTR retval);
|
---|
737 |
|
---|
738 | [id(0x00000040), propget]
|
---|
739 | HRESULT LoginScript([out, retval] BSTR* retval);
|
---|
740 |
|
---|
741 | [id(0x00000040), propput]
|
---|
742 | HRESULT LoginScript([in] BSTR retval);
|
---|
743 |
|
---|
744 | [id(0x00000041), propget]
|
---|
745 | HRESULT Picture([out, retval] VARIANT* retval);
|
---|
746 |
|
---|
747 | [id(0x00000041), propput]
|
---|
748 | HRESULT Picture([in] VARIANT retval);
|
---|
749 |
|
---|
750 | [id(0x00000078), propget]
|
---|
751 | HRESULT HomePage([out, retval] BSTR* retval);
|
---|
752 |
|
---|
753 | [id(0x00000078), propput]
|
---|
754 | HRESULT HomePage([in] BSTR retval);
|
---|
755 |
|
---|
756 | [id(0x00000042)]
|
---|
757 | HRESULT Groups([out, retval] IADsMembers** ppGroups);
|
---|
758 |
|
---|
759 | [id(0x00000043)]
|
---|
760 | HRESULT SetPassword([in] BSTR NewPassword);
|
---|
761 |
|
---|
762 | [id(0x00000044)]
|
---|
763 | HRESULT ChangePassword([in] BSTR bstrOldPassword, [in] BSTR bstrNewPassword);
|
---|
764 | };
|
---|
765 |
|
---|
766 | /*****************************************************************************
|
---|
767 | * IDirectorySearch interface
|
---|
768 | */
|
---|
769 | [
|
---|
770 | odl,
|
---|
771 | local,
|
---|
772 | uuid(109BA8EC-92F0-11D0-A790-00C04FD8D5A8)
|
---|
773 | ]
|
---|
774 | interface IDirectorySearch : IUnknown
|
---|
775 | {
|
---|
776 | HRESULT SetSearchPreference([in] PADS_SEARCHPREF_INFO pSearchPrefs, [in] DWORD dwNumPrefs);
|
---|
777 | HRESULT ExecuteSearch([in] LPWSTR pszSearchFilter, [in] LPWSTR* pAttributeNames,
|
---|
778 | [in] DWORD dwNumberAttributes, [out] PADS_SEARCH_HANDLE phSearchResult);
|
---|
779 | HRESULT AbandonSearch([in] ADS_SEARCH_HANDLE phSearchResult);
|
---|
780 | HRESULT GetFirstRow([in] ADS_SEARCH_HANDLE hSearchResult);
|
---|
781 | HRESULT GetNextRow([in] ADS_SEARCH_HANDLE hSearchResult);
|
---|
782 | HRESULT GetPreviousRow([in] ADS_SEARCH_HANDLE hSearchResult);
|
---|
783 | HRESULT GetNextColumnName([in] ADS_SEARCH_HANDLE hSearchHandle, [out] LPWSTR* ppszColumnName);
|
---|
784 | HRESULT GetColumn( [in] ADS_SEARCH_HANDLE hSearchResult, [in] LPWSTR szColumnName,
|
---|
785 | [out] PADS_SEARCH_COLUMN pSearchColumn);
|
---|
786 | HRESULT FreeColumn([in] PADS_SEARCH_COLUMN pSearchColumn);
|
---|
787 | HRESULT CloseSearchHandle([in] ADS_SEARCH_HANDLE hSearchResult);
|
---|
788 | };
|
---|