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