dinput: Avoid deadlock when CS are acquired in different order.
[wine.git] / include / iads.idl
blob6931b6f7341cfec6837a4e1bb745090fd1c0af5d
1 /*
2 * Copyright 2005 Francois Gouget
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.
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.
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
19 import "oaidl.idl";
21 #ifndef __WIDL__
22 #define threading(model)
23 #define progid(str)
24 #define vi_progid(str)
25 #endif
28 helpstring("Active DS Type Library"),
29 uuid(97d25db0-0363-11cf-abc4-02608c9e7553),
30 version(1.0)
32 library ActiveDs
35 importlib("stdole2.tlb");
37 typedef enum
39 ADS_RIGHT_DS_CREATE_CHILD = 0x00000001,
40 ADS_RIGHT_DS_DELETE_CHILD = 0x00000002,
41 ADS_RIGHT_ACTRL_DS_LIST = 0x00000004,
42 ADS_RIGHT_DS_SELF = 0x00000008,
43 ADS_RIGHT_DS_READ_PROP = 0x00000010,
44 ADS_RIGHT_DS_WRITE_PROP = 0x00000020,
45 ADS_RIGHT_DS_DELETE_TREE = 0x00000040,
46 ADS_RIGHT_DS_LIST_OBJECT = 0x00000080,
47 ADS_RIGHT_DS_CONTROL_ACCESS = 0x00000100,
49 ADS_RIGHT_DELETE = 0x00010000,
50 ADS_RIGHT_READ_CONTROL = 0x00020000,
51 ADS_RIGHT_WRITE_DAC = 0x00040000,
52 ADS_RIGHT_WRITE_OWNER = 0x00080000,
53 ADS_RIGHT_SYNCHRONIZE = 0x00100000,
54 ADS_RIGHT_ACCESS_SYSTEM_SECURITY = 0x00200000,
56 ADS_RIGHT_GENERIC_ALL = 0x10000000,
57 ADS_RIGHT_GENERIC_EXECUTE = 0x20000000,
58 ADS_RIGHT_GENERIC_WRITE = 0x40000000,
59 ADS_RIGHT_GENERIC_READ = 0x80000000
60 } ADS_RIGHTS_ENUM;
62 typedef enum
64 ADS_SECURE_AUTHENTICATION = 0x1,
65 ADS_USE_ENCRYPTION = 0x2,
66 ADS_USE_SSL = 0x2,
67 ADS_READONLY_SERVER = 0x4,
68 ADS_PROMPT_CREDENTIALS = 0x8,
69 ADS_NO_AUTHENTICATION = 0x10,
70 ADS_FAST_BIND = 0x20,
71 ADS_USE_SIGNING = 0x40,
72 ADS_USE_SEALING = 0x80,
73 ADS_USE_DELEGATION = 0x100,
74 ADS_SERVER_BIND = 0x200,
75 ADS_NO_REFERRAL_CHASING = 0x400,
76 ADS_AUTH_RESERVED = 0x80000000
77 } ADS_AUTHENTICATION_ENUM;
79 typedef enum
81 ADS_SEARCHPREF_ASYNCHRONOUS,
82 ADS_SEARCHPREF_DEREF_ALIASES,
83 ADS_SEARCHPREF_SIZE_LIMIT,
84 ADS_SEARCHPREF_TIME_LIMIT,
85 ADS_SEARCHPREF_ATTRIBTYPES_ONLY,
86 ADS_SEARCHPREF_SEARCH_SCOPE,
87 ADS_SEARCHPREF_TIMEOUT,
88 ADS_SEARCHPREF_PAGESIZE,
89 ADS_SEARCHPREF_PAGED_TIME_LIMIT,
90 ADS_SEARCHPREF_CHASE_REFERRALS,
91 ADS_SEARCHPREF_SORT_ON,
92 ADS_SEARCHPREF_CACHE_RESULTS,
93 ADS_SEARCHPREF_DIRSYNC,
94 ADS_SEARCHPREF_TOMBSTONE,
95 ADS_SEARCHPREF_VLV,
96 ADS_SEARCHPREF_ATTRIBUTE_QUERY,
97 ADS_SEARCHPREF_SECURITY_MASK,
98 ADS_SEARCHPREF_DIRSYNC_FLAG,
99 ADS_SEARCHPREF_EXTENDED_DN
100 } ADS_SEARCHPREF_ENUM;
102 typedef ADS_SEARCHPREF_ENUM *PADS_SEARCHPREF_INFO;
104 typedef enum
106 ADS_STATUS_S_OK,
107 ADS_STATUS_INVALID_SEARCHPREF,
108 ADS_STATUS_INVALID_SEARCHPREFVALUE
109 } ADS_STATUSENUM;
111 typedef enum
113 ADSTYPE_INVALID,
114 ADSTYPE_DN_STRING,
115 ADSTYPE_CASE_EXACT_STRING,
116 ADSTYPE_CASE_IGNORE_STRING,
117 ADSTYPE_PRINTABLE_STRING,
118 ADSTYPE_NUMERIC_STRING,
119 ADSTYPE_BOOLEAN,
120 ADSTYPE_INTEGER,
121 ADSTYPE_OCTET_STRING,
122 ADSTYPE_UTC_TIME,
123 ADSTYPE_LARGE_INTEGER,
124 ADSTYPE_PROV_SPECIFIC,
125 ADSTYPE_OBJECT_CLASS,
126 ADSTYPE_CASEIGNORE_LIST,
127 ADSTYPE_OCTET_LIST,
128 ADSTYPE_PATH,
129 ADSTYPE_POSTALADDRESS,
130 ADSTYPE_TIMESTAMP,
131 ADSTYPE_BACKLINK,
132 ADSTYPE_TYPEDNAME,
133 ADSTYPE_HOLD,
134 ADSTYPE_NETADDRESS,
135 ADSTYPE_REPLICAPOINTER,
136 ADSTYPE_FAXNUMBER,
137 ADSTYPE_EMAIL,
138 ADSTYPE_NT_SECURITY_DESCRIPTOR,
139 ADSTYPE_UNKNOWN,
140 ADSTYPE_DN_WITH_BINARY,
141 ADSTYPE_DN_WITH_STRING
142 } ADSTYPEENUM;
144 typedef enum
146 ADS_PASSWORD_ENCODE_REQUIRE_SSL,
147 ADS_PASSWORD_ENCODE_CLEAR
148 } ADS_PASSWORD_ENCODING_ENUM;
150 typedef struct _ADS_CASEIGNORE_LIST
152 struct _ADS_CASEIGNORE_LIST *Next;
153 LPWSTR String;
154 } ADS_CASEIGNORE_LIST;
156 typedef struct _ADS_OCTET_LIST
158 struct _ADS_OCTET_LIST *Next;
159 DWORD Length;
160 BYTE *Data;
161 } ADS_OCTET_LIST;
163 typedef struct
165 DWORD Type;
166 LPWSTR VolumeName;
167 LPWSTR Path;
168 } ADS_PATH, *PADS_PATH;
170 typedef struct
172 DWORD WholeSeconds;
173 DWORD EventID;
174 } ADS_TIMESTAMP;
177 typedef ADSTYPEENUM ADSTYPE;
178 typedef LPWSTR ADS_DN_STRING;
179 typedef LPWSTR *PADS_DN_STRING;
180 typedef LPWSTR ADS_CASE_EXACT_STRING;
181 typedef LPWSTR *PADS_CASE_EXACT_STRING;
182 typedef LPWSTR ADS_CASE_IGNORE_STRING;
183 typedef LPWSTR *PADS_CASE_IGNORE_STRING;
184 typedef LPWSTR ADS_PRINTABLE_STRING;
185 typedef LPWSTR *PADS_PRINTABLE_STRING;
186 typedef LPWSTR ADS_NUMERIC_STRING;
187 typedef LPWSTR *PADS_NUMERIC_STRING;
188 typedef DWORD ADS_BOOLEAN;
189 typedef DWORD *LPNDS_BOOLEAN;
190 typedef DWORD ADS_INTEGER;
191 typedef DWORD *PADS_INTEGER;
192 typedef SYSTEMTIME ADS_UTC_TIME;
193 typedef SYSTEMTIME *PADS_UTC_TIME;
194 typedef LARGE_INTEGER ADS_LARGE_INTEGER;
195 typedef LARGE_INTEGER *PADS_LARGE_INTEGER;
196 typedef LPWSTR ADS_OBJECT_CLASS;
197 typedef LPWSTR *PADS_OBJECT_CLASS;
198 typedef struct _ADS_OCTET_LIST *PADS_OCTET_LIST;
199 typedef struct _ADS_CASEIGNORE_LIST *PADS_CASEIGNORE_LIST;
200 typedef ADS_STATUSENUM ADS_STATUS;
201 typedef ADS_SEARCHPREF_ENUM ADS_SEARCHPREF;
202 typedef HANDLE ADS_SEARCH_HANDLE;
203 typedef HANDLE *PADS_SEARCH_HANDLE;
206 typedef struct
208 DWORD dwLength;
209 BYTE *lpValue;
210 } ADS_OCTET_STRING;
212 typedef struct
214 DWORD dwLength;
215 BYTE *lpValue;
216 } ADS_PROV_SPECIFIC;
218 typedef struct
220 LPWSTR PostalAddress[ 6 ];
221 } ADS_POSTALADDRESS, *PADS_POSTALADDRESS;
223 typedef struct
225 LPWSTR ObjectName;
226 DWORD Level;
227 DWORD Interval;
228 } ADS_TYPEDNAME, *PADS_TYPEDNAME;
230 typedef struct
232 DWORD RemoteID;
233 LPWSTR ObjectName;
234 } ADS_BACKLINK;
236 typedef struct
238 LPWSTR ObjectName;
239 DWORD Amount;
240 } ADS_HOLD;
242 typedef struct
244 DWORD AddressType;
245 DWORD AddressLength;
246 BYTE *Address;
247 } ADS_NETADDRESS, *PADS_NETADDRESS;
249 typedef struct
251 LPWSTR ServerName;
252 DWORD ReplicaType;
253 DWORD ReplicaNumber;
254 DWORD Count;
255 PADS_NETADDRESS ReplicaAddressHints;
256 } ADS_REPLICAPOINTER, *PADS_REPLICAPOINTER;
258 typedef struct
260 LPWSTR TelephoneNumber;
261 DWORD NumberOfBits;
262 BYTE *Parameters;
263 } ADS_FAXNUMBER, *PADS_FAXNUMBER;
266 typedef struct
268 LPWSTR Address;
269 DWORD Type;
270 } ADS_EMAIL, *PADS_EMAIL;
272 typedef struct
274 DWORD dwLength;
275 BYTE *lpValue;
276 } ADS_NT_SECURITY_DESCRIPTOR;
278 typedef struct
280 DWORD dwLength;
281 BYTE *lpBinaryValue;
282 LPWSTR pszDNString;
283 } ADS_DN_WITH_BINARY, *PADS_DN_WITH_BINARY;
285 typedef struct
287 LPWSTR pszStringValue;
288 LPWSTR pszDNString;
289 } ADS_DN_WITH_STRING, *PADS_DN_WITH_STRING;
291 typedef struct _adsvalue
293 ADSTYPE dwType;
294 union
296 ADS_DN_STRING DNString;
297 ADS_CASE_EXACT_STRING CaseExactString;
298 ADS_CASE_IGNORE_STRING CaseIgnoreString;
299 ADS_PRINTABLE_STRING PrintableString;
300 ADS_NUMERIC_STRING NumericString;
301 ADS_BOOLEAN Boolean;
302 ADS_INTEGER Integer;
303 ADS_OCTET_STRING OctetString;
304 ADS_UTC_TIME UTCTime;
305 ADS_LARGE_INTEGER LargeInteger;
306 ADS_OBJECT_CLASS ClassName;
307 ADS_PROV_SPECIFIC ProviderSpecific;
308 PADS_CASEIGNORE_LIST pCaseIgnoreList;
309 PADS_OCTET_LIST pOctetList;
310 PADS_PATH pPath;
311 PADS_POSTALADDRESS pPostalAddress;
312 ADS_TIMESTAMP Timestamp;
313 ADS_BACKLINK BackLink;
314 PADS_TYPEDNAME pTypedName;
315 ADS_HOLD Hold;
316 PADS_NETADDRESS pNetAddress;
317 PADS_REPLICAPOINTER pReplicaPointer;
318 PADS_FAXNUMBER pFaxNumber;
319 ADS_EMAIL Email;
320 ADS_NT_SECURITY_DESCRIPTOR SecurityDescriptor;
321 PADS_DN_WITH_BINARY pDNWithBinary;
322 PADS_DN_WITH_STRING pDNWithString;
324 } ADSVALUE, *PADSVALUE;
326 typedef struct ads_searchpref_info
328 ADS_SEARCHPREF dwSearchPref;
329 ADSVALUE vValue;
330 ADS_STATUS dwStatus;
331 } ADS_SEARCHPREF_INFO;
333 typedef struct ads_search_column
335 LPWSTR pszAttrName;
336 ADSTYPE dwADsType;
337 PADSVALUE pADsValues;
338 DWORD dwNumValues;
339 HANDLE hReserved;
340 } ADS_SEARCH_COLUMN, *PADS_SEARCH_COLUMN;
342 /*****************************************************************************
343 * IADsContainer interface
346 object,
347 uuid(001677d0-fd16-11ce-abc4-02608c9e7553)
349 interface IADsContainer: IDispatch
351 [propget] HRESULT Count(
352 [out, retval] long *retval);
353 [propget, restricted] HRESULT _NewEnum(
354 [out, retval] IUnknown **retval);
355 [propget] HRESULT Filter(
356 [out, retval] VARIANT *pvFilter);
357 [propput] HRESULT Filter(
358 [in] VARIANT vFilter);
359 [propget] HRESULT Hints(
360 [out, retval] VARIANT *pvHints);
361 [propput] HRESULT Hints(
362 [in] VARIANT vHints);
363 HRESULT GetObject(
364 [in] BSTR bstrClassName,
365 [in] BSTR bstrRelativeName,
366 [out, retval] IDispatch **ppObject);
367 HRESULT Create(
368 [in] BSTR bstrClassName,
369 [in] BSTR bstrRelativeName,
370 [out, retval] IDispatch **ppObject);
371 HRESULT Delete(
372 [in] BSTR bstrClassName,
373 [in] BSTR bstrRelativeName);
374 HRESULT CopyHere(
375 [in] BSTR bstrSourceName,
376 [in] BSTR bstrNewName,
377 [out, retval] IDispatch **ppObject);
378 HRESULT MoveHere(
379 [in] BSTR bstrSourceName,
380 [in] BSTR bstrNewName,
381 [out, retval] IDispatch **ppObject);
384 /*****************************************************************************
385 * IADs interface
388 odl,
389 uuid(FD8256D0-FD15-11CE-ABC4-02608C9E7553),
390 dual,
391 oleautomation
393 interface IADs : IDispatch
395 [id(0x00000002), propget]
396 HRESULT Name([out, retval] BSTR* retval);
398 [id(0x00000003), propget]
399 HRESULT Class([out, retval] BSTR* retval);
401 [id(0x00000004), propget]
402 HRESULT GUID([out, retval] BSTR* retval);
404 [id(0x00000005), propget]
405 HRESULT ADsPath([out, retval] BSTR* retval);
407 [id(0x00000006), propget]
408 HRESULT Parent([out, retval] BSTR* retval);
410 [id(0x00000007), propget]
411 HRESULT Schema([out, retval] BSTR* retval);
413 [id(0x00000008)]
414 HRESULT GetInfo();
416 [id(0x00000009)]
417 HRESULT SetInfo();
419 [id(0x0000000a)]
420 HRESULT Get([in] BSTR bstrName, [out, retval] VARIANT* pvProp);
422 [id(0x0000000b)]
423 HRESULT Put([in] BSTR bstrName, [in] VARIANT vProp);
425 [id(0x0000000c)]
426 HRESULT GetEx([in] BSTR bstrName, [out, retval] VARIANT* pvProp);
428 [id(0x0000000d)]
429 HRESULT PutEx([in] long lnControlCode, [in] BSTR bstrName, [in] VARIANT vProp);
431 [id(0x0000000e)]
432 HRESULT GetInfoEx( [in] VARIANT vProperties, [in] long lnReserved);
435 /*****************************************************************************
436 * IADsMembers interface
439 odl,
440 uuid(451A0030-72EC-11CF-B03B-00AA006E0975),
441 dual,
442 oleautomation
444 interface IADsMembers : IDispatch
446 [id(0x00000002), propget]
447 HRESULT Count([out, retval] long* plCount);
449 [id(0xfffffffc), propget]
450 HRESULT _NewEnum([out, retval] IUnknown** ppEnumerator);
452 [id(0x00000003), propget]
453 HRESULT Filter([out, retval] VARIANT* pvFilter);
455 [id(0x00000003), propput]
456 HRESULT Filter([in] VARIANT pvFilter);
459 /*****************************************************************************
460 * IADsGroup interface
463 odl,
464 uuid(27636B00-410F-11CF-B1FF-02608C9E7553),
465 dual,
466 oleautomation
468 interface IADsGroup : IADs {
469 [id(0x0000000f), propget]
470 HRESULT Description([out, retval] BSTR* retval);
472 [id(0x0000000f), propput]
473 HRESULT Description([in] BSTR retval);
475 [id(0x00000010)]
476 HRESULT Members([out, retval] IADsMembers** ppMembers);
478 [id(0x00000011)]
479 HRESULT IsMember([in] BSTR bstrMember, [out, retval] VARIANT_BOOL* bMember);
481 [id(0x00000012)]
482 HRESULT Add([in] BSTR bstrNewItem);
484 [id(0x00000013)]
485 HRESULT Remove([in] BSTR bstrItemToBeRemoved);
488 /*****************************************************************************
489 * IADsUser interface
492 odl,
493 uuid(3E37E320-17E2-11CF-ABC4-02608C9E7553),
494 dual,
495 oleautomation
497 interface IADsUser : IADs
499 [id(0x00000035), propget]
500 HRESULT BadLoginAddress([out, retval] BSTR* retval);
502 [id(0x00000036), propget]
503 HRESULT BadLoginCount([out, retval] long* retval);
505 [id(0x00000038), propget]
506 HRESULT LastLogin([out, retval] DATE* retval);
508 [id(0x00000039), propget]
509 HRESULT LastLogoff([out, retval] DATE* retval);
511 [id(0x0000003a), propget]
512 HRESULT LastFailedLogin([out, retval] DATE* retval);
514 [id(0x0000003b), propget]
515 HRESULT PasswordLastChanged([out, retval] DATE* retval);
517 [id(0x0000000f), propget]
518 HRESULT Description([out, retval] BSTR* retval);
520 [id(0x0000000f), propput]
521 HRESULT Description([in] BSTR retval);
523 [id(0x00000013), propget]
524 HRESULT Division([out, retval] BSTR* retval);
526 [id(0x00000013), propput]
527 HRESULT Division([in] BSTR retval);
529 [id(0x0000007a), propget]
530 HRESULT Department([out, retval] BSTR* retval);
532 [id(0x0000007a), propput]
533 HRESULT Department([in] BSTR retval);
535 [id(0x00000014), propget]
536 HRESULT EmployeeID([out, retval] BSTR* retval);
538 [id(0x00000014), propput]
539 HRESULT EmployeeID([in] BSTR retval);
541 [id(0x00000017), propget]
542 HRESULT FullName([out, retval] BSTR* retval);
544 [id(0x00000017), propput]
545 HRESULT FullName([in] BSTR retval);
547 [id(0x00000016), propget]
548 HRESULT FirstName([out, retval] BSTR* retval);
550 [id(0x00000016), propput]
551 HRESULT FirstName([in] BSTR retval);
553 [id(0x00000019), propget]
554 HRESULT LastName([out, retval] BSTR* retval);
556 [id(0x00000019), propput]
557 HRESULT LastName([in] BSTR retval);
559 [id(0x0000001b), propget]
560 HRESULT OtherName([out, retval] BSTR* retval);
562 [id(0x0000001b), propput]
563 HRESULT OtherName([in] BSTR retval);
565 [id(0x00000072), propget]
566 HRESULT NamePrefix([out, retval] BSTR* retval);
568 [id(0x00000072), propput]
569 HRESULT NamePrefix([in] BSTR retval);
571 [id(0x00000073), propget]
572 HRESULT NameSuffix([out, retval] BSTR* retval);
574 [id(0x00000073), propput]
575 HRESULT NameSuffix([in] BSTR retval);
577 [id(0x00000024), propget]
578 HRESULT Title([out, retval] BSTR* retval);
580 [id(0x00000024), propput]
581 HRESULT Title([in] BSTR retval);
583 [id(0x0000001a), propget]
584 HRESULT Manager([out, retval] BSTR* retval);
586 [id(0x0000001a), propput]
587 HRESULT Manager([in] BSTR retval);
589 [id(0x00000020), propget]
590 HRESULT TelephoneHome([out, retval] VARIANT* retval);
592 [id(0x00000020), propput]
593 HRESULT TelephoneHome([in] VARIANT retval);
595 [id(0x00000021), propget]
596 HRESULT TelephoneMobile([out, retval] VARIANT* retval);
598 [id(0x00000021), propput]
599 HRESULT TelephoneMobile([in] VARIANT retval);
601 [id(0x00000022), propget]
602 HRESULT TelephoneNumber([out, retval] VARIANT* retval);
604 [id(0x00000022), propput]
605 HRESULT TelephoneNumber([in] VARIANT retval);
607 [id(0x00000011), propget]
608 HRESULT TelephonePager([out, retval] VARIANT* retval);
610 [id(0x00000011), propput]
611 HRESULT TelephonePager([in] VARIANT retval);
613 [id(0x00000010), propget]
614 HRESULT FaxNumber([out, retval] VARIANT* retval);
616 [id(0x00000010), propput]
617 HRESULT FaxNumber([in] VARIANT retval);
619 [id(0x0000001c), propget]
620 HRESULT OfficeLocations([out, retval] VARIANT* retval);
622 [id(0x0000001c), propput]
623 HRESULT OfficeLocations([in] VARIANT retval);
625 [id(0x0000001e), propget]
626 HRESULT PostalAddresses([out, retval] VARIANT* retval);
628 [id(0x0000001e), propput]
629 HRESULT PostalAddresses([in] VARIANT retval);
631 [id(0x0000001f), propget]
632 HRESULT PostalCodes([out, retval] VARIANT* retval);
634 [id(0x0000001f), propput]
635 HRESULT PostalCodes([in] VARIANT retval);
637 [id(0x00000075), propget]
638 HRESULT SeeAlso([out, retval] VARIANT* retval);
640 [id(0x00000075), propput]
641 HRESULT SeeAlso([in] VARIANT retval);
643 [id(0x00000025), propget]
644 HRESULT AccountDisabled([out, retval] VARIANT_BOOL* retval);
646 [id(0x00000025), propput]
647 HRESULT AccountDisabled([in] VARIANT_BOOL retval);
649 [id(0x00000026), propget]
650 HRESULT AccountExpirationDate([out, retval] DATE* retval);
652 [id(0x00000026), propput]
653 HRESULT AccountExpirationDate([in] DATE retval);
655 [id(0x00000029), propget]
656 HRESULT GraceLoginsAllowed([out, retval] long* retval);
658 [id(0x00000029), propput]
659 HRESULT GraceLoginsAllowed([in] long retval);
661 [id(0x0000002a), propget]
662 HRESULT GraceLoginsRemaining([out, retval] long* retval);
664 [id(0x0000002a), propput]
665 HRESULT GraceLoginsRemaining([in] long retval);
667 [id(0x0000002b), propget]
668 HRESULT IsAccountLocked([out, retval] VARIANT_BOOL* retval);
670 [id(0x0000002b), propput]
671 HRESULT IsAccountLocked([in] VARIANT_BOOL retval);
673 [id(0x0000002d), propget]
674 HRESULT LoginHours([out, retval] VARIANT* retval);
676 [id(0x0000002d), propput]
677 HRESULT LoginHours([in] VARIANT retval);
679 [id(0x0000002e), propget]
680 HRESULT LoginWorkstations([out, retval] VARIANT* retval);
682 [id(0x0000002e), propput]
683 HRESULT LoginWorkstations([in] VARIANT retval);
685 [id(0x0000002f), propget]
686 HRESULT MaxLogins([out, retval] long* retval);
688 [id(0x0000002f), propput]
689 HRESULT MaxLogins([in] long retval);
691 [id(0x00000030), propget]
692 HRESULT MaxStorage([out, retval] long* retval);
694 [id(0x00000030), propput]
695 HRESULT MaxStorage([in] long retval);
697 [id(0x00000031), propget]
698 HRESULT PasswordExpirationDate([out, retval] DATE* retval);
700 [id(0x00000031), propput]
701 HRESULT PasswordExpirationDate([in] DATE retval);
703 [id(0x00000032), propget]
704 HRESULT PasswordMinimumLength([out, retval] long* retval);
706 [id(0x00000032), propput]
707 HRESULT PasswordMinimumLength([in] long retval);
709 [id(0x00000033), propget]
710 HRESULT PasswordRequired([out, retval] VARIANT_BOOL* retval);
712 [id(0x00000033), propput]
713 HRESULT PasswordRequired([in] VARIANT_BOOL retval);
715 [id(0x00000034), propget]
716 HRESULT RequireUniquePassword([out, retval] VARIANT_BOOL* retval);
718 [id(0x00000034), propput]
719 HRESULT RequireUniquePassword([in] VARIANT_BOOL retval);
721 [id(0x0000003c), propget]
722 HRESULT EmailAddress([out, retval] BSTR* retval);
724 [id(0x0000003c), propput]
725 HRESULT EmailAddress([in] BSTR retval);
727 [id(0x0000003d), propget]
728 HRESULT HomeDirectory([out, retval] BSTR* retval);
730 [id(0x0000003d), propput]
731 HRESULT HomeDirectory([in] BSTR retval);
733 [id(0x0000003e), propget]
734 HRESULT Languages([out, retval] VARIANT* retval);
736 [id(0x0000003e), propput]
737 HRESULT Languages([in] VARIANT retval);
739 [id(0x0000003f), propget]
740 HRESULT Profile([out, retval] BSTR* retval);
742 [id(0x0000003f), propput]
743 HRESULT Profile([in] BSTR retval);
745 [id(0x00000040), propget]
746 HRESULT LoginScript([out, retval] BSTR* retval);
748 [id(0x00000040), propput]
749 HRESULT LoginScript([in] BSTR retval);
751 [id(0x00000041), propget]
752 HRESULT Picture([out, retval] VARIANT* retval);
754 [id(0x00000041), propput]
755 HRESULT Picture([in] VARIANT retval);
757 [id(0x00000078), propget]
758 HRESULT HomePage([out, retval] BSTR* retval);
760 [id(0x00000078), propput]
761 HRESULT HomePage([in] BSTR retval);
763 [id(0x00000042)]
764 HRESULT Groups([out, retval] IADsMembers** ppGroups);
766 [id(0x00000043)]
767 HRESULT SetPassword([in] BSTR NewPassword);
769 [id(0x00000044)]
770 HRESULT ChangePassword([in] BSTR bstrOldPassword, [in] BSTR bstrNewPassword);
773 /*****************************************************************************
774 * IDirectorySearch interface
777 odl,
778 local,
779 uuid(109BA8EC-92F0-11D0-A790-00C04FD8D5A8)
781 interface IDirectorySearch : IUnknown
783 HRESULT SetSearchPreference([in] PADS_SEARCHPREF_INFO pSearchPrefs, [in] DWORD dwNumPrefs);
784 HRESULT ExecuteSearch([in] LPWSTR pszSearchFilter, [in] LPWSTR* pAttributeNames,
785 [in] DWORD dwNumberAttributes, [out] PADS_SEARCH_HANDLE phSearchResult);
786 HRESULT AbandonSearch([in] ADS_SEARCH_HANDLE phSearchResult);
787 HRESULT GetFirstRow([in] ADS_SEARCH_HANDLE hSearchResult);
788 HRESULT GetNextRow([in] ADS_SEARCH_HANDLE hSearchResult);
789 HRESULT GetPreviousRow([in] ADS_SEARCH_HANDLE hSearchResult);
790 HRESULT GetNextColumnName([in] ADS_SEARCH_HANDLE hSearchHandle, [out] LPWSTR* ppszColumnName);
791 HRESULT GetColumn( [in] ADS_SEARCH_HANDLE hSearchResult, [in] LPWSTR szColumnName,
792 [out] PADS_SEARCH_COLUMN pSearchColumn);
793 HRESULT FreeColumn([in] PADS_SEARCH_COLUMN pSearchColumn);
794 HRESULT CloseSearchHandle([in] ADS_SEARCH_HANDLE hSearchResult);
797 /*****************************************************************************
798 * IADsADSystemInfo interface
801 odl,
802 uuid(5bb11929-afd1-11d2-9cb9-0000f87a369e),
803 dual,
804 oleautomation
806 interface IADsADSystemInfo : IDispatch
808 [id(0x00000002), propget]
809 HRESULT UserName([out, retval] BSTR *retval);
810 [id(0x00000003), propget]
811 HRESULT ComputerName([out, retval] BSTR *retval);
812 [id(0x00000004), propget]
813 HRESULT SiteName([out, retval] BSTR *retval);
814 [id(0x00000005), propget]
815 HRESULT DomainShortName([out, retval] BSTR *retval);
816 [id(0x00000006), propget]
817 HRESULT DomainDNSName([out, retval] BSTR *retval);
818 [id(0x00000007), propget]
819 HRESULT ForestDNSName([out, retval] BSTR *retval);
820 [id(0x00000008), propget]
821 HRESULT PDCRoleOwner([out, retval] BSTR *retval);
822 [id(0x00000009), propget]
823 HRESULT SchemaRoleOwner([out, retval] BSTR *retval);
824 [id(0x0000000a), propget]
825 HRESULT IsNativeMode([out, retval] VARIANT_BOOL *retval);
826 [id(0x0000000b)]
827 HRESULT GetAnyDCName([out, retval] BSTR *retval);
828 [id(0x0000000c)]
829 HRESULT GetDCSiteName([in] BSTR server, [out, retval] BSTR *retval);
830 [id(0x0000000d)]
831 HRESULT RefreshSchemaCache();
832 [id(0x0000000e)]
833 HRESULT GetTrees([out, retval] VARIANT *retval);
837 helpstring("AD System Info Object"),
838 uuid(50b6327f-afd1-11d2-9cb9-0000f87a369e),
839 progid("ADSystemInfo"),
840 version(1.0)
842 coclass ADSystemInfo
844 [default] interface IADsADSystemInfo;
845 interface IDispatch;
848 } /* library */