OSDN Git Service

3e2f9c35bdfaea19088ce89afcebbc0a99d375fa
[mingw/mingw-org-wsl.git] / include / winldap.h
1 /**
2  * @file winldap.h
3  * @copy 2012 MinGW.org project
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9  * and/or sell copies of the Software, and to permit persons to whom the
10  * Software is furnished to do so, subject to the following conditions:
11  * 
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  * 
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22  * DEALINGS IN THE SOFTWARE.
23  */
24 #ifndef _WINLDAP_H
25 #define _WINLDAP_H
26 #pragma GCC system_header
27
28 /*
29  * LDAP API
30  * References:
31  *  The C LDAP Application Program Interface
32  *  http://www.watersprings.org/pub/id/draft-ietf-ldapext-ldap-c-api-05.txt
33  *
34  *  Lightweight Directory Access Protocol Reference
35  *  http://msdn.microsoft.com/library/en-us/netdir/ldap/ldap_reference.asp
36  */
37
38 #include <schannel.h>
39 #include <winber.h>
40
41 #ifndef WINLDAPAPI
42 #define WINLDAPAPI DECLSPEC_IMPORT
43 #endif
44
45 #ifndef _WINLDAP_DEPRECATED
46 #define _WINLDAP_DEPRECATED __attribute__((__deprecated__))
47 #endif
48
49 #include <pshpack4.h>
50
51 #ifdef __cplusplus
52 extern "C" {
53 #endif
54
55 #define LDAP_VERSION1   1
56 #define LDAP_VERSION2   2
57 #define LDAP_VERSION3   3
58 #define LDAP_VERSION    LDAP_VERSION2
59 #define LDAP_API_VERSION        2004
60 #define LDAP_VERSION_MIN        LDAP_VERSION2
61 #define LDAP_VERSION_MAX        LDAP_VERSION3
62 #define LDAP_VENDOR_NAME        "Microsoft Corporation."
63 #define LDAP_VENDOR_NAME_W      L"Microsoft Corporation."
64 #define LDAP_VENDOR_VERSION     510
65 #define LDAP_API_INFO_VERSION   1
66 #define LDAP_FEATURE_INFO_VERSION       1
67 #define LDAP_SUCCESS    0x00
68 #define LDAP_OPERATIONS_ERROR   0x01
69 #define LDAP_PROTOCOL_ERROR     0x02
70 #define LDAP_TIMELIMIT_EXCEEDED 0x03
71 #define LDAP_SIZELIMIT_EXCEEDED 0x04
72 #define LDAP_COMPARE_FALSE      0x05
73 #define LDAP_COMPARE_TRUE       0x06
74 #define LDAP_STRONG_AUTH_NOT_SUPPORTED  0x07
75 #define LDAP_STRONG_AUTH_REQUIRED       0x08
76 #define LDAP_REFERRAL_V2        0x09
77 #define LDAP_REFERRAL   0x0a
78 #define LDAP_ADMIN_LIMIT_EXCEEDED       0x0b
79 #define LDAP_UNAVAILABLE_CRIT_EXTENSION 0x0c
80 #define LDAP_CONFIDENTIALITY_REQUIRED   0x0d
81 #define LDAP_SASL_BIND_IN_PROGRESS      0x0e
82 #define LDAP_NO_SUCH_ATTRIBUTE  0x10
83 #define LDAP_UNDEFINED_TYPE     0x11
84 #define LDAP_INAPPROPRIATE_MATCHING     0x12
85 #define LDAP_CONSTRAINT_VIOLATION       0x13
86 #define LDAP_TYPE_OR_VALUE_EXISTS       0x14
87 #define LDAP_INVALID_SYNTAX     0x15
88 #define LDAP_NO_SUCH_OBJECT     0x20
89 #define LDAP_ALIAS_PROBLEM      0x21
90 #define LDAP_INVALID_DN_SYNTAX  0x22
91 #define LDAP_IS_LEAF    0x23
92 #define LDAP_ALIAS_DEREF_PROBLEM        0x24
93 #define LDAP_INAPPROPRIATE_AUTH 0x30
94 #define LDAP_INVALID_CREDENTIALS        0x31
95 #define LDAP_INSUFFICIENT_ACCESS        0x32
96 #define LDAP_BUSY       0x33
97 #define LDAP_UNAVAILABLE        0x34
98 #define LDAP_UNWILLING_TO_PERFORM       0x35
99 #define LDAP_LOOP_DETECT        0x36
100 #define LDAP_NAMING_VIOLATION   0x40
101 #define LDAP_OBJECT_CLASS_VIOLATION     0x41 
102 #define LDAP_NOT_ALLOWED_ON_NONLEAF     0x42
103 #define LDAP_NOT_ALLOWED_ON_RDN 0x43
104 #define LDAP_ALREADY_EXISTS     0x44
105 #define LDAP_NO_OBJECT_CLASS_MODS       0x45
106 #define LDAP_RESULTS_TOO_LARGE  0x46
107 #define LDAP_AFFECTS_MULTIPLE_DSAS      0x47
108 #define LDAP_OTHER      0x50
109 #define LDAP_SERVER_DOWN        0x51
110 #define LDAP_LOCAL_ERROR        0x52
111 #define LDAP_ENCODING_ERROR     0x53
112 #define LDAP_DECODING_ERROR     0x54
113 #define LDAP_TIMEOUT    0x55
114 #define LDAP_AUTH_UNKNOWN       0x56
115 #define LDAP_FILTER_ERROR       0x57
116 #define LDAP_USER_CANCELLED     0x58
117 #define LDAP_PARAM_ERROR        0x59
118 #define LDAP_NO_MEMORY  0x5a
119 #define LDAP_CONNECT_ERROR      0x5b
120 #define LDAP_NOT_SUPPORTED      0x5c
121 #define LDAP_CONTROL_NOT_FOUND  0x5d
122 #define LDAP_NO_RESULTS_RETURNED        0x5e
123 #define LDAP_MORE_RESULTS_TO_RETURN     0x5f
124 #define LDAP_CLIENT_LOOP        0x60
125 #define LDAP_REFERRAL_LIMIT_EXCEEDED    0x61
126 #define LDAP_OPT_SUCCESS        LDAP_SUCCESS
127 #define LDAP_AUTH_METHOD_NOT_SUPPORTED  LDAP_STRONG_AUTH_NOT_SUPPORTED
128 #define LDAP_ATTRIBUTE_OR_VALUE_EXISTS  LDAP_TYPE_OR_VALUE_EXISTS
129 #define LDAP_INSUFFICIENT_RIGHTS        LDAP_INSUFFICIENT_ACCESS
130 #define LDAP_PARTIAL_RESULTS    LDAP_REFERRAL_V2
131 #define LDAP_PORT       389
132 #define LDAP_SSL_PORT   636
133 #define LDAP_GC_PORT    3268
134 #define LDAP_SSL_GC_PORT        3269
135 #define LDAP_OPT_ON     ((void*)1)
136 #define LDAP_OPT_OFF    ((void*)0)
137 #define LDAP_OPT_API_INFO       0x00
138 #define LDAP_OPT_DESC   0x01
139 #define LDAP_OPT_DEREF  0x02
140 #define LDAP_OPT_SIZELIMIT      0x03
141 #define LDAP_OPT_TIMELIMIT      0x04
142 #define LDAP_OPT_THREAD_FN_PTRS 0x05
143 #define LDAP_OPT_REBIND_FN      0x06
144 #define LDAP_OPT_REBIND_ARG     0x07
145 #define LDAP_OPT_REFERRALS      0x08
146 #define LDAP_OPT_RESTART        0x09
147 #define LDAP_OPT_SSL    0x0a
148 #define LDAP_OPT_IO_FN_PTRS     0x0b
149 #define LDAP_OPT_CACHE_FN_PTRS  0x0d
150 #define LDAP_OPT_CACHE_STRATEGY 0x0e
151 #define LDAP_OPT_CACHE_ENABLE   0x0f
152 #define LDAP_OPT_REFERRAL_HOP_LIMIT     0x10
153 #define LDAP_OPT_PROTOCOL_VERSION       0x11
154 #define LDAP_OPT_SERVER_CONTROLS        0x12
155 #define LDAP_OPT_CLIENT_CONTROLS        0x13
156 #define LDAP_OPT_API_FEATURE_INFO       0x15
157 #define LDAP_OPT_HOST_NAME      0x30
158 #define LDAP_OPT_ERROR_NUMBER   0x31
159 #define LDAP_OPT_ERROR_STRING   0x32
160 #define LDAP_OPT_SERVER_ERROR   0x33
161 #define LDAP_OPT_SERVER_EXT_ERROR       0x34
162 #define LDAP_OPT_PING_KEEP_ALIVE        0x36
163 #define LDAP_OPT_PING_WAIT_TIME 0x37
164 #define LDAP_OPT_PING_LIMIT     0x38
165 #define LDAP_OPT_DNSDOMAIN_NAME 0x3b
166 #define LDAP_OPT_GETDSNAME_FLAGS        0x3d
167 #define LDAP_OPT_HOST_REACHABLE 0x3e
168 #define LDAP_OPT_PROMPT_CREDENTIALS     0x3f
169 #define LDAP_OPT_TCP_KEEPALIVE  0x40
170 #define LDAP_OPT_REFERRAL_CALLBACK      0x70
171 #define LDAP_OPT_CLIENT_CERTIFICATE     0x80
172 #define LDAP_OPT_SERVER_CERTIFICATE     0x81
173 #define LDAP_OPT_AUTO_RECONNECT 0x91
174 #define LDAP_OPT_SSPI_FLAGS     0x92
175 #define LDAP_OPT_SSL_INFO       0x93
176 #define LDAP_OPT_REF_DEREF_CONN_PER_MSG 0x94
177 #define LDAP_OPT_SIGN   0x95
178 #define LDAP_OPT_ENCRYPT        0x96
179 #define LDAP_OPT_SASL_METHOD    0x97
180 #define LDAP_OPT_AREC_EXCLUSIVE 0x98
181 #define LDAP_OPT_SECURITY_CONTEXT       0x99
182 #define LDAP_OPT_ROOTDSE_CACHE  0x9a
183 #define LDAP_OPT_VERSION        LDAP_OPT_PROTOCOL_VERSION
184 #define LDAP_OPT_TLS    LDAP_OPT_SSL
185 #define LDAP_OPT_TLS_INFO       LDAP_OPT_SSL_INFO
186 #define LDAP_DEREF_NEVER        0x00
187 #define LDAP_DEREF_SEARCHING    0x01
188 #define LDAP_DEREF_FINDING      0x02
189 #define LDAP_DEREF_ALWAYS       0x03
190 #define LDAP_NO_LIMIT   0
191 #define LDAP_CONTROL_REFERRALS  "1.2.840.113556.1.4.616"
192 #define LDAP_CONTROL_REFERRALS_W        L"1.2.840.113556.1.4.616"
193 #define LDAP_CHASE_SUBORDINATE_REFERRALS        0x20U
194 #define LDAP_CHASE_EXTERNAL_REFERRALS   0x40U
195 #define LDAP_SCOPE_DEFAULT      -1
196 #define LDAP_SCOPE_BASE 0x0000
197 #define LDAP_SCOPE_ONELEVEL     0x0001
198 #define LDAP_SCOPE_SUBTREE      0x0002
199 #define LDAP_MOD_ADD    0x00
200 #define LDAP_MOD_DELETE 0x01
201 #define LDAP_MOD_REPLACE        0x02
202 #define LDAP_MOD_BVALUES        0x80
203 #define LDAP_RES_BIND   0x61
204 #define LDAP_RES_SEARCH_ENTRY   0x64
205 #define LDAP_RES_SEARCH_RESULT  0x65
206 #define LDAP_RES_MODIFY 0x67
207 #define LDAP_RES_ADD    0x69
208 #define LDAP_RES_DELETE 0x6b
209 #define LDAP_RES_MODRDN 0x6d
210 #define LDAP_RES_COMPARE        0x6f
211 #define LDAP_RES_SEARCH_REFERENCE       0x73
212 #define LDAP_RES_EXTENDED       0x78
213 #define LDAP_RES_ANY    (-1L)
214 #define LDAP_MSG_ONE    0x00
215 #define LDAP_MSG_ALL    0x01
216 #define LDAP_MSG_RECEIVED       0x02
217 #define LDAP_SERVER_SORT_OID    "1.2.840.113556.1.4.473"
218 #define LDAP_SERVER_SORT_OID_W  L"1.2.840.113556.1.4.473"
219 #define LDAP_SERVER_RESP_SORT_OID       "1.2.840.113556.1.4.474"
220 #define LDAP_SERVER_RESP_SORT_OID_W     L"1.2.840.113556.1.4.474"
221 #define LDAP_PAGED_RESULT_OID_STRING    "1.2.840.113556.1.4.319"
222 #define LDAP_PAGED_RESULT_OID_STRING_W  L"1.2.840.113556.1.4.319"
223 #define LDAP_CONTROL_VLVREQUEST "2.16.840.1.113730.3.4.9"
224 #define LDAP_CONTROL_VLVREQUEST_W       L"2.16.840.1.113730.3.4.9"
225 #define LDAP_CONTROL_VLVRESPONSE        "2.16.840.1.113730.3.4.10"
226 #define LDAP_CONTROL_VLVRESPONSE_W      L"2.16.840.1.113730.3.4.10"
227 #define LDAP_START_TLS_OID      "1.3.6.1.4.1.1466.20037"
228 #define LDAP_START_TLS_OID_W    L"1.3.6.1.4.1.1466.20037"
229 #define LDAP_TTL_EXTENDED_OP_OID        "1.3.6.1.4.1.1466.101.119.1"
230 #define LDAP_TTL_EXTENDED_OP_OID_W      L"1.3.6.1.4.1.1466.101.119.1"
231 #define LDAP_AUTH_NONE  0x00U
232 #define LDAP_AUTH_SIMPLE        0x80U
233 #define LDAP_AUTH_SASL  0x83U
234 #define LDAP_AUTH_OTHERKIND     0x86U
235 #define LDAP_AUTH_EXTERNAL      (LDAP_AUTH_OTHERKIND | 0x20U)
236 #define LDAP_AUTH_SICILY        (LDAP_AUTH_OTHERKIND | 0x200U)
237 #define LDAP_AUTH_NEGOTIATE     (LDAP_AUTH_OTHERKIND | 0x400U)
238 #define LDAP_AUTH_MSN   (LDAP_AUTH_OTHERKIND | 0x800U)
239 #define LDAP_AUTH_NTLM  (LDAP_AUTH_OTHERKIND | 0x1000U)
240 #define LDAP_AUTH_DIGEST        (LDAP_AUTH_OTHERKIND | 0x4000U)
241 #define LDAP_AUTH_DPA   (LDAP_AUTH_OTHERKIND | 0x2000U)
242 #define LDAP_AUTH_SSPI  LDAP_AUTH_NEGOTIATE
243 #define LDAP_FILTER_AND 0xa0
244 #define LDAP_FILTER_OR  0xa1
245 #define LDAP_FILTER_NOT 0xa2
246 #define LDAP_FILTER_EQUALITY    0xa3
247 #define LDAP_FILTER_SUBSTRINGS  0xa4
248 #define LDAP_FILTER_GE  0xa5
249 #define LDAP_FILTER_LE  0xa6
250 #define LDAP_FILTER_APPROX      0xa8
251 #define LDAP_FILTER_EXTENSIBLE  0xa9
252 #define LDAP_FILTER_PRESENT     0x87
253 #define LDAP_SUBSTRING_INITIAL  0x80
254 #define LDAP_SUBSTRING_ANY      0x81
255 #define LDAP_SUBSTRING_FINAL    0x82
256
257 typedef struct ldap {
258         char Reserved[76];
259         PCHAR ld_host;
260         ULONG ld_version;
261         UCHAR ld_lberoptions;
262         int ld_deref;
263         int ld_timelimit;
264         int ld_sizelimit;
265         int ld_errno;
266         PCHAR ld_matched;
267         PCHAR ld_error;
268 } LDAP, *PLDAP;
269 typedef struct ldapmsg {
270         ULONG lm_msgid;
271         ULONG lm_msgtype;
272         BerElement *lm_ber;
273         struct ldapmsg *lm_chain;
274         struct ldapmsg *lm_next;
275         ULONG lm_time;
276 } LDAPMessage, *PLDAPMessage;
277 typedef struct l_timeval {
278         LONG tv_sec;
279         LONG tv_usec;
280 } LDAP_TIMEVAL, *PLDAP_TIMEVAL;
281 typedef struct ldapapiinfoA {
282         int ldapai_info_version;
283         int ldapai_api_version;
284         int ldapai_protocol_version;
285         char **ldapai_extensions;
286         char *ldapai_vendor_name;
287         int ldapai_vendor_version;
288 } LDAPAPIInfoA, *PLDAPAPIInfoA;
289 typedef struct ldapapiinfoW {
290         int ldapai_info_version;
291         int ldapai_api_version;
292         int ldapai_protocol_version;
293         PWCHAR *ldapai_extensions;
294         PWCHAR ldapai_vendor_name;
295         int ldapai_vendor_version;
296 } LDAPAPIInfoW, *PLDAPAPIInfoW;
297 typedef struct ldap_apifeature_infoA {
298         int ldapaif_info_version;
299         char *ldapaif_name;
300         int ldapaif_version;
301 } LDAPAPIFeatureInfoA, *PLDAPAPIFeatureInfoA;
302 typedef struct ldap_apifeature_infoW {
303         int ldapaif_info_version;
304         PWCHAR ldapaif_name;
305         int ldapaif_version;
306 } LDAPAPIFeatureInfoW, *PLDAPAPIFeatureInfoW;
307 typedef struct ldapcontrolA {
308         PCHAR ldctl_oid;
309         BerValue ldctl_value;
310         BOOLEAN ldctl_iscritical;
311 } LDAPControlA, *PLDAPControlA;
312 typedef struct ldapcontrolW {
313         PWCHAR ldctl_oid;
314         BerValue ldctl_value;
315         BOOLEAN ldctl_iscritical;
316 } LDAPControlW, *PLDAPControlW;
317 typedef union mod_vals_uA {
318         PCHAR *modv_strvals;
319         BerValue **modv_bvals;
320 } mod_vals_u_tA;
321 typedef union mod_vals_uW {
322         PWCHAR *modv_strvals;
323         BerValue **modv_bvals;
324 } mod_vals_u_tW;
325 typedef struct ldapmodA {
326         ULONG mod_op;
327         PCHAR mod_type;
328         mod_vals_u_tA mod_vals;
329 } LDAPModA, *PLDAPModA;
330 typedef struct ldapmodW {
331         ULONG mod_op;
332         PWCHAR mod_type;
333         mod_vals_u_tW mod_vals;
334 } LDAPModW, *PLDAPModW;
335
336 #define mod_values      mod_vals.modv_strvals
337 #define mod_bvalues     mod_vals.modv_bvals
338
339 typedef struct ldapsearch LDAPSearch, *PLDAPSearch;
340 typedef struct ldapsortkeyA {
341         PCHAR sk_attrtype;
342         PCHAR sk_matchruleoid;
343         BOOLEAN sk_reverseorder;
344 } LDAPSortKeyA, *PLDAPSortKeyA;
345 typedef struct ldapsortkeyW {
346         PWCHAR sk_attrtype;
347         PWCHAR sk_matchruleoid;
348         BOOLEAN sk_reverseorder;
349 } LDAPSortKeyW, *PLDAPSortKeyW;
350 typedef ULONG (__cdecl QUERYFORCONNECTION)(PLDAP,PLDAP,PWCHAR,PCHAR,ULONG,PVOID,PVOID,PLDAP*);
351 typedef BOOLEAN (__cdecl NOTIFYOFNEWCONNECTION)(PLDAP,PLDAP,PWCHAR,PCHAR,PLDAP,ULONG,PVOID,PVOID,ULONG);
352 typedef ULONG (__cdecl DEREFERENCECONNECTION)(PLDAP,PLDAP);
353 typedef BOOLEAN (__cdecl QUERYCLIENTCERT)(PLDAP,PSecPkgContext_IssuerListInfoEx,PCCERT_CONTEXT*);
354 typedef struct LdapReferralCallback {
355         ULONG SizeOfCallbacks;
356         QUERYFORCONNECTION *QueryForConnection;
357         NOTIFYOFNEWCONNECTION *NotifyRoutine;
358         DEREFERENCECONNECTION *DereferenceRoutine;
359 } LDAP_REFERRAL_CALLBACK, *PLDAP_REFERRAL_CALLBACK;
360 typedef struct ldapvlvinfo {
361         int ldvlv_version;
362         unsigned long ldvlv_before_count;
363         unsigned long ldvlv_after_count;
364         unsigned long ldvlv_offset;
365         unsigned long ldvlv_count;
366         BerValue *ldvlv_attrvalue;
367         BerValue *ldvlv_context;
368         void *ldvlv_extradata;
369 } LDAPVLVInfo;
370
371 /*
372  * Under Microsoft WinLDAP the function ldap_error is only stub.
373  * This macro uses LDAP structure to get error string and pass it to the user.
374  */
375 #define ldap_perror(handle,message) printf("%s: %s\n", message, handle->ld_error);
376
377 WINLDAPAPI PLDAP ldap_initA(PCHAR,ULONG);
378 WINLDAPAPI PLDAP ldap_initW(PWCHAR,ULONG);
379 WINLDAPAPI PLDAP ldap_openA(const PCHAR,ULONG);
380 WINLDAPAPI PLDAP ldap_openW(const PWCHAR,ULONG);
381 WINLDAPAPI PLDAP cldap_openA(const PCHAR,ULONG);
382 WINLDAPAPI PLDAP cldap_openW(const PWCHAR,ULONG);
383 WINLDAPAPI ULONG ldap_connect(LDAP*,struct l_timeval*);
384 WINLDAPAPI PLDAP ldap_sslinitA(PCHAR,ULONG,int);
385 WINLDAPAPI PLDAP ldap_sslinitW(PWCHAR,ULONG,int);
386 WINLDAPAPI ULONG ldap_start_tls_sA(LDAP*,PLDAPControlA*,PLDAPControlA*);
387 WINLDAPAPI ULONG ldap_start_tls_sW(LDAP*,PLDAPControlW*,PLDAPControlW*);
388 WINLDAPAPI BOOLEAN ldap_stop_tls_s(LDAP*);
389 WINLDAPAPI ULONG ldap_get_optionA(LDAP*,int,void*);
390 WINLDAPAPI ULONG ldap_get_optionW(LDAP*,int,void*);
391 WINLDAPAPI ULONG ldap_set_optionA(LDAP*,int,const void*);
392 WINLDAPAPI ULONG ldap_set_optionW(LDAP*,int,const void*);
393 WINLDAPAPI ULONG ldap_control_freeA(LDAPControlA*);
394 WINLDAPAPI ULONG ldap_control_freeW(LDAPControlW*);
395 WINLDAPAPI ULONG ldap_controls_freeA(LDAPControlA**);
396 WINLDAPAPI ULONG ldap_controls_freeW(LDAPControlW**);
397 WINLDAPAPI ULONG ldap_free_controlsA(LDAPControlA**);
398 WINLDAPAPI ULONG ldap_free_controlsW(LDAPControlW**);
399 WINLDAPAPI ULONG ldap_sasl_bindA(LDAP*,const PCHAR, const PCHAR,const BERVAL*,PLDAPControlA*,PLDAPControlA*,int*);
400 WINLDAPAPI ULONG ldap_sasl_bindW(LDAP*,const PWCHAR, const PWCHAR,const BERVAL*,PLDAPControlW*,PLDAPControlW*,int*);
401 WINLDAPAPI ULONG ldap_sasl_bind_sA(LDAP*,const PCHAR,const PCHAR,const BERVAL*,PLDAPControlA*,PLDAPControlA*,PBERVAL*);
402 WINLDAPAPI ULONG ldap_sasl_bind_sW(LDAP*,const PWCHAR,const PWCHAR,const BERVAL*,PLDAPControlW*,PLDAPControlW*,PBERVAL*);
403 WINLDAPAPI ULONG ldap_simple_bindA(LDAP*,const PCHAR,const PCHAR);
404 WINLDAPAPI ULONG ldap_simple_bindW(LDAP*,const PWCHAR,const PWCHAR);
405 WINLDAPAPI ULONG ldap_simple_bind_sA(LDAP*,const PCHAR,const PCHAR);
406 WINLDAPAPI ULONG ldap_simple_bind_sW(LDAP*,const PWCHAR,const PWCHAR);
407 WINLDAPAPI ULONG ldap_bindA(LDAP*,const PCHAR,const PCHAR,ULONG) _WINLDAP_DEPRECATED;
408 WINLDAPAPI ULONG ldap_bindW(LDAP*,const PWCHAR,const PWCHAR,ULONG) _WINLDAP_DEPRECATED;
409 WINLDAPAPI ULONG ldap_bind_sA(LDAP*,const PCHAR,const PCHAR,ULONG) _WINLDAP_DEPRECATED;
410 WINLDAPAPI ULONG ldap_bind_sW(LDAP*,const PWCHAR,const PWCHAR,ULONG) _WINLDAP_DEPRECATED;
411 WINLDAPAPI ULONG ldap_unbind(LDAP*);
412 WINLDAPAPI ULONG ldap_unbind_s(LDAP*);
413 WINLDAPAPI ULONG ldap_search_extA(LDAP*,const PCHAR,ULONG,const PCHAR,PCHAR[],ULONG,PLDAPControlW*,PLDAPControlW*,ULONG,ULONG,ULONG*);
414 WINLDAPAPI ULONG ldap_search_extW(LDAP*,const PWCHAR,ULONG,const PWCHAR,PWCHAR[],ULONG,PLDAPControlW*,PLDAPControlW*,ULONG,ULONG,ULONG*);
415 WINLDAPAPI ULONG ldap_search_ext_sA(LDAP*,const PCHAR,ULONG,const PCHAR,PCHAR[],ULONG,PLDAPControlA*,PLDAPControlA*,struct l_timeval*,ULONG,LDAPMessage**);
416 WINLDAPAPI ULONG ldap_search_ext_sW(LDAP*,const PWCHAR,ULONG,const PWCHAR,PWCHAR[],ULONG,PLDAPControlW*,PLDAPControlW*,struct l_timeval*,ULONG,LDAPMessage**);
417 WINLDAPAPI ULONG ldap_searchA(LDAP*,const PCHAR,ULONG,const PCHAR,PCHAR[],ULONG);
418 WINLDAPAPI ULONG ldap_searchW(LDAP*,const PWCHAR,ULONG,const PWCHAR,PWCHAR[],ULONG);
419 WINLDAPAPI ULONG ldap_search_sA(LDAP*,const PCHAR,ULONG,const PCHAR,PCHAR[],ULONG,LDAPMessage**);
420 WINLDAPAPI ULONG ldap_search_sW(LDAP*,const PWCHAR,ULONG,const PWCHAR,PWCHAR[],ULONG,LDAPMessage**);
421 WINLDAPAPI ULONG ldap_search_stA(LDAP*,const PCHAR,ULONG,const PCHAR,PCHAR[],ULONG,struct l_timeval*,LDAPMessage**);
422 WINLDAPAPI ULONG ldap_search_stW(LDAP*,const PWCHAR,ULONG,const PWCHAR,PWCHAR[],ULONG,struct l_timeval*,LDAPMessage**);
423 WINLDAPAPI ULONG ldap_compare_extA(LDAP*,const PCHAR,const PCHAR,PCHAR,struct berval*,PLDAPControlA*,PLDAPControlA*,ULONG*);
424 WINLDAPAPI ULONG ldap_compare_extW(LDAP*,const PWCHAR,const PWCHAR,PWCHAR,struct berval*,PLDAPControlW*,PLDAPControlW*,ULONG*);
425 WINLDAPAPI ULONG ldap_compare_ext_sA(LDAP*,const PCHAR,const PCHAR,const PCHAR,struct berval*,PLDAPControlA*,PLDAPControlA*);
426 WINLDAPAPI ULONG ldap_compare_ext_sW(LDAP*,const PWCHAR,const PWCHAR,const PWCHAR,struct berval*,PLDAPControlW*,PLDAPControlW*);
427 WINLDAPAPI ULONG ldap_compareA(LDAP*,const PCHAR,const PCHAR,PCHAR);
428 WINLDAPAPI ULONG ldap_compareW(LDAP*,const PWCHAR,const PWCHAR,PWCHAR);
429 WINLDAPAPI ULONG ldap_compare_sA(LDAP*,const PCHAR,const PCHAR,PCHAR);
430 WINLDAPAPI ULONG ldap_compare_sW(LDAP*,const PWCHAR,const PWCHAR,PWCHAR);
431 WINLDAPAPI ULONG ldap_modify_extA(LDAP*,const PCHAR,LDAPModA*[],PLDAPControlA*,PLDAPControlA*,ULONG*);
432 WINLDAPAPI ULONG ldap_modify_extW(LDAP*,const PWCHAR,LDAPModW*[],PLDAPControlW*,PLDAPControlW*,ULONG*);
433 WINLDAPAPI ULONG ldap_modify_ext_sA(LDAP*,const PCHAR,LDAPModA*[],PLDAPControlA*,PLDAPControlA*);
434 WINLDAPAPI ULONG ldap_modify_ext_sW(LDAP*,const PWCHAR,LDAPModW*[],PLDAPControlW*,PLDAPControlW*);
435 WINLDAPAPI ULONG ldap_modifyA(LDAP*,const PCHAR,LDAPModA*[]);
436 WINLDAPAPI ULONG ldap_modifyW(LDAP*,const PWCHAR,LDAPModW*[]);
437 WINLDAPAPI ULONG ldap_modify_sA(LDAP*,const PCHAR,LDAPModA*[]);
438 WINLDAPAPI ULONG ldap_modify_sW(LDAP*,const PWCHAR,LDAPModW*[]);
439 WINLDAPAPI ULONG ldap_rename_extA(LDAP*,const PCHAR,const PCHAR,const PCHAR,INT,PLDAPControlA*,PLDAPControlA*,ULONG*);
440 WINLDAPAPI ULONG ldap_rename_extW(LDAP*,const PWCHAR,const PWCHAR,const PWCHAR,INT,PLDAPControlW*,PLDAPControlW*,ULONG*);
441 WINLDAPAPI ULONG ldap_rename_ext_sA(LDAP*,const PCHAR,const PCHAR,const PCHAR,INT,PLDAPControlA*,PLDAPControlA*);
442 WINLDAPAPI ULONG ldap_rename_ext_sW(LDAP*,const PWCHAR,const PWCHAR,const PWCHAR,INT,PLDAPControlW*,PLDAPControlW*);
443 WINLDAPAPI ULONG ldap_modrdnA(LDAP*,PCHAR,PCHAR) _WINLDAP_DEPRECATED;
444 WINLDAPAPI ULONG ldap_modrdnW(LDAP*,PWCHAR,PWCHAR) _WINLDAP_DEPRECATED;
445 WINLDAPAPI ULONG ldap_modrdn_sA(LDAP*,PCHAR,PCHAR) _WINLDAP_DEPRECATED;
446 WINLDAPAPI ULONG ldap_modrdn_sW(LDAP*,PWCHAR,PWCHAR) _WINLDAP_DEPRECATED;
447 WINLDAPAPI ULONG ldap_modrdn2A(LDAP*,PCHAR,PCHAR,INT) _WINLDAP_DEPRECATED;
448 WINLDAPAPI ULONG ldap_modrdn2W(LDAP*,PWCHAR,PWCHAR,INT) _WINLDAP_DEPRECATED;
449 WINLDAPAPI ULONG ldap_modrdn2_sA(LDAP*,PCHAR,PCHAR,INT) _WINLDAP_DEPRECATED;
450 WINLDAPAPI ULONG ldap_modrdn2_sW(LDAP*,PWCHAR,PWCHAR,INT) _WINLDAP_DEPRECATED;
451 WINLDAPAPI ULONG ldap_add_extA(LDAP*,const PCHAR,LDAPModA*[],PLDAPControlA*,PLDAPControlA*,ULONG*);
452 WINLDAPAPI ULONG ldap_add_extW(LDAP*,const PWCHAR,LDAPModW*[],PLDAPControlW*,PLDAPControlW*,ULONG*);
453 WINLDAPAPI ULONG ldap_add_ext_sA(LDAP*,const PCHAR,LDAPModA*[],PLDAPControlA*,PLDAPControlA*);
454 WINLDAPAPI ULONG ldap_add_ext_sW(LDAP*,const PWCHAR,LDAPModW*[],PLDAPControlW*,PLDAPControlW*);
455 WINLDAPAPI ULONG ldap_addA(LDAP*,const PCHAR,LDAPModA*[]);
456 WINLDAPAPI ULONG ldap_addW(LDAP*,const PWCHAR,LDAPModW*[]);
457 WINLDAPAPI ULONG ldap_add_sA(LDAP*,const PCHAR,LDAPModA*[]);
458 WINLDAPAPI ULONG ldap_add_sW(LDAP*,const PWCHAR,LDAPModW*[]);
459 WINLDAPAPI ULONG ldap_delete_extA(LDAP*,const PCHAR,PLDAPControlA*,PLDAPControlA*,ULONG*);
460 WINLDAPAPI ULONG ldap_delete_extW(LDAP*,const PWCHAR,PLDAPControlW*,PLDAPControlW*,ULONG*);
461 WINLDAPAPI ULONG ldap_delete_ext_sA(LDAP*,const PCHAR,PLDAPControlA*,PLDAPControlA*);
462 WINLDAPAPI ULONG ldap_delete_ext_sW(LDAP*,const PWCHAR,PLDAPControlW*,PLDAPControlW*);
463 WINLDAPAPI ULONG ldap_deleteA(LDAP*,const PCHAR);
464 WINLDAPAPI ULONG ldap_deleteW(LDAP*,const PWCHAR);
465 WINLDAPAPI ULONG ldap_delete_sA(LDAP*,const PCHAR);
466 WINLDAPAPI ULONG ldap_delete_sW(LDAP*,const PWCHAR);
467 WINLDAPAPI ULONG ldap_extended_operationA(LDAP*,const PCHAR,const struct berval*,PLDAPControlA*,PLDAPControlA*,ULONG*);
468 WINLDAPAPI ULONG ldap_extended_operationW(LDAP*,const PWCHAR,const struct berval*,PLDAPControlW*,PLDAPControlW*,ULONG*);
469 WINLDAPAPI ULONG ldap_extended_operation_sA(LDAP*,const PCHAR,const struct berval*,PLDAPControlA*,PLDAPControlA*,PCHAR*,struct berval**);
470 WINLDAPAPI ULONG ldap_extended_operation_sW(LDAP*,const PWCHAR,const struct berval*,PLDAPControlW*,PLDAPControlW*,PWCHAR*,struct berval**);
471 WINLDAPAPI ULONG ldap_close_extended_op(LDAP*,ULONG);
472 WINLDAPAPI ULONG ldap_abandon(LDAP*,ULONG);
473 WINLDAPAPI ULONG ldap_result(LDAP*,ULONG,ULONG,struct l_timeval*,LDAPMessage**);
474 WINLDAPAPI ULONG ldap_msgfree(LDAPMessage*);
475 WINLDAPAPI ULONG ldap_parse_resultA(LDAP*,LDAPMessage*,ULONG*,PCHAR*,PCHAR*,PCHAR**,PLDAPControlA**,BOOLEAN);
476 WINLDAPAPI ULONG ldap_parse_resultW(LDAP*,LDAPMessage*,ULONG*,PWCHAR*,PWCHAR*,PWCHAR**,PLDAPControlW**,BOOLEAN);
477 WINLDAPAPI ULONG ldap_parse_extended_resultA(LDAP,LDAPMessage*,PCHAR*,struct berval**,BOOLEAN);
478 WINLDAPAPI ULONG ldap_parse_extended_resultW(LDAP,LDAPMessage*,PWCHAR*,struct berval**,BOOLEAN);
479 WINLDAPAPI PCHAR ldap_err2stringA(ULONG);
480 WINLDAPAPI PWCHAR ldap_err2stringW(ULONG);
481 WINLDAPAPI ULONG LdapGetLastError(void);
482 WINLDAPAPI ULONG LdapMapErrorToWin32(ULONG);
483 WINLDAPAPI ULONG ldap_result2error(LDAP*,LDAPMessage*,ULONG);
484 WINLDAPAPI PLDAPMessage ldap_first_entry(LDAP*,LDAPMessage*);
485 WINLDAPAPI PLDAPMessage ldap_next_entry(LDAP*,LDAPMessage*);
486 WINLDAPAPI PLDAPMessage ldap_first_reference(LDAP*,LDAPMessage*);
487 WINLDAPAPI PLDAPMessage ldap_next_reference(LDAP*,LDAPMessage*);
488 WINLDAPAPI ULONG ldap_count_entries(LDAP*,LDAPMessage*);
489 WINLDAPAPI ULONG ldap_count_references(LDAP*,LDAPMessage*);
490 WINLDAPAPI PCHAR ldap_first_attributeA(LDAP*,LDAPMessage*,BerElement**);
491 WINLDAPAPI PWCHAR ldap_first_attributeW(LDAP*,LDAPMessage*,BerElement**);
492 WINLDAPAPI PCHAR ldap_next_attributeA(LDAP*,LDAPMessage*,BerElement*);
493 WINLDAPAPI PWCHAR ldap_next_attributeW(LDAP*,LDAPMessage*,BerElement*);
494 WINLDAPAPI VOID ldap_memfreeA(PCHAR);
495 WINLDAPAPI VOID ldap_memfreeW(PWCHAR);
496 WINLDAPAPI PCHAR* ldap_get_valuesA(LDAP*,LDAPMessage*,const PCHAR);
497 WINLDAPAPI PWCHAR* ldap_get_valuesW(LDAP*,LDAPMessage*,const PWCHAR);
498 WINLDAPAPI BerValue** ldap_get_values_lenA(LDAP*,LDAPMessage*,const PCHAR);
499 WINLDAPAPI BerValue** ldap_get_values_lenW(LDAP*,LDAPMessage*,const PWCHAR);
500 WINLDAPAPI ULONG ldap_count_valuesA(PCHAR*);
501 WINLDAPAPI ULONG ldap_count_valuesW(PWCHAR*);
502 WINLDAPAPI ULONG ldap_count_values_len(struct berval**);
503 WINLDAPAPI ULONG ldap_value_freeA(PCHAR*);
504 WINLDAPAPI ULONG ldap_value_freeW(PWCHAR*);
505 WINLDAPAPI ULONG ldap_value_free_len(struct berval**);
506 WINLDAPAPI PCHAR ldap_get_dnA(LDAP*,LDAPMessage*);
507 WINLDAPAPI PWCHAR ldap_get_dnW(LDAP*,LDAPMessage*);
508 WINLDAPAPI PCHAR ldap_explode_dnA(PCHAR,ULONG);
509 WINLDAPAPI PWCHAR ldap_explode_dnW(PWCHAR,ULONG);
510 WINLDAPAPI PCHAR ldap_dn2ufnA(PCHAR);
511 WINLDAPAPI PWCHAR ldap_dn2ufnW(PWCHAR);
512 WINLDAPAPI ULONG ldap_ufn2dnA(const PCHAR,PCHAR*);
513 WINLDAPAPI ULONG ldap_ufn2dnW(const PWCHAR,PWCHAR*);
514 WINLDAPAPI ULONG ldap_parse_referenceA(LDAP*,LDAPMessage*,PCHAR**);
515 WINLDAPAPI ULONG ldap_parse_referenceW(LDAP*,LDAPMessage*,PWCHAR**);
516 WINLDAPAPI ULONG ldap_check_filterA(LDAP*,PCHAR);
517 WINLDAPAPI ULONG ldap_check_filterW(LDAP*,PWCHAR);
518 WINLDAPAPI ULONG ldap_create_page_controlA(PLDAP,ULONG,struct berval*,UCHAR,PLDAPControlA*);
519 WINLDAPAPI ULONG ldap_create_page_controlW(PLDAP,ULONG,struct berval*,UCHAR,PLDAPControlW*);
520 WINLDAPAPI ULONG ldap_create_sort_controlA(PLDAP,PLDAPSortKeyA*,UCHAR,PLDAPControlA*);
521 WINLDAPAPI ULONG ldap_create_sort_controlW(PLDAP,PLDAPSortKeyW*,UCHAR,PLDAPControlW*);
522 WINLDAPAPI INT ldap_create_vlv_controlA(LDAP*,LDAPVLVInfo*,UCHAR,LDAPControlA**);
523 WINLDAPAPI INT ldap_create_vlv_controlW(LDAP*,LDAPVLVInfo*,UCHAR,LDAPControlW**);
524 WINLDAPAPI ULONG ldap_encode_sort_controlA(PLDAP,PLDAPSortKeyA*,PLDAPControlA,BOOLEAN);
525 WINLDAPAPI ULONG ldap_encode_sort_controlW(PLDAP,PLDAPSortKeyW*,PLDAPControlW,BOOLEAN);
526 WINLDAPAPI ULONG ldap_escape_filter_elementA(PCHAR,ULONG,PCHAR,ULONG);
527 WINLDAPAPI ULONG ldap_escape_filter_elementW(PWCHAR,ULONG,PWCHAR,ULONG);
528 WINLDAPAPI ULONG ldap_get_next_page(PLDAP,PLDAPSearch,ULONG,ULONG*);
529 WINLDAPAPI ULONG ldap_get_next_page_s(PLDAP,PLDAPSearch,struct l_timeval*,ULONG,ULONG*,LDAPMessage**);
530 WINLDAPAPI ULONG ldap_get_paged_count(PLDAP,PLDAPSearch,ULONG*,PLDAPMessage);
531 WINLDAPAPI ULONG ldap_parse_page_controlA(PLDAP,PLDAPControlA*,ULONG*,struct berval**);
532 WINLDAPAPI ULONG ldap_parse_page_controlW(PLDAP,PLDAPControlW*,ULONG*,struct berval**);
533 WINLDAPAPI ULONG ldap_parse_sort_controlA(PLDAP,PLDAPControlA*,ULONG*,PCHAR*);
534 WINLDAPAPI ULONG ldap_parse_sort_controlW(PLDAP,PLDAPControlW*,ULONG*,PWCHAR*);
535 WINLDAPAPI INT ldap_parse_vlv_controlA(LDAP*,LDAPControlA**,unsigned long*,unsigned long*,struct berval**,int*);
536 WINLDAPAPI INT ldap_parse_vlv_controlW(LDAP*,LDAPControlW**,unsigned long*,unsigned long*,struct berval**,int*);
537 WINLDAPAPI PLDAPSearch ldap_search_init_pageA(PLDAP,const PCHAR,ULONG,const PCHAR,PCHAR[],ULONG,PLDAPControlA*,PLDAPControlA*,ULONG,ULONG,PLDAPSortKeyA*);
538 WINLDAPAPI PLDAPSearch ldap_search_init_pageW(PLDAP,const PWCHAR,ULONG,const PWCHAR,PWCHAR[],ULONG,PLDAPControlW*,PLDAPControlW*,ULONG,ULONG,PLDAPSortKeyW*);
539 WINLDAPAPI ULONG ldap_search_abandon_page(PLDAP,PLDAPSearch);
540 WINLDAPAPI LDAP ldap_conn_from_msg(LDAP*,LDAPMessage*);
541 WINLDAPAPI INT LdapUnicodeToUTF8(LPCWSTR,int,LPSTR,int);
542 WINLDAPAPI INT LdapUTF8ToUnicode(LPCSTR,int,LPWSTR,int);
543
544 #ifdef UNICODE
545 #define LDAPControl LDAPControlW
546 #define PLDAPControl PLDAPControlW
547 #define LDAPMod LDAPModW
548 #define PLDAPMod LDAPModW
549 #define LDAPSortKey LDAPSortKeyW
550 #define PLDAPSortKey PLDAPSortKeyW
551 #define LDAPAPIInfo LDAPAPIInfoW
552 #define PLDAPAPIInfo PLDAPAPIInfoW
553 #define LDAPAPIFeatureInfo LDAPAPIFeatureInfoW
554 #define PLDAPAPIFeatureInfo PLDAPAPIFeatureInfoW
555 #define cldap_open cldap_openW
556 #define ldap_open ldap_openW
557 #define ldap_bind ldap_bindW
558 #define ldap_bind_s ldap_bind_sW
559 #define ldap_simple_bind ldap_simple_bindW
560 #define ldap_simple_bind_s ldap_simple_bind_sW
561 #define ldap_sasl_bind ldap_sasl_bindW
562 #define ldap_sasl_bind_s ldap_sasl_bind_sW
563 #define ldap_init ldap_initW
564 #define ldap_sslinit ldap_sslinitW
565 #define ldap_get_option ldap_get_optionW
566 #define ldap_set_option ldap_set_optionW
567 #define ldap_start_tls_s ldap_start_tls_sW
568 #define ldap_add ldap_addW
569 #define ldap_add_ext ldap_add_extW
570 #define ldap_add_s ldap_add_sW
571 #define ldap_add_ext_s ldap_add_ext_sW
572 #define ldap_compare ldap_compareW
573 #define ldap_compare_ext ldap_compare_extW
574 #define ldap_compare_s ldap_compare_sW
575 #define ldap_compare_ext_s ldap_compare_ext_sW
576 #define ldap_delete ldap_deleteW
577 #define ldap_delete_ext ldap_delete_extW
578 #define ldap_delete_s ldap_delete_sW
579 #define ldap_delete_ext_s ldap_delete_ext_sW
580 #define ldap_extended_operation_s ldap_extended_operation_sW
581 #define ldap_extended_operation ldap_extended_operationW
582 #define ldap_modify ldap_modifyW
583 #define ldap_modify_ext ldap_modify_extW
584 #define ldap_modify_s ldap_modify_sW
585 #define ldap_modify_ext_s ldap_modify_ext_sW
586 #define ldap_check_filter ldap_check_filterW
587 #define ldap_count_values ldap_count_valuesW
588 #define ldap_create_page_control ldap_create_page_controlW
589 #define ldap_create_sort_control ldap_create_sort_controlW
590 #define ldap_create_vlv_control ldap_create_vlv_controlW
591 #define ldap_encode_sort_control ldap_encode_sort_controlW
592 #define ldap_escape_filter_element ldap_escape_filter_elementW
593 #define ldap_first_attribute ldap_first_attributeW
594 #define ldap_next_attribute ldap_next_attributeW
595 #define ldap_get_values ldap_get_valuesW
596 #define ldap_get_values_len ldap_get_values_lenW
597 #define ldap_parse_extended_result ldap_parse_extended_resultW
598 #define ldap_parse_page_control ldap_parse_page_controlW
599 #define ldap_parse_reference ldap_parse_referenceW
600 #define ldap_parse_result ldap_parse_resultW
601 #define ldap_parse_sort_control ldap_parse_sort_controlW
602 #define ldap_parse_vlv_control ldap_parse_vlv_controlW
603 #define ldap_search ldap_searchW
604 #define ldap_search_s ldap_search_sW
605 #define ldap_search_st ldap_search_stW
606 #define ldap_search_ext ldap_search_extW
607 #define ldap_search_ext_s ldap_search_ext_sW
608 #define ldap_search_init_page ldap_search_init_pageW
609 #define ldap_err2string ldap_err2stringW
610 #define ldap_control_free ldap_control_freeW
611 #define ldap_controls_free ldap_controls_freeW
612 #define ldap_free_controls ldap_free_controlsW
613 #define ldap_memfree ldap_memfreeW
614 #define ldap_value_free ldap_value_freeW
615 #define ldap_dn2ufn ldap_dn2ufnW
616 #define ldap_ufn2dn ldap_ufn2dnW
617 #define ldap_explode_dn ldap_explode_dnW
618 #define ldap_get_dn ldap_get_dnW
619 #define ldap_modrdn ldap_modrdnW
620 #define ldap_modrdn_s ldap_modrdn_sW
621 #define ldap_modrdn2 ldap_modrdn2W
622 #define ldap_modrdn2_s ldap_modrdn2_sW
623 #define ldap_rename ldap_rename_extW
624 #define ldap_rename_s ldap_rename_ext_sW
625 #define ldap_rename_ext ldap_rename_extW
626 #define ldap_rename_ext_s ldap_rename_ext_sW
627 #else
628 #define LDAPControl LDAPControlA
629 #define PLDAPControl PLDAPControlA
630 #define LDAPMod LDAPModA
631 #define PLDAPMod LDAPModA
632 #define LDAPSortKey LDAPSortKeyA
633 #define PLDAPSortKey PLDAPSortKeyA
634 #define LDAPAPIInfo LDAPAPIInfoA
635 #define PLDAPAPIInfo PLDAPAPIInfoA
636 #define LDAPAPIFeatureInfo LDAPAPIFeatureInfoA
637 #define PLDAPAPIFeatureInfo PLDAPAPIFeatureInfoA
638 #define cldap_open cldap_openA
639 #define ldap_open ldap_openA
640 #define ldap_bind ldap_bindA
641 #define ldap_bind_s ldap_bind_sA
642 #define ldap_simple_bind ldap_simple_bindA
643 #define ldap_simple_bind_s ldap_simple_bind_sA
644 #define ldap_sasl_bind ldap_sasl_bindA
645 #define ldap_sasl_bind_s ldap_sasl_bind_sA
646 #define ldap_init ldap_initA
647 #define ldap_sslinit ldap_sslinitA
648 #define ldap_get_option ldap_get_optionA
649 #define ldap_set_option ldap_set_optionA
650 #define ldap_start_tls_s ldap_start_tls_sA
651 #define ldap_add ldap_addA
652 #define ldap_add_ext ldap_add_extA
653 #define ldap_add_s ldap_add_sA
654 #define ldap_add_ext_s ldap_add_ext_sA
655 #define ldap_compare ldap_compareA
656 #define ldap_compare_ext ldap_compare_extA
657 #define ldap_compare_s ldap_compare_sA
658 #define ldap_compare_ext_s ldap_compare_ext_sA
659 #define ldap_delete ldap_deleteA
660 #define ldap_delete_ext ldap_delete_extA
661 #define ldap_delete_s ldap_delete_sA
662 #define ldap_delete_ext_s ldap_delete_ext_sA
663 #define ldap_extended_operation_s ldap_extended_operation_sA
664 #define ldap_extended_operation ldap_extended_operationA
665 #define ldap_modify ldap_modifyA
666 #define ldap_modify_ext ldap_modify_extA
667 #define ldap_modify_s ldap_modify_sA
668 #define ldap_modify_ext_s ldap_modify_ext_sA
669 #define ldap_check_filter ldap_check_filterA
670 #define ldap_count_values ldap_count_valuesA
671 #define ldap_create_page_control ldap_create_page_controlA
672 #define ldap_create_sort_control ldap_create_sort_controlA
673 #define ldap_create_vlv_control ldap_create_vlv_controlA
674 #define ldap_encode_sort_control ldap_encode_sort_controlA
675 #define ldap_escape_filter_element ldap_escape_filter_elementA
676 #define ldap_first_attribute ldap_first_attributeA
677 #define ldap_next_attribute ldap_next_attributeA
678 #define ldap_get_values ldap_get_valuesA
679 #define ldap_get_values_len ldap_get_values_lenA
680 #define ldap_parse_extended_result ldap_parse_extended_resultA
681 #define ldap_parse_page_control ldap_parse_page_controlA
682 #define ldap_parse_reference ldap_parse_referenceA
683 #define ldap_parse_result ldap_parse_resultA
684 #define ldap_parse_sort_control ldap_parse_sort_controlA
685 #define ldap_parse_vlv_control ldap_parse_vlv_controlA
686 #define ldap_search ldap_searchA
687 #define ldap_search_s ldap_search_sA
688 #define ldap_search_st ldap_search_stA
689 #define ldap_search_ext ldap_search_extA
690 #define ldap_search_ext_s ldap_search_ext_sA
691 #define ldap_search_init_page ldap_search_init_pageA
692 #define ldap_err2string ldap_err2stringA
693 #define ldap_control_free ldap_control_freeA
694 #define ldap_controls_free ldap_controls_freeA
695 #define ldap_free_controls ldap_free_controlsA
696 #define ldap_memfree ldap_memfreeA
697 #define ldap_value_free ldap_value_freeA
698 #define ldap_dn2ufn ldap_dn2ufnA
699 #define ldap_ufn2dn ldap_ufn2dnA
700 #define ldap_explode_dn ldap_explode_dnA
701 #define ldap_get_dn ldap_get_dnA
702 #define ldap_modrdn ldap_modrdnA
703 #define ldap_modrdn_s ldap_modrdn_sA
704 #define ldap_modrdn2 ldap_modrdn2A
705 #define ldap_modrdn2_s ldap_modrdn2_sA
706 #define ldap_rename ldap_rename_extA
707 #define ldap_rename_s ldap_rename_ext_sA
708 #define ldap_rename_ext ldap_rename_extA
709 #define ldap_rename_ext_s ldap_rename_ext_sA
710 #endif 
711
712 #ifdef __cplusplus
713 }
714 #endif
715
716 #include <poppack.h>
717
718 #endif /* _WINLDAP_H */