tree-object-size: use size_for_offset in more cases
[official-gcc.git] / libphobos / libdruntime / core / sys / windows / winnetwk.d
blob9bf2e64614a12ece59a77b4567a0c834ff3fa701
1 /**
2 * Windows API header module
4 * Translated from MinGW Windows headers
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/_winnetwk.d)
9 */
10 module core.sys.windows.winnetwk;
11 version (Windows):
13 version (ANSI) {} else version = Unicode;
14 pragma(lib, "mpr");
16 import core.sys.windows.winbase, core.sys.windows.winerror, core.sys.windows.winnt;
18 enum : DWORD {
19 WNNC_NET_MSNET = 0x00010000,
20 WNNC_NET_LANMAN = 0x00020000,
21 WNNC_NET_NETWARE = 0x00030000,
22 WNNC_NET_VINES = 0x00040000,
23 WNNC_NET_10NET = 0x00050000,
24 WNNC_NET_LOCUS = 0x00060000,
25 WNNC_NET_SUN_PC_NFS = 0x00070000,
26 WNNC_NET_LANSTEP = 0x00080000,
27 WNNC_NET_9TILES = 0x00090000,
28 WNNC_NET_LANTASTIC = 0x000A0000,
29 WNNC_NET_AS400 = 0x000B0000,
30 WNNC_NET_FTP_NFS = 0x000C0000,
31 WNNC_NET_PATHWORKS = 0x000D0000,
32 WNNC_NET_LIFENET = 0x000E0000,
33 WNNC_NET_POWERLAN = 0x000F0000,
34 WNNC_NET_BWNFS = 0x00100000,
35 WNNC_NET_COGENT = 0x00110000,
36 WNNC_NET_FARALLON = 0x00120000,
37 WNNC_NET_APPLETALK = 0x00130000,
38 WNNC_NET_INTERGRAPH = 0x00140000,
39 WNNC_NET_SYMFONET = 0x00150000,
40 WNNC_NET_CLEARCASE = 0x00160000,
41 WNNC_NET_FRONTIER = 0x00170000,
42 WNNC_NET_BMC = 0x00180000,
43 WNNC_NET_DCE = 0x00190000,
44 WNNC_NET_AVID = 0x001A0000,
45 WNNC_NET_DOCUSPACE = 0x001B0000,
46 WNNC_NET_MANGOSOFT = 0x001C0000,
47 WNNC_NET_SERNET = 0x001D0000,
48 WNNC_NET_DECORB = 0x00200000,
49 WNNC_NET_PROTSTOR = 0x00210000,
50 WNNC_NET_FJ_REDIR = 0x00220000,
51 WNNC_NET_DISTINCT = 0x00230000,
52 WNNC_NET_TWINS = 0x00240000,
53 WNNC_NET_RDR2SAMPLE = 0x00250000,
54 WNNC_NET_CSC = 0x00260000,
55 WNNC_NET_3IN1 = 0x00270000,
56 WNNC_NET_EXTENDNET = 0x00290000,
57 WNNC_NET_OBJECT_DIRE = 0x00300000,
58 WNNC_NET_MASFAX = 0x00310000,
59 WNNC_NET_HOB_NFS = 0x00320000,
60 WNNC_NET_SHIVA = 0x00330000,
61 WNNC_NET_IBMAL = 0x00340000,
62 WNNC_CRED_MANAGER = 0xFFFF0000
65 enum : DWORD {
66 RESOURCE_CONNECTED = 1,
67 RESOURCE_GLOBALNET = 2,
68 RESOURCE_REMEMBERED = 3,
69 RESOURCE_RECENT = 4,
70 RESOURCE_CONTEXT = 5
73 enum DWORD
74 RESOURCETYPE_ANY = 0,
75 RESOURCETYPE_DISK = 1,
76 RESOURCETYPE_PRINT = 2,
77 RESOURCETYPE_RESERVED = 8,
78 RESOURCETYPE_UNKNOWN = 0xFFFFFFFF;
80 enum DWORD
81 RESOURCEUSAGE_CONNECTABLE = 0x00000001,
82 RESOURCEUSAGE_CONTAINER = 0x00000002,
83 RESOURCEUSAGE_NOLOCALDEVICE = 0x00000004,
84 RESOURCEUSAGE_SIBLING = 0x00000008,
85 RESOURCEUSAGE_ATTACHED = 0x00000010,
86 RESOURCEUSAGE_ALL = (RESOURCEUSAGE_CONNECTABLE
87 | RESOURCEUSAGE_CONTAINER
88 | RESOURCEUSAGE_ATTACHED),
89 RESOURCEUSAGE_RESERVED = 0x80000000;
91 enum : DWORD {
92 RESOURCEDISPLAYTYPE_GENERIC,
93 RESOURCEDISPLAYTYPE_DOMAIN,
94 RESOURCEDISPLAYTYPE_SERVER,
95 RESOURCEDISPLAYTYPE_SHARE,
96 RESOURCEDISPLAYTYPE_FILE,
97 RESOURCEDISPLAYTYPE_GROUP,
98 RESOURCEDISPLAYTYPE_NETWORK,
99 RESOURCEDISPLAYTYPE_ROOT,
100 RESOURCEDISPLAYTYPE_SHAREADMIN,
101 RESOURCEDISPLAYTYPE_DIRECTORY,
102 RESOURCEDISPLAYTYPE_TREE // = 10
105 enum NETPROPERTY_PERSISTENT = 1;
107 enum DWORD
108 CONNECT_UPDATE_PROFILE = 1,
109 CONNECT_UPDATE_RECENT = 2,
110 CONNECT_TEMPORARY = 4,
111 CONNECT_INTERACTIVE = 8,
112 CONNECT_PROMPT = 16,
113 CONNECT_NEED_DRIVE = 32,
114 CONNECT_REFCOUNT = 64,
115 CONNECT_REDIRECT = 128,
116 CONNECT_LOCALDRIVE = 256,
117 CONNECT_CURRENT_MEDIA = 512;
119 enum DWORD
120 CONNDLG_RO_PATH = 1,
121 CONNDLG_CONN_POINT = 2,
122 CONNDLG_USE_MRU = 4,
123 CONNDLG_HIDE_BOX = 8,
124 CONNDLG_PERSIST = 16,
125 CONNDLG_NOT_PERSIST = 32;
127 enum DWORD
128 DISC_UPDATE_PROFILE = 1,
129 DISC_NO_FORCE = 64;
131 enum DWORD
132 WNFMT_MULTILINE = 1,
133 WNFMT_ABBREVIATED = 2,
134 WNFMT_INENUM = 16,
135 WNFMT_CONNECTION = 32;
137 enum : DWORD {
138 WN_SUCCESS = NO_ERROR,
139 WN_NO_ERROR = NO_ERROR,
140 WN_NOT_SUPPORTED = ERROR_NOT_SUPPORTED,
141 WN_CANCEL = ERROR_CANCELLED,
142 WN_RETRY = ERROR_RETRY,
143 WN_NET_ERROR = ERROR_UNEXP_NET_ERR,
144 WN_MORE_DATA = ERROR_MORE_DATA,
145 WN_BAD_POINTER = ERROR_INVALID_ADDRESS,
146 WN_BAD_VALUE = ERROR_INVALID_PARAMETER,
147 WN_BAD_USER = ERROR_BAD_USERNAME,
148 WN_BAD_PASSWORD = ERROR_INVALID_PASSWORD,
149 WN_ACCESS_DENIED = ERROR_ACCESS_DENIED,
150 WN_FUNCTION_BUSY = ERROR_BUSY,
151 WN_WINDOWS_ERROR = ERROR_UNEXP_NET_ERR,
152 WN_OUT_OF_MEMORY = ERROR_NOT_ENOUGH_MEMORY,
153 WN_NO_NETWORK = ERROR_NO_NETWORK,
154 WN_EXTENDED_ERROR = ERROR_EXTENDED_ERROR,
155 WN_BAD_LEVEL = ERROR_INVALID_LEVEL,
156 WN_BAD_HANDLE = ERROR_INVALID_HANDLE,
157 WN_NOT_INITIALIZING = ERROR_ALREADY_INITIALIZED,
158 WN_NO_MORE_DEVICES = ERROR_NO_MORE_DEVICES,
159 WN_NOT_CONNECTED = ERROR_NOT_CONNECTED,
160 WN_OPEN_FILES = ERROR_OPEN_FILES,
161 WN_DEVICE_IN_USE = ERROR_DEVICE_IN_USE,
162 WN_BAD_NETNAME = ERROR_BAD_NET_NAME,
163 WN_BAD_LOCALNAME = ERROR_BAD_DEVICE,
164 WN_ALREADY_CONNECTED = ERROR_ALREADY_ASSIGNED,
165 WN_DEVICE_ERROR = ERROR_GEN_FAILURE,
166 WN_CONNECTION_CLOSED = ERROR_CONNECTION_UNAVAIL,
167 WN_NO_NET_OR_BAD_PATH = ERROR_NO_NET_OR_BAD_PATH,
168 WN_BAD_PROVIDER = ERROR_BAD_PROVIDER,
169 WN_CANNOT_OPEN_PROFILE = ERROR_CANNOT_OPEN_PROFILE,
170 WN_BAD_PROFILE = ERROR_BAD_PROFILE,
171 WN_BAD_DEV_TYPE = ERROR_BAD_DEV_TYPE,
172 WN_DEVICE_ALREADY_REMEMBERED = ERROR_DEVICE_ALREADY_REMEMBERED,
173 WN_NO_MORE_ENTRIES = ERROR_NO_MORE_ITEMS,
174 WN_NOT_CONTAINER = ERROR_NOT_CONTAINER,
175 WN_NOT_AUTHENTICATED = ERROR_NOT_AUTHENTICATED,
176 WN_NOT_LOGGED_ON = ERROR_NOT_LOGGED_ON,
177 WN_NOT_VALIDATED = ERROR_NO_LOGON_SERVERS
180 enum : DWORD {
181 UNIVERSAL_NAME_INFO_LEVEL = 1,
182 REMOTE_NAME_INFO_LEVEL
185 enum DWORD
186 NETINFO_DLL16 = 1,
187 NETINFO_DISKRED = 4,
188 NETINFO_PRINTERRED = 8;
190 enum DWORD
191 RP_LOGON = 1,
192 RP_INIFILE = 2;
194 enum DWORD PP_DISPLAYERRORS = 1;
196 enum DWORD
197 WNCON_FORNETCARD = 1,
198 WNCON_NOTROUTED = 2,
199 WNCON_SLOWLINK = 4,
200 WNCON_DYNAMIC = 8;
202 struct NETRESOURCEA {
203 DWORD dwScope;
204 DWORD dwType;
205 DWORD dwDisplayType;
206 DWORD dwUsage;
207 LPSTR lpLocalName;
208 LPSTR lpRemoteName;
209 LPSTR lpComment;
210 LPSTR lpProvider;
212 alias NETRESOURCEA* LPNETRESOURCEA;
214 struct NETRESOURCEW {
215 DWORD dwScope;
216 DWORD dwType;
217 DWORD dwDisplayType;
218 DWORD dwUsage;
219 LPWSTR lpLocalName;
220 LPWSTR lpRemoteName;
221 LPWSTR lpComment ;
222 LPWSTR lpProvider;
224 alias NETRESOURCEW* LPNETRESOURCEW;
226 struct CONNECTDLGSTRUCTA {
227 DWORD cbStructure;
228 HWND hwndOwner;
229 LPNETRESOURCEA lpConnRes;
230 DWORD dwFlags;
231 DWORD dwDevNum;
233 alias CONNECTDLGSTRUCTA* LPCONNECTDLGSTRUCTA;
235 struct CONNECTDLGSTRUCTW {
236 DWORD cbStructure;
237 HWND hwndOwner;
238 LPNETRESOURCEW lpConnRes;
239 DWORD dwFlags;
240 DWORD dwDevNum;
242 alias CONNECTDLGSTRUCTW* LPCONNECTDLGSTRUCTW;
244 struct DISCDLGSTRUCTA {
245 DWORD cbStructure;
246 HWND hwndOwner;
247 LPSTR lpLocalName;
248 LPSTR lpRemoteName;
249 DWORD dwFlags;
251 alias DISCDLGSTRUCTA* LPDISCDLGSTRUCTA;
253 struct DISCDLGSTRUCTW {
254 DWORD cbStructure;
255 HWND hwndOwner;
256 LPWSTR lpLocalName;
257 LPWSTR lpRemoteName;
258 DWORD dwFlags;
260 alias DISCDLGSTRUCTW* LPDISCDLGSTRUCTW;
262 struct UNIVERSAL_NAME_INFOA {
263 LPSTR lpUniversalName;
265 alias UNIVERSAL_NAME_INFOA* LPUNIVERSAL_NAME_INFOA;
267 struct UNIVERSAL_NAME_INFOW {
268 LPWSTR lpUniversalName;
270 alias UNIVERSAL_NAME_INFOW* LPUNIVERSAL_NAME_INFOW;
272 struct REMOTE_NAME_INFOA {
273 LPSTR lpUniversalName;
274 LPSTR lpConnectionName;
275 LPSTR lpRemainingPath;
277 alias REMOTE_NAME_INFOA* LPREMOTE_NAME_INFOA;
279 struct REMOTE_NAME_INFOW {
280 LPWSTR lpUniversalName;
281 LPWSTR lpConnectionName;
282 LPWSTR lpRemainingPath;
284 alias REMOTE_NAME_INFOW* LPREMOTE_NAME_INFOW;
286 struct NETINFOSTRUCT {
287 DWORD cbStructure;
288 DWORD dwProviderVersion;
289 DWORD dwStatus;
290 DWORD dwCharacteristics;
291 ULONG_PTR dwHandle;
292 WORD wNetType;
293 DWORD dwPrinters;
294 DWORD dwDrives;
296 alias NETINFOSTRUCT* LPNETINFOSTRUCT;
298 extern (Windows) {
299 alias UINT function(LPCSTR, LPSTR, UINT) PFNGETPROFILEPATHA;
300 alias UINT function(LPCWSTR, LPWSTR, UINT) PFNGETPROFILEPATHW;
301 alias UINT function(LPCSTR, LPCSTR, DWORD) PFNRECONCILEPROFILEA;
302 alias UINT function(LPCWSTR, LPCWSTR, DWORD) PFNRECONCILEPROFILEW;
303 alias BOOL function(HWND, LPCSTR, LPCSTR, LPCSTR, DWORD)
304 PFNPROCESSPOLICIESA;
305 alias BOOL function(HWND, LPCWSTR, LPCWSTR, LPCWSTR, DWORD)
306 PFNPROCESSPOLICIESW;
309 struct NETCONNECTINFOSTRUCT {
310 DWORD cbStructure;
311 DWORD dwFlags;
312 DWORD dwSpeed;
313 DWORD dwDelay;
314 DWORD dwOptDataSize;
316 alias NETCONNECTINFOSTRUCT* LPNETCONNECTINFOSTRUCT;
318 extern (Windows) {
319 DWORD WNetAddConnection2A(LPNETRESOURCEA, LPCSTR, LPCSTR, DWORD);
320 DWORD WNetAddConnection2W(LPNETRESOURCEW, LPCWSTR, LPCWSTR, DWORD);
321 DWORD WNetAddConnection3A(HWND, LPNETRESOURCEA, LPCSTR, LPCSTR, DWORD);
322 DWORD WNetAddConnection3W(HWND, LPNETRESOURCEW, LPCWSTR, LPCWSTR, DWORD);
323 DWORD WNetCancelConnection2A(LPCSTR, DWORD, BOOL);
324 DWORD WNetCancelConnection2W(LPCWSTR, DWORD, BOOL);
325 DWORD WNetGetConnectionA(LPCSTR, LPSTR, PDWORD);
326 DWORD WNetGetConnectionW(LPCWSTR, LPWSTR, PDWORD);
327 DWORD WNetUseConnectionA(HWND, LPNETRESOURCEA, LPCSTR, LPCSTR, DWORD,
328 LPSTR, PDWORD, PDWORD);
329 DWORD WNetUseConnectionW(HWND, LPNETRESOURCEW, LPCWSTR, LPCWSTR, DWORD,
330 LPWSTR, PDWORD, PDWORD);
331 DWORD WNetSetConnectionA(LPCSTR, DWORD, PVOID);
332 DWORD WNetSetConnectionW(LPCWSTR, DWORD, PVOID);
333 DWORD WNetConnectionDialog(HWND, DWORD);
334 DWORD WNetDisconnectDialog(HWND, DWORD);
335 DWORD WNetConnectionDialog1A(LPCONNECTDLGSTRUCTA);
336 DWORD WNetConnectionDialog1W(LPCONNECTDLGSTRUCTW);
337 DWORD WNetDisconnectDialog1A(LPDISCDLGSTRUCTA);
338 DWORD WNetDisconnectDialog1W(LPDISCDLGSTRUCTW);
339 DWORD WNetOpenEnumA(DWORD, DWORD, DWORD, LPNETRESOURCEA, LPHANDLE);
340 DWORD WNetOpenEnumW(DWORD, DWORD, DWORD, LPNETRESOURCEW, LPHANDLE);
341 DWORD WNetEnumResourceA(HANDLE, PDWORD, PVOID, PDWORD);
342 DWORD WNetEnumResourceW(HANDLE, PDWORD, PVOID, PDWORD);
343 DWORD WNetCloseEnum(HANDLE);
344 DWORD WNetGetUniversalNameA(LPCSTR, DWORD, PVOID, PDWORD);
345 DWORD WNetGetUniversalNameW(LPCWSTR, DWORD, PVOID, PDWORD);
346 DWORD WNetGetUserA(LPCSTR, LPSTR, PDWORD);
347 DWORD WNetGetUserW(LPCWSTR, LPWSTR, PDWORD);
348 DWORD WNetGetProviderNameA(DWORD, LPSTR, PDWORD);
349 DWORD WNetGetProviderNameW(DWORD, LPWSTR, PDWORD);
350 DWORD WNetGetNetworkInformationA(LPCSTR, LPNETINFOSTRUCT);
351 DWORD WNetGetNetworkInformationW(LPCWSTR, LPNETINFOSTRUCT);
352 DWORD WNetGetResourceInformationA(LPNETRESOURCEA, LPVOID, LPDWORD,
353 LPSTR*);
354 DWORD WNetGetResourceInformationW(LPNETRESOURCEA, LPVOID, LPDWORD,
355 LPWSTR*);
356 DWORD WNetGetResourceParentA(LPNETRESOURCEA, LPVOID, LPDWORD);
357 DWORD WNetGetResourceParentW(LPNETRESOURCEW, LPVOID, LPDWORD);
358 DWORD WNetGetLastErrorA(PDWORD, LPSTR, DWORD, LPSTR, DWORD);
359 DWORD WNetGetLastErrorW(PDWORD, LPWSTR, DWORD, LPWSTR, DWORD);
360 DWORD MultinetGetConnectionPerformanceA(LPNETRESOURCEA,
361 LPNETCONNECTINFOSTRUCT);
362 DWORD MultinetGetConnectionPerformanceW(LPNETRESOURCEW,
363 LPNETCONNECTINFOSTRUCT);
364 deprecated {
365 DWORD WNetAddConnectionA(LPCSTR, LPCSTR, LPCSTR);
366 DWORD WNetAddConnectionW(LPCWSTR, LPCWSTR, LPCWSTR);
367 DWORD WNetCancelConnectionA(LPCSTR, BOOL);
368 DWORD WNetCancelConnectionW(LPCWSTR, BOOL);
372 version (Unicode) {
373 alias PFNGETPROFILEPATHW PFNGETPROFILEPATH;
374 alias PFNRECONCILEPROFILEW PFNRECONCILEPROFILE;
375 alias PFNPROCESSPOLICIESW PFNPROCESSPOLICIES;
376 alias NETRESOURCEW NETRESOURCE;
377 alias CONNECTDLGSTRUCTW CONNECTDLGSTRUCT;
378 alias DISCDLGSTRUCTW DISCDLGSTRUCT;
379 alias REMOTE_NAME_INFOW REMOTE_NAME_INFO;
380 alias UNIVERSAL_NAME_INFOW UNIVERSAL_NAME_INFO;
381 alias WNetAddConnection2W WNetAddConnection2;
382 alias WNetAddConnection3W WNetAddConnection3;
383 alias WNetCancelConnection2W WNetCancelConnection2;
384 alias WNetGetConnectionW WNetGetConnection;
385 alias WNetUseConnectionW WNetUseConnection;
386 alias WNetSetConnectionW WNetSetConnection;
387 alias WNetConnectionDialog1W WNetConnectionDialog1;
388 alias WNetDisconnectDialog1W WNetDisconnectDialog1;
389 alias WNetOpenEnumW WNetOpenEnum;
390 alias WNetEnumResourceW WNetEnumResource;
391 alias WNetGetUniversalNameW WNetGetUniversalName;
392 alias WNetGetUserW WNetGetUser;
393 alias WNetGetProviderNameW WNetGetProviderName;
394 alias WNetGetNetworkInformationW WNetGetNetworkInformation;
395 alias WNetGetResourceInformationW WNetGetResourceInformation;
396 alias WNetGetResourceParentW WNetGetResourceParent;
397 alias WNetGetLastErrorW WNetGetLastError;
398 alias MultinetGetConnectionPerformanceW MultinetGetConnectionPerformance;
399 deprecated {
400 alias WNetAddConnectionW WNetAddConnection;
401 alias WNetCancelConnectionW WNetCancelConnection;
403 } else {
404 alias PFNGETPROFILEPATHA PFNGETPROFILEPATH;
405 alias PFNRECONCILEPROFILEA PFNRECONCILEPROFILE;
406 alias PFNPROCESSPOLICIESA PFNPROCESSPOLICIES;
407 alias NETRESOURCEA NETRESOURCE;
408 alias CONNECTDLGSTRUCTA CONNECTDLGSTRUCT;
409 alias DISCDLGSTRUCTA DISCDLGSTRUCT;
410 alias REMOTE_NAME_INFOA REMOTE_NAME_INFO;
411 alias UNIVERSAL_NAME_INFOA UNIVERSAL_NAME_INFO;
412 alias WNetAddConnection2A WNetAddConnection2;
413 alias WNetAddConnection3A WNetAddConnection3;
414 alias WNetCancelConnection2A WNetCancelConnection2;
415 alias WNetGetConnectionA WNetGetConnection;
416 alias WNetUseConnectionA WNetUseConnection;
417 alias WNetSetConnectionA WNetSetConnection;
418 alias WNetConnectionDialog1A WNetConnectionDialog1;
419 alias WNetDisconnectDialog1A WNetDisconnectDialog1;
420 alias WNetOpenEnumA WNetOpenEnum;
421 alias WNetEnumResourceA WNetEnumResource;
422 alias WNetGetUniversalNameA WNetGetUniversalName;
423 alias WNetGetUserA WNetGetUser;
424 alias WNetGetProviderNameA WNetGetProviderName;
425 alias WNetGetNetworkInformationA WNetGetNetworkInformation;
426 alias WNetGetResourceInformationA WNetGetResourceInformation;
427 alias WNetGetResourceParentA WNetGetResourceParent;
428 alias WNetGetLastErrorA WNetGetLastError;
429 alias MultinetGetConnectionPerformanceA MultinetGetConnectionPerformance;
430 deprecated {
431 alias WNetAddConnectionA WNetAddConnection;
432 alias WNetCancelConnectionA WNetCancelConnection;
436 alias NETRESOURCE* LPNETRESOURCE;
437 alias CONNECTDLGSTRUCT* LPCONNECTDLGSTRUCT;
438 alias DISCDLGSTRUCT* LPDISCDLGSTRUCT;
439 alias REMOTE_NAME_INFO* LPREMOTE_NAME_INFO;
440 alias UNIVERSAL_NAME_INFO* LPUNIVERSAL_NAME_INFO;