blob: ac15d54dbeaa2b4d6d5a70b6450f6e356dbf8f62 [file] [log] [blame]
Alexandre Julliard819fa8c2000-04-11 20:07:00 +00001#ifndef _WINE_WININET_H_
2#define _WINE_WININET_H_
3
Francois Gouget00628922000-10-19 20:32:18 +00004#ifdef __cplusplus
Alexandre Julliard819fa8c2000-04-11 20:07:00 +00005extern "C" {
6#endif
7
8#define INTERNETAPI
9#define BOOLAPI INTERNETAPI BOOL WINAPI
10
11typedef LPVOID HINTERNET;
12typedef HINTERNET * LPHINTERNET;
13
14typedef WORD INTERNET_PORT;
15typedef INTERNET_PORT * LPINTERNET_PORT;
16
17
18#define INTERNET_INVALID_PORT_NUMBER 0
19
20#define INTERNET_DEFAULT_FTP_PORT 21
21#define INTERNET_DEFAULT_GOPHER_PORT 70
22#define INTERNET_DEFAULT_HTTP_PORT 80
23#define INTERNET_DEFAULT_HTTPS_PORT 443
24#define INTERNET_DEFAULT_SOCKS_PORT 1080
25
26#define INTERNET_MAX_HOST_NAME_LENGTH 256
27#define INTERNET_MAX_USER_NAME_LENGTH 128
28#define INTERNET_MAX_PASSWORD_LENGTH 128
29#define INTERNET_MAX_PORT_NUMBER_LENGTH 5
30#define INTERNET_MAX_PORT_NUMBER_VALUE 65535
31#define INTERNET_MAX_PATH_LENGTH 2048
32#define INTERNET_MAX_SCHEME_LENGTH 32
33#define INTERNET_MAX_URL_LENGTH (INTERNET_MAX_SCHEME_LENGTH + sizeof("://")+ INTERNET_MAX_PATH_LENGTH)
34#define INTERNET_KEEP_ALIVE_UNKNOWN ((DWORD)-1)
35#define INTERNET_KEEP_ALIVE_ENABLED 1
36#define INTERNET_KEEP_ALIVE_DISABLED 0
37#define INTERNET_REQFLAG_FROM_CACHE 0x00000001
38#define INTERNET_REQFLAG_ASYNC 0x00000002
39#define INTERNET_REQFLAG_VIA_PROXY 0x00000004
40#define INTERNET_REQFLAG_NO_HEADERS 0x00000008
41#define INTERNET_REQFLAG_PASSIVE 0x00000010
42#define INTERNET_REQFLAG_CACHE_WRITE_DISABLED 0x00000040
43#define INTERNET_FLAG_RELOAD 0x80000000
44#define INTERNET_FLAG_RAW_DATA 0x40000000
45#define INTERNET_FLAG_EXISTING_CONNECT 0x20000000
46#define INTERNET_FLAG_ASYNC 0x10000000
47#define INTERNET_FLAG_PASSIVE 0x08000000
48#define INTERNET_FLAG_NO_CACHE_WRITE 0x04000000
49#define INTERNET_FLAG_DONT_CACHE INTERNET_FLAG_NO_CACHE_WRITE
50#define INTERNET_FLAG_MAKE_PERSISTENT 0x02000000
51#define INTERNET_FLAG_FROM_CACHE 0x01000000
52#define INTERNET_FLAG_OFFLINE INTERNET_FLAG_FROM_CACHE
53#define INTERNET_FLAG_SECURE 0x00800000
54#define INTERNET_FLAG_KEEP_CONNECTION 0x00400000
55#define INTERNET_FLAG_NO_AUTO_REDIRECT 0x00200000
56#define INTERNET_FLAG_READ_PREFETCH 0x00100000
57#define INTERNET_FLAG_NO_COOKIES 0x00080000
58#define INTERNET_FLAG_NO_AUTH 0x00040000
59#define INTERNET_FLAG_CACHE_IF_NET_FAIL 0x00010000
60#define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP 0x00008000
61#define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS 0x00004000
62#define INTERNET_FLAG_IGNORE_CERT_DATE_INVALID 0x00002000
63#define INTERNET_FLAG_IGNORE_CERT_CN_INVALID 0x00001000
64#define INTERNET_FLAG_RESYNCHRONIZE 0x00000800
65#define INTERNET_FLAG_HYPERLINK 0x00000400
66#define INTERNET_FLAG_NO_UI 0x00000200
67#define INTERNET_FLAG_PRAGMA_NOCACHE 0x00000100
68#define INTERNET_FLAG_CACHE_ASYNC 0x00000080
69#define INTERNET_FLAG_FORMS_SUBMIT 0x00000040
70#define INTERNET_FLAG_NEED_FILE 0x00000010
71#define INTERNET_FLAG_MUST_CACHE_REQUEST INTERNET_FLAG_NEED_FILE
72#define INTERNET_FLAG_TRANSFER_ASCII FTP_TRANSFER_TYPE_ASCII
73#define INTERNET_FLAG_TRANSFER_BINARY FTP_TRANSFER_TYPE_BINARY
74#define SECURITY_INTERNET_MASK (INTERNET_FLAG_IGNORE_CERT_CN_INVALID|\
75INTERNET_FLAG_IGNORE_CERT_DATE_INVALID|\
76INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS|\
77INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP)
78
79#define INTERNET_FLAGS_MASK (INTERNET_FLAG_RELOAD \
80 | INTERNET_FLAG_RAW_DATA \
81 | INTERNET_FLAG_EXISTING_CONNECT \
82 | INTERNET_FLAG_ASYNC \
83 | INTERNET_FLAG_PASSIVE \
84 | INTERNET_FLAG_NO_CACHE_WRITE \
85 | INTERNET_FLAG_MAKE_PERSISTENT \
86 | INTERNET_FLAG_FROM_CACHE \
87 | INTERNET_FLAG_SECURE \
88 | INTERNET_FLAG_KEEP_CONNECTION \
89 | INTERNET_FLAG_NO_AUTO_REDIRECT \
90 | INTERNET_FLAG_READ_PREFETCH \
91 | INTERNET_FLAG_NO_COOKIES \
92 | INTERNET_FLAG_NO_AUTH \
93 | INTERNET_FLAG_CACHE_IF_NET_FAIL \
94 | SECURITY_INTERNET_MASK \
95 | INTERNET_FLAG_RESYNCHRONIZE \
96 | INTERNET_FLAG_HYPERLINK \
97 | INTERNET_FLAG_NO_UI \
98 | INTERNET_FLAG_PRAGMA_NOCACHE \
99 | INTERNET_FLAG_CACHE_ASYNC \
100 | INTERNET_FLAG_FORMS_SUBMIT \
101 | INTERNET_FLAG_NEED_FILE \
102 | INTERNET_FLAG_TRANSFER_BINARY \
103 | INTERNET_FLAG_TRANSFER_ASCII \
104 )
105
106#define INTERNET_ERROR_MASK_INSERT_CDROM 0x1
107
108#define INTERNET_OPTIONS_MASK (~INTERNET_FLAGS_MASK)
109#define WININET_API_FLAG_ASYNC 0x00000001
110#define WININET_API_FLAG_SYNC 0x00000004
111#define WININET_API_FLAG_USE_CONTEXT 0x00000008
112#define INTERNET_NO_CALLBACK 0
113
114typedef enum {
115 INTERNET_SCHEME_PARTIAL = -2,
116 INTERNET_SCHEME_UNKNOWN = -1,
117 INTERNET_SCHEME_DEFAULT = 0,
118 INTERNET_SCHEME_FTP,
119 INTERNET_SCHEME_GOPHER,
120 INTERNET_SCHEME_HTTP,
121 INTERNET_SCHEME_HTTPS,
122 INTERNET_SCHEME_FILE,
123 INTERNET_SCHEME_NEWS,
124 INTERNET_SCHEME_MAILTO,
125 INTERNET_SCHEME_SOCKS,
126 INTERNET_SCHEME_FIRST = INTERNET_SCHEME_FTP,
127 INTERNET_SCHEME_LAST = INTERNET_SCHEME_SOCKS
128} INTERNET_SCHEME,* LPINTERNET_SCHEME;
129
130typedef struct {
131 DWORD dwResult;
132 DWORD dwError;
133} INTERNET_ASYNC_RESULT,* LPINTERNET_ASYNC_RESULT;
134
135typedef struct {
136 DWORD dwAccessType;
137 LPCSTR lpszProxy;
138 LPCSTR lpszProxyBypass;
139} INTERNET_PROXY_INFOA,* LPINTERNET_PROXY_INFOA;
140
141typedef struct {
142 DWORD dwAccessType;
143 LPCWSTR lpszProxy;
144 LPCWSTR lpszProxyBypass;
145} INTERNET_PROXY_INFOW,* LPINTERNET_PROXY_INFOW;
146
147
148DECL_WINELIB_TYPE_AW(INTERNET_PROXY_INFO)
Huw D M Davies008c3882000-04-18 11:53:45 +0000149DECL_WINELIB_TYPE_AW(LPINTERNET_PROXY_INFO)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000150
151typedef struct {
152 DWORD dwMajorVersion;
153 DWORD dwMinorVersion;
154} INTERNET_VERSION_INFO,* LPINTERNET_VERSION_INFO;
155
156typedef struct {
157 DWORD dwMajorVersion;
158 DWORD dwMinorVersion;
159} HTTP_VERSION_INFO,* LPHTTP_VERSION_INFO;
160
161typedef struct {
162 DWORD dwConnectedState;
163 DWORD dwFlags;
164} INTERNET_CONNECTED_INFO,* LPINTERNET_CONNECTED_INFO;
165
166#define ISO_FORCE_DISCONNECTED 0x00000001
167
168typedef struct {
169 DWORD dwStructSize;
170 LPSTR lpszScheme;
171 DWORD dwSchemeLength;
172 INTERNET_SCHEME nScheme;
173 LPSTR lpszHostName;
174 DWORD dwHostNameLength;
175 INTERNET_PORT nPort;
176 LPSTR lpszUserName;
177 DWORD dwUserNameLength;
178 LPSTR lpszPassword;
179 DWORD dwPasswordLength;
180 LPSTR lpszUrlPath;
181 DWORD dwUrlPathLength;
182 LPSTR lpszExtraInfo;
183 DWORD dwExtraInfoLength;
184} URL_COMPONENTSA,* LPURL_COMPONENTSA;
185
186typedef struct {
187 DWORD dwStructSize;
188 LPWSTR lpszScheme;
189 DWORD dwSchemeLength;
190 INTERNET_SCHEME nScheme;
191 LPWSTR lpszHostName;
192 DWORD dwHostNameLength;
193 INTERNET_PORT nPort;
194 LPWSTR lpszUserName;
195 DWORD dwUserNameLength;
196 LPWSTR lpszPassword;
197 DWORD dwPasswordLength;
198 LPWSTR lpszUrlPath;
199 DWORD dwUrlPathLength;
200 LPWSTR lpszExtraInfo;
201 DWORD dwExtraInfoLength;
202} URL_COMPONENTSW,* LPURL_COMPONENTSW;
203
204DECL_WINELIB_TYPE_AW(URL_COMPONENTS)
205DECL_WINELIB_TYPE_AW(LPURL_COMPONENTS)
206
207typedef struct {
208 FILETIME ftExpiry;
209 FILETIME ftStart;
210 LPSTR lpszSubjectInfo;
211 LPSTR lpszIssuerInfo;
212 LPSTR lpszProtocolName;
213 LPSTR lpszSignatureAlgName;
214 LPSTR lpszEncryptionAlgName;
215 DWORD dwKeySize;
216
217} INTERNET_CERTIFICATE_INFOA,* LPINTERNET_CERTIFICATE_INFOA;
218
219typedef struct {
220 FILETIME ftExpiry;
221 FILETIME ftStart;
222 LPWSTR lpszSubjectInfo;
223 LPWSTR lpszIssuerInfo;
224 LPWSTR lpszProtocolName;
225 LPWSTR lpszSignatureAlgName;
226 LPWSTR lpszEncryptionAlgName;
227 DWORD dwKeySize;
228
229} INTERNET_CERTIFICATE_INFOW,* LPINTERNET_CERTIFICATE_INFOW;
230
231DECL_WINELIB_TYPE_AW(INTERNET_CERTIFICATE_INFO)
232DECL_WINELIB_TYPE_AW(LPINTERNET_CERTIFICATE_INFO)
233
234typedef struct _INTERNET_BUFFERSA {
235 DWORD dwStructSize;
236 struct _INTERNET_BUFFERSA * Next;
237 LPCSTR lpcszHeader;
238 DWORD dwHeadersLength;
239 DWORD dwHeadersTotal;
240 LPVOID lpvBuffer;
241 DWORD dwBufferLength;
242 DWORD dwBufferTotal;
243 DWORD dwOffsetLow;
244 DWORD dwOffsetHigh;
245} INTERNET_BUFFERSA,* LPINTERNET_BUFFERSA;
246
247typedef struct _INTERNET_BUFFERSW {
248 DWORD dwStructSize;
249 struct _INTERNET_BUFFERSW * Next;
250 LPCWSTR lpcszHeader;
251 DWORD dwHeadersLength;
252 DWORD dwHeadersTotal;
253 LPVOID lpvBuffer;
254 DWORD dwBufferLength;
255 DWORD dwBufferTotal;
256 DWORD dwOffsetLow;
257 DWORD dwOffsetHigh;
258} INTERNET_BUFFERSW,* LPINTERNET_BUFFERSW;
259
260DECL_WINELIB_TYPE_AW(INTERNET_BUFFERS)
261DECL_WINELIB_TYPE_AW(LPINTERNET_BUFFERS)
262
263BOOLAPI InternetTimeFromSystemTimeA(CONST SYSTEMTIME *,DWORD ,LPSTR ,DWORD);
264BOOLAPI InternetTimeFromSystemTimeW(CONST SYSTEMTIME *,DWORD ,LPWSTR ,DWORD);
265#define InternetTimeFromSystemTime WINELIB_NAME_AW(InternetTimeFromSystemTime)
266
267#define INTERNET_RFC1123_BUFSIZE 30
268
269BOOLAPI InternetTimeToSystemTimeA(LPCSTR ,SYSTEMTIME *,DWORD);
270BOOLAPI InternetTimeToSystemTimeW(LPCWSTR ,SYSTEMTIME *,DWORD);
271#define InternetTimeToSystemTime WINELIB_NAME_AW(InternetTimeToSystemTime)
272
273BOOLAPI InternetCrackUrlA(LPCSTR ,DWORD ,DWORD ,LPURL_COMPONENTSA);
274BOOLAPI InternetCrackUrlW(LPCWSTR ,DWORD ,DWORD ,LPURL_COMPONENTSW);
275#define InternetCrackUrl WINELIB_NAME_AW(InternetCrackUrl)
276
277BOOLAPI InternetCreateUrlA(LPURL_COMPONENTSA ,DWORD ,LPSTR ,LPDWORD);
278BOOLAPI InternetCreateUrlW(LPURL_COMPONENTSW ,DWORD ,LPWSTR ,LPDWORD);
279#define InternetCreateUrl WINELIB_NAME_AW(InternetCreateUrl)
280
281BOOLAPI InternetCanonicalizeUrlA(LPCSTR ,LPSTR ,LPDWORD ,DWORD);
282BOOLAPI InternetCanonicalizeUrlW(LPCWSTR ,LPWSTR ,LPDWORD ,DWORD);
283#define InternetCanonicalizeUrl WINELIB_NAME_AW(InternetCanonicalizeUrl)
284
285BOOLAPI InternetCombineUrlA(LPCSTR ,LPCSTR ,LPSTR ,LPDWORD ,DWORD);
286BOOLAPI InternetCombineUrlW(LPCWSTR ,LPCWSTR ,LPWSTR ,LPDWORD ,DWORD);
287#define InternetCombineUrl WINELIB_NAME_AW(InternetCombineUrl)
288
289#define ICU_ESCAPE 0x80000000
290#define ICU_USERNAME 0x40000000
291#define ICU_NO_ENCODE 0x20000000
292#define ICU_DECODE 0x10000000
293#define ICU_NO_META 0x08000000
294#define ICU_ENCODE_SPACES_ONLY 0x04000000
295#define ICU_BROWSER_MODE 0x02000000
296
297INTERNETAPI HINTERNET WINAPI InternetOpenA(LPCSTR ,DWORD ,LPCSTR lpszProxy ,LPCSTR lpszProxyBypass ,DWORD);
298INTERNETAPI HINTERNET WINAPI InternetOpenW(LPCWSTR ,DWORD ,LPCWSTR lpszProxy ,LPCWSTR lpszProxyBypass ,DWORD);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000299#define InternetOpen WINELIB_NAME_AW(InternetOpen)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000300
301#define INTERNET_OPEN_TYPE_PRECONFIG 0
302#define INTERNET_OPEN_TYPE_DIRECT 1
303#define INTERNET_OPEN_TYPE_PROXY 3
304#define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY 4
305#define PRE_CONFIG_INTERNET_ACCESS INTERNET_OPEN_TYPE_PRECONFIG
306#define LOCAL_INTERNET_ACCESS INTERNET_OPEN_TYPE_DIRECT
307#define CERN_PROXY_INTERNET_ACCESS INTERNET_OPEN_TYPE_PROXY
308
309BOOLAPI InternetCloseHandle(HINTERNET);
310
311INTERNETAPI HINTERNET WINAPI InternetConnectA(HINTERNET ,LPCSTR ,INTERNET_PORT ,
312 LPCSTR lpszUserName ,LPCSTR lpszPassword ,DWORD ,DWORD ,DWORD );
313INTERNETAPI HINTERNET WINAPI InternetConnectW(HINTERNET ,LPCWSTR ,INTERNET_PORT ,
314 LPCWSTR lpszUserName ,LPCWSTR lpszPassword ,DWORD ,DWORD ,DWORD );
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000315#define InternetConnect WINELIB_NAME_AW(InternetConnect)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000316
317#define INTERNET_SERVICE_URL 0
318#define INTERNET_SERVICE_FTP 1
319#define INTERNET_SERVICE_GOPHER 2
320#define INTERNET_SERVICE_HTTP 3
321
322#define InternetConnectUrl(hInternet,lpszUrl,dwFlags,dwContext) \
323 InternetConnect(hInternet,\
324 lpszUrl,\
325 INTERNET_INVALID_PORT_NUMBER,\
326 NULL,\
327 NULL,\
328 INTERNET_SERVICE_URL,\
329 dwFlags,\
330 dwContext \
331 )
332
333INTERNETAPI HINTERNET WINAPI InternetOpenUrlA(HINTERNET ,LPCSTR ,LPCSTR lpszHeaders ,DWORD ,DWORD ,DWORD);
334INTERNETAPI HINTERNET WINAPI InternetOpenUrlW(HINTERNET ,LPCWSTR ,LPCWSTR lpszHeaders ,DWORD ,DWORD ,DWORD);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000335#define InternetOpenUrl WINELIB_NAME_AW(InternetOpenUrl)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000336
337BOOLAPI InternetReadFile( HINTERNET ,LPVOID ,DWORD ,LPDWORD );
338INTERNETAPI BOOL WINAPI InternetReadFileExA( HINTERNET ,LPINTERNET_BUFFERSA ,DWORD ,DWORD );
339INTERNETAPI BOOL WINAPI InternetReadFileExW( HINTERNET ,LPINTERNET_BUFFERSW ,DWORD ,DWORD );
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000340#define InternetReadFileEx WINELIB_NAME_AW(InternetReadFileEx)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000341
342#define IRF_ASYNC WININET_API_FLAG_ASYNC
343#define IRF_SYNC WININET_API_FLAG_SYNC
344#define IRF_USE_CONTEXT WININET_API_FLAG_USE_CONTEXT
345#define IRF_NO_WAIT 0x00000008
346
347INTERNETAPI DWORD WINAPI InternetSetFilePointer(HINTERNET ,LONG ,PVOID ,DWORD ,DWORD);
348BOOLAPI InternetWriteFile(HINTERNET ,LPCVOID ,DWORD ,LPDWORD);
349BOOLAPI InternetQueryDataAvailable(HINTERNET ,LPDWORD lpdwNumberOfBytesAvailable ,DWORD ,DWORD);
350BOOLAPI InternetFindNextFileA(HINTERNET ,LPVOID);
351BOOLAPI InternetFindNextFileW(HINTERNET ,LPVOID);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000352#define InternetFindNextFile WINELIB_NAME_AW(InternetFindNextFile)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000353
354BOOLAPI InternetQueryOptionA(HINTERNET hInternet ,DWORD ,LPVOID lpBuffer ,LPDWORD);
355BOOLAPI InternetQueryOptionW(HINTERNET hInternet ,DWORD ,LPVOID lpBuffer ,LPDWORD);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000356#define InternetQueryOption WINELIB_NAME_AW(InternetQueryOption)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000357
358BOOLAPI InternetSetOptionA(HINTERNET hInternet ,DWORD ,LPVOID ,DWORD);
359BOOLAPI InternetSetOptionW(HINTERNET hInternet ,DWORD ,LPVOID ,DWORD);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000360#define InternetSetOption WINELIB_NAME_AW(InternetSetOption)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000361
362BOOLAPI InternetSetOptionExA(HINTERNET hInternet ,DWORD ,LPVOID ,DWORD ,DWORD);
363BOOLAPI InternetSetOptionExW(HINTERNET hInternet ,DWORD ,LPVOID ,DWORD ,DWORD);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000364#define InternetSetOptionEx WINELIB_NAME_AW(InternetSetOptionEx)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000365
366BOOLAPI InternetLockRequestFile(HINTERNET ,HANDLE *);
367BOOLAPI InternetUnlockRequestFile(HANDLE);
368
369#define ISO_GLOBAL 0x00000001
370#define ISO_REGISTRY 0x00000002
371
372#define ISO_VALID_FLAGS (ISO_GLOBAL | ISO_REGISTRY)
373#define INTERNET_OPTION_CALLBACK 1
374#define INTERNET_OPTION_CONNECT_TIMEOUT 2
375#define INTERNET_OPTION_CONNECT_RETRIES 3
376#define INTERNET_OPTION_CONNECT_BACKOFF 4
377#define INTERNET_OPTION_SEND_TIMEOUT 5
378#define INTERNET_OPTION_CONTROL_SEND_TIMEOUT INTERNET_OPTION_SEND_TIMEOUT
379#define INTERNET_OPTION_RECEIVE_TIMEOUT 6
380#define INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT INTERNET_OPTION_RECEIVE_TIMEOUT
381#define INTERNET_OPTION_DATA_SEND_TIMEOUT 7
382#define INTERNET_OPTION_DATA_RECEIVE_TIMEOUT 8
383#define INTERNET_OPTION_HANDLE_TYPE 9
384#define INTERNET_OPTION_LISTEN_TIMEOUT 11
385#define INTERNET_OPTION_READ_BUFFER_SIZE 12
386#define INTERNET_OPTION_WRITE_BUFFER_SIZE 13
387#define INTERNET_OPTION_ASYNC_ID 15
388#define INTERNET_OPTION_ASYNC_PRIORITY 16
389#define INTERNET_OPTION_PARENT_HANDLE 21
390#define INTERNET_OPTION_KEEP_CONNECTION 22
391#define INTERNET_OPTION_REQUEST_FLAGS 23
392#define INTERNET_OPTION_EXTENDED_ERROR 24
393#define INTERNET_OPTION_OFFLINE_MODE 26
394#define INTERNET_OPTION_CACHE_STREAM_HANDLE 27
395#define INTERNET_OPTION_USERNAME 28
396#define INTERNET_OPTION_PASSWORD 29
397#define INTERNET_OPTION_ASYNC 30
398#define INTERNET_OPTION_SECURITY_FLAGS 31
399#define INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT 32
400#define INTERNET_OPTION_DATAFILE_NAME 33
401#define INTERNET_OPTION_URL 34
402#define INTERNET_OPTION_SECURITY_CERTIFICATE 35
403#define INTERNET_OPTION_SECURITY_KEY_BITNESS 36
404#define INTERNET_OPTION_REFRESH 37
405#define INTERNET_OPTION_PROXY 38
406#define INTERNET_OPTION_SETTINGS_CHANGED 39
407#define INTERNET_OPTION_VERSION 40
408#define INTERNET_OPTION_USER_AGENT 41
409#define INTERNET_OPTION_END_BROWSER_SESSION 42
410#define INTERNET_OPTION_PROXY_USERNAME 43
411#define INTERNET_OPTION_PROXY_PASSWORD 44
412#define INTERNET_OPTION_CONTEXT_VALUE 45
413#define INTERNET_OPTION_CONNECT_LIMIT 46
414#define INTERNET_OPTION_SECURITY_SELECT_CLIENT_CERT 47
415#define INTERNET_OPTION_POLICY 48
416#define INTERNET_OPTION_DISCONNECTED_TIMEOUT 49
417#define INTERNET_OPTION_CONNECTED_STATE 50
418#define INTERNET_OPTION_IDLE_STATE 51
419#define INTERNET_OPTION_OFFLINE_SEMANTICS 52
420#define INTERNET_OPTION_SECONDARY_CACHE_KEY 53
421#define INTERNET_OPTION_CALLBACK_FILTER 54
422#define INTERNET_OPTION_CONNECT_TIME 55
423#define INTERNET_OPTION_SEND_THROUGHPUT 56
424#define INTERNET_OPTION_RECEIVE_THROUGHPUT 57
425#define INTERNET_OPTION_REQUEST_PRIORITY 58
426#define INTERNET_OPTION_HTTP_VERSION 59
427#define INTERNET_OPTION_RESET_URLCACHE_SESSION 60
428#define INTERNET_OPTION_ERROR_MASK 62
429#define INTERNET_FIRST_OPTION INTERNET_OPTION_CALLBACK
430#define INTERNET_LAST_OPTION INTERNET_OPTION_ERROR_MASK
431#define INTERNET_PRIORITY_FOREGROUND 1000
432#define INTERNET_HANDLE_TYPE_INTERNET 1
433#define INTERNET_HANDLE_TYPE_CONNECT_FTP 2
434#define INTERNET_HANDLE_TYPE_CONNECT_GOPHER 3
435#define INTERNET_HANDLE_TYPE_CONNECT_HTTP 4
436#define INTERNET_HANDLE_TYPE_FTP_FIND 5
437#define INTERNET_HANDLE_TYPE_FTP_FIND_HTML 6
438#define INTERNET_HANDLE_TYPE_FTP_FILE 7
439#define INTERNET_HANDLE_TYPE_FTP_FILE_HTML 8
440#define INTERNET_HANDLE_TYPE_GOPHER_FIND 9
441#define INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML 10
442#define INTERNET_HANDLE_TYPE_GOPHER_FILE 11
443#define INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML 12
444#define INTERNET_HANDLE_TYPE_HTTP_REQUEST 13
445#define SECURITY_FLAG_SECURE 0x00000001
446#define SECURITY_FLAG_STRENGTH_WEAK 0x10000000
447#define SECURITY_FLAG_STRENGTH_MEDIUM 0x40000000
448#define SECURITY_FLAG_STRENGTH_STRONG 0x20000000
449#define SECURITY_FLAG_UNKNOWNBIT 0x80000000
450#define SECURITY_FLAG_NORMALBITNESS SECURITY_FLAG_STRENGTH_WEAK
451#define SECURITY_FLAG_SSL 0x00000002
452#define SECURITY_FLAG_SSL3 0x00000004
453#define SECURITY_FLAG_PCT 0x00000008
454#define SECURITY_FLAG_PCT4 0x00000010
455#define SECURITY_FLAG_IETFSSL4 0x00000020
456#define SECURITY_FLAG_40BIT SECURITY_FLAG_STRENGTH_WEAK
457#define SECURITY_FLAG_128BIT SECURITY_FLAG_STRENGTH_STRONG
458#define SECURITY_FLAG_56BIT SECURITY_FLAG_STRENGTH_MEDIUM
459#define SECURITY_FLAG_IGNORE_REVOCATION 0x00000080
460#define SECURITY_FLAG_IGNORE_UNKNOWN_CA 0x00000100
461#define SECURITY_FLAG_IGNORE_WRONG_USAGE 0x00000200
462#define SECURITY_FLAG_IGNORE_CERT_CN_INVALID INTERNET_FLAG_IGNORE_CERT_CN_INVALID
463#define SECURITY_FLAG_IGNORE_CERT_DATE_INVALID INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
464#define SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
465#define SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
466#define SECURITY_SET_MASK (SECURITY_FLAG_IGNORE_REVOCATION |\
467 SECURITY_FLAG_IGNORE_UNKNOWN_CA |\
468 SECURITY_FLAG_IGNORE_CERT_CN_INVALID |\
469 SECURITY_FLAG_IGNORE_CERT_DATE_INVALID |\
470 SECURITY_FLAG_IGNORE_WRONG_USAGE)
471
472
473
474BOOLAPI InternetGetLastResponseInfoA(LPDWORD ,LPSTR lpszBuffer ,LPDWORD);
475BOOLAPI InternetGetLastResponseInfoW(LPDWORD ,LPWSTR lpszBuffer ,LPDWORD);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000476#define InternetGetLastResponseInfo WINELIB_NAME_AW(InternetGetLastResponseInfo)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000477
Francois Gougetae41e8c2000-06-11 20:07:58 +0000478typedef VOID CALLBACK (*INTERNET_STATUS_CALLBACK)(HINTERNET ,DWORD ,DWORD ,
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000479 LPVOID lpvStatusInformation ,DWORD);
480
481typedef INTERNET_STATUS_CALLBACK * LPINTERNET_STATUS_CALLBACK;
482
483INTERNETAPI INTERNET_STATUS_CALLBACK WINAPI InternetSetStatusCallback(HINTERNET ,INTERNET_STATUS_CALLBACK);
484
485#define INTERNET_STATUS_RESOLVING_NAME 10
486#define INTERNET_STATUS_NAME_RESOLVED 11
487#define INTERNET_STATUS_CONNECTING_TO_SERVER 20
488#define INTERNET_STATUS_CONNECTED_TO_SERVER 21
489#define INTERNET_STATUS_SENDING_REQUEST 30
490#define INTERNET_STATUS_REQUEST_SENT 31
491#define INTERNET_STATUS_RECEIVING_RESPONSE 40
492#define INTERNET_STATUS_RESPONSE_RECEIVED 41
493#define INTERNET_STATUS_CTL_RESPONSE_RECEIVED 42
494#define INTERNET_STATUS_PREFETCH 43
495#define INTERNET_STATUS_CLOSING_CONNECTION 50
496#define INTERNET_STATUS_CONNECTION_CLOSED 51
497#define INTERNET_STATUS_HANDLE_CREATED 60
498#define INTERNET_STATUS_HANDLE_CLOSING 70
499#define INTERNET_STATUS_REQUEST_COMPLETE 100
500#define INTERNET_STATUS_REDIRECT 110
501#define INTERNET_STATUS_INTERMEDIATE_RESPONSE 120
502#define INTERNET_STATUS_STATE_CHANGE 200
503#define INTERNET_STATE_CONNECTED 0x00000001
504#define INTERNET_STATE_DISCONNECTED 0x00000002
505#define INTERNET_STATE_DISCONNECTED_BY_USER 0x00000010
506#define INTERNET_STATE_IDLE 0x00000100
507#define INTERNET_STATE_BUSY 0x00000200
508
509#define INTERNET_INVALID_STATUS_CALLBACK ((INTERNET_STATUS_CALLBACK)(-1L))
510
511#define FTP_TRANSFER_TYPE_UNKNOWN 0x00000000
512#define FTP_TRANSFER_TYPE_ASCII 0x00000001
513#define FTP_TRANSFER_TYPE_BINARY 0x00000002
514#define FTP_TRANSFER_TYPE_MASK (FTP_TRANSFER_TYPE_ASCII | FTP_TRANSFER_TYPE_BINARY)
515
516
517INTERNETAPI HINTERNET WINAPI FtpFindFirstFileA(HINTERNET ,LPCSTR lpszSearchFile ,
518 LPWIN32_FIND_DATAA lpFindFileData ,DWORD ,DWORD);
519INTERNETAPI HINTERNET WINAPI FtpFindFirstFileW(HINTERNET ,LPCWSTR lpszSearchFile ,
520 LPWIN32_FIND_DATAW lpFindFileData ,DWORD ,DWORD);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000521#define FtpFindFirstFile WINELIB_NAME_AW(FtpFindFirstFile)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000522
523BOOLAPI FtpGetFileA(HINTERNET ,LPCSTR ,LPCSTR ,BOOL ,DWORD ,DWORD ,DWORD);
524BOOLAPI FtpGetFileW(HINTERNET ,LPCWSTR ,LPCWSTR ,BOOL ,DWORD ,DWORD ,DWORD);
Francois Gouget17bd7c92000-10-12 20:43:08 +0000525#define FtpGetFile WINELIB_NAME_AW(FtpGetFile)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000526
527BOOLAPI FtpPutFileA(HINTERNET ,LPCSTR ,LPCSTR ,DWORD ,DWORD);
528BOOLAPI FtpPutFileW(HINTERNET ,LPCWSTR ,LPCWSTR ,DWORD ,DWORD);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000529#define FtpPutFile WINELIB_NAME_AW(FtpPutFile)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000530
531BOOLAPI FtpDeleteFileA(HINTERNET ,LPCSTR);
532BOOLAPI FtpDeleteFileW(HINTERNET ,LPCWSTR);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000533#define FtpDeleteFile WINELIB_NAME_AW(FtpDeleteFile)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000534
535BOOLAPI FtpRenameFileA(HINTERNET ,LPCSTR ,LPCSTR);
536BOOLAPI FtpRenameFileW(HINTERNET ,LPCWSTR ,LPCWSTR);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000537#define FtpRenameFile WINELIB_NAME_AW(FtpRenameFile)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000538
539INTERNETAPI HINTERNET WINAPI FtpOpenFileA(HINTERNET ,LPCSTR ,DWORD ,DWORD ,DWORD);
540INTERNETAPI HINTERNET WINAPI FtpOpenFileW(HINTERNET ,LPCWSTR ,DWORD ,DWORD ,DWORD);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000541#define FtpOpenFile WINELIB_NAME_AW(FtpOpenFile)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000542
543BOOLAPI FtpCreateDirectoryA(HINTERNET ,LPCSTR);
544BOOLAPI FtpCreateDirectoryW(HINTERNET ,LPCWSTR);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000545#define FtpCreateDirectory WINELIB_NAME_AW(FtpCreateDirectory)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000546
547BOOLAPI FtpRemoveDirectoryA(HINTERNET ,LPCSTR);
548BOOLAPI FtpRemoveDirectoryW(HINTERNET ,LPCWSTR);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000549#define FtpRemoveDirectory WINELIB_NAME_AW(FtpRemoveDirectory)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000550
551BOOLAPI FtpSetCurrentDirectoryA(HINTERNET ,LPCSTR);
552BOOLAPI FtpSetCurrentDirectoryW(HINTERNET ,LPCWSTR);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000553#define FtpSetCurrentDirectory WINELIB_NAME_AW(FtpSetCurrentDirectory)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000554
555BOOLAPI FtpGetCurrentDirectoryA(HINTERNET ,LPSTR ,LPDWORD);
556BOOLAPI FtpGetCurrentDirectoryW(HINTERNET ,LPWSTR ,LPDWORD);
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000557#define FtpGetCurrentDirectory WINELIB_NAME_AW(FtpGetCurrentDirectory)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000558
559#define MAX_GOPHER_DISPLAY_TEXT 128
560#define MAX_GOPHER_SELECTOR_TEXT 256
561#define MAX_GOPHER_HOST_NAME INTERNET_MAX_HOST_NAME_LENGTH
562#define MAX_GOPHER_LOCATOR_LENGTH (1 \
563 + MAX_GOPHER_DISPLAY_TEXT \
564 + 1 \
565 + MAX_GOPHER_SELECTOR_TEXT \
566 + 1 \
567 + MAX_GOPHER_HOST_NAME \
568 + 1 \
569 + INTERNET_MAX_PORT_NUMBER_LENGTH \
570 + 1 \
571 + 1 \
572 + 2 \
573 )
574
575
576typedef struct {
577 CHAR DisplayString[MAX_GOPHER_DISPLAY_TEXT + 1];
578 DWORD GopherType;
579 DWORD SizeLow;
580 DWORD SizeHigh;
581 FILETIME LastModificationTime;
582 CHAR Locator[MAX_GOPHER_LOCATOR_LENGTH + 1];
583} GOPHER_FIND_DATAA,* LPGOPHER_FIND_DATAA;
584
585typedef struct {
586 WCHAR DisplayString[MAX_GOPHER_DISPLAY_TEXT + 1];
587 DWORD GopherType;
588 DWORD SizeLow;
589 DWORD SizeHigh;
590 FILETIME LastModificationTime;
591 WCHAR Locator[MAX_GOPHER_LOCATOR_LENGTH + 1];
592} GOPHER_FIND_DATAW,* LPGOPHER_FIND_DATAW;
593
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000594DECL_WINELIB_TYPE_AW(GOPHER_FIND_DATA)
595DECL_WINELIB_TYPE_AW(LPGOPHER_FIND_DATA)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000596
597#define GOPHER_TYPE_TEXT_FILE 0x00000001
598#define GOPHER_TYPE_DIRECTORY 0x00000002
599#define GOPHER_TYPE_CSO 0x00000004
600#define GOPHER_TYPE_ERROR 0x00000008
601#define GOPHER_TYPE_MAC_BINHEX 0x00000010
602#define GOPHER_TYPE_DOS_ARCHIVE 0x00000020
603#define GOPHER_TYPE_UNIX_UUENCODED 0x00000040
604#define GOPHER_TYPE_INDEX_SERVER 0x00000080
605#define GOPHER_TYPE_TELNET 0x00000100
606#define GOPHER_TYPE_BINARY 0x00000200
607#define GOPHER_TYPE_REDUNDANT 0x00000400
608#define GOPHER_TYPE_TN3270 0x00000800
609#define GOPHER_TYPE_GIF 0x00001000
610#define GOPHER_TYPE_IMAGE 0x00002000
611#define GOPHER_TYPE_BITMAP 0x00004000
612#define GOPHER_TYPE_MOVIE 0x00008000
613#define GOPHER_TYPE_SOUND 0x00010000
614#define GOPHER_TYPE_HTML 0x00020000
615#define GOPHER_TYPE_PDF 0x00040000
616#define GOPHER_TYPE_CALENDAR 0x00080000
617#define GOPHER_TYPE_INLINE 0x00100000
618#define GOPHER_TYPE_UNKNOWN 0x20000000
619#define GOPHER_TYPE_ASK 0x40000000
620#define GOPHER_TYPE_GOPHER_PLUS 0x80000000
621
622#define IS_GOPHER_FILE(type) (BOOL)(((type) & GOPHER_TYPE_FILE_MASK) ? TRUE : FALSE)
623#define IS_GOPHER_DIRECTORY(type) (BOOL)(((type) & GOPHER_TYPE_DIRECTORY) ? TRUE : FALSE)
624#define IS_GOPHER_PHONE_SERVER(type) (BOOL)(((type) & GOPHER_TYPE_CSO) ? TRUE : FALSE)
625#define IS_GOPHER_ERROR(type) (BOOL)(((type) & GOPHER_TYPE_ERROR) ? TRUE : FALSE)
626#define IS_GOPHER_INDEX_SERVER(type) (BOOL)(((type) & GOPHER_TYPE_INDEX_SERVER) ? TRUE : FALSE)
627#define IS_GOPHER_TELNET_SESSION(type) (BOOL)(((type) & GOPHER_TYPE_TELNET) ? TRUE : FALSE)
628#define IS_GOPHER_BACKUP_SERVER(type) (BOOL)(((type) & GOPHER_TYPE_REDUNDANT) ? TRUE : FALSE)
629#define IS_GOPHER_TN3270_SESSION(type) (BOOL)(((type) & GOPHER_TYPE_TN3270) ? TRUE : FALSE)
630#define IS_GOPHER_ASK(type) (BOOL)(((type) & GOPHER_TYPE_ASK) ? TRUE : FALSE)
631#define IS_GOPHER_PLUS(type) (BOOL)(((type) & GOPHER_TYPE_GOPHER_PLUS) ? TRUE : FALSE)
632#define IS_GOPHER_TYPE_KNOWN(type) (BOOL)(((type) & GOPHER_TYPE_UNKNOWN) ? FALSE : TRUE)
633#define GOPHER_TYPE_FILE_MASK (GOPHER_TYPE_TEXT_FILE \
634 | GOPHER_TYPE_MAC_BINHEX \
635 | GOPHER_TYPE_DOS_ARCHIVE \
636 | GOPHER_TYPE_UNIX_UUENCODED \
637 | GOPHER_TYPE_BINARY \
638 | GOPHER_TYPE_GIF \
639 | GOPHER_TYPE_IMAGE \
640 | GOPHER_TYPE_BITMAP \
641 | GOPHER_TYPE_MOVIE \
642 | GOPHER_TYPE_SOUND \
643 | GOPHER_TYPE_HTML \
644 | GOPHER_TYPE_PDF \
645 | GOPHER_TYPE_CALENDAR \
646 | GOPHER_TYPE_INLINE \
647 )
648
649
650typedef struct {
651 LPCSTR Comment;
652 LPCSTR EmailAddress;
653} GOPHER_ADMIN_ATTRIBUTE_TYPEA,* LPGOPHER_ADMIN_ATTRIBUTE_TYPEA;
654
655typedef struct {
656 LPCWSTR Comment;
657 LPCWSTR EmailAddress;
658} GOPHER_ADMIN_ATTRIBUTE_TYPEW,* LPGOPHER_ADMIN_ATTRIBUTE_TYPEW;
659
660DECL_WINELIB_TYPE_AW(GOPHER_ADMIN_ATTRIBUTE_TYPE)
661DECL_WINELIB_TYPE_AW(LPGOPHER_ADMIN_ATTRIBUTE_TYPE)
662
663typedef struct {
664 FILETIME DateAndTime;
665} GOPHER_MOD_DATE_ATTRIBUTE_TYPE,* LPGOPHER_MOD_DATE_ATTRIBUTE_TYPE;
666
667typedef struct {
668 DWORD Ttl;
669} GOPHER_TTL_ATTRIBUTE_TYPE,* LPGOPHER_TTL_ATTRIBUTE_TYPE;
670
671typedef struct {
672 INT Score;
673} GOPHER_SCORE_ATTRIBUTE_TYPE,* LPGOPHER_SCORE_ATTRIBUTE_TYPE;
674
675typedef struct {
676 INT LowerBound;
677 INT UpperBound;
678} GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE,* LPGOPHER_SCORE_RANGE_ATTRIBUTE_TYPE;
679
680typedef struct {
681 LPCSTR Site;
682} GOPHER_SITE_ATTRIBUTE_TYPEA,* LPGOPHER_SITE_ATTRIBUTE_TYPEA;
683
684typedef struct {
685 LPCWSTR Site;
686} GOPHER_SITE_ATTRIBUTE_TYPEW,* LPGOPHER_SITE_ATTRIBUTE_TYPEW;
687
688DECL_WINELIB_TYPE_AW(GOPHER_SITE_ATTRIBUTE_TYPE)
689DECL_WINELIB_TYPE_AW(LPGOPHER_SITE_ATTRIBUTE_TYPE)
690
691typedef struct {
692 LPCSTR Organization;
693} GOPHER_ORGANIZATION_ATTRIBUTE_TYPEA,* LPGOPHER_ORGANIZATION_ATTRIBUTE_TYPEA;
694
695typedef struct {
696 LPCWSTR Organization;
697} GOPHER_ORGANIZATION_ATTRIBUTE_TYPEW,* LPGOPHER_ORGANIZATION_ATTRIBUTE_TYPEW;
698
699DECL_WINELIB_TYPE_AW(GOPHER_ORGANIZATION_ATTRIBUTE_TYPE)
700DECL_WINELIB_TYPE_AW(LPGOPHER_ORGANIZATION_ATTRIBUTE_TYPE)
701
702typedef struct {
703 LPCSTR Location;
704} GOPHER_LOCATION_ATTRIBUTE_TYPEA,* LPGOPHER_LOCATION_ATTRIBUTE_TYPEA;
705
706typedef struct {
707 LPCWSTR Location;
708} GOPHER_LOCATION_ATTRIBUTE_TYPEW,* LPGOPHER_LOCATION_ATTRIBUTE_TYPEW;
709
710DECL_WINELIB_TYPE_AW(GOPHER_LOCATION_ATTRIBUTE_TYPE)
711DECL_WINELIB_TYPE_AW(LPGOPHER_LOCATION_ATTRIBUTE_TYPE)
712
713typedef struct {
714 INT DegreesNorth;
715 INT MinutesNorth;
716 INT SecondsNorth;
717 INT DegreesEast;
718 INT MinutesEast;
719 INT SecondsEast;
720} GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE,* LPGOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE;
721
722typedef struct {
723 INT Zone;
724} GOPHER_TIMEZONE_ATTRIBUTE_TYPE,* LPGOPHER_TIMEZONE_ATTRIBUTE_TYPE;
725
726typedef struct {
727 LPCSTR Provider;
728} GOPHER_PROVIDER_ATTRIBUTE_TYPEA,* LPGOPHER_PROVIDER_ATTRIBUTE_TYPEA;
729
730typedef struct {
731 LPCWSTR Provider;
732} GOPHER_PROVIDER_ATTRIBUTE_TYPEW,* LPGOPHER_PROVIDER_ATTRIBUTE_TYPEW;
733
734DECL_WINELIB_TYPE_AW(GOPHER_PROVIDER_ATTRIBUTE_TYPE)
735DECL_WINELIB_TYPE_AW(LPGOPHER_PROVIDER_ATTRIBUTE_TYPE)
736
737typedef struct {
738 LPCSTR Version;
739} GOPHER_VERSION_ATTRIBUTE_TYPEA,* LPGOPHER_VERSION_ATTRIBUTE_TYPEA;
740
741typedef struct {
742 LPCWSTR Version;
743} GOPHER_VERSION_ATTRIBUTE_TYPEW,* LPGOPHER_VERSION_ATTRIBUTE_TYPEW;
744
745DECL_WINELIB_TYPE_AW(GOPHER_VERSION_ATTRIBUTE_TYPE)
746DECL_WINELIB_TYPE_AW(LPGOPHER_VERSION_ATTRIBUTE_TYPE)
747
748typedef struct {
749 LPCSTR ShortAbstract;
750 LPCSTR AbstractFile;
751} GOPHER_ABSTRACT_ATTRIBUTE_TYPEA,* LPGOPHER_ABSTRACT_ATTRIBUTE_TYPEA;
752
753typedef struct {
754 LPCWSTR ShortAbstract;
755 LPCWSTR AbstractFile;
756} GOPHER_ABSTRACT_ATTRIBUTE_TYPEW,* LPGOPHER_ABSTRACT_ATTRIBUTE_TYPEW;
757
758DECL_WINELIB_TYPE_AW(GOPHER_ABSTRACT_ATTRIBUTE_TYPE)
759DECL_WINELIB_TYPE_AW(LPGOPHER_ABSTRACT_ATTRIBUTE_TYPE)
760
761typedef struct {
762 LPCSTR ContentType;
763 LPCSTR Language;
764 DWORD Size;
765} GOPHER_VIEW_ATTRIBUTE_TYPEA,* LPGOPHER_VIEW_ATTRIBUTE_TYPEA;
766
767typedef struct {
768 LPCWSTR ContentType;
769 LPCWSTR Language;
770 DWORD Size;
771} GOPHER_VIEW_ATTRIBUTE_TYPEW,* LPGOPHER_VIEW_ATTRIBUTE_TYPEW;
772
773DECL_WINELIB_TYPE_AW(GOPHER_VIEW_ATTRIBUTE_TYPE)
774DECL_WINELIB_TYPE_AW(LPGOPHER_VIEW_ATTRIBUTE_TYPE)
775
776typedef struct {
777 BOOL TreeWalk;
778} GOPHER_VERONICA_ATTRIBUTE_TYPE,* LPGOPHER_VERONICA_ATTRIBUTE_TYPE;
779
780typedef struct {
781 LPCSTR QuestionType;
782 LPCSTR QuestionText;
783} GOPHER_ASK_ATTRIBUTE_TYPEA,* LPGOPHER_ASK_ATTRIBUTE_TYPEA;
784
785typedef struct {
786 LPCWSTR QuestionType;
787 LPCWSTR QuestionText;
788} GOPHER_ASK_ATTRIBUTE_TYPEW,* LPGOPHER_ASK_ATTRIBUTE_TYPEW;
789
790DECL_WINELIB_TYPE_AW(GOPHER_ASK_ATTRIBUTE_TYPE)
791DECL_WINELIB_TYPE_AW(LPGOPHER_ASK_ATTRIBUTE_TYPE)
792
793typedef struct {
794 LPCSTR Text;
795} GOPHER_UNKNOWN_ATTRIBUTE_TYPEA,* LPGOPHER_UNKNOWN_ATTRIBUTE_TYPEA;
796
797typedef struct {
798 LPCWSTR Text;
799} GOPHER_UNKNOWN_ATTRIBUTE_TYPEW,* LPGOPHER_UNKNOWN_ATTRIBUTE_TYPEW;
800
801DECL_WINELIB_TYPE_AW(GOPHER_UNKNOWN_ATTRIBUTE_TYPE)
802DECL_WINELIB_TYPE_AW(LPGOPHER_UNKNOWN_ATTRIBUTE_TYPE)
803
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000804typedef struct {
805 DWORD CategoryId;
806 DWORD AttributeId;
807 union {
Francois Gouget8c752fd2000-12-07 23:14:29 +0000808 GOPHER_ADMIN_ATTRIBUTE_TYPEA Admin;
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000809 GOPHER_MOD_DATE_ATTRIBUTE_TYPE ModDate;
810 GOPHER_TTL_ATTRIBUTE_TYPE Ttl;
811 GOPHER_SCORE_ATTRIBUTE_TYPE Score;
812 GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE ScoreRange;
Francois Gouget8c752fd2000-12-07 23:14:29 +0000813 GOPHER_SITE_ATTRIBUTE_TYPEA Site;
814 GOPHER_ORGANIZATION_ATTRIBUTE_TYPEA Organization;
815 GOPHER_LOCATION_ATTRIBUTE_TYPEA Location;
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000816 GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE GeographicalLocation;
817 GOPHER_TIMEZONE_ATTRIBUTE_TYPE TimeZone;
Francois Gouget8c752fd2000-12-07 23:14:29 +0000818 GOPHER_PROVIDER_ATTRIBUTE_TYPEA Provider;
819 GOPHER_VERSION_ATTRIBUTE_TYPEA Version;
820 GOPHER_ABSTRACT_ATTRIBUTE_TYPEA Abstract;
821 GOPHER_VIEW_ATTRIBUTE_TYPEA View;
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000822 GOPHER_VERONICA_ATTRIBUTE_TYPE Veronica;
Francois Gouget8c752fd2000-12-07 23:14:29 +0000823 GOPHER_ASK_ATTRIBUTE_TYPEA Ask;
824 GOPHER_UNKNOWN_ATTRIBUTE_TYPEA Unknown;
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000825 } AttributeType;
Francois Gouget8c752fd2000-12-07 23:14:29 +0000826} GOPHER_ATTRIBUTE_TYPEA, *LPGOPHER_ATTRIBUTE_TYPEA;
827
828typedef struct {
829 DWORD CategoryId;
830 DWORD AttributeId;
831 union {
832 GOPHER_ADMIN_ATTRIBUTE_TYPEW Admin;
833 GOPHER_MOD_DATE_ATTRIBUTE_TYPE ModDate;
834 GOPHER_TTL_ATTRIBUTE_TYPE Ttl;
835 GOPHER_SCORE_ATTRIBUTE_TYPE Score;
836 GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE ScoreRange;
837 GOPHER_SITE_ATTRIBUTE_TYPEW Site;
838 GOPHER_ORGANIZATION_ATTRIBUTE_TYPEW Organization;
839 GOPHER_LOCATION_ATTRIBUTE_TYPEW Location;
840 GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE GeographicalLocation;
841 GOPHER_TIMEZONE_ATTRIBUTE_TYPE TimeZone;
842 GOPHER_PROVIDER_ATTRIBUTE_TYPEW Provider;
843 GOPHER_VERSION_ATTRIBUTE_TYPEW Version;
844 GOPHER_ABSTRACT_ATTRIBUTE_TYPEW Abstract;
845 GOPHER_VIEW_ATTRIBUTE_TYPEW View;
846 GOPHER_VERONICA_ATTRIBUTE_TYPE Veronica;
847 GOPHER_ASK_ATTRIBUTE_TYPEW Ask;
848 GOPHER_UNKNOWN_ATTRIBUTE_TYPEW Unknown;
849 } AttributeType;
850} GOPHER_ATTRIBUTE_TYPEW, *LPGOPHER_ATTRIBUTE_TYPEW;
851
852DECL_WINELIB_TYPE_AW(GOPHER_ATTRIBUTE_TYPE)
853DECL_WINELIB_TYPE_AW(LPGOPHER_ATTRIBUTE_TYPE)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000854
855#define MAX_GOPHER_CATEGORY_NAME 128
856#define MAX_GOPHER_ATTRIBUTE_NAME 128
857#define MIN_GOPHER_ATTRIBUTE_LENGTH 256
858
859#define GOPHER_INFO_CATEGORY TEXT("+INFO")
860#define GOPHER_ADMIN_CATEGORY TEXT("+ADMIN")
861#define GOPHER_VIEWS_CATEGORY TEXT("+VIEWS")
862#define GOPHER_ABSTRACT_CATEGORY TEXT("+ABSTRACT")
863#define GOPHER_VERONICA_CATEGORY TEXT("+VERONICA")
864#define GOPHER_ADMIN_ATTRIBUTE TEXT("Admin")
865#define GOPHER_MOD_DATE_ATTRIBUTE TEXT("Mod-Date")
866#define GOPHER_TTL_ATTRIBUTE TEXT("TTL")
867#define GOPHER_SCORE_ATTRIBUTE TEXT("Score")
868#define GOPHER_RANGE_ATTRIBUTE TEXT("Score-range")
869#define GOPHER_SITE_ATTRIBUTE TEXT("Site")
870#define GOPHER_ORG_ATTRIBUTE TEXT("Org")
871#define GOPHER_LOCATION_ATTRIBUTE TEXT("Loc")
872#define GOPHER_GEOG_ATTRIBUTE TEXT("Geog")
873#define GOPHER_TIMEZONE_ATTRIBUTE TEXT("TZ")
874#define GOPHER_PROVIDER_ATTRIBUTE TEXT("Provider")
875#define GOPHER_VERSION_ATTRIBUTE TEXT("Version")
876#define GOPHER_ABSTRACT_ATTRIBUTE TEXT("Abstract")
877#define GOPHER_VIEW_ATTRIBUTE TEXT("View")
878#define GOPHER_TREEWALK_ATTRIBUTE TEXT("treewalk")
879
880#define GOPHER_ATTRIBUTE_ID_BASE 0xabcccc00
881
882#define GOPHER_CATEGORY_ID_ALL (GOPHER_ATTRIBUTE_ID_BASE + 1)
883#define GOPHER_CATEGORY_ID_INFO (GOPHER_ATTRIBUTE_ID_BASE + 2)
884#define GOPHER_CATEGORY_ID_ADMIN (GOPHER_ATTRIBUTE_ID_BASE + 3)
885#define GOPHER_CATEGORY_ID_VIEWS (GOPHER_ATTRIBUTE_ID_BASE + 4)
886#define GOPHER_CATEGORY_ID_ABSTRACT (GOPHER_ATTRIBUTE_ID_BASE + 5)
887#define GOPHER_CATEGORY_ID_VERONICA (GOPHER_ATTRIBUTE_ID_BASE + 6)
888#define GOPHER_CATEGORY_ID_ASK (GOPHER_ATTRIBUTE_ID_BASE + 7)
889#define GOPHER_CATEGORY_ID_UNKNOWN (GOPHER_ATTRIBUTE_ID_BASE + 8)
890
891#define GOPHER_ATTRIBUTE_ID_ALL (GOPHER_ATTRIBUTE_ID_BASE + 9)
892#define GOPHER_ATTRIBUTE_ID_ADMIN (GOPHER_ATTRIBUTE_ID_BASE + 10)
893#define GOPHER_ATTRIBUTE_ID_MOD_DATE (GOPHER_ATTRIBUTE_ID_BASE + 11)
894#define GOPHER_ATTRIBUTE_ID_TTL (GOPHER_ATTRIBUTE_ID_BASE + 12)
895#define GOPHER_ATTRIBUTE_ID_SCORE (GOPHER_ATTRIBUTE_ID_BASE + 13)
896#define GOPHER_ATTRIBUTE_ID_RANGE (GOPHER_ATTRIBUTE_ID_BASE + 14)
897#define GOPHER_ATTRIBUTE_ID_SITE (GOPHER_ATTRIBUTE_ID_BASE + 15)
898#define GOPHER_ATTRIBUTE_ID_ORG (GOPHER_ATTRIBUTE_ID_BASE + 16)
899#define GOPHER_ATTRIBUTE_ID_LOCATION (GOPHER_ATTRIBUTE_ID_BASE + 17)
900#define GOPHER_ATTRIBUTE_ID_GEOG (GOPHER_ATTRIBUTE_ID_BASE + 18)
901#define GOPHER_ATTRIBUTE_ID_TIMEZONE (GOPHER_ATTRIBUTE_ID_BASE + 19)
902#define GOPHER_ATTRIBUTE_ID_PROVIDER (GOPHER_ATTRIBUTE_ID_BASE + 20)
903#define GOPHER_ATTRIBUTE_ID_VERSION (GOPHER_ATTRIBUTE_ID_BASE + 21)
904#define GOPHER_ATTRIBUTE_ID_ABSTRACT (GOPHER_ATTRIBUTE_ID_BASE + 22)
905#define GOPHER_ATTRIBUTE_ID_VIEW (GOPHER_ATTRIBUTE_ID_BASE + 23)
906#define GOPHER_ATTRIBUTE_ID_TREEWALK (GOPHER_ATTRIBUTE_ID_BASE + 24)
907#define GOPHER_ATTRIBUTE_ID_UNKNOWN (GOPHER_ATTRIBUTE_ID_BASE + 25)
908
909BOOLAPI GopherCreateLocatorA(LPCSTR ,INTERNET_PORT ,LPCSTR lpszDisplayString ,
910 LPCSTR lpszSelectorString ,DWORD ,LPSTR lpszLocator ,LPDWORD);
911BOOLAPI GopherCreateLocatorW(LPCWSTR ,INTERNET_PORT ,LPCWSTR lpszDisplayString ,
912 LPCWSTR lpszSelectorString ,DWORD ,LPWSTR lpszLocator ,LPDWORD);
913#define GopherCreateLocator WINELIB_NAME_AW(GopherCreateLocator)
914
915BOOLAPI GopherGetLocatorTypeA(LPCSTR ,LPDWORD);
916BOOLAPI GopherGetLocatorTypeW(LPCWSTR ,LPDWORD);
917#define GopherGetLocatorType WINELIB_NAME_AW(GopherGetLocatorType)
918
919INTERNETAPI HINTERNET WINAPI GopherFindFirstFileA(HINTERNET ,LPCSTR lpszLocator ,
920 LPCSTR lpszSearchString ,LPGOPHER_FIND_DATAA lpFindData ,DWORD ,DWORD);
921INTERNETAPI HINTERNET WINAPI GopherFindFirstFileW(HINTERNET ,LPCWSTR lpszLocator ,
922 LPCWSTR lpszSearchString ,LPGOPHER_FIND_DATAW lpFindData ,DWORD ,DWORD);
923#define GopherFindFirstFile WINELIB_NAME_AW(GopherFindFirstFile)
924
925INTERNETAPI HINTERNET WINAPI GopherOpenFileA(HINTERNET ,LPCSTR ,LPCSTR lpszView ,DWORD ,DWORD);
926INTERNETAPI HINTERNET WINAPI GopherOpenFileW(HINTERNET ,LPCWSTR ,LPCWSTR lpszView ,DWORD ,DWORD);
927#define GopherOpenFile WINELIB_NAME_AW(GopherOpenFile)
928
Francois Gouget8c752fd2000-12-07 23:14:29 +0000929typedef BOOL CALLBACK (*GOPHER_ATTRIBUTE_ENUMERATORA)(LPGOPHER_ATTRIBUTE_TYPEA ,DWORD);
930typedef BOOL CALLBACK (*GOPHER_ATTRIBUTE_ENUMERATORW)(LPGOPHER_ATTRIBUTE_TYPEW ,DWORD);
931
932DECL_WINELIB_TYPE_AW(GOPHER_ATTRIBUTE_ENUMERATOR)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000933
934BOOLAPI GopherGetAttributeA(HINTERNET ,LPCSTR ,LPCSTR lpszAttributeName ,LPBYTE ,
Francois Gouget8c752fd2000-12-07 23:14:29 +0000935 DWORD ,LPDWORD ,GOPHER_ATTRIBUTE_ENUMERATORA lpfnEnumerator ,DWORD);
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000936BOOLAPI GopherGetAttributeW(HINTERNET ,LPCWSTR ,LPCWSTR lpszAttributeName ,LPBYTE ,
Francois Gouget8c752fd2000-12-07 23:14:29 +0000937 DWORD ,LPDWORD ,GOPHER_ATTRIBUTE_ENUMERATORW lpfnEnumerator ,DWORD);
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000938#define GopherGetAttribute WINELIB_NAME_AW(GopherGetAttribute)
Francois Gouget8c752fd2000-12-07 23:14:29 +0000939
Alexandre Julliard819fa8c2000-04-11 20:07:00 +0000940#define HTTP_MAJOR_VERSION 1
941#define HTTP_MINOR_VERSION 0
942#define HTTP_VERSION TEXT("HTTP/1.0")
943#define HTTP_QUERY_MIME_VERSION 0
944#define HTTP_QUERY_CONTENT_TYPE 1
945#define HTTP_QUERY_CONTENT_TRANSFER_ENCODING 2
946#define HTTP_QUERY_CONTENT_ID 3
947#define HTTP_QUERY_CONTENT_DESCRIPTION 4
948#define HTTP_QUERY_CONTENT_LENGTH 5
949#define HTTP_QUERY_CONTENT_LANGUAGE 6
950#define HTTP_QUERY_ALLOW 7
951#define HTTP_QUERY_PUBLIC 8
952#define HTTP_QUERY_DATE 9
953#define HTTP_QUERY_EXPIRES 10
954#define HTTP_QUERY_LAST_MODIFIED 11
955#define HTTP_QUERY_MESSAGE_ID 12
956#define HTTP_QUERY_URI 13
957#define HTTP_QUERY_DERIVED_FROM 14
958#define HTTP_QUERY_COST 15
959#define HTTP_QUERY_LINK 16
960#define HTTP_QUERY_PRAGMA 17
961#define HTTP_QUERY_VERSION 18
962#define HTTP_QUERY_STATUS_CODE 19
963#define HTTP_QUERY_STATUS_TEXT 20
964#define HTTP_QUERY_RAW_HEADERS 21
965#define HTTP_QUERY_RAW_HEADERS_CRLF 22
966#define HTTP_QUERY_CONNECTION 23
967#define HTTP_QUERY_ACCEPT 24
968#define HTTP_QUERY_ACCEPT_CHARSET 25
969#define HTTP_QUERY_ACCEPT_ENCODING 26
970#define HTTP_QUERY_ACCEPT_LANGUAGE 27
971#define HTTP_QUERY_AUTHORIZATION 28
972#define HTTP_QUERY_CONTENT_ENCODING 29
973#define HTTP_QUERY_FORWARDED 30
974#define HTTP_QUERY_FROM 31
975#define HTTP_QUERY_IF_MODIFIED_SINCE 32
976#define HTTP_QUERY_LOCATION 33
977#define HTTP_QUERY_ORIG_URI 34
978#define HTTP_QUERY_REFERER 35
979#define HTTP_QUERY_RETRY_AFTER 36
980#define HTTP_QUERY_SERVER 37
981#define HTTP_QUERY_TITLE 38
982#define HTTP_QUERY_USER_AGENT 39
983#define HTTP_QUERY_WWW_AUTHENTICATE 40
984#define HTTP_QUERY_PROXY_AUTHENTICATE 41
985#define HTTP_QUERY_ACCEPT_RANGES 42
986#define HTTP_QUERY_SET_COOKIE 43
987#define HTTP_QUERY_COOKIE 44
988#define HTTP_QUERY_REQUEST_METHOD 45
989#define HTTP_QUERY_REFRESH 46
990#define HTTP_QUERY_CONTENT_DISPOSITION 47
991#define HTTP_QUERY_AGE 48
992#define HTTP_QUERY_CACHE_CONTROL 49
993#define HTTP_QUERY_CONTENT_BASE 50
994#define HTTP_QUERY_CONTENT_LOCATION 51
995#define HTTP_QUERY_CONTENT_MD5 52
996#define HTTP_QUERY_CONTENT_RANGE 53
997#define HTTP_QUERY_ETAG 54
998#define HTTP_QUERY_HOST 55
999#define HTTP_QUERY_IF_MATCH 56
1000#define HTTP_QUERY_IF_NONE_MATCH 57
1001#define HTTP_QUERY_IF_RANGE 58
1002#define HTTP_QUERY_IF_UNMODIFIED_SINCE 59
1003#define HTTP_QUERY_MAX_FORWARDS 60
1004#define HTTP_QUERY_PROXY_AUTHORIZATION 61
1005#define HTTP_QUERY_RANGE 62
1006#define HTTP_QUERY_TRANSFER_ENCODING 63
1007#define HTTP_QUERY_UPGRADE 64
1008#define HTTP_QUERY_VARY 65
1009#define HTTP_QUERY_VIA 66
1010#define HTTP_QUERY_WARNING 67
1011#define HTTP_QUERY_MAX 67
1012#define HTTP_QUERY_CUSTOM 65535
1013#define HTTP_QUERY_FLAG_REQUEST_HEADERS 0x80000000
1014#define HTTP_QUERY_FLAG_SYSTEMTIME 0x40000000
1015#define HTTP_QUERY_FLAG_NUMBER 0x20000000
1016#define HTTP_QUERY_FLAG_COALESCE 0x10000000
1017#define HTTP_QUERY_MODIFIER_FLAGS_MASK (HTTP_QUERY_FLAG_REQUEST_HEADERS \
1018 | HTTP_QUERY_FLAG_SYSTEMTIME \
1019 | HTTP_QUERY_FLAG_NUMBER \
1020 | HTTP_QUERY_FLAG_COALESCE \
1021 )
1022#define HTTP_QUERY_HEADER_MASK (~HTTP_QUERY_MODIFIER_FLAGS_MASK)
1023
1024#define HTTP_STATUS_CONTINUE 100
1025#define HTTP_STATUS_SWITCH_PROTOCOLS 101
1026#define HTTP_STATUS_OK 200
1027#define HTTP_STATUS_CREATED 201
1028#define HTTP_STATUS_ACCEPTED 202
1029#define HTTP_STATUS_PARTIAL 203
1030#define HTTP_STATUS_NO_CONTENT 204
1031#define HTTP_STATUS_RESET_CONTENT 205
1032#define HTTP_STATUS_PARTIAL_CONTENT 206
1033#define HTTP_STATUS_AMBIGUOUS 300
1034#define HTTP_STATUS_MOVED 301
1035#define HTTP_STATUS_REDIRECT 302
1036#define HTTP_STATUS_REDIRECT_METHOD 303
1037#define HTTP_STATUS_NOT_MODIFIED 304
1038#define HTTP_STATUS_USE_PROXY 305
1039#define HTTP_STATUS_REDIRECT_KEEP_VERB 307
1040#define HTTP_STATUS_BAD_REQUEST 400
1041#define HTTP_STATUS_DENIED 401
1042#define HTTP_STATUS_PAYMENT_REQ 402
1043#define HTTP_STATUS_FORBIDDEN 403
1044#define HTTP_STATUS_NOT_FOUND 404
1045#define HTTP_STATUS_BAD_METHOD 405
1046#define HTTP_STATUS_NONE_ACCEPTABLE 406
1047#define HTTP_STATUS_PROXY_AUTH_REQ 407
1048#define HTTP_STATUS_REQUEST_TIMEOUT 408
1049#define HTTP_STATUS_CONFLICT 409
1050#define HTTP_STATUS_GONE 410
1051#define HTTP_STATUS_LENGTH_REQUIRED 411
1052#define HTTP_STATUS_PRECOND_FAILED 412
1053#define HTTP_STATUS_REQUEST_TOO_LARGE 413
1054#define HTTP_STATUS_URI_TOO_LONG 414
1055#define HTTP_STATUS_UNSUPPORTED_MEDIA 415
1056#define HTTP_STATUS_SERVER_ERROR 500
1057#define HTTP_STATUS_NOT_SUPPORTED 501
1058#define HTTP_STATUS_BAD_GATEWAY 502
1059#define HTTP_STATUS_SERVICE_UNAVAIL 503
1060#define HTTP_STATUS_GATEWAY_TIMEOUT 504
1061#define HTTP_STATUS_VERSION_NOT_SUP 505
1062#define HTTP_STATUS_FIRST HTTP_STATUS_CONTINUE
1063#define HTTP_STATUS_LAST HTTP_STATUS_VERSION_NOT_SUP
1064
1065
1066INTERNETAPI HINTERNET WINAPI HttpOpenRequestA(HINTERNET ,LPCSTR ,LPCSTR ,LPCSTR ,
1067 LPCSTR lpszReferrer ,LPCSTR * ,DWORD ,DWORD);
1068INTERNETAPI HINTERNET WINAPI HttpOpenRequestW(HINTERNET ,LPCWSTR ,LPCWSTR ,LPCWSTR ,
1069 LPCWSTR lpszReferrer ,LPCWSTR * ,DWORD ,DWORD);
1070#define HttpOpenRequest WINELIB_NAME_AW(HttpOpenRequest)
1071
1072BOOLAPI HttpAddRequestHeadersA(HINTERNET ,LPCSTR ,DWORD ,DWORD);
1073BOOLAPI HttpAddRequestHeadersW(HINTERNET ,LPCWSTR ,DWORD ,DWORD);
1074#define HttpAddRequestHeaders WINELIB_NAME_AW(HttpAddRequestHeaders)
1075
1076#define HTTP_ADDREQ_INDEX_MASK 0x0000FFFF
1077#define HTTP_ADDREQ_FLAGS_MASK 0xFFFF0000
1078#define HTTP_ADDREQ_FLAG_ADD_IF_NEW 0x10000000
1079#define HTTP_ADDREQ_FLAG_ADD 0x20000000
1080#define HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA 0x40000000
1081#define HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON 0x01000000
1082#define HTTP_ADDREQ_FLAG_COALESCE HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA
1083#define HTTP_ADDREQ_FLAG_REPLACE 0x80000000
1084
1085BOOLAPI HttpSendRequestA(HINTERNET ,LPCSTR lpszHeaders ,DWORD ,LPVOID lpOptional ,DWORD);
1086BOOLAPI HttpSendRequestW(HINTERNET ,LPCWSTR lpszHeaders ,DWORD ,LPVOID lpOptional ,DWORD);
1087#define HttpSendRequest WINELIB_NAME_AW(HttpSendRequest)
1088
1089INTERNETAPI BOOL WINAPI HttpSendRequestExA(HINTERNET ,LPINTERNET_BUFFERSA lpBuffersIn ,
1090 LPINTERNET_BUFFERSA lpBuffersOut ,DWORD ,DWORD);
1091INTERNETAPI BOOL WINAPI HttpSendRequestExW(HINTERNET ,LPINTERNET_BUFFERSW lpBuffersIn ,
1092 LPINTERNET_BUFFERSW lpBuffersOut ,DWORD ,DWORD);
1093#define HttpSendRequestEx WINELIB_NAME_AW(HttpSendRequestEx)
1094
1095#define HSR_ASYNC WININET_API_FLAG_ASYNC
1096#define HSR_SYNC WININET_API_FLAG_SYNC
1097#define HSR_USE_CONTEXT WININET_API_FLAG_USE_CONTEXT
1098#define HSR_INITIATE 0x00000008
1099#define HSR_DOWNLOAD 0x00000010
1100#define HSR_CHUNKED 0x00000020
1101
1102INTERNETAPI BOOL WINAPI HttpEndRequestA(HINTERNET ,LPINTERNET_BUFFERSA lpBuffersOut ,DWORD ,DWORD);
1103INTERNETAPI BOOL WINAPI HttpEndRequestW(HINTERNET ,LPINTERNET_BUFFERSW lpBuffersOut ,DWORD ,DWORD);
1104#define HttpEndRequest WINELIB_NAME_AW(HttpEndRequest)
1105
1106BOOLAPI HttpQueryInfoA(HINTERNET ,DWORD ,LPVOID lpBuffer ,LPDWORD ,LPDWORD lpdwIndex);
1107BOOLAPI HttpQueryInfoW(HINTERNET ,DWORD ,LPVOID lpBuffer ,LPDWORD ,LPDWORD lpdwIndex);
1108#define HttpQueryInfo WINELIB_NAME_AW(HttpQueryInfo)
1109
1110BOOLAPI InternetSetCookieA(LPCSTR ,LPCSTR ,LPCSTR);
1111BOOLAPI InternetSetCookieW(LPCSTR ,LPCWSTR ,LPCWSTR);
1112#define InternetSetCookie WINELIB_NAME_AW(InternetSetCookie)
1113
1114BOOLAPI InternetGetCookieA(LPCSTR ,LPCSTR ,LPSTR ,LPDWORD);
1115BOOLAPI InternetGetCookieW(LPCSTR ,LPCWSTR ,LPWSTR ,LPDWORD);
1116#define InternetGetCookie WINELIB_NAME_AW(InternetGetCookie)
1117
1118INTERNETAPI DWORD WINAPI InternetAttemptConnect(DWORD);
1119BOOLAPI InternetCheckConnectionA(LPCSTR ,DWORD ,DWORD);
1120BOOLAPI InternetCheckConnectionW(LPCWSTR ,DWORD ,DWORD);
1121#define InternetCheckConnection WINELIB_NAME_AW(InternetCheckConnection)
1122
1123#define FLAG_ICC_FORCE_CONNECTION 0x00000001
1124
1125#define FLAGS_ERROR_UI_FILTER_FOR_ERRORS 0x01
1126#define FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS 0x02
1127#define FLAGS_ERROR_UI_FLAGS_GENERATE_DATA 0x04
1128#define FLAGS_ERROR_UI_FLAGS_NO_UI 0x08
1129#define FLAGS_ERROR_UI_SERIALIZE_DIALOGS 0x10
1130
1131DWORD InternetAuthNotifyCallback ( DWORD ,DWORD ,LPVOID );
Francois Gougetae41e8c2000-06-11 20:07:58 +00001132typedef DWORD CALLBACK (*PFN_AUTH_NOTIFY) (DWORD,DWORD,LPVOID);
Alexandre Julliard819fa8c2000-04-11 20:07:00 +00001133
1134typedef struct
1135{
1136 DWORD cbStruct;
1137 DWORD dwOptions;
1138 PFN_AUTH_NOTIFY pfnNotify;
1139 DWORD dwContext;
1140}
1141INTERNET_AUTH_NOTIFY_DATA;
1142
1143
1144INTERNETAPI DWORD WINAPI InternetErrorDlg(HWND ,HINTERNET ,DWORD ,DWORD ,LPVOID *);
1145INTERNETAPI DWORD WINAPI InternetConfirmZoneCrossingA(HWND ,LPSTR ,LPSTR ,BOOL);
1146INTERNETAPI DWORD WINAPI InternetConfirmZoneCrossingW(HWND ,LPWSTR ,LPWSTR ,BOOL);
1147#define InternetConfirmZoneCrossing WINELIB_NAME_AW(InternetConfirmZoneCrossing)
1148
1149#define INTERNET_ERROR_BASE 12000
1150
1151#define ERROR_INTERNET_OUT_OF_HANDLES (INTERNET_ERROR_BASE + 1)
1152#define ERROR_INTERNET_TIMEOUT (INTERNET_ERROR_BASE + 2)
1153#define ERROR_INTERNET_EXTENDED_ERROR (INTERNET_ERROR_BASE + 3)
1154#define ERROR_INTERNET_INTERNAL_ERROR (INTERNET_ERROR_BASE + 4)
1155#define ERROR_INTERNET_INVALID_URL (INTERNET_ERROR_BASE + 5)
1156#define ERROR_INTERNET_UNRECOGNIZED_SCHEME (INTERNET_ERROR_BASE + 6)
1157#define ERROR_INTERNET_NAME_NOT_RESOLVED (INTERNET_ERROR_BASE + 7)
1158#define ERROR_INTERNET_PROTOCOL_NOT_FOUND (INTERNET_ERROR_BASE + 8)
1159#define ERROR_INTERNET_INVALID_OPTION (INTERNET_ERROR_BASE + 9)
1160#define ERROR_INTERNET_BAD_OPTION_LENGTH (INTERNET_ERROR_BASE + 10)
1161#define ERROR_INTERNET_OPTION_NOT_SETTABLE (INTERNET_ERROR_BASE + 11)
1162#define ERROR_INTERNET_SHUTDOWN (INTERNET_ERROR_BASE + 12)
1163#define ERROR_INTERNET_INCORRECT_USER_NAME (INTERNET_ERROR_BASE + 13)
1164#define ERROR_INTERNET_INCORRECT_PASSWORD (INTERNET_ERROR_BASE + 14)
1165#define ERROR_INTERNET_LOGIN_FAILURE (INTERNET_ERROR_BASE + 15)
1166#define ERROR_INTERNET_INVALID_OPERATION (INTERNET_ERROR_BASE + 16)
1167#define ERROR_INTERNET_OPERATION_CANCELLED (INTERNET_ERROR_BASE + 17)
1168#define ERROR_INTERNET_INCORRECT_HANDLE_TYPE (INTERNET_ERROR_BASE + 18)
1169#define ERROR_INTERNET_INCORRECT_HANDLE_STATE (INTERNET_ERROR_BASE + 19)
1170#define ERROR_INTERNET_NOT_PROXY_REQUEST (INTERNET_ERROR_BASE + 20)
1171#define ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND (INTERNET_ERROR_BASE + 21)
1172#define ERROR_INTERNET_BAD_REGISTRY_PARAMETER (INTERNET_ERROR_BASE + 22)
1173#define ERROR_INTERNET_NO_DIRECT_ACCESS (INTERNET_ERROR_BASE + 23)
1174#define ERROR_INTERNET_NO_CONTEXT (INTERNET_ERROR_BASE + 24)
1175#define ERROR_INTERNET_NO_CALLBACK (INTERNET_ERROR_BASE + 25)
1176#define ERROR_INTERNET_REQUEST_PENDING (INTERNET_ERROR_BASE + 26)
1177#define ERROR_INTERNET_INCORRECT_FORMAT (INTERNET_ERROR_BASE + 27)
1178#define ERROR_INTERNET_ITEM_NOT_FOUND (INTERNET_ERROR_BASE + 28)
1179#define ERROR_INTERNET_CANNOT_CONNECT (INTERNET_ERROR_BASE + 29)
1180#define ERROR_INTERNET_CONNECTION_ABORTED (INTERNET_ERROR_BASE + 30)
1181#define ERROR_INTERNET_CONNECTION_RESET (INTERNET_ERROR_BASE + 31)
1182#define ERROR_INTERNET_FORCE_RETRY (INTERNET_ERROR_BASE + 32)
1183#define ERROR_INTERNET_INVALID_PROXY_REQUEST (INTERNET_ERROR_BASE + 33)
1184#define ERROR_INTERNET_NEED_UI (INTERNET_ERROR_BASE + 34)
1185#define ERROR_INTERNET_HANDLE_EXISTS (INTERNET_ERROR_BASE + 36)
1186#define ERROR_INTERNET_SEC_CERT_DATE_INVALID (INTERNET_ERROR_BASE + 37)
1187#define ERROR_INTERNET_SEC_CERT_CN_INVALID (INTERNET_ERROR_BASE + 38)
1188#define ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR (INTERNET_ERROR_BASE + 39)
1189#define ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR (INTERNET_ERROR_BASE + 40)
1190#define ERROR_INTERNET_MIXED_SECURITY (INTERNET_ERROR_BASE + 41)
1191#define ERROR_INTERNET_CHG_POST_IS_NON_SECURE (INTERNET_ERROR_BASE + 42)
1192#define ERROR_INTERNET_POST_IS_NON_SECURE (INTERNET_ERROR_BASE + 43)
1193#define ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED (INTERNET_ERROR_BASE + 44)
1194#define ERROR_INTERNET_INVALID_CA (INTERNET_ERROR_BASE + 45)
1195#define ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP (INTERNET_ERROR_BASE + 46)
1196#define ERROR_INTERNET_ASYNC_THREAD_FAILED (INTERNET_ERROR_BASE + 47)
1197#define ERROR_INTERNET_REDIRECT_SCHEME_CHANGE (INTERNET_ERROR_BASE + 48)
1198#define ERROR_INTERNET_DIALOG_PENDING (INTERNET_ERROR_BASE + 49)
1199#define ERROR_INTERNET_RETRY_DIALOG (INTERNET_ERROR_BASE + 50)
1200#define ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR (INTERNET_ERROR_BASE + 52)
1201#define ERROR_INTERNET_INSERT_CDROM (INTERNET_ERROR_BASE + 53)
1202#define ERROR_FTP_TRANSFER_IN_PROGRESS (INTERNET_ERROR_BASE + 110)
1203#define ERROR_FTP_DROPPED (INTERNET_ERROR_BASE + 111)
1204#define ERROR_FTP_NO_PASSIVE_MODE (INTERNET_ERROR_BASE + 112)
1205#define ERROR_GOPHER_PROTOCOL_ERROR (INTERNET_ERROR_BASE + 130)
1206#define ERROR_GOPHER_NOT_FILE (INTERNET_ERROR_BASE + 131)
1207#define ERROR_GOPHER_DATA_ERROR (INTERNET_ERROR_BASE + 132)
1208#define ERROR_GOPHER_END_OF_DATA (INTERNET_ERROR_BASE + 133)
1209#define ERROR_GOPHER_INVALID_LOCATOR (INTERNET_ERROR_BASE + 134)
1210#define ERROR_GOPHER_INCORRECT_LOCATOR_TYPE (INTERNET_ERROR_BASE + 135)
1211#define ERROR_GOPHER_NOT_GOPHER_PLUS (INTERNET_ERROR_BASE + 136)
1212#define ERROR_GOPHER_ATTRIBUTE_NOT_FOUND (INTERNET_ERROR_BASE + 137)
1213#define ERROR_GOPHER_UNKNOWN_LOCATOR (INTERNET_ERROR_BASE + 138)
1214#define ERROR_HTTP_HEADER_NOT_FOUND (INTERNET_ERROR_BASE + 150)
1215#define ERROR_HTTP_DOWNLEVEL_SERVER (INTERNET_ERROR_BASE + 151)
1216#define ERROR_HTTP_INVALID_SERVER_RESPONSE (INTERNET_ERROR_BASE + 152)
1217#define ERROR_HTTP_INVALID_HEADER (INTERNET_ERROR_BASE + 153)
1218#define ERROR_HTTP_INVALID_QUERY_REQUEST (INTERNET_ERROR_BASE + 154)
1219#define ERROR_HTTP_HEADER_ALREADY_EXISTS (INTERNET_ERROR_BASE + 155)
1220#define ERROR_HTTP_REDIRECT_FAILED (INTERNET_ERROR_BASE + 156)
1221#define ERROR_HTTP_NOT_REDIRECTED (INTERNET_ERROR_BASE + 160)
1222#define ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION (INTERNET_ERROR_BASE + 161)
1223#define ERROR_HTTP_COOKIE_DECLINED (INTERNET_ERROR_BASE + 162)
1224#define ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION (INTERNET_ERROR_BASE + 168)
1225#define ERROR_INTERNET_SECURITY_CHANNEL_ERROR (INTERNET_ERROR_BASE + 157)
1226#define ERROR_INTERNET_UNABLE_TO_CACHE_FILE (INTERNET_ERROR_BASE + 158)
1227#define ERROR_INTERNET_TCPIP_NOT_INSTALLED (INTERNET_ERROR_BASE + 159)
1228#define ERROR_INTERNET_DISCONNECTED (INTERNET_ERROR_BASE + 163)
1229#define ERROR_INTERNET_SERVER_UNREACHABLE (INTERNET_ERROR_BASE + 164)
1230#define ERROR_INTERNET_PROXY_SERVER_UNREACHABLE (INTERNET_ERROR_BASE + 165)
1231#define ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT (INTERNET_ERROR_BASE + 166)
1232#define ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT (INTERNET_ERROR_BASE + 167)
1233#define ERROR_INTERNET_SEC_INVALID_CERT (INTERNET_ERROR_BASE + 169)
1234#define ERROR_INTERNET_SEC_CERT_REVOKED (INTERNET_ERROR_BASE + 170)
1235#define ERROR_INTERNET_FAILED_DUETOSECURITYCHECK (INTERNET_ERROR_BASE + 171)
1236#define INTERNET_ERROR_LAST ERROR_INTERNET_FAILED_DUETOSECURITYCHECK
1237
1238
1239#define NORMAL_CACHE_ENTRY 0x00000001
1240#define COOKIE_CACHE_ENTRY 0x00100000
1241#define URLHISTORY_CACHE_ENTRY 0x00200000
1242#define TRACK_OFFLINE_CACHE_ENTRY 0x00000010
1243#define TRACK_ONLINE_CACHE_ENTRY 0x00000020
1244#define STICKY_CACHE_ENTRY 0x00000004
1245#define SPARSE_CACHE_ENTRY 0x00010000
1246
1247#define URLCACHE_FIND_DEFAULT_FILTER NORMAL_CACHE_ENTRY \
1248 | COOKIE_CACHE_ENTRY \
1249 | URLHISTORY_CACHE_ENTRY \
1250 | TRACK_OFFLINE_CACHE_ENTRY \
1251 | TRACK_ONLINE_CACHE_ENTRY \
1252 | STICKY_CACHE_ENTRY
1253
1254
1255typedef struct _INTERNET_CACHE_ENTRY_INFOA {
1256 DWORD dwStructSize;
1257 LPSTR lpszSourceUrlName;
1258 LPSTR lpszLocalFileName;
1259 DWORD CacheEntryType;
1260 DWORD dwUseCount;
1261 DWORD dwHitRate;
1262 DWORD dwSizeLow;
1263 DWORD dwSizeHigh;
1264 FILETIME LastModifiedTime;
1265 FILETIME ExpireTime;
1266 FILETIME LastAccessTime;
1267 FILETIME LastSyncTime;
1268
1269 LPBYTE lpHeaderInfo;
1270 DWORD dwHeaderInfoSize;
1271 LPSTR lpszFileExtension;
1272 union {
1273 DWORD dwReserved;
1274 DWORD dwExemptDelta;
1275 } u;
1276} INTERNET_CACHE_ENTRY_INFOA,* LPINTERNET_CACHE_ENTRY_INFOA;
1277
1278typedef struct _INTERNET_CACHE_ENTRY_INFOW {
1279 DWORD dwStructSize;
1280 LPWSTR lpszSourceUrlName;
1281 LPWSTR lpszLocalFileName;
1282 DWORD CacheEntryType;
1283 DWORD dwUseCount;
1284 DWORD dwHitRate;
1285 DWORD dwSizeLow;
1286 DWORD dwSizeHigh;
1287 FILETIME LastModifiedTime;
1288 FILETIME ExpireTime;
1289 FILETIME LastAccessTime;
1290 FILETIME LastSyncTime;
1291
1292 LPBYTE lpHeaderInfo;
1293 DWORD dwHeaderInfoSize;
1294 LPWSTR lpszFileExtension;
1295 union {
1296 DWORD dwReserved;
1297 DWORD dwExemptDelta;
1298 } u;
1299} INTERNET_CACHE_ENTRY_INFOW,* LPINTERNET_CACHE_ENTRY_INFOW;
1300
1301DECL_WINELIB_TYPE_AW(INTERNET_CACHE_ENTRY_INFO)
1302DECL_WINELIB_TYPE_AW(LPINTERNET_CACHE_ENTRY_INFO)
1303
1304BOOLAPI CreateUrlCacheEntryA(LPCSTR ,DWORD ,LPCSTR ,LPSTR ,DWORD);
1305BOOLAPI CreateUrlCacheEntryW(LPCSTR ,DWORD ,LPCSTR ,LPWSTR ,DWORD);
1306#define CreateUrlCacheEntry WINELIB_NAME_AW(CreateUrlCacheEntry)
1307
1308BOOLAPI CommitUrlCacheEntryA(LPCSTR ,LPCSTR ,FILETIME ,FILETIME ,DWORD ,LPBYTE ,DWORD ,LPCSTR ,DWORD);
1309BOOLAPI CommitUrlCacheEntryW(LPCSTR ,LPCWSTR ,FILETIME ,FILETIME ,DWORD ,LPBYTE ,DWORD ,LPCWSTR ,DWORD);
1310#define CommitUrlCacheEntry WINELIB_NAME_AW(CommitUrlCacheEntry)
1311
1312BOOLAPI RetrieveUrlCacheEntryFileA(LPCSTR ,LPINTERNET_CACHE_ENTRY_INFOA ,LPDWORD ,DWORD);
1313BOOLAPI RetrieveUrlCacheEntryFileW(LPCSTR ,LPINTERNET_CACHE_ENTRY_INFOW ,LPDWORD ,DWORD);
1314#define RetrieveUrlCacheEntryFile WINELIB_NAME_AW(RetrieveUrlCacheEntryFile)
1315
1316BOOLAPI UnlockUrlCacheEntryFile(LPCSTR ,DWORD);
1317
1318INTERNETAPI HANDLE WINAPI RetrieveUrlCacheEntryStreamA(LPCSTR ,
1319 LPINTERNET_CACHE_ENTRY_INFOA , LPDWORD ,BOOL ,DWORD);
1320INTERNETAPI HANDLE WINAPI RetrieveUrlCacheEntryStreamW(LPCSTR ,LPINTERNET_CACHE_ENTRY_INFOW ,
1321 LPDWORD ,BOOL ,DWORD);
1322#define RetrieveUrlCacheEntryStream WINELIB_NAME_AW(RetrieveUrlCacheEntryStream)
1323
1324BOOLAPI ReadUrlCacheEntryStream( HANDLE ,DWORD ,LPVOID ,LPDWORD ,DWORD );
1325BOOLAPI UnlockUrlCacheEntryStream( HANDLE ,DWORD );
1326BOOLAPI GetUrlCacheEntryInfoA(LPCSTR ,LPINTERNET_CACHE_ENTRY_INFOA ,LPDWORD);
1327BOOLAPI GetUrlCacheEntryInfoW(LPCSTR ,LPINTERNET_CACHE_ENTRY_INFOW ,LPDWORD);
1328#define GetUrlCacheEntryInfo WINELIB_NAME_AW(GetUrlCacheEntryInfo)
1329
1330BOOLAPI GetUrlCacheEntryInfoExA(
1331 LPCSTR ,LPINTERNET_CACHE_ENTRY_INFOA ,LPDWORD ,LPSTR ,LPDWORD ,LPVOID ,DWORD);
1332BOOLAPI GetUrlCacheEntryInfoExW(
1333 LPCSTR ,LPINTERNET_CACHE_ENTRY_INFOW ,LPDWORD ,LPWSTR ,LPDWORD ,LPVOID ,DWORD);
1334#define GetUrlCacheEntryInfoEx WINELIB_NAME_AW(GetUrlCacheEntryInfoEx)
1335
1336#define CACHE_ENTRY_ATTRIBUTE_FC 0x00000004
1337#define CACHE_ENTRY_HITRATE_FC 0x00000010
1338#define CACHE_ENTRY_MODTIME_FC 0x00000040
1339#define CACHE_ENTRY_EXPTIME_FC 0x00000080
1340#define CACHE_ENTRY_ACCTIME_FC 0x00000100
1341#define CACHE_ENTRY_SYNCTIME_FC 0x00000200
1342#define CACHE_ENTRY_HEADERINFO_FC 0x00000400
1343#define CACHE_ENTRY_EXEMPT_DELTA_FC 0x00000800
1344
1345
1346BOOLAPI SetUrlCacheEntryInfoA(LPCSTR ,LPINTERNET_CACHE_ENTRY_INFOA ,DWORD);
1347BOOLAPI SetUrlCacheEntryInfoW(LPCSTR ,LPINTERNET_CACHE_ENTRY_INFOW ,DWORD);
1348#define SetUrlCacheEntryInfo WINELIB_NAME_AW(SetUrlCacheEntryInfo)
1349
1350typedef LONGLONG GROUPID;
1351INTERNETAPI GROUPID WINAPI CreateUrlCacheGroup(DWORD ,LPVOID);
1352BOOLAPI DeleteUrlCacheGroup(GROUPID ,DWORD ,LPVOID);
1353
1354#define INTERNET_CACHE_GROUP_ADD 0
1355#define INTERNET_CACHE_GROUP_REMOVE 1
1356
1357BOOLAPI SetUrlCacheEntryGroup(LPCSTR ,DWORD ,GROUPID ,LPBYTE ,DWORD ,LPVOID);
1358
1359INTERNETAPI HANDLE WINAPI FindFirstUrlCacheEntryExA(
1360 LPCSTR ,DWORD ,DWORD ,GROUPID ,LPINTERNET_CACHE_ENTRY_INFOA ,LPDWORD ,LPVOID ,LPDWORD ,LPVOID );
1361INTERNETAPI HANDLE WINAPI FindFirstUrlCacheEntryExW(
1362 LPCSTR ,DWORD ,DWORD ,GROUPID ,LPINTERNET_CACHE_ENTRY_INFOW ,LPDWORD ,LPVOID ,LPDWORD ,LPVOID );
1363#define FindFirstUrlCacheEntryEx WINELIB_NAME_AW(FindFirstUrlCacheEntryEx)
1364
1365BOOLAPI FindNextUrlCacheEntryExA(HANDLE ,LPINTERNET_CACHE_ENTRY_INFOA ,LPDWORD ,LPVOID ,LPDWORD ,LPVOID);
1366BOOLAPI FindNextUrlCacheEntryExW(HANDLE ,LPINTERNET_CACHE_ENTRY_INFOW ,LPDWORD ,LPVOID ,LPDWORD ,LPVOID);
1367#define FindNextUrlCacheEntryEx WINELIB_NAME_AW(FindNextUrlCacheEntryEx)
1368
1369INTERNETAPI HANDLE WINAPI FindFirstUrlCacheEntryA(LPCSTR ,LPINTERNET_CACHE_ENTRY_INFOA ,LPDWORD);
1370INTERNETAPI HANDLE WINAPI FindFirstUrlCacheEntryW(LPCSTR ,LPINTERNET_CACHE_ENTRY_INFOW ,LPDWORD);
1371#define FindFirstUrlCacheEntry WINELIB_NAME_AW(FindFirstUrlCacheEntry)
1372
1373BOOLAPI FindNextUrlCacheEntryA(HANDLE ,LPINTERNET_CACHE_ENTRY_INFOA ,LPDWORD);
1374BOOLAPI FindNextUrlCacheEntryW(HANDLE ,LPINTERNET_CACHE_ENTRY_INFOW ,LPDWORD);
1375#define FindNextUrlCacheEntry WINELIB_NAME_AW(FindNextUrlCacheEntry)
1376
1377
1378BOOLAPI FindCloseUrlCache(HANDLE);
1379BOOLAPI DeleteUrlCacheEntry(LPCSTR);
1380
1381INTERNETAPI DWORD WINAPI InternetDialA(HWND ,LPSTR ,DWORD ,LPDWORD ,DWORD);
1382INTERNETAPI DWORD WINAPI InternetDialW(HWND ,LPWSTR ,DWORD ,LPDWORD ,DWORD);
1383#define InternetDial WINELIB_NAME_AW(InternetDial)
1384
1385
1386#define INTERNET_DIAL_UNATTENDED 0x8000
1387
1388INTERNETAPI DWORD WINAPI InternetHangUp(DWORD ,DWORD);
1389
1390#define INTERENT_GOONLINE_REFRESH 0x00000001
1391#define INTERENT_GOONLINE_MASK 0x00000001
1392INTERNETAPI BOOL WINAPI InternetGoOnlineA(LPSTR ,HWND ,DWORD);
1393INTERNETAPI BOOL WINAPI InternetGoOnlineW(LPWSTR ,HWND ,DWORD);
1394#define InternetGoOnline WINELIB_NAME_AW(InternetGoOnline)
1395INTERNETAPI BOOL WINAPI InternetAutodial(DWORD ,DWORD);
1396
1397#define INTERNET_AUTODIAL_FORCE_ONLINE 1
1398#define INTERNET_AUTODIAL_FORCE_UNATTENDED 2
1399#define INTERNET_AUTODIAL_FAILIFSECURITYCHECK 4
1400
1401#define INTERNET_AUTODIAL_FLAGS_MASK (INTERNET_AUTODIAL_FORCE_ONLINE | INTERNET_AUTODIAL_FORCE_UNATTENDED | INTERNET_AUTODIAL_FAILIFSECURITYCHECK)
1402INTERNETAPI BOOL WINAPI InternetAutodialHangup(DWORD);
1403INTERNETAPI BOOL WINAPI InternetGetConnectedState(LPDWORD ,DWORD);
1404
1405#define INTERNET_CONNECTION_MODEM 1
1406#define INTERNET_CONNECTION_LAN 2
1407#define INTERNET_CONNECTION_PROXY 4
1408#define INTERNET_CONNECTION_MODEM_BUSY 8
1409
Francois Gougetae41e8c2000-06-11 20:07:58 +00001410typedef DWORD CALLBACK (*PFN_DIAL_HANDLER) (HWND,LPCSTR,DWORD,LPDWORD);
Alexandre Julliard819fa8c2000-04-11 20:07:00 +00001411
1412#define INTERNET_CUSTOMDIAL_CONNECT 0
1413#define INTERNET_CUSTOMDIAL_UNATTENDED 1
1414#define INTERNET_CUSTOMDIAL_DISCONNECT 2
1415#define INTERNET_CUSTOMDIAL_SHOWOFFLINE 4
1416#define INTERNET_CUSTOMDIAL_SAFE_FOR_UNATTENDED 1
1417#define INTERNET_CUSTOMDIAL_WILL_SUPPLY_STATE 2
1418#define INTERNET_CUSTOMDIAL_CAN_HANGUP 4
1419
1420INTERNETAPI BOOL WINAPI InternetSetDialStateA(LPCSTR ,DWORD ,DWORD);
1421INTERNETAPI BOOL WINAPI InternetSetDialStateW(LPCWSTR ,DWORD ,DWORD);
1422#define InternetSetDialState WINELIB_NAME_AW(InternetSetDialState)
Alexandre Julliard819fa8c2000-04-11 20:07:00 +00001423#define INTERNET_DIALSTATE_DISCONNECTED 1
1424
Marcus Meissner7466d9b2000-06-23 15:30:50 +00001425BOOLAPI InternetCheckConnectionA(LPCSTR lpszUrl,DWORD dwFlags,DWORD dwReserved);
1426BOOLAPI InternetCheckConnectionW(LPCWSTR lpszUrl,DWORD dwFlags,DWORD dwReserved);
1427#define InternetCheckConnection WINELIB_NAME_AW(InternetCheckConnection)
1428
Francois Gouget00628922000-10-19 20:32:18 +00001429#ifdef __cplusplus
Alexandre Julliard819fa8c2000-04-11 20:07:00 +00001430}
1431#endif
1432
1433#endif