| /** | |
| * Windows API header module | |
| * | |
| * Translated from MinGW Windows headers | |
| * | |
| * Authors: Stewart Gordon | |
| * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) | |
| * Source: $(DRUNTIMESRC core/sys/windows/_winber.d) | |
| */ | |
| module core.sys.windows.winber; | |
| version (Windows): | |
| /* Comment from MinGW | |
| winber.h - Header file for the Windows LDAP Basic Encoding Rules API | |
| Written by Filip Navara <xnavara@volny.cz> | |
| References: | |
| The C LDAP Application Program Interface | |
| http://www.watersprings.org/pub/id/draft-ietf-ldapext-ldap-c-api-05.txt | |
| Lightweight Directory Access Protocol Reference | |
| http://msdn.microsoft.com/library/en-us/netdir/ldap/ldap_reference.asp | |
| This library is distributed in the hope that it will be useful, | |
| but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |
| */ | |
| import core.sys.windows.basetsd; | |
| /* Opaque structure | |
| * http://msdn.microsoft.com/library/en-us/ldap/ldap/berelement.asp | |
| */ | |
| struct BerElement; | |
| alias ber_int_t = int, ber_slen_t = int; | |
| alias ber_uint_t = uint, ber_len_t = uint, ber_tag_t = uint; | |
| align(4): | |
| struct BerValue { | |
| ber_len_t bv_len; | |
| char* bv_val; | |
| } | |
| alias LDAP_BERVAL = BerValue, BERVAL = BerValue; | |
| alias PLDAP_BERVAL = BerValue*, PBERVAL = BerValue*; | |
| enum ber_tag_t | |
| LBER_ERROR = -1, | |
| LBER_DEFAULT = -1, | |
| LBER_USE_DER = 1; | |
| /* FIXME: In MinGW, these are WINBERAPI == DECLSPEC_IMPORT. Linkage | |
| * attribute? | |
| */ | |
| extern (C) { | |
| BerElement* ber_init(const(BerValue)*); | |
| int ber_printf(BerElement*, const(char)*, ...); | |
| int ber_flatten(BerElement*, BerValue**); | |
| ber_tag_t ber_scanf(BerElement*, const(char)*, ...); | |
| ber_tag_t ber_peek_tag(BerElement*, ber_len_t*); | |
| ber_tag_t ber_skip_tag(BerElement*, ber_len_t*); | |
| ber_tag_t ber_first_element(BerElement*, ber_len_t*, char**); | |
| ber_tag_t ber_next_element(BerElement*, ber_len_t*, char*); | |
| void ber_bvfree(BerValue*); | |
| void ber_bvecfree(BerValue**); | |
| void ber_free(BerElement*, int); | |
| BerValue* ber_bvdup(BerValue*); | |
| BerElement* ber_alloc_t(int); | |
| } |