OSDN Git Service

* NEWS: Add and adjust release notes for 4.0.
[mingw/mingw-org-wsl.git] / include / winnetwk.h
1 /**
2  * @file winnetwk.h
3  * Copyright 2012, 2013 MinGW.org project
4  *
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:
11  * 
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
14  * Software.
15  * 
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.
23  */
24 #ifndef _WINNETWK_H
25 #define _WINNETWK_H
26 #pragma GCC system_header
27 #include <_mingw.h>
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
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
77
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
174 #define RP_LOGON 1
175 #define RP_INIFILE 2
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
181
182 #ifndef RC_INVOKED
183 typedef struct _NETRESOURCEA {
184         DWORD dwScope;
185         DWORD dwType;
186         DWORD dwDisplayType;
187         DWORD dwUsage;
188         LPSTR lpLocalName;
189         LPSTR lpRemoteName;
190         LPSTR lpComment ;
191         LPSTR lpProvider;
192 }NETRESOURCEA,*LPNETRESOURCEA;
193 typedef struct _NETRESOURCEW {
194         DWORD dwScope;
195         DWORD dwType;
196         DWORD dwDisplayType;
197         DWORD dwUsage;
198         LPWSTR lpLocalName;
199         LPWSTR lpRemoteName;
200         LPWSTR lpComment ;
201         LPWSTR lpProvider;
202 }NETRESOURCEW,*LPNETRESOURCEW;
203 typedef struct _CONNECTDLGSTRUCTA{
204         DWORD cbStructure;
205         HWND hwndOwner;
206         LPNETRESOURCEA lpConnRes;
207         DWORD dwFlags;
208         DWORD dwDevNum;
209 } CONNECTDLGSTRUCTA,*LPCONNECTDLGSTRUCTA;
210 typedef struct _CONNECTDLGSTRUCTW{
211         DWORD cbStructure;
212         HWND hwndOwner;
213         LPNETRESOURCEW lpConnRes;
214         DWORD dwFlags;
215         DWORD dwDevNum;
216 } CONNECTDLGSTRUCTW,*LPCONNECTDLGSTRUCTW;
217 typedef struct _DISCDLGSTRUCTA{
218         DWORD cbStructure;
219         HWND hwndOwner;
220         LPSTR lpLocalName;
221         LPSTR lpRemoteName;
222         DWORD dwFlags;
223 } DISCDLGSTRUCTA,*LPDISCDLGSTRUCTA;
224 typedef struct _DISCDLGSTRUCTW{
225         DWORD cbStructure;
226         HWND hwndOwner;
227         LPWSTR lpLocalName;
228         LPWSTR lpRemoteName;
229         DWORD dwFlags;
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{
244         DWORD cbStructure;
245         DWORD dwProviderVersion;
246         DWORD dwStatus;
247         DWORD dwCharacteristics;
248         DWORD dwHandle;
249         WORD wNetType;
250         DWORD dwPrinters;
251         DWORD dwDrives;
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{
260         DWORD cbStructure;
261         DWORD dwFlags;
262         DWORD dwSpeed;
263         DWORD dwDelay;
264         DWORD dwOptDataSize;
265 } NETCONNECTINFOSTRUCT,*LPNETCONNECTINFOSTRUCT;
266
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);
310
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 */
340
341 #ifdef __cplusplus
342 }
343 #endif
344
345 #endif