📄 winldap.h
字号:
WINLDAPAPI ULONG LDAPAPI ldap_delete_ext_sW(
LDAP *ld,
const PWCHAR dn,
PLDAPControlW *ServerControls,
PLDAPControlW *ClientControls
);
WINLDAPAPI ULONG LDAPAPI ldap_delete_ext_sA(
LDAP *ld,
const PCHAR dn,
PLDAPControlA *ServerControls,
PLDAPControlA *ClientControls
);
#if LDAP_UNICODE
#define ldap_delete ldap_deleteW
#define ldap_delete_ext ldap_delete_extW
#define ldap_delete_s ldap_delete_sW
#define ldap_delete_ext_s ldap_delete_ext_sW
#else
WINLDAPAPI ULONG LDAPAPI ldap_delete( LDAP *ld, PCHAR dn );
WINLDAPAPI ULONG LDAPAPI ldap_delete_s( LDAP *ld, PCHAR dn );
WINLDAPAPI ULONG LDAPAPI ldap_delete_ext(
LDAP *ld,
const PCHAR dn,
PLDAPControlA *ServerControls,
PLDAPControlA *ClientControls,
ULONG *MessageNumber
);
WINLDAPAPI ULONG LDAPAPI ldap_delete_ext_s(
LDAP *ld,
const PCHAR dn,
PLDAPControlA *ServerControls,
PLDAPControlA *ClientControls
);
#endif
//
// Give up on a request. No guarentee that it got there as there is no
// response from the server.
//
// multi-thread: ldap_abandon calls are thread safe
WINLDAPAPI ULONG LDAPAPI ldap_abandon( LDAP *ld, ULONG msgid );
//
// Possible values for "all" field in ldap_result. We've enhanced it such
// that if someone passes in LDAP_MSG_RECEIVED, we'll pass all values we've
// received up to that point.
//
#define LDAP_MSG_ONE 0
#define LDAP_MSG_ALL 1
#define LDAP_MSG_RECEIVED 2
//
// Get a response from a connection. One enhancement here is that ld can
// be null, in which case we'll return responses from any server. Free
// responses here with ldap_msgfree.
//
// For connection-less LDAP, you should pass in both a LDAP connection
// handle and a msgid. This will ensure we know which request the app
// is waiting on a reply to. ( we actively resend request until we get
// a response.)
//
// multi-thread: ldap_result calls are thread safe
WINLDAPAPI ULONG LDAPAPI ldap_result(
LDAP *ld,
ULONG msgid,
ULONG all,
struct l_timeval *timeout,
LDAPMessage **res
);
WINLDAPAPI ULONG LDAPAPI ldap_msgfree( LDAPMessage *res );
//
// This parses a message and returns the error code. It optionally frees
// the message by calling ldap_msgfree.
//
// multi-thread: ldap_result2error call is thread safe
WINLDAPAPI ULONG LDAPAPI ldap_result2error(
LDAP *ld,
LDAPMessage *res,
ULONG freeit // boolean.. free the message?
);
//
// Similar to ldap_result2error, this parses responses from the server and
// returns the appropriate fields. Use this one if you want to get at the
// referrals, matchingDNs, or server controls returned.
//
// multi-thread: ldap_parse_result call is thread safe
WINLDAPAPI ULONG LDAPAPI ldap_parse_resultW (
LDAP *Connection,
LDAPMessage *ResultMessage,
ULONG *ReturnCode OPTIONAL, // returned by server
PWCHAR *MatchedDNs OPTIONAL, // free with ldap_memfree
PWCHAR *ErrorMessage OPTIONAL, // free with ldap_memfree
PWCHAR **Referrals OPTIONAL, // free with ldap_value_freeW
PLDAPControlW **ServerControls OPTIONAL, // free with ldap_free_controlsW
BOOLEAN Freeit
);
WINLDAPAPI ULONG LDAPAPI ldap_parse_resultA (
LDAP *Connection,
LDAPMessage *ResultMessage,
ULONG *ReturnCode OPTIONAL, // returned by server
PCHAR *MatchedDNs OPTIONAL, // free with ldap_memfree
PCHAR *ErrorMessage OPTIONAL, // free with ldap_memfree
PCHAR **Referrals OPTIONAL, // free with ldap_value_freeA
PLDAPControlA **ServerControls OPTIONAL, // free with ldap_free_controlsA
BOOLEAN Freeit
);
WINLDAPAPI ULONG LDAPAPI ldap_parse_extended_resultA (
LDAP *Connection,
LDAPMessage *ResultMessage, // returned by server
PCHAR *ResultOID, // free with ldap_memfree
struct berval **ResultData, // free with ldap_memfree
BOOLEAN Freeit // Don't need the message anymore
);
WINLDAPAPI ULONG LDAPAPI ldap_parse_extended_resultW (
LDAP *Connection,
LDAPMessage *ResultMessage, // returned by server
PWCHAR *ResultOID, // free with ldap_memfree
struct berval **ResultData, // free with ldap_memfree
BOOLEAN Freeit // Don't need the message anymore
);
WINLDAPAPI ULONG LDAPAPI ldap_controls_freeA (
LDAPControlA **Controls
);
WINLDAPAPI ULONG LDAPAPI ldap_control_freeA (
LDAPControlA *Controls
);
WINLDAPAPI ULONG LDAPAPI ldap_controls_freeW (
LDAPControlW **Control
);
WINLDAPAPI ULONG LDAPAPI ldap_control_freeW (
LDAPControlW *Control
);
//
// ldap_free_controls are old, use ldap_controls_free
//
WINLDAPAPI ULONG LDAPAPI ldap_free_controlsW (
LDAPControlW **Controls
);
WINLDAPAPI ULONG LDAPAPI ldap_free_controlsA (
LDAPControlA **Controls
);
#if LDAP_UNICODE
#define ldap_parse_result ldap_parse_resultW
#define ldap_controls_free ldap_controls_freeW
#define ldap_control_free ldap_control_freeW
#define ldap_free_controls ldap_free_controlsW
#define ldap_parse_extended_result ldap_parse_extended_resultW
#else
#define ldap_parse_extended_result ldap_parse_extended_resultA
WINLDAPAPI ULONG LDAPAPI ldap_parse_result (
LDAP *Connection,
LDAPMessage *ResultMessage,
ULONG *ReturnCode OPTIONAL, // returned by server
PCHAR *MatchedDNs OPTIONAL, // free with ldap_memfree
PCHAR *ErrorMessage OPTIONAL, // free with ldap_memfree
PCHAR **Referrals OPTIONAL, // free with ldap_value_free
PLDAPControlA **ServerControls OPTIONAL, // free with ldap_free_controls
BOOLEAN Freeit
);
WINLDAPAPI ULONG LDAPAPI ldap_controls_free (
LDAPControlA **Controls
);
WINLDAPAPI ULONG LDAPAPI ldap_control_free (
LDAPControlA *Control
);
WINLDAPAPI ULONG LDAPAPI ldap_free_controls (
LDAPControlA **Controls
);
#endif
//
// ldap_err2string returns a pointer to a string describing the error. This
// string should not be freed.
//
WINLDAPAPI PWCHAR LDAPAPI ldap_err2stringW( ULONG err );
WINLDAPAPI PCHAR LDAPAPI ldap_err2stringA( ULONG err );
#if LDAP_UNICODE
#define ldap_err2string ldap_err2stringW
#else
WINLDAPAPI PCHAR LDAPAPI ldap_err2string( ULONG err );
#endif
//
// ldap_perror does nothing and is here just for compatibility.
//
WINLDAPAPI void LDAPAPI ldap_perror( LDAP *ld, const PCHAR msg );
//
// Return the first entry of a message. It is freed when the message is
// freed so should not be freed explicitly.
//
WINLDAPAPI LDAPMessage *LDAPAPI ldap_first_entry( LDAP *ld, LDAPMessage *res );
//
// Return the next entry of a message. It is freed when the message is
// freed so should not be freed explicitly.
//
WINLDAPAPI LDAPMessage *LDAPAPI ldap_next_entry( LDAP *ld, LDAPMessage *entry );
//
// Count the number of search entries returned by the server in a response
// to a server request.
//
WINLDAPAPI ULONG LDAPAPI ldap_count_entries( LDAP *ld, LDAPMessage *res );
//
// A BerElement really maps out to a C++ class object that does BER encoding.
// Don't mess with it as it's opaque.
//
typedef struct berelement {
PCHAR opaque; // this is an opaque structure used just for
// compatibility with reference implementation
} BerElement;
#define NULLBER ((BerElement *) 0)
//
// For a given entry, return the first attribute. The pointer returned is
// actually a buffer in the connection block (with allowances for
// multi-threaded apps) so it should not be freed.
//
WINLDAPAPI PWCHAR LDAPAPI ldap_first_attributeW(
LDAP *ld,
LDAPMessage *entry,
BerElement **ptr
);
WINLDAPAPI PCHAR LDAPAPI ldap_first_attributeA(
LDAP *ld,
LDAPMessage *entry,
BerElement **ptr
);
#if LDAP_UNICODE
#define ldap_first_attribute ldap_first_attributeW
#else
WINLDAPAPI PCHAR LDAPAPI ldap_first_attribute(
LDAP *ld,
LDAPMessage *entry,
BerElement **ptr
);
#endif
//
// Return the next attribute... again, the attribute pointer should not be
// freed.
//
WINLDAPAPI PWCHAR LDAPAPI ldap_next_attributeW(
LDAP *ld,
LDAPMessage *entry,
BerElement *ptr
);
WINLDAPAPI PCHAR LDAPAPI ldap_next_attributeA(
LDAP *ld,
LDAPMessage *entry,
BerElement *ptr
);
#if LDAP_UNICODE
#define ldap_next_attribute ldap_next_attributeW
#else
WINLDAPAPI PCHAR LDAPAPI ldap_next_attribute(
LDAP *ld,
LDAPMessage *entry,
BerElement *ptr
);
#endif
//
// Get a given attribute's list of values. This is used during parsing of
// a search response. It returns a list of pointers to values, the list is
// null terminated.
//
// If the values are generic octet strings and not null terminated strings,
// use ldap_get_values_len instead.
//
// The returned value should be freed when your done with it by calling
// ldap_value_free.
//
WINLDAPAPI PWCHAR *LDAPAPI ldap_get_valuesW(
LDAP *ld,
LDAPMessage *entry,
const PWCHAR attr
);
WINLDAPAPI PCHAR *LDAPAPI ldap_get_valuesA(
LDAP *ld,
LDAPMessage *entry,
const PCHAR attr
);
#if LDAP_UNICODE
#define ldap_get_values ldap_get_valuesW
#else
WINLDAPAPI PCHAR *LDAPAPI ldap_get_values(
LDAP *ld,
LDAPMessage *entry,
const PCHAR attr
);
#endif
//
// Get a given attribute's list of values. This is used during parsing of
// a search response. It returns a list of berval structures to values,
// the list is null terminated.
//
// If the values are null terminated strings, it may be easier to process them
// by calling ldap_get_values instead.
//
// The returned value should be freed when your done with it by calling
// ldap_value_free_len.
//
WINLDAPAPI struct berval **LDAPAPI ldap_get_values_lenW (
LDAP *ExternalHandle,
LDAPMessage *Message,
const PWCHAR attr
);
WINLDAPAPI struct berval **LDAPAPI ldap_get_values_lenA (
LDAP *ExternalHandle,
LDAPMessage *Message,
const PCHAR attr
);
#if LDAP_UNICODE
#define ldap_get_values_len ldap_get_values_lenW
#else
WINLDAPAPI struct berval **LDAPAPI ldap_get_values_len (
LDAP *ExternalHandle,
LDAPMessage *Message,
const PCHAR attr
);
#endif
//
// Return the number of values in a list returned by ldap_get_values.
//
WINLDAPAPI ULONG LDAPAPI ldap_count_valuesW( PWCHAR *vals );
WINLDAPAPI ULONG LDAPAPI ldap_count_valuesA( PCHAR *vals );
#if LDAP_UNICODE
#define ldap_count_va
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -