1/** 2 * Windows API header module 3 * 4 * Translated from MinGW Windows headers 5 * 6 * Authors: Stewart Gordon 7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 8 * Source: $(DRUNTIMESRC core/sys/windows/_winber.d) 9 */ 10module core.sys.windows.winber; 11version (Windows): 12@system: 13 14/* Comment from MinGW 15 winber.h - Header file for the Windows LDAP Basic Encoding Rules API 16 17 Written by Filip Navara <xnavara@volny.cz> 18 19 References: 20 The C LDAP Application Program Interface 21 http://www.watersprings.org/pub/id/draft-ietf-ldapext-ldap-c-api-05.txt 22 23 Lightweight Directory Access Protocol Reference 24 http://msdn.microsoft.com/library/en-us/netdir/ldap/ldap_reference.asp 25 26 This library is distributed in the hope that it will be useful, 27 but WITHOUT ANY WARRANTY; without even the implied warranty of 28 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 29 */ 30 31 import core.sys.windows.basetsd; 32 33/* Opaque structure 34 * http://msdn.microsoft.com/library/en-us/ldap/ldap/berelement.asp 35 */ 36struct BerElement; 37 38alias int ber_int_t, ber_slen_t; 39alias uint ber_uint_t, ber_len_t, ber_tag_t; 40 41align(4): 42struct BerValue { 43 ber_len_t bv_len; 44 char* bv_val; 45} 46alias BerValue LDAP_BERVAL, BERVAL; 47alias BerValue* PLDAP_BERVAL, PBERVAL; 48 49enum ber_tag_t 50 LBER_ERROR = -1, 51 LBER_DEFAULT = -1, 52 LBER_USE_DER = 1; 53 54/* FIXME: In MinGW, these are WINBERAPI == DECLSPEC_IMPORT. Linkage 55 * attribute? 56 */ 57extern (C) { 58 BerElement* ber_init(const(BerValue)*); 59 int ber_printf(BerElement*, const(char)*, ...); 60 int ber_flatten(BerElement*, BerValue**); 61 ber_tag_t ber_scanf(BerElement*, const(char)*, ...); 62 ber_tag_t ber_peek_tag(BerElement*, ber_len_t*); 63 ber_tag_t ber_skip_tag(BerElement*, ber_len_t*); 64 ber_tag_t ber_first_element(BerElement*, ber_len_t*, char**); 65 ber_tag_t ber_next_element(BerElement*, ber_len_t*, char*); 66 void ber_bvfree(BerValue*); 67 void ber_bvecfree(BerValue**); 68 void ber_free(BerElement*, int); 69 BerValue* ber_bvdup(BerValue*); 70 BerElement* ber_alloc_t(int); 71} 72