home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / winldap.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  32KB  |  714 lines

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