2 * Copyright 2005 Hans Leidekker
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 LDAP_OPERATIONS_ERROR
= 0x01,
22 LDAP_PROTOCOL_ERROR
= 0x02,
23 LDAP_TIMELIMIT_EXCEEDED
= 0x03,
24 LDAP_SIZELIMIT_EXCEEDED
= 0x04,
25 LDAP_COMPARE_FALSE
= 0x05,
26 LDAP_COMPARE_TRUE
= 0x06,
27 LDAP_AUTH_METHOD_NOT_SUPPORTED
= 0x07,
28 LDAP_STRONG_AUTH_REQUIRED
= 0x08,
29 LDAP_REFERRAL_V2
= 0x09,
30 LDAP_PARTIAL_RESULTS
= 0x09,
32 LDAP_ADMIN_LIMIT_EXCEEDED
= 0x0b,
33 LDAP_UNAVAILABLE_CRIT_EXTENSION
= 0x0c,
34 LDAP_CONFIDENTIALITY_REQUIRED
= 0x0d,
35 LDAP_SASL_BIND_IN_PROGRESS
= 0x0e,
37 LDAP_NO_SUCH_ATTRIBUTE
= 0x10,
38 LDAP_UNDEFINED_TYPE
= 0x11,
39 LDAP_INAPPROPRIATE_MATCHING
= 0x12,
40 LDAP_CONSTRAINT_VIOLATION
= 0x13,
41 LDAP_ATTRIBUTE_OR_VALUE_EXISTS
= 0x14,
42 LDAP_INVALID_SYNTAX
= 0x15,
44 LDAP_NO_SUCH_OBJECT
= 0x20,
45 LDAP_ALIAS_PROBLEM
= 0x21,
46 LDAP_INVALID_DN_SYNTAX
= 0x22,
48 LDAP_ALIAS_DEREF_PROBLEM
= 0x24,
50 LDAP_INAPPROPRIATE_AUTH
= 0x30,
51 LDAP_INVALID_CREDENTIALS
= 0x31,
52 LDAP_INSUFFICIENT_RIGHTS
= 0x32,
54 LDAP_UNAVAILABLE
= 0x34,
55 LDAP_UNWILLING_TO_PERFORM
= 0x35,
56 LDAP_LOOP_DETECT
= 0x36,
57 LDAP_SORT_CONTROL_MISSING
= 0x3C,
58 LDAP_OFFSET_RANGE_ERROR
= 0x3D,
60 LDAP_NAMING_VIOLATION
= 0x40,
61 LDAP_OBJECT_CLASS_VIOLATION
= 0x41,
62 LDAP_NOT_ALLOWED_ON_NONLEAF
= 0x42,
63 LDAP_NOT_ALLOWED_ON_RDN
= 0x43,
64 LDAP_ALREADY_EXISTS
= 0x44,
65 LDAP_NO_OBJECT_CLASS_MODS
= 0x45,
66 LDAP_RESULTS_TOO_LARGE
= 0x46,
67 LDAP_AFFECTS_MULTIPLE_DSAS
= 0x47,
69 LDAP_VIRTUAL_LIST_VIEW_ERROR
= 0x4c,
72 LDAP_SERVER_DOWN
= 0x51,
73 LDAP_LOCAL_ERROR
= 0x52,
74 LDAP_ENCODING_ERROR
= 0x53,
75 LDAP_DECODING_ERROR
= 0x54,
77 LDAP_AUTH_UNKNOWN
= 0x56,
78 LDAP_FILTER_ERROR
= 0x57,
79 LDAP_USER_CANCELLED
= 0x58,
80 LDAP_PARAM_ERROR
= 0x59,
81 LDAP_NO_MEMORY
= 0x5a,
82 LDAP_CONNECT_ERROR
= 0x5b,
83 LDAP_NOT_SUPPORTED
= 0x5c,
84 LDAP_NO_RESULTS_RETURNED
= 0x5e,
85 LDAP_CONTROL_NOT_FOUND
= 0x5d,
86 LDAP_MORE_RESULTS_TO_RETURN
= 0x5f,
88 LDAP_CLIENT_LOOP
= 0x60,
89 LDAP_REFERRAL_LIMIT_EXCEEDED
= 0x61
92 #define LDAP_SCOPE_BASE 0x00
93 #define LDAP_SCOPE_ONELEVEL 0x01
94 #define LDAP_SCOPE_SUBTREE 0x02
96 typedef struct berelement
113 UCHAR ld_lberoptions
;
123 ULONG ld_cldaptimeout
;
124 ULONG ld_refhoplimit
;
128 #define LDAP_MOD_ADD 0x00
129 #define LDAP_MOD_DELETE 0x01
130 #define LDAP_MOD_REPLACE 0x02
131 #define LDAP_MOD_BVALUES 0x80
133 typedef struct ldapmodA
{
138 struct berval
**modv_bvals
;
140 } LDAPModA
, *PLDAPModA
;
142 typedef struct ldapmodW
{
146 PWCHAR
*modv_strvals
;
147 struct berval
**modv_bvals
;
149 } LDAPModW
, *PLDAPModW
;
151 DECL_WINELIB_TYPE_AW(LDAPMod
)
152 DECL_WINELIB_TYPE_AW(PLDAPMod
)
154 typedef struct l_timeval
158 } LDAP_TIMEVAL
, *PLDAP_TIMEVAL
;
160 typedef struct ldapmsg
167 struct ldapmsg
*lm_chain
;
168 struct ldapmsg
*lm_next
;
177 BOOLEAN ConnectionReferenced
;
178 } LDAPMessage
, *PLDAPMessage
;
180 #define LAPI_MAJOR_VER1 1
181 #define LAPI_MINOR_VER1 1
183 typedef struct ldap_version_info
188 } LDAP_VERSION_INFO
, *PLDAP_VERSION_INFO
;
190 typedef struct berval
194 } LDAP_BERVAL
, *PLDAP_BERVAL
, BERVAL
, *PBERVAL
, BerValue
;
196 typedef struct ldapcontrolA
199 struct berval ldctl_value
;
200 BOOLEAN ldctl_iscritical
;
201 } LDAPControlA
, *PLDAPControlA
;
203 typedef struct ldapcontrolW
206 struct berval ldctl_value
;
207 BOOLEAN ldctl_iscritical
;
208 } LDAPControlW
, *PLDAPControlW
;
210 DECL_WINELIB_TYPE_AW(LDAPControl
)
211 DECL_WINELIB_TYPE_AW(PLDAPControl
)
213 typedef struct ldapvlvinfo
216 ULONG ldvlv_before_count
;
217 ULONG ldvlv_after_count
;
220 PBERVAL ldvlv_attrvalue
;
221 PBERVAL ldvlv_context
;
222 VOID
*ldvlv_extradata
;
223 } LDAPVLVInfo
, *PLDAPVLVInfo
;
225 typedef struct ldapsearch LDAPSearch
, *PLDAPSearch
;
227 typedef struct ldapsortkeyA
230 PCHAR sk_matchruleoid
;
231 BOOLEAN sk_reverseorder
;
232 } LDAPSortKeyA
, *PLDAPSortKeyA
;
234 typedef struct ldapsortkeyW
237 PWCHAR sk_matchruleoid
;
238 BOOLEAN sk_reverseorder
;
239 } LDAPSortKeyW
, *PLDAPSortKeyW
;
241 DECL_WINELIB_TYPE_AW(LDAPSortKey
)
242 DECL_WINELIB_TYPE_AW(PLDAPSortKey
)
244 LDAP
*cldap_openA(PCHAR
,ULONG
);
245 LDAP
*cldap_openW(PWCHAR
,ULONG
);
246 #define cldap_open WINELIB_NAME_AW(cldap_open)
247 ULONG
ldap_abandon(LDAP
*,ULONG
);
248 ULONG
ldap_addA(LDAP
*,PCHAR
,LDAPModA
*[]);
249 ULONG
ldap_addW(LDAP
*,PWCHAR
,LDAPModW
*[]);
250 #define ldap_add WINELIB_NAME_AW(ldap_add)
251 ULONG
ldap_add_extA(LDAP
*,PCHAR
,LDAPModA
*[],PLDAPControlA
*,PLDAPControlA
*,ULONG
*);
252 ULONG
ldap_add_extW(LDAP
*,PWCHAR
,LDAPModW
*[],PLDAPControlW
*,PLDAPControlW
*,ULONG
*);
253 #define ldap_add_ext WINELIB_NAME_AW(ldap_add_ext)
254 ULONG
ldap_add_ext_sA(LDAP
*,PCHAR
,LDAPModA
*[],PLDAPControlA
*,PLDAPControlA
*);
255 ULONG
ldap_add_ext_sW(LDAP
*,PWCHAR
,LDAPModW
*[],PLDAPControlW
*,PLDAPControlW
*);
256 #define ldap_add_ext_s WINELIB_NAME_AW(ldap_add_ext_s)
257 ULONG
ldap_add_sA(LDAP
*,PCHAR
,LDAPModA
*[]);
258 ULONG
ldap_add_sW(LDAP
*,PWCHAR
,LDAPModW
*[]);
259 #define ldap_add_s WINELIB_NAME_AW(ldap_add_s)
260 ULONG
ldap_bindA(LDAP
*,PCHAR
,PCHAR
,ULONG
);
261 ULONG
ldap_bindW(LDAP
*,PWCHAR
,PWCHAR
,ULONG
);
262 #define ldap_bind WINELIB_NAME_AW(ldap_bind)
263 ULONG
ldap_bind_sA(LDAP
*,PCHAR
,PCHAR
,ULONG
);
264 ULONG
ldap_bind_sW(LDAP
*,PWCHAR
,PWCHAR
,ULONG
);
265 #define ldap_bind_s WINELIB_NAME_AW(ldap_bind_s)
266 ULONG
ldap_check_filterA(LDAP
*,PCHAR
);
267 ULONG
ldap_check_filterW(LDAP
*,PWCHAR
);
268 #define ldap_check_filter WINELIB_NAME_AW(ldap_check_filter)
269 ULONG
ldap_cleanup(HANDLE
);
270 ULONG
ldap_close_extended_op(LDAP
*,ULONG
);
271 LDAP
*ldap_conn_from_msg(LDAP
*,LDAPMessage
*);
272 ULONG
ldap_compareA(LDAP
*,PCHAR
,PCHAR
,PCHAR
);
273 ULONG
ldap_compareW(LDAP
*,PWCHAR
,PWCHAR
,PWCHAR
);
274 #define ldap_compare WINELIB_NAME_AW(ldap_compare)
275 ULONG
ldap_compare_extA(LDAP
*,PCHAR
,PCHAR
,PCHAR
,struct berval
*,PLDAPControlA
*,PLDAPControlA
*,ULONG
*);
276 ULONG
ldap_compare_extW(LDAP
*,PWCHAR
,PWCHAR
,PWCHAR
,struct berval
*,PLDAPControlW
*,PLDAPControlW
*,ULONG
*);
277 #define ldap_compare_ext WINELIB_NAME_AW(ldap_compare_ext)
278 ULONG
ldap_compare_ext_sA(LDAP
*,PCHAR
,PCHAR
,PCHAR
,struct berval
*,PLDAPControlA
*,PLDAPControlA
*);
279 ULONG
ldap_compare_ext_sW(LDAP
*,PWCHAR
,PWCHAR
,PWCHAR
,struct berval
*,PLDAPControlW
*,PLDAPControlW
*);
280 #define ldap_compare_ext_s WINELIB_NAME_AW(ldap_compare_ext_s)
281 ULONG
ldap_compare_sA(LDAP
*,PCHAR
,PCHAR
,PCHAR
);
282 ULONG
ldap_compare_sW(LDAP
*,PWCHAR
,PWCHAR
,PWCHAR
);
283 #define ldap_compare_s WINELIB_NAME_AW(ldap_compare_s)
284 ULONG
ldap_connect(LDAP
*,LDAP_TIMEVAL
*);
285 ULONG
ldap_control_freeA(LDAPControlA
*);
286 ULONG
ldap_control_freeW(LDAPControlW
*);
287 #define ldap_control_free WINELIB_NAME_AW(ldap_control_free)
288 ULONG
ldap_controls_freeA(LDAPControlA
**);
289 ULONG
ldap_controls_freeW(LDAPControlW
**);
290 #define ldap_controls_free WINELIB_NAME_AW(ldap_controls_free)
291 ULONG
ldap_count_entries(LDAP
*,LDAPMessage
*);
292 ULONG
ldap_count_references(LDAP
*,LDAPMessage
*);
293 ULONG
ldap_count_values_len(struct berval
**);
294 ULONG
ldap_count_valuesA(PCHAR
*);
295 ULONG
ldap_count_valuesW(PWCHAR
*);
296 #define ldap_count_values WINELIB_NAME_AW(ldap_count_values)
297 ULONG
ldap_create_page_controlA(PLDAP
,ULONG
,struct berval
*,UCHAR
,PLDAPControlA
*);
298 ULONG
ldap_create_page_controlW(PLDAP
,ULONG
,struct berval
*,UCHAR
,PLDAPControlW
*);
299 #define ldap_create_page_control WINELIB_NAME_AW(ldap_create_page_control)
300 ULONG
ldap_create_sort_controlA(PLDAP
,PLDAPSortKeyA
*,UCHAR
,PLDAPControlA
*);
301 ULONG
ldap_create_sort_controlW(PLDAP
,PLDAPSortKeyW
*,UCHAR
,PLDAPControlW
*);
302 #define ldap_create_sort_control WINELIB_NAME_AW(ldap_create_sort_control)
303 INT
ldap_create_vlv_controlA(LDAP
*,LDAPVLVInfo
*,char,LDAPControlA
**);
304 INT
ldap_create_vlv_controlW(LDAP
*,LDAPVLVInfo
*,char,LDAPControlW
**);
305 #define ldap_create_vlv_control WINELIB_NAME_AW(ldap_create_vlv_control)
306 ULONG
ldap_deleteA(LDAP
*,PCHAR
);
307 ULONG
ldap_deleteW(LDAP
*,PWCHAR
);
308 #define ldap_delete WINELIB_NAME_AW(ldap_delete)
309 ULONG
ldap_delete_extA(LDAP
*,PCHAR
,PLDAPControlA
*,PLDAPControlA
*,ULONG
*);
310 ULONG
ldap_delete_extW(LDAP
*,PWCHAR
,PLDAPControlW
*,PLDAPControlW
*,ULONG
*);
311 #define ldap_delete_ext WINELIB_NAME_AW(ldap_delete_ext)
312 ULONG
ldap_delete_ext_sA(LDAP
*,PCHAR
,PLDAPControlA
*,PLDAPControlA
*);
313 ULONG
ldap_delete_ext_sW(LDAP
*,PWCHAR
,PLDAPControlW
*,PLDAPControlW
*);
314 #define ldap_delete_ext_s WINELIB_NAME_AW(ldap_delete_ext_s)
315 ULONG
ldap_delete_sA(LDAP
*,PCHAR
);
316 ULONG
ldap_delete_sW(LDAP
*,PWCHAR
);
317 #define ldap_delete_s WINELIB_NAME_AW(ldap_delete_s)
318 PCHAR
ldap_dn2ufnA(PCHAR
);
319 PWCHAR
ldap_dn2ufnW(PWCHAR
);
320 #define ldap_dn2ufn WINELIB_NAME_AW(ldap_dn2ufn)
321 ULONG
ldap_encode_sort_controlA(PLDAP
,PLDAPSortKeyA
*,PLDAPControlA
,BOOLEAN
);
322 ULONG
ldap_encode_sort_controlW(PLDAP
,PLDAPSortKeyW
*,PLDAPControlW
,BOOLEAN
);
323 #define ldap_encode_sort_control WINELIB_NAME_AW(ldap_encode_sort_control)
324 PCHAR
ldap_err2stringA(ULONG
);
325 PWCHAR
ldap_err2stringW(ULONG
);
326 #define ldap_err2string WINELIB_NAME_AW(ldap_err2string)
327 ULONG
ldap_escape_filter_elementA(PCHAR
,ULONG
,PCHAR
,ULONG
);
328 ULONG
ldap_escape_filter_elementW(PWCHAR
,ULONG
,PWCHAR
,ULONG
);
329 #define ldap_escape_filter_element WINELIB_NAME_AW(ldap_escape_filter_element)
330 PCHAR
*ldap_explode_dnA(PCHAR
,ULONG
);
331 PWCHAR
*ldap_explode_dnW(PWCHAR
,ULONG
);
332 #define ldap_explode_dn WINELIB_NAME_AW(ldap_explode_dn)
333 ULONG
ldap_extended_operationA(LDAP
*,PCHAR
,struct berval
*,PLDAPControlA
*,PLDAPControlA
*,ULONG
*);
334 ULONG
ldap_extended_operationW(LDAP
*,PWCHAR
,struct berval
*,PLDAPControlW
*,PLDAPControlW
*,ULONG
*);
335 #define ldap_extended_operation WINELIB_NAME_AW(ldap_extended_operation)
336 ULONG
ldap_extended_operation_sA(LDAP
*,PCHAR
,struct berval
*,PLDAPControlA
*,PLDAPControlA
*,PCHAR
*,struct berval
**);
337 ULONG
ldap_extended_operation_sW(LDAP
*,PWCHAR
,struct berval
*,PLDAPControlW
*,PLDAPControlW
*,PWCHAR
*,struct berval
**);
338 #define ldap_extended_operation_s WINELIB_NAME_AW(ldap_extended_operation_s)
339 PCHAR
ldap_first_attributeA(LDAP
*,LDAPMessage
*,BerElement
**);
340 PWCHAR
ldap_first_attributeW(LDAP
*,LDAPMessage
*,BerElement
**);
341 #define ldap_first_attribute WINELIB_NAME_AW(ldap_first_attribute)
342 LDAPMessage
*ldap_first_entry(LDAP
*,LDAPMessage
*);
343 LDAPMessage
* ldap_first_reference(LDAP
*,LDAPMessage
*);
344 ULONG
ldap_free_controlsA(LDAPControlA
**);
345 ULONG
ldap_free_controlsW(LDAPControlW
**);
346 #define ldap_free_controls WINELIB_NAME_AW(ldap_free_controls)
347 PCHAR
ldap_get_dnA(LDAP
*,LDAPMessage
*);
348 PWCHAR
ldap_get_dnW(LDAP
*,LDAPMessage
*);
349 #define ldap_get_dn WINELIB_NAME_AW(ldap_get_dn)
350 ULONG
ldap_get_next_page(LDAP
*,PLDAPSearch
,ULONG
,ULONG
*);
351 ULONG
ldap_get_next_page_s(LDAP
*,PLDAPSearch
,struct l_timeval
*,ULONG
,ULONG
*,LDAPMessage
**);
352 ULONG
ldap_get_optionA(LDAP
*,int,void*);
353 ULONG
ldap_get_optionW(LDAP
*,int,void*);
354 #define ldap_get_option WINELIB_NAME_AW(ldap_get_option)
355 ULONG
ldap_get_paged_count(LDAP
*,PLDAPSearch
,ULONG
*,LDAPMessage
*);
356 PCHAR
*ldap_get_valuesA(LDAP
*,LDAPMessage
*,PCHAR
);
357 PWCHAR
*ldap_get_valuesW(LDAP
*,LDAPMessage
*,PWCHAR
);
358 #define ldap_get_values WINELIB_NAME_AW(ldap_get_values)
359 struct berval
**ldap_get_values_lenA(LDAP
*,LDAPMessage
*,PCHAR
);
360 struct berval
**ldap_get_values_lenW(LDAP
*,LDAPMessage
*,PWCHAR
);
361 #define ldap_get_values_len WINELIB_NAME_AW(ldap_get_values_len)
362 LDAP
*ldap_initA(const PCHAR
,ULONG
);
363 LDAP
*ldap_initW(const PWCHAR
,ULONG
);
364 #define ldap_init WINELIB_NAME_AW(ldap_init)
365 VOID
ldap_memfreeA(PCHAR
);
366 VOID
ldap_memfreeW(PWCHAR
);
367 #define ldap_memfree WINELIB_NAME_AW(ldap_memfree)
368 ULONG
ldap_modifyA(LDAP
*,PCHAR
,LDAPModA
*[]);
369 ULONG
ldap_modifyW(LDAP
*,PWCHAR
,LDAPModW
*[]);
370 #define ldap_modify WINELIB_NAME_AW(ldap_modify)
371 ULONG
ldap_modify_extA(LDAP
*,PCHAR
,LDAPModA
*[],PLDAPControlA
*,PLDAPControlA
*,ULONG
*);
372 ULONG
ldap_modify_extW(LDAP
*,PWCHAR
,LDAPModW
*[],PLDAPControlW
*,PLDAPControlW
*,ULONG
*);
373 #define ldap_modify_ext WINELIB_NAME_AW(ldap_modify_ext)
374 ULONG
ldap_modify_ext_sA(LDAP
*,PCHAR
,LDAPModA
*[],PLDAPControlA
*,PLDAPControlA
*);
375 ULONG
ldap_modify_ext_sW(LDAP
*,PWCHAR
,LDAPModW
*[],PLDAPControlW
*,PLDAPControlW
*);
376 #define ldap_modify_ext_s WINELIB_NAME_AW(ldap_modify_ext_s)
377 ULONG
ldap_modify_sA(LDAP
*,PCHAR
,LDAPModA
*[]);
378 ULONG
ldap_modify_sW(LDAP
*,PWCHAR
,LDAPModW
*[]);
379 #define ldap_modify_s WINELIB_NAME_AW(ldap_modify_s)
380 ULONG
ldap_modrdnA(LDAP
*,PCHAR
,PCHAR
);
381 ULONG
ldap_modrdnW(LDAP
*,PWCHAR
,PWCHAR
);
382 #define ldap_modrdn WINELIB_NAME_AW(ldap_modrdn)
383 ULONG
ldap_modrdn2A(LDAP
*,PCHAR
,PCHAR
,INT
);
384 ULONG
ldap_modrdn2W(LDAP
*,PWCHAR
,PWCHAR
,INT
);
385 #define ldap_modrdn2 WINELIB_NAME_AW(ldap_modrdn2)
386 ULONG
ldap_modrdn2_sA(LDAP
*,PCHAR
,PCHAR
,INT
);
387 ULONG
ldap_modrdn2_sW(LDAP
*,PWCHAR
,PWCHAR
,INT
);
388 #define ldap_modrdn2_s WINELIB_NAME_AW(ldap_modrdn2_s)
389 ULONG
ldap_modrdn_sA(LDAP
*,PCHAR
,PCHAR
);
390 ULONG
ldap_modrdn_sW(LDAP
*,PWCHAR
,PWCHAR
);
391 #define ldap_modrdn_s WINELIB_NAME_AW(ldap_modrdn_s)
392 ULONG
ldap_msgfree(LDAPMessage
*);
393 PCHAR
ldap_next_attributeA(LDAP
*,LDAPMessage
*,BerElement
*);
394 PWCHAR
ldap_next_attributeW(LDAP
*,LDAPMessage
*,BerElement
*);
395 #define ldap_next_attribute WINELIB_NAME_AW(ldap_next_attribute)
396 LDAPMessage
*ldap_next_entry(LDAP
*,LDAPMessage
*);
397 LDAP
*ldap_openA(PCHAR
,ULONG
);
398 LDAP
*ldap_openW(PWCHAR
,ULONG
);
399 #define ldap_open WINELIB_NAME_AW(ldap_open)
400 ULONG
ldap_parse_extended_resultA(LDAP
*,LDAPMessage
*,PCHAR
*,struct berval
**,BOOLEAN
);
401 ULONG
ldap_parse_extended_resultW(LDAP
*,LDAPMessage
*,PWCHAR
*,struct berval
**,BOOLEAN
);
402 #define ldap_parse_extended_result WINELIB_NAME_AW(ldap_parse_extended_result)
403 ULONG
ldap_parse_page_controlA(LDAP
*,PLDAPControlA
*,ULONG
*,struct berval
**);
404 ULONG
ldap_parse_page_controlW(LDAP
*,PLDAPControlW
*,ULONG
*,struct berval
**);
405 #define ldap_parse_page_control WINELIB_NAME_AW(ldap_parse_page_control)
406 ULONG
ldap_parse_referenceA(LDAP
*,LDAPMessage
*,PCHAR
**);
407 ULONG
ldap_parse_referenceW(LDAP
*,LDAPMessage
*,PWCHAR
**);
408 #define ldap_parse_reference WINELIB_NAME_AW(ldap_parse_reference)
409 ULONG
ldap_result2error(LDAP
*,LDAPMessage
*,ULONG
);
410 ULONG
ldap_parse_resultA(LDAP
*,LDAPMessage
*,ULONG
*,PCHAR
*,PCHAR
*,PCHAR
**,PLDAPControlA
**,BOOLEAN
);
411 ULONG
ldap_parse_resultW(LDAP
*,LDAPMessage
*,ULONG
*,PWCHAR
*,PWCHAR
*,PWCHAR
**,PLDAPControlW
**,BOOLEAN
);
412 #define ldap_parse_result WINELIB_NAME_AW(ldap_parse_result)
413 ULONG
ldap_parse_sort_controlA(LDAP
*,PLDAPControlA
*,ULONG
*,PCHAR
*);
414 ULONG
ldap_parse_sort_controlW(LDAP
*,PLDAPControlW
*,ULONG
*,PWCHAR
*);
415 #define ldap_parse_sort_control WINELIB_NAME_AW(ldap_parse_sort_control)
416 int ldap_parse_vlv_controlA(LDAP
*,LDAPControlA
**,unsigned long*,unsigned long*,struct berval
**,int*);
417 int ldap_parse_vlv_controlW(LDAP
*,LDAPControlW
**,unsigned long*,unsigned long*,struct berval
**,int*);
418 #define ldap_parse_vlv_control WINELIB_NAME_AW(ldap_parse_vlv_control)
419 void ldap_perror(LDAP
*,const PCHAR
);
420 ULONG
ldap_rename_extA(LDAP
*,PCHAR
,PCHAR
,PCHAR
,INT
,PLDAPControlA
*,PLDAPControlA
*,ULONG
*);
421 ULONG
ldap_rename_extW(LDAP
*,PWCHAR
,PWCHAR
,PWCHAR
,INT
,PLDAPControlW
*,PLDAPControlW
*,ULONG
*);
422 #define ldap_rename_ext WINELIB_NAME_AW(ldap_rename_ext)
423 ULONG
ldap_rename_ext_sA(LDAP
*,PCHAR
,PCHAR
,PCHAR
,INT
,PLDAPControlA
*,PLDAPControlA
*);
424 ULONG
ldap_rename_ext_sW(LDAP
*,PWCHAR
,PWCHAR
,PWCHAR
,INT
,PLDAPControlW
*,PLDAPControlW
*);
425 #define ldap_rename_ext_s WINELIB_NAME_AW(ldap_rename_ext_s)
426 ULONG
ldap_result(LDAP
*,ULONG
,ULONG
,struct l_timeval
*,LDAPMessage
**);
427 ULONG
ldap_result2error(LDAP
*,LDAPMessage
*,ULONG
);
428 ULONG
ldap_sasl_bindA(LDAP
*,const PCHAR
,const PCHAR
,const BERVAL
*,PLDAPControlA
*,PLDAPControlA
*,int*);
429 ULONG
ldap_sasl_bindW(LDAP
*,const PWCHAR
,const PWCHAR
,const BERVAL
*,PLDAPControlW
*,PLDAPControlW
*,int*);
430 #define ldap_sasl_bind WINELIB_NAME_AW(ldap_sasl_bind)
431 ULONG
ldap_sasl_bind_sA(LDAP
*,const PCHAR
,const PCHAR
,const BERVAL
*,PLDAPControlA
*,PLDAPControlA
*,PBERVAL
*);
432 ULONG
ldap_sasl_bind_sW(LDAP
*,const PWCHAR
,const PWCHAR
,const BERVAL
*,PLDAPControlW
*,PLDAPControlW
*,PBERVAL
*);
433 #define ldap_sasl_bind_s WINELIB_NAME_AW(ldap_sasl_bind_s)
434 ULONG
ldap_simple_bindA(LDAP
*,PCHAR
,PCHAR
);
435 ULONG
ldap_simple_bindW(LDAP
*,PWCHAR
,PWCHAR
);
436 #define ldap_simple_bind WINELIB_NAME_AW(ldap_simple_bind)
437 ULONG
ldap_simple_bind_sA(LDAP
*,PCHAR
,PCHAR
);
438 ULONG
ldap_simple_bind_sW(LDAP
*,PWCHAR
,PWCHAR
);
439 #define ldap_simple_bind_s WINELIB_NAME_AW(ldap_simple_bind_s)
440 ULONG
ldap_search_abandon_page(PLDAP
,PLDAPSearch
);
441 ULONG
ldap_searchA(LDAP
*,PCHAR
,ULONG
,PCHAR
,PCHAR
[],ULONG
);
442 ULONG
ldap_searchW(LDAP
*,PWCHAR
,ULONG
,PWCHAR
,PCHAR
[],ULONG
);
443 #define ldap_search WINELIB_NAME_AW(ldap_search)
444 ULONG
ldap_search_extA(LDAP
*,PCHAR
,ULONG
,PCHAR
,PCHAR
[],ULONG
,PLDAPControlA
*,
445 PLDAPControlA
*,ULONG
,ULONG
,ULONG
*);
446 ULONG
ldap_search_extW(LDAP
*,PWCHAR
,ULONG
,PWCHAR
,PWCHAR
[],ULONG
,PLDAPControlW
*,
447 PLDAPControlW
*,ULONG
,ULONG
,ULONG
*);
448 #define ldap_search_ext WINELIB_NAME_AW(ldap_search_ext)
449 ULONG
ldap_search_ext_sA(LDAP
*,PCHAR
,ULONG
,PCHAR
,PCHAR
[],ULONG
,PLDAPControlA
*,
450 PLDAPControlA
*,struct l_timeval
*,ULONG
,LDAPMessage
**);
451 ULONG
ldap_search_ext_sW(LDAP
*,PWCHAR
,ULONG
,PWCHAR
,PWCHAR
[],ULONG
,PLDAPControlW
*,
452 PLDAPControlW
*,struct l_timeval
*,ULONG
,LDAPMessage
**);
453 #define ldap_search_ext_s WINELIB_NAME_AW(ldap_search_ext_s)
454 PLDAPSearch
ldap_search_init_pageA(PLDAP
,PCHAR
,ULONG
,PCHAR
,PCHAR
[],ULONG
,PLDAPControlA
*,
455 PLDAPControlA
*,ULONG
,ULONG
,PLDAPSortKeyA
*);
456 PLDAPSearch
ldap_search_init_pageW(PLDAP
,PWCHAR
,ULONG
,PWCHAR
,PWCHAR
[],ULONG
,PLDAPControlW
*,
457 PLDAPControlW
*,ULONG
,ULONG
, PLDAPSortKeyW
*);
458 #define ldap_search_init_page WINELIB_NAME_AW(ldap_search_init_page)
459 ULONG
ldap_search_sA(LDAP
*,PCHAR
,ULONG
,PCHAR
,PCHAR
[],ULONG
,LDAPMessage
**);
460 ULONG
ldap_search_sW(LDAP
*,PWCHAR
,ULONG
,PWCHAR
,PWCHAR
[],ULONG
,LDAPMessage
**);
461 #define ldap_search_s WINELIB_NAME_AW(ldap_search_s)
462 ULONG
ldap_search_stA(LDAP
*,const PCHAR
,ULONG
,const PCHAR
,PCHAR
[],ULONG
,
463 struct l_timeval
*,LDAPMessage
**);
464 ULONG
ldap_search_stW(LDAP
*,const PWCHAR
,ULONG
,const PWCHAR
,PWCHAR
[],ULONG
,
465 struct l_timeval
*,LDAPMessage
**);
466 #define ldap_search_st WINELIB_NAME_AW(ldap_search_st)
467 ULONG
ldap_set_optionA(LDAP
*,int,void*);
468 ULONG
ldap_set_optionW(LDAP
*,int,void*);
469 #define ldap_set_option WINELIB_NAME_AW(ldap_set_option)
470 LDAP
*ldap_sslinitA(PCHAR
,ULONG
,int);
471 LDAP
*ldap_sslinitW(PWCHAR
,ULONG
,int);
472 #define ldap_sslinit WINELIB_NAME_AW(ldap_sslinit)
473 ULONG
ldap_start_tls_sA(LDAP
*,PULONG
,LDAPMessage
**,PLDAPControlA
*,PLDAPControlA
*);
474 ULONG
ldap_start_tls_sW(LDAP
*,PULONG
,LDAPMessage
**,PLDAPControlW
*,PLDAPControlW
*);
475 #define ldap_start_tls_s WINELIB_NAME_AW(ldap_start_tls_s)
476 ULONG
ldap_startup(LDAP_VERSION_INFO
*,HANDLE
*);
477 BOOLEAN
ldap_stop_tls_s(LDAP
*);
478 ULONG
ldap_ufn2dnA(PCHAR
,PCHAR
*);
479 ULONG
ldap_ufn2dnW(PWCHAR
,PWCHAR
*);
480 #define ldap_ufn2dn WINELIB_NAME_AW(ldap_ufn2dn)
481 ULONG
ldap_unbind(LDAP
*);
482 ULONG
ldap_unbind_s(LDAP
*);
483 ULONG
ldap_value_freeA(PCHAR
*);
484 ULONG
ldap_value_freeW(PWCHAR
*);
485 #define ldap_value_free WINELIB_NAME_AW(ldap_value_free)
486 ULONG
ldap_value_free_len(struct berval
**);
488 BerElement
*ber_alloc_t(INT
);
489 BERVAL
*ber_bvdup(BERVAL
*);
490 void ber_bvecfree(PBERVAL
*);
491 void ber_bvfree(BERVAL
*);
492 ULONG
ber_first_element(BerElement
*,ULONG
*,CHAR
**);
493 INT
ber_flatten(BerElement
*,PBERVAL
*);
494 void ber_free(BerElement
*,INT
);
495 BerElement
*ber_init(BERVAL
*);
496 ULONG
ber_next_element(BerElement
*,ULONG
*,CHAR
*);
497 ULONG
ber_peek_tag(BerElement
*,ULONG
*);
498 INT
ber_printf(BerElement
*,PCHAR
,...);
499 ULONG
ber_skip_tag(BerElement
*,ULONG
*);
500 INT
ber_scanf(BerElement
*,PCHAR
,...);
502 ULONG
LdapGetLastError(void);
503 ULONG
LdapMapErrorToWin32(ULONG
);
504 int LdapUnicodeToUTF8(LPCWSTR
,int,LPSTR
,int);
505 int LdapUTF8ToUnicode(LPCSTR
,int,LPWSTR
,int);