1 /***********************************************************************\ 2 * winber.d * 3 * * 4 * Windows API header module * 5 * * 6 * Translated from MinGW Windows headers * 7 * by Stewart Gordon * 8 * * 9 * Placed into public domain * 10 \***********************************************************************/ 11 module win32.winber; 12 version(Windows): 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 win32.basetsd; 32 33 /* Opaque structure 34 * http://msdn.microsoft.com/library/en-us/ldap/ldap/berelement.asp 35 */ 36 struct BerElement; 37 38 alias int ber_int_t, ber_slen_t; 39 alias uint ber_uint_t, ber_len_t, ber_tag_t; 40 41 align(4): 42 struct BerValue { 43 ber_len_t bv_len; 44 char* bv_val; 45 } 46 alias BerValue LDAP_BERVAL, BERVAL; 47 alias BerValue* PLDAP_BERVAL, PBERVAL; 48 49 const 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 */ 57 extern (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 }