File Annotation

Not logged in
4e2933c620 2015-04-21        kinaba: /***********************************************************************\
4e2933c620 2015-04-21        kinaba: *                                nspapi.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.nspapi;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: private import win32.basetyps, win32.windef;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // FIXME: check types of constants
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	NS_ALL         =  0,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	NS_SAP,
4e2933c620 2015-04-21        kinaba: 	NS_NDS,
4e2933c620 2015-04-21        kinaba: 	NS_PEER_BROWSE,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	NS_TCPIP_LOCAL = 10,
4e2933c620 2015-04-21        kinaba: 	NS_TCPIP_HOSTS,
4e2933c620 2015-04-21        kinaba: 	NS_DNS,
4e2933c620 2015-04-21        kinaba: 	NS_NETBT,
4e2933c620 2015-04-21        kinaba: 	NS_WINS,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	NS_NBP         = 20,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	NS_MS          = 30,
4e2933c620 2015-04-21        kinaba: 	NS_STDA,
4e2933c620 2015-04-21        kinaba: 	NS_NTDS,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	NS_X500        = 40,
4e2933c620 2015-04-21        kinaba: 	NS_NIS,
4e2933c620 2015-04-21        kinaba: 	NS_NISPLUS,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	NS_WRQ         = 50
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	SERVICE_REGISTER   = 1,
4e2933c620 2015-04-21        kinaba: 	SERVICE_DEREGISTER = 2,
4e2933c620 2015-04-21        kinaba: 	SERVICE_FLUSH      = 3,
4e2933c620 2015-04-21        kinaba: 	SERVICE_FLAG_HARD  = 2
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: /*	MinGW makes the next section conditional on winsock.h or winsock2.h
4e2933c620 2015-04-21        kinaba:  *	being included.  But that doesn't translate well into D.
4e2933c620 2015-04-21        kinaba:  */
4e2933c620 2015-04-21        kinaba: version (Win32_Winsock1) {
4e2933c620 2015-04-21        kinaba: 	import win32.winsock;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	import win32.winsock2;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SOCKET_ADDRESS {
4e2933c620 2015-04-21        kinaba: 	LPSOCKADDR lpSockaddr;
4e2933c620 2015-04-21        kinaba: 	INT        iSockaddrLength;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SOCKET_ADDRESS* PSOCKET_ADDRESS, LPSOCKET_ADDRESS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct CSADDR_INFO {
4e2933c620 2015-04-21        kinaba: 	SOCKET_ADDRESS LocalAddr;
4e2933c620 2015-04-21        kinaba: 	SOCKET_ADDRESS RemoteAddr;
4e2933c620 2015-04-21        kinaba: 	INT            iSocketType;
4e2933c620 2015-04-21        kinaba: 	INT            iProtocol;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias CSADDR_INFO* PCSADDR_INFO, LPCSADDR_INFO;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct BLOB {
4e2933c620 2015-04-21        kinaba: 	ULONG cbSize;
4e2933c620 2015-04-21        kinaba: 	BYTE* pBlobData;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias BLOB* PBLOB, LPBLOB;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SERVICE_ADDRESS {
4e2933c620 2015-04-21        kinaba: 	DWORD dwAddressType;
4e2933c620 2015-04-21        kinaba: 	DWORD dwAddressFlags;
4e2933c620 2015-04-21        kinaba: 	DWORD dwAddressLength;
4e2933c620 2015-04-21        kinaba: 	DWORD dwPrincipalLength;
4e2933c620 2015-04-21        kinaba: 	BYTE* lpAddress;
4e2933c620 2015-04-21        kinaba: 	BYTE* lpPrincipal;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SERVICE_ADDRESSES {
4e2933c620 2015-04-21        kinaba: 	DWORD           dwAddressCount;
4e2933c620 2015-04-21        kinaba: 	SERVICE_ADDRESS _Addresses;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SERVICE_ADDRESS* Addresses() { return &_Addresses; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SERVICE_ADDRESSES* PSERVICE_ADDRESSES, LPSERVICE_ADDRESSES;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SERVICE_INFOA {
4e2933c620 2015-04-21        kinaba: 	LPGUID lpServiceType;
4e2933c620 2015-04-21        kinaba: 	LPSTR  lpServiceName;
4e2933c620 2015-04-21        kinaba: 	LPSTR  lpComment;
4e2933c620 2015-04-21        kinaba: 	LPSTR  lpLocale;
4e2933c620 2015-04-21        kinaba: 	DWORD  dwDisplayHint;
4e2933c620 2015-04-21        kinaba: 	DWORD  dwVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD  dwTime;
4e2933c620 2015-04-21        kinaba: 	LPSTR  lpMachineName;
4e2933c620 2015-04-21        kinaba: 	LPSERVICE_ADDRESSES lpServiceAddress;
4e2933c620 2015-04-21        kinaba: 	BLOB   ServiceSpecificInfo;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SERVICE_INFOA* LPSERVICE_INFOA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SERVICE_INFOW {
4e2933c620 2015-04-21        kinaba: 	LPGUID lpServiceType;
4e2933c620 2015-04-21        kinaba: 	LPWSTR lpServiceName;
4e2933c620 2015-04-21        kinaba: 	LPWSTR lpComment;
4e2933c620 2015-04-21        kinaba: 	LPWSTR lpLocale;
4e2933c620 2015-04-21        kinaba: 	DWORD  dwDisplayHint;
4e2933c620 2015-04-21        kinaba: 	DWORD  dwVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD  dwTime;
4e2933c620 2015-04-21        kinaba: 	LPWSTR lpMachineName;
4e2933c620 2015-04-21        kinaba: 	LPSERVICE_ADDRESSES lpServiceAddress;
4e2933c620 2015-04-21        kinaba: 	BLOB   ServiceSpecificInfo;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SERVICE_INFOW* LPSERVICE_INFOW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias void* LPSERVICE_ASYNC_INFO;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: extern (Windows) {
4e2933c620 2015-04-21        kinaba: 	INT SetServiceA(DWORD, DWORD, DWORD, LPSERVICE_INFOA,
4e2933c620 2015-04-21        kinaba: 	  LPSERVICE_ASYNC_INFO, LPDWORD);
4e2933c620 2015-04-21        kinaba: 	INT SetServiceW(DWORD, DWORD, DWORD, LPSERVICE_INFOW,
4e2933c620 2015-04-21        kinaba: 	  LPSERVICE_ASYNC_INFO, LPDWORD);
4e2933c620 2015-04-21        kinaba: 	INT GetAddressByNameA(DWORD, LPGUID, LPSTR, LPINT, DWORD,
4e2933c620 2015-04-21        kinaba: 	  LPSERVICE_ASYNC_INFO, LPVOID, LPDWORD, LPSTR, LPDWORD);
4e2933c620 2015-04-21        kinaba: 	INT GetAddressByNameW(DWORD, LPGUID, LPWSTR, LPINT, DWORD,
4e2933c620 2015-04-21        kinaba: 	  LPSERVICE_ASYNC_INFO, LPVOID, LPDWORD, LPWSTR, LPDWORD);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version (Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias SERVICE_INFOW SERVICE_INFO;
4e2933c620 2015-04-21        kinaba: 	alias SetServiceW SetService;
4e2933c620 2015-04-21        kinaba: 	alias GetAddressByNameW GetAddressByName;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias SERVICE_INFOA SERVICE_INFO;
4e2933c620 2015-04-21        kinaba: 	alias SetServiceA SetService;
4e2933c620 2015-04-21        kinaba: 	alias GetAddressByNameA GetAddressByName;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias SERVICE_INFO _SERVICE_INFO;
4e2933c620 2015-04-21        kinaba: alias SERVICE_INFO* LPSERVICE_INFO;