3 * Copyright 2012, 2013 MinGW.org project
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
26 #pragma GCC system_header
33 #define WNNC_NET_MSNET 0x00010000
34 #define WNNC_NET_LANMAN 0x00020000
35 #define WNNC_NET_NETWARE 0x00030000
36 #define WNNC_NET_VINES 0x00040000
37 #define WNNC_NET_10NET 0x00050000
38 #define WNNC_NET_LOCUS 0x00060000
39 #define WNNC_NET_SUN_PC_NFS 0x00070000
40 #define WNNC_NET_LANSTEP 0x00080000
41 #define WNNC_NET_9TILES 0x00090000
42 #define WNNC_NET_LANTASTIC 0x000A0000
43 #define WNNC_NET_AS400 0x000B0000
44 #define WNNC_NET_FTP_NFS 0x000C0000
45 #define WNNC_NET_PATHWORKS 0x000D0000
46 #define WNNC_NET_LIFENET 0x000E0000
47 #define WNNC_NET_POWERLAN 0x000F0000
48 #define WNNC_NET_BWNFS 0x00100000
49 #define WNNC_NET_COGENT 0x00110000
50 #define WNNC_NET_FARALLON 0x00120000
51 #define WNNC_NET_APPLETALK 0x00130000
52 #define WNNC_NET_INTERGRAPH 0x00140000
53 #define WNNC_NET_SYMFONET 0x00150000
54 #define WNNC_NET_CLEARCASE 0x00160000
55 #define WNNC_NET_FRONTIER 0x00170000
56 #define WNNC_NET_BMC 0x00180000
57 #define WNNC_NET_DCE 0x00190000
58 #define WNNC_NET_AVID 0x001A0000
59 #define WNNC_NET_DOCUSPACE 0x001B0000
60 #define WNNC_NET_MANGOSOFT 0x001C0000
61 #define WNNC_NET_SERNET 0x001D0000
62 #define WNNC_NET_DECORB 0x00200000
63 #define WNNC_NET_PROTSTOR 0x00210000
64 #define WNNC_NET_FJ_REDIR 0x00220000
65 #define WNNC_NET_DISTINCT 0x00230000
66 #define WNNC_NET_TWINS 0x00240000
67 #define WNNC_NET_RDR2SAMPLE 0x00250000
68 #define WNNC_NET_CSC 0x00260000
69 #define WNNC_NET_3IN1 0x00270000
70 #define WNNC_NET_EXTENDNET 0x00290000
71 #define WNNC_NET_OBJECT_DIRE 0x00300000
72 #define WNNC_NET_MASFAX 0x00310000
73 #define WNNC_NET_HOB_NFS 0x00320000
74 #define WNNC_NET_SHIVA 0x00330000
75 #define WNNC_NET_IBMAL 0x00340000
76 #define WNNC_CRED_MANAGER 0xFFFF0000
78 #define RESOURCE_CONNECTED 1
79 #define RESOURCE_GLOBALNET 2
80 #define RESOURCE_REMEMBERED 3
81 #define RESOURCE_RECENT 4
82 #define RESOURCE_CONTEXT 5
83 #define RESOURCETYPE_ANY 0
84 #define RESOURCETYPE_DISK 1
85 #define RESOURCETYPE_PRINT 2
86 #define RESOURCETYPE_RESERVED 8
87 #define RESOURCETYPE_UNKNOWN 0xFFFFFFFF
88 #define RESOURCEUSAGE_CONNECTABLE 0x00000001
89 #define RESOURCEUSAGE_CONTAINER 0x00000002
90 #define RESOURCEUSAGE_NOLOCALDEVICE 0x00000004
91 #define RESOURCEUSAGE_SIBLING 0x00000008
92 #define RESOURCEUSAGE_ATTACHED 0x00000010
93 #define RESOURCEUSAGE_ALL (RESOURCEUSAGE_CONNECTABLE | RESOURCEUSAGE_CONTAINER | RESOURCEUSAGE_ATTACHED)
94 #define RESOURCEUSAGE_RESERVED 0x80000000
95 #define RESOURCEDISPLAYTYPE_GENERIC 0
96 #define RESOURCEDISPLAYTYPE_DOMAIN 1
97 #define RESOURCEDISPLAYTYPE_SERVER 2
98 #define RESOURCEDISPLAYTYPE_SHARE 3
99 #define RESOURCEDISPLAYTYPE_FILE 4
100 #define RESOURCEDISPLAYTYPE_GROUP 5
101 #define RESOURCEDISPLAYTYPE_NETWORK 6
102 #define RESOURCEDISPLAYTYPE_ROOT 7
103 #define RESOURCEDISPLAYTYPE_SHAREADMIN 8
104 #define RESOURCEDISPLAYTYPE_DIRECTORY 9
105 #define RESOURCEDISPLAYTYPE_TREE 10
106 #define NETPROPERTY_PERSISTENT 1
107 #define CONNECT_UPDATE_PROFILE 1
108 #define CONNECT_UPDATE_RECENT 2
109 #define CONNECT_TEMPORARY 4
110 #define CONNECT_INTERACTIVE 8
111 #define CONNECT_PROMPT 16
112 #define CONNECT_NEED_DRIVE 32
113 #define CONNECT_REFCOUNT 64
114 #define CONNECT_REDIRECT 128
115 #define CONNECT_LOCALDRIVE 256
116 #define CONNECT_CURRENT_MEDIA 512
117 #define CONNDLG_RO_PATH 1
118 #define CONNDLG_CONN_POINT 2
119 #define CONNDLG_USE_MRU 4
120 #define CONNDLG_HIDE_BOX 8
121 #define CONNDLG_PERSIST 16
122 #define CONNDLG_NOT_PERSIST 32
123 #define DISC_UPDATE_PROFILE 1
124 #define DISC_NO_FORCE 64
125 #define WNFMT_MULTILINE 1
126 #define WNFMT_ABBREVIATED 2
127 #define WNFMT_INENUM 16
128 #define WNFMT_CONNECTION 32
129 #define WN_SUCCESS NO_ERROR
130 #define WN_NO_ERROR NO_ERROR
131 #define WN_NOT_SUPPORTED ERROR_NOT_SUPPORTED
132 #define WN_CANCEL ERROR_CANCELLED
133 #define WN_RETRY ERROR_RETRY
134 #define WN_NET_ERROR ERROR_UNEXP_NET_ERR
135 #define WN_MORE_DATA ERROR_MORE_DATA
136 #define WN_BAD_POINTER ERROR_INVALID_ADDRESS
137 #define WN_BAD_VALUE ERROR_INVALID_PARAMETER
138 #define WN_BAD_USER ERROR_BAD_USERNAME
139 #define WN_BAD_PASSWORD ERROR_INVALID_PASSWORD
140 #define WN_ACCESS_DENIED ERROR_ACCESS_DENIED
141 #define WN_FUNCTION_BUSY ERROR_BUSY
142 #define WN_WINDOWS_ERROR ERROR_UNEXP_NET_ERR
143 #define WN_OUT_OF_MEMORY ERROR_NOT_ENOUGH_MEMORY
144 #define WN_NO_NETWORK ERROR_NO_NETWORK
145 #define WN_EXTENDED_ERROR ERROR_EXTENDED_ERROR
146 #define WN_BAD_LEVEL ERROR_INVALID_LEVEL
147 #define WN_BAD_HANDLE ERROR_INVALID_HANDLE
148 #define WN_NOT_INITIALIZING ERROR_ALREADY_INITIALIZED
149 #define WN_NO_MORE_DEVICES ERROR_NO_MORE_DEVICES
150 #define WN_NOT_CONNECTED ERROR_NOT_CONNECTED
151 #define WN_OPEN_FILES ERROR_OPEN_FILES
152 #define WN_DEVICE_IN_USE ERROR_DEVICE_IN_USE
153 #define WN_BAD_NETNAME ERROR_BAD_NET_NAME
154 #define WN_BAD_LOCALNAME ERROR_BAD_DEVICE
155 #define WN_ALREADY_CONNECTED ERROR_ALREADY_ASSIGNED
156 #define WN_DEVICE_ERROR ERROR_GEN_FAILURE
157 #define WN_CONNECTION_CLOSED ERROR_CONNECTION_UNAVAIL
158 #define WN_NO_NET_OR_BAD_PATH ERROR_NO_NET_OR_BAD_PATH
159 #define WN_BAD_PROVIDER ERROR_BAD_PROVIDER
160 #define WN_CANNOT_OPEN_PROFILE ERROR_CANNOT_OPEN_PROFILE
161 #define WN_BAD_PROFILE ERROR_BAD_PROFILE
162 #define WN_BAD_DEV_TYPE ERROR_BAD_DEV_TYPE
163 #define WN_DEVICE_ALREADY_REMEMBERED ERROR_DEVICE_ALREADY_REMEMBERED
164 #define WN_NO_MORE_ENTRIES ERROR_NO_MORE_ITEMS
165 #define WN_NOT_CONTAINER ERROR_NOT_CONTAINER
166 #define WN_NOT_AUTHENTICATED ERROR_NOT_AUTHENTICATED
167 #define WN_NOT_LOGGED_ON ERROR_NOT_LOGGED_ON
168 #define WN_NOT_VALIDATED ERROR_NO_LOGON_SERVERS
169 #define UNIVERSAL_NAME_INFO_LEVEL 1
170 #define REMOTE_NAME_INFO_LEVEL 2
171 #define NETINFO_DLL16 1
172 #define NETINFO_DISKRED 4
173 #define NETINFO_PRINTERRED 8
176 #define PP_DISPLAYERRORS 1
177 #define WNCON_FORNETCARD 1
178 #define WNCON_NOTROUTED 2
179 #define WNCON_SLOWLINK 4
180 #define WNCON_DYNAMIC 8
183 typedef struct _NETRESOURCEA {
192 }NETRESOURCEA,*LPNETRESOURCEA;
193 typedef struct _NETRESOURCEW {
202 }NETRESOURCEW,*LPNETRESOURCEW;
203 typedef struct _CONNECTDLGSTRUCTA{
206 LPNETRESOURCEA lpConnRes;
209 } CONNECTDLGSTRUCTA,*LPCONNECTDLGSTRUCTA;
210 typedef struct _CONNECTDLGSTRUCTW{
213 LPNETRESOURCEW lpConnRes;
216 } CONNECTDLGSTRUCTW,*LPCONNECTDLGSTRUCTW;
217 typedef struct _DISCDLGSTRUCTA{
223 } DISCDLGSTRUCTA,*LPDISCDLGSTRUCTA;
224 typedef struct _DISCDLGSTRUCTW{
230 } DISCDLGSTRUCTW,*LPDISCDLGSTRUCTW;
231 typedef struct _UNIVERSAL_NAME_INFOA { LPSTR lpUniversalName; }UNIVERSAL_NAME_INFOA,*LPUNIVERSAL_NAME_INFOA;
232 typedef struct _UNIVERSAL_NAME_INFOW { LPWSTR lpUniversalName; }UNIVERSAL_NAME_INFOW,*LPUNIVERSAL_NAME_INFOW;
233 typedef struct _REMOTE_NAME_INFOA {
234 LPSTR lpUniversalName;
235 LPSTR lpConnectionName;
236 LPSTR lpRemainingPath;
237 }REMOTE_NAME_INFOA,*LPREMOTE_NAME_INFOA;
238 typedef struct _REMOTE_NAME_INFOW {
239 LPWSTR lpUniversalName;
240 LPWSTR lpConnectionName;
241 LPWSTR lpRemainingPath;
242 }REMOTE_NAME_INFOW,*LPREMOTE_NAME_INFOW;
243 typedef struct _NETINFOSTRUCT{
245 DWORD dwProviderVersion;
247 DWORD dwCharacteristics;
252 } NETINFOSTRUCT,*LPNETINFOSTRUCT;
253 typedef UINT(PASCAL *PFNGETPROFILEPATHA)(LPCSTR,LPSTR,UINT);
254 typedef UINT(PASCAL *PFNGETPROFILEPATHW)(LPCWSTR,LPWSTR,UINT);
255 typedef UINT(PASCAL *PFNRECONCILEPROFILEA)(LPCSTR,LPCSTR,DWORD);
256 typedef UINT(PASCAL *PFNRECONCILEPROFILEW)(LPCWSTR,LPCWSTR,DWORD);
257 typedef BOOL(PASCAL *PFNPROCESSPOLICIESA)(HWND,LPCSTR,LPCSTR,LPCSTR,DWORD);
258 typedef BOOL(PASCAL *PFNPROCESSPOLICIESW)(HWND,LPCWSTR,LPCWSTR,LPCWSTR,DWORD);
259 typedef struct _NETCONNECTINFOSTRUCT{
265 } NETCONNECTINFOSTRUCT,*LPNETCONNECTINFOSTRUCT;
267 DWORD APIENTRY WNetAddConnectionA(LPCSTR,LPCSTR,LPCSTR);
268 DWORD APIENTRY WNetAddConnectionW(LPCWSTR,LPCWSTR,LPCWSTR);
269 DWORD APIENTRY WNetAddConnection2A(LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD);
270 DWORD APIENTRY WNetAddConnection2W(LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD);
271 DWORD APIENTRY WNetAddConnection3A(HWND,LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD);
272 DWORD APIENTRY WNetAddConnection3W(HWND,LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD);
273 DWORD APIENTRY WNetCancelConnectionA(LPCSTR,BOOL);
274 DWORD APIENTRY WNetCancelConnectionW(LPCWSTR,BOOL);
275 DWORD APIENTRY WNetCancelConnection2A(LPCSTR,DWORD,BOOL);
276 DWORD APIENTRY WNetCancelConnection2W(LPCWSTR,DWORD,BOOL);
277 DWORD APIENTRY WNetGetConnectionA(LPCSTR,LPSTR,PDWORD);
278 DWORD APIENTRY WNetGetConnectionW(LPCWSTR,LPWSTR,PDWORD);
279 DWORD APIENTRY WNetUseConnectionA(HWND,LPNETRESOURCEA,LPCSTR,LPCSTR,DWORD,LPSTR,PDWORD,PDWORD);
280 DWORD APIENTRY WNetUseConnectionW(HWND,LPNETRESOURCEW,LPCWSTR,LPCWSTR,DWORD,LPWSTR,PDWORD,PDWORD);
281 DWORD APIENTRY WNetSetConnectionA(LPCSTR,DWORD,PVOID);
282 DWORD APIENTRY WNetSetConnectionW(LPCWSTR,DWORD,PVOID);
283 DWORD APIENTRY WNetConnectionDialog(HWND,DWORD);
284 DWORD APIENTRY WNetDisconnectDialog(HWND,DWORD);
285 DWORD APIENTRY WNetConnectionDialog1A(LPCONNECTDLGSTRUCTA);
286 DWORD APIENTRY WNetConnectionDialog1W(LPCONNECTDLGSTRUCTW);
287 DWORD APIENTRY WNetDisconnectDialog1A(LPDISCDLGSTRUCTA);
288 DWORD APIENTRY WNetDisconnectDialog1W(LPDISCDLGSTRUCTW);
289 DWORD APIENTRY WNetOpenEnumA(DWORD,DWORD,DWORD,LPNETRESOURCEA,LPHANDLE);
290 DWORD APIENTRY WNetOpenEnumW(DWORD,DWORD,DWORD,LPNETRESOURCEW,LPHANDLE);
291 DWORD APIENTRY WNetEnumResourceA(HANDLE,PDWORD,PVOID,PDWORD);
292 DWORD APIENTRY WNetEnumResourceW(HANDLE,PDWORD,PVOID,PDWORD);
293 DWORD APIENTRY WNetCloseEnum(HANDLE);
294 DWORD APIENTRY WNetGetUniversalNameA(LPCSTR,DWORD,PVOID,PDWORD);
295 DWORD APIENTRY WNetGetUniversalNameW(LPCWSTR,DWORD,PVOID,PDWORD);
296 DWORD APIENTRY WNetGetUserA(LPCSTR,LPSTR,PDWORD);
297 DWORD APIENTRY WNetGetUserW(LPCWSTR,LPWSTR,PDWORD);
298 DWORD APIENTRY WNetGetProviderNameA(DWORD,LPSTR,PDWORD);
299 DWORD APIENTRY WNetGetProviderNameW(DWORD,LPWSTR,PDWORD);
300 DWORD APIENTRY WNetGetNetworkInformationA(LPCSTR,LPNETINFOSTRUCT);
301 DWORD APIENTRY WNetGetNetworkInformationW(LPCWSTR,LPNETINFOSTRUCT);
302 DWORD APIENTRY WNetGetResourceInformationA(LPNETRESOURCEA,LPVOID,LPDWORD,LPSTR*);
303 DWORD APIENTRY WNetGetResourceInformationW(LPNETRESOURCEW,LPVOID,LPDWORD,LPWSTR*);
304 DWORD APIENTRY WNetGetResourceParentA(LPNETRESOURCEA,LPVOID,LPDWORD);
305 DWORD APIENTRY WNetGetResourceParentW(LPNETRESOURCEW,LPVOID,LPDWORD);
306 DWORD APIENTRY WNetGetLastErrorA(PDWORD,LPSTR,DWORD,LPSTR,DWORD);
307 DWORD APIENTRY WNetGetLastErrorW(PDWORD,LPWSTR,DWORD,LPWSTR,DWORD);
308 DWORD APIENTRY MultinetGetConnectionPerformanceA(LPNETRESOURCEA,LPNETCONNECTINFOSTRUCT);
309 DWORD APIENTRY MultinetGetConnectionPerformanceW(LPNETRESOURCEW,LPNETCONNECTINFOSTRUCT);
311 #define PFNPROCESSPOLICIES __AW(PFNPROCESSPOLICIES)
312 #define PFNRECONCILEPROFILE __AW(PFNRECONCILEPROFILE)
313 #define PFNGETPROFILEPATH __AW(PFNGETPROFILEPATH)
314 typedef __AW(NETRESOURCE) NETRESOURCE,*LPNETRESOURCE;
315 typedef __AW(CONNECTDLGSTRUCT) CONNECTDLGSTRUCT,*LPCONNECTDLGSTRUCT;
316 typedef __AW(DISCDLGSTRUCT) DISCDLGSTRUCT,*LPDISCDLGSTRUCT;
317 typedef __AW(REMOTE_NAME_INFO) REMOTE_NAME_INFO,*LPREMOTE_NAME_INFO;
318 typedef __AW(UNIVERSAL_NAME_INFO) UNIVERSAL_NAME_INFO,*LPUNIVERSAL_NAME_INFO;
319 #define WNetEnumResource __AW(WNetEnumResource)
320 #define WNetOpenEnum __AW(WNetOpenEnum)
321 #define WNetGetResourceInformation __AW(WNetGetResourceInformation)
322 #define WNetGetResourceParent __AW(WNetGetResourceParent)
323 #define WNetGetUniversalName __AW(WNetGetUniversalName)
324 #define WNetSetConnection __AW(WNetSetConnection)
325 #define WNetUseConnection __AW(WNetUseConnection)
326 #define WNetGetConnection __AW(WNetGetConnection)
327 #define WNetCancelConnection2 __AW(WNetCancelConnection2)
328 #define WNetCancelConnection __AW(WNetCancelConnection)
329 #define WNetAddConnection3 __AW(WNetAddConnection3)
330 #define WNetAddConnection2 __AW(WNetAddConnection2)
331 #define WNetAddConnection __AW(WNetAddConnection)
332 #define WNetConnectionDialog1 __AW(WNetConnectionDialog1)
333 #define WNetDisconnectDialog1 __AW(WNetDisconnectDialog1)
334 #define WNetGetNetworkInformation __AW(WNetGetNetworkInformation)
335 #define WNetGetProviderName __AW(WNetGetProviderName)
336 #define WNetGetUser __AW(WNetGetUser)
337 #define MultinetGetConnectionPerformance __AW(MultinetGetConnectionPerformance)
338 #define WNetGetLastError __AW(WNetGetLastError)
339 #endif /* ! RC_INVOKED */