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