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