📄 winldap.h
字号:
#endif
//
// Synchronous and asynch search routines.
//
// filter follows RFC 1960 with the addition that '(' ')' '*' ' ' '\' and
// '\0' are all escaped with '\'
//
// Scope of search. This corresponds to the "scope" parameter on search
#define LDAP_SCOPE_BASE 0x00
#define LDAP_SCOPE_ONELEVEL 0x01
#define LDAP_SCOPE_SUBTREE 0x02
//
// multi-thread: ldap_search calls are not safe in that the message number
// is returned rather than the return code. You have to look
// at the connection block in an error case and the return code
// may be overwritten by another thread inbetween.
//
// Use ldap_search_ext instead, as these are thread safe.
//
// ldap_search_s and ldap_search_ext* calls are thread safe.
//
WINLDAPAPI ULONG LDAPAPI ldap_searchW(
LDAP *ld,
PWCHAR base, // distinguished name or ""
ULONG scope, // LDAP_SCOPE_xxxx
PWCHAR filter,
PWCHAR attrs[], // pointer to an array of PCHAR attribute names
ULONG attrsonly // boolean on whether to only return attr names
);
WINLDAPAPI ULONG LDAPAPI ldap_searchA(
LDAP *ld,
PCHAR base, // distinguished name or ""
ULONG scope, // LDAP_SCOPE_xxxx
PCHAR filter,
PCHAR attrs[], // pointer to an array of PCHAR attribute names
ULONG attrsonly // boolean on whether to only return attr names
);
WINLDAPAPI ULONG LDAPAPI ldap_search_sW(
LDAP *ld,
PWCHAR base,
ULONG scope,
PWCHAR filter,
PWCHAR attrs[],
ULONG attrsonly,
LDAPMessage **res
);
WINLDAPAPI ULONG LDAPAPI ldap_search_sA(
LDAP *ld,
PCHAR base,
ULONG scope,
PCHAR filter,
PCHAR attrs[],
ULONG attrsonly,
LDAPMessage **res
);
WINLDAPAPI ULONG LDAPAPI ldap_search_stW(
LDAP *ld,
PWCHAR base,
ULONG scope,
PWCHAR filter,
PWCHAR attrs[],
ULONG attrsonly,
struct l_timeval *timeout,
LDAPMessage **res
);
WINLDAPAPI ULONG LDAPAPI ldap_search_stA(
LDAP *ld,
PCHAR base,
ULONG scope,
PCHAR filter,
PCHAR attrs[],
ULONG attrsonly,
struct l_timeval *timeout,
LDAPMessage **res
);
WINLDAPAPI ULONG LDAPAPI ldap_search_extW(
LDAP *ld,
PWCHAR base,
ULONG scope,
PWCHAR filter,
PWCHAR attrs[],
ULONG attrsonly,
PLDAPControlW *ServerControls,
PLDAPControlW *ClientControls,
ULONG TimeLimit,
ULONG SizeLimit,
ULONG *MessageNumber
);
WINLDAPAPI ULONG LDAPAPI ldap_search_extA(
LDAP *ld,
PCHAR base,
ULONG scope,
PCHAR filter,
PCHAR attrs[],
ULONG attrsonly,
PLDAPControlA *ServerControls,
PLDAPControlA *ClientControls,
ULONG TimeLimit,
ULONG SizeLimit,
ULONG *MessageNumber
);
WINLDAPAPI ULONG LDAPAPI ldap_search_ext_sW(
LDAP *ld,
PWCHAR base,
ULONG scope,
PWCHAR filter,
PWCHAR attrs[],
ULONG attrsonly,
PLDAPControlW *ServerControls,
PLDAPControlW *ClientControls,
struct l_timeval *timeout,
ULONG SizeLimit,
LDAPMessage **res
);
WINLDAPAPI ULONG LDAPAPI ldap_search_ext_sA(
LDAP *ld,
PCHAR base,
ULONG scope,
PCHAR filter,
PCHAR attrs[],
ULONG attrsonly,
PLDAPControlA *ServerControls,
PLDAPControlA *ClientControls,
struct l_timeval *timeout,
ULONG SizeLimit,
LDAPMessage **res
);
#if LDAP_UNICODE
#define ldap_search ldap_searchW
#define ldap_search_s ldap_search_sW
#define ldap_search_st ldap_search_stW
#define ldap_search_ext ldap_search_extW
#define ldap_search_ext_s ldap_search_ext_sW
#else
WINLDAPAPI ULONG LDAPAPI ldap_search(
LDAP *ld,
PCHAR base, // distinguished name or ""
ULONG scope, // LDAP_SCOPE_xxxx
PCHAR filter,
PCHAR attrs[], // pointer to an array of PCHAR attribute names
ULONG attrsonly // boolean on whether to only return attr names
);
WINLDAPAPI ULONG LDAPAPI ldap_search_s(
LDAP *ld,
PCHAR base,
ULONG scope,
PCHAR filter,
PCHAR attrs[],
ULONG attrsonly,
LDAPMessage **res
);
WINLDAPAPI ULONG LDAPAPI ldap_search_st(
LDAP *ld,
PCHAR base,
ULONG scope,
PCHAR filter,
PCHAR attrs[],
ULONG attrsonly,
struct l_timeval *timeout,
LDAPMessage **res
);
WINLDAPAPI ULONG LDAPAPI ldap_search_ext(
LDAP *ld,
PCHAR base,
ULONG scope,
PCHAR filter,
PCHAR attrs[],
ULONG attrsonly,
PLDAPControlA *ServerControls,
PLDAPControlA *ClientControls,
ULONG TimeLimit,
ULONG SizeLimit,
ULONG *MessageNumber
);
WINLDAPAPI ULONG LDAPAPI ldap_search_ext_s(
LDAP *ld,
PCHAR base,
ULONG scope,
PCHAR filter,
PCHAR attrs[],
ULONG attrsonly,
PLDAPControlA *ServerControls,
PLDAPControlA *ClientControls,
struct l_timeval *timeout,
ULONG SizeLimit,
LDAPMessage **res
);
#endif
//
// modify an existing entry
//
//
// multi-thread: ldap_modify calls are not safe in that the message number
// is returned rather than the return code. You have to look
// at the connection block in an error case and the return code
// may be overwritten by another thread inbetween.
//
// Use ldap_modify_ext instead, as these are thread safe.
//
// ldap_modify_s and ldap_modify_ext* calls are thread safe.
//
WINLDAPAPI ULONG LDAPAPI ldap_modifyW( LDAP *ld, PWCHAR dn, LDAPModW *mods[] );
WINLDAPAPI ULONG LDAPAPI ldap_modifyA( LDAP *ld, PCHAR dn, LDAPModA *mods[] );
WINLDAPAPI ULONG LDAPAPI ldap_modify_sW( LDAP *ld, PWCHAR dn, LDAPModW *mods[] );
WINLDAPAPI ULONG LDAPAPI ldap_modify_sA( LDAP *ld, PCHAR dn, LDAPModA *mods[] );
WINLDAPAPI ULONG LDAPAPI ldap_modify_extW(
LDAP *ld,
PWCHAR dn,
LDAPModW *mods[],
PLDAPControlW *ServerControls,
PLDAPControlW *ClientControls,
ULONG *MessageNumber
);
WINLDAPAPI ULONG LDAPAPI ldap_modify_extA(
LDAP *ld,
PCHAR dn,
LDAPModA *mods[],
PLDAPControlA *ServerControls,
PLDAPControlA *ClientControls,
ULONG *MessageNumber
);
WINLDAPAPI ULONG LDAPAPI ldap_modify_ext_sW(
LDAP *ld,
PWCHAR dn,
LDAPModW *mods[],
PLDAPControlW *ServerControls,
PLDAPControlW *ClientControls
);
WINLDAPAPI ULONG LDAPAPI ldap_modify_ext_sA(
LDAP *ld,
PCHAR dn,
LDAPModA *mods[],
PLDAPControlA *ServerControls,
PLDAPControlA *ClientControls
);
#if LDAP_UNICODE
#define ldap_modify ldap_modifyW
#define ldap_modify_s ldap_modify_sW
#define ldap_modify_ext ldap_modify_extW
#define ldap_modify_ext_s ldap_modify_ext_sW
#else
WINLDAPAPI ULONG LDAPAPI ldap_modify( LDAP *ld, PCHAR dn, LDAPModA *mods[] );
WINLDAPAPI ULONG LDAPAPI ldap_modify_s( LDAP *ld, PCHAR dn, LDAPModA *mods[] );
WINLDAPAPI ULONG LDAPAPI ldap_modify_ext(
LDAP *ld,
PCHAR dn,
LDAPModA *mods[],
PLDAPControlA *ServerControls,
PLDAPControlA *ClientControls,
ULONG *MessageNumber
);
WINLDAPAPI ULONG LDAPAPI ldap_modify_ext_s(
LDAP *ld,
PCHAR dn,
LDAPModA *mods[],
PLDAPControlA *ServerControls,
PLDAPControlA *ClientControls
);
#endif
//
// modrdn and modrdn2 function both as RenameObject and MoveObject.
//
// Note that to LDAP v2 servers, only rename within a given container
// is supported... therefore NewDistinguishedName is actually NewRDN.
// Here are some examples :
//
// This works to both v2 and v3 servers :
//
// DN = CN=Bob,OU=FOO,O=BAR
// NewDN = CN=Joe
//
// result is: CN=Joe,OU=FOO,O=BAR
//
// This works to only v3 and above servers :
//
// DN = CN=Bob,OU=FOO,O=BAR
// NewDN = CN=Joe,OU=FOOBAR,O=BAR
//
// result is: CN=Joe,OU=FOOBAR,O=BAR
//
// If you try the second example to a v2 server, we'll send the whole
// NewDN over as the new RDN (rather than break up the parent OU and
// child). The server will then give you back some unknown error.
//
//
// multi-thread: ldap_modrdn and ldap_modrdn2 calls are not safe in that
// the message number is returned rather than the return code.
// You have to look at the connection block in an error case
// and the return code may be overwritten by another thread
// inbetween.
//
// Use ldap_rename_ext instead, as these are thread safe.
//
WINLDAPAPI ULONG LDAPAPI ldap_modrdn2W (
LDAP *ExternalHandle,
PWCHAR DistinguishedName,
PWCHAR NewDistinguishedName,
INT DeleteOldRdn
);
WINLDAPAPI ULONG LDAPAPI ldap_modrdn2A (
LDAP *ExternalHandle,
PCHAR DistinguishedName,
PCHAR NewDistinguishedName,
INT DeleteOldRdn
);
//
// ldap_modrdn simply calls ldap_modrdn2 with a value of 1 for DeleteOldRdn.
//
WINLDAPAPI ULONG LDAPAPI ldap_modrdnW (
LDAP *ExternalHandle,
PWCHAR DistinguishedName,
PWCHAR NewDistinguishedName
);
WINLDAPAPI ULONG LDAPAPI ldap_modrdnA (
LDAP *ExternalHandle,
PCHAR DistinguishedName,
PCHAR NewDistinguishedName
);
WINLDAPAPI ULONG LDAPAPI ldap_modrdn2_sW (
LDAP *ExternalHandle,
PWCHAR DistinguishedName,
PWCHAR NewDistinguishedName,
INT DeleteOldRdn
);
WINLDAPAPI ULONG LDAPAPI ldap_modrdn2_sA (
LDAP *ExternalHandle,
PCHAR DistinguishedName,
PCHAR NewDistinguishedName,
INT DeleteOldRdn
);
WINLDAPAPI ULONG LDAPAPI ldap_modrdn_sW (
LDAP *ExternalHandle,
PWCHAR DistinguishedName,
PWCHAR NewDistinguishedName
);
WINLDAPAPI ULONG LDAPAPI ldap_modrdn_sA (
LDAP *ExternalHandle,
PCHAR DistinguishedName,
PCHAR NewDistinguishedName
);
#if LDAP_UNICODE
#define ldap_modrdn2 ldap_modrdn2W
#define ldap_modrdn ldap_modrdnW
#define ldap_modrdn2_s ldap_modrdn2_sW
#define ldap_modrdn_s ldap_modrdn_sW
#else
WINLDAPAPI ULONG LDAPAPI ldap_modrdn2 (
LDAP *ExternalHandle,
PCHAR DistinguishedName,
PCHAR NewDistinguishedName,
INT DeleteOldRdn
);
WINLDAPAPI ULONG LDAPAPI ldap_modrdn (
LDAP *ExternalHandle,
PCHAR DistinguishedName,
PCHAR NewDistinguishedName
);
WINLDAPAPI ULONG LDAPAPI ldap_modrdn2_s (
LDAP *ExternalHandle,
PCHAR DistinguishedName,
PCHAR NewDistinguishedName,
INT DeleteOldRdn
);
WINLDAPAPI ULONG LDAPAPI ldap_modrdn_s (
LDAP *ExternalHandle,
PCHAR DistinguishedName,
PCHAR NewDistinguishedName
);
#endif
//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -