annotate win32/nspapi.d @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
1 /***********************************************************************\
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
2 * nspapi.d *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
3 * *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
4 * Windows API header module *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
5 * *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
6 * Translated from MinGW Windows headers *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
7 * by Stewart Gordon *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
8 * *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
9 * Placed into public domain *
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
10 \***********************************************************************/
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
11 module win32.nspapi;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
12
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
13 private import win32.basetyps, win32.windef;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
14
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
15 // FIXME: check types of constants
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
16
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
17 enum {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
18 NS_ALL = 0,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
19
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
20 NS_SAP,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
21 NS_NDS,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
22 NS_PEER_BROWSE,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
23
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
24 NS_TCPIP_LOCAL = 10,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
25 NS_TCPIP_HOSTS,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
26 NS_DNS,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
27 NS_NETBT,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
28 NS_WINS,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
29
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
30 NS_NBP = 20,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
31
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
32 NS_MS = 30,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
33 NS_STDA,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
34 NS_NTDS,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
35
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
36 NS_X500 = 40,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
37 NS_NIS,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
38 NS_NISPLUS,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
39
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
40 NS_WRQ = 50
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
41 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
42
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
43 enum {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
44 SERVICE_REGISTER = 1,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
45 SERVICE_DEREGISTER = 2,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
46 SERVICE_FLUSH = 3,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
47 SERVICE_FLAG_HARD = 2
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
48 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
49
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
50 /* MinGW makes the next section conditional on winsock.h or winsock2.h
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
51 * being included. But that doesn't translate well into D.
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
52 */
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
53 version (Win32_Winsock1) {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
54 import win32.winsock;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
55 } else {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
56 import win32.winsock2;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
57 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
58
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
59 struct SOCKET_ADDRESS {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
60 LPSOCKADDR lpSockaddr;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
61 INT iSockaddrLength;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
62 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
63 alias SOCKET_ADDRESS* PSOCKET_ADDRESS, LPSOCKET_ADDRESS;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
64
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
65 struct CSADDR_INFO {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
66 SOCKET_ADDRESS LocalAddr;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
67 SOCKET_ADDRESS RemoteAddr;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
68 INT iSocketType;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
69 INT iProtocol;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
70 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
71 alias CSADDR_INFO* PCSADDR_INFO, LPCSADDR_INFO;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
72
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
73 struct BLOB {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
74 ULONG cbSize;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
75 BYTE* pBlobData;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
76 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
77 alias BLOB* PBLOB, LPBLOB;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
78
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
79 struct SERVICE_ADDRESS {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
80 DWORD dwAddressType;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
81 DWORD dwAddressFlags;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
82 DWORD dwAddressLength;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
83 DWORD dwPrincipalLength;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
84 BYTE* lpAddress;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
85 BYTE* lpPrincipal;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
86 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
87
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
88 struct SERVICE_ADDRESSES {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
89 DWORD dwAddressCount;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
90 SERVICE_ADDRESS _Addresses;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
91
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
92 SERVICE_ADDRESS* Addresses() { return &_Addresses; }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
93 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
94 alias SERVICE_ADDRESSES* PSERVICE_ADDRESSES, LPSERVICE_ADDRESSES;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
95
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
96 struct SERVICE_INFOA {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
97 LPGUID lpServiceType;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
98 LPSTR lpServiceName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
99 LPSTR lpComment;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
100 LPSTR lpLocale;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
101 DWORD dwDisplayHint;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
102 DWORD dwVersion;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
103 DWORD dwTime;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
104 LPSTR lpMachineName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
105 LPSERVICE_ADDRESSES lpServiceAddress;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
106 BLOB ServiceSpecificInfo;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
107 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
108 alias SERVICE_INFOA* LPSERVICE_INFOA;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
109
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
110 struct SERVICE_INFOW {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
111 LPGUID lpServiceType;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
112 LPWSTR lpServiceName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
113 LPWSTR lpComment;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
114 LPWSTR lpLocale;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
115 DWORD dwDisplayHint;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
116 DWORD dwVersion;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
117 DWORD dwTime;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
118 LPWSTR lpMachineName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
119 LPSERVICE_ADDRESSES lpServiceAddress;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
120 BLOB ServiceSpecificInfo;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
121 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
122 alias SERVICE_INFOW* LPSERVICE_INFOW;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
123
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
124 alias void* LPSERVICE_ASYNC_INFO;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
125
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
126 extern (Windows) {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
127 INT SetServiceA(DWORD, DWORD, DWORD, LPSERVICE_INFOA,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
128 LPSERVICE_ASYNC_INFO, LPDWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
129 INT SetServiceW(DWORD, DWORD, DWORD, LPSERVICE_INFOW,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
130 LPSERVICE_ASYNC_INFO, LPDWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
131 INT GetAddressByNameA(DWORD, LPGUID, LPSTR, LPINT, DWORD,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
132 LPSERVICE_ASYNC_INFO, LPVOID, LPDWORD, LPSTR, LPDWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
133 INT GetAddressByNameW(DWORD, LPGUID, LPWSTR, LPINT, DWORD,
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
134 LPSERVICE_ASYNC_INFO, LPVOID, LPDWORD, LPWSTR, LPDWORD);
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
135 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
136
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
137 version (Unicode) {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
138 alias SERVICE_INFOW SERVICE_INFO;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
139 alias SetServiceW SetService;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
140 alias GetAddressByNameW GetAddressByName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
141 } else {
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
142 alias SERVICE_INFOA SERVICE_INFO;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
143 alias SetServiceA SetService;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
144 alias GetAddressByNameA GetAddressByName;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
145 }
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
146
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
147 alias SERVICE_INFO _SERVICE_INFO;
4a9dcbd9e54f -files of 0.13 beta
marton@basel.hu
parents:
diff changeset
148 alias SERVICE_INFO* LPSERVICE_INFO;