ReactOS 0.4.17-dev-1190-g4c812f4
internet.h
Go to the documentation of this file.
1/*
2 * Wininet
3 *
4 * Copyright 1999 Corel Corporation
5 *
6 * Ulrich Czekalla
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 */
22
23#ifndef _WINE_INTERNET_H_
24#define _WINE_INTERNET_H_
25
26#include "wine/list.h"
27
28#include <time.h>
29
30#include "winineti.h"
31
33
34typedef struct {
40 char addr_str[INET6_ADDRSTRLEN];
41
45
47
50
51 struct list entry;
52 struct list conn_pool;
53} server_t;
54
57
58typedef enum {
64
65/* used for netconnection.c stuff */
66typedef struct
67{
68 int socket;
74 char *ssl_buf;
75 char *extra_buf;
76 size_t extra_len;
77 char *peek_msg;
79 size_t peek_len;
82
85 struct list pool_entry;
86} netconn_t;
87
90
91static inline WCHAR *strndupW(const WCHAR *str, UINT max_len)
92{
93 LPWSTR ret;
94 UINT len;
95
96 if(!str)
97 return NULL;
98
99 for(len=0; len<max_len; len++)
100 if(str[len] == '\0')
101 break;
102
103 ret = malloc(sizeof(WCHAR) * (len + 1));
104 if(ret) {
105 memcpy(ret, str, sizeof(WCHAR)*len);
106 ret[len] = '\0';
107 }
108
109 return ret;
110}
111
112static inline WCHAR *strndupAtoW(const char *str, int len_a, DWORD *len_w)
113{
114 WCHAR *ret = NULL;
115
116 if(str) {
117 size_t len;
118 if(len_a < 0)
119 len_a = strlen(str);
120 else if(len_a > 0)
121 len_a = strnlen(str, len_a);
122 len = MultiByteToWideChar(CP_ACP, 0, str, len_a, NULL, 0);
123 ret = malloc((len + 1) * sizeof(WCHAR));
124 if(ret) {
125 MultiByteToWideChar(CP_ACP, 0, str, len_a, ret, len);
126 ret[len] = 0;
127 *len_w = len;
128 }
129 }
130
131 return ret;
132}
133
134static inline WCHAR *strdupAtoW(const char *str)
135{
136 LPWSTR ret = NULL;
137
138 if(str) {
139 DWORD len;
140
141 len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0);
142 ret = malloc(len * sizeof(WCHAR));
143 if(ret)
145 }
146
147 return ret;
148}
149
150static inline char *strdupWtoA(const WCHAR *str)
151{
152 char *ret = NULL;
153
154 if(str) {
156 ret = malloc(size);
157 if(ret)
159 }
160
161 return ret;
162}
163
164typedef struct {
165 const WCHAR *str;
166 size_t len;
167} substr_t;
168
169static inline substr_t substr(const WCHAR *str, size_t len)
170{
171 substr_t r = {str, len};
172 return r;
173}
174
175static inline substr_t substrz(const WCHAR *str)
176{
177 return substr(str, lstrlenW(str));
178}
179
181{
182 dataA->dwFileAttributes = dataW->dwFileAttributes;
183 dataA->ftCreationTime = dataW->ftCreationTime;
184 dataA->ftLastAccessTime = dataW->ftLastAccessTime;
185 dataA->ftLastWriteTime = dataW->ftLastWriteTime;
186 dataA->nFileSizeHigh = dataW->nFileSizeHigh;
187 dataA->nFileSizeLow = dataW->nFileSizeLow;
188 dataA->dwReserved0 = dataW->dwReserved0;
189 dataA->dwReserved1 = dataW->dwReserved1;
190 WideCharToMultiByte(CP_ACP, 0, dataW->cFileName, -1,
191 dataA->cFileName, sizeof(dataA->cFileName),
192 NULL, NULL);
194 dataA->cAlternateFileName, sizeof(dataA->cAlternateFileName),
195 NULL, NULL);
196}
197
198typedef enum
199{
207} WH_TYPE;
208
209#define INET_OPENURL 0x0001
210#define INET_CALLBACKW 0x0002
211
212typedef struct
213{
219} req_file_t;
220
222
223typedef struct {
224 void (*Destroy)(object_header_t*);
225 void (*CloseConnection)(object_header_t*);
226 DWORD (*QueryOption)(object_header_t*,DWORD,void*,DWORD*,BOOL);
227 DWORD (*SetOption)(object_header_t*,DWORD,void*,DWORD);
231 DWORD (*QueryDataAvailable)(object_header_t*,DWORD*,DWORD,DWORD_PTR);
233 DWORD (*LockRequestFile)(object_header_t*,req_file_t**);
235
236#define INTERNET_HANDLE_IN_USE 1
237
239{
257 struct list entry;
259};
260
261typedef struct
262{
270} appinfo_t;
271
272typedef struct
273{
276 LPWSTR hostName; /* the final destination of the request */
279 INTERNET_PORT hostPort; /* the final destination port of the request */
281
282#define HDR_ISREQUEST 0x0001
283#define HDR_COMMADELIMITED 0x0002
284#define HDR_SEMIDELIMITED 0x0004
285
286typedef struct
287{
293
294
295struct HttpAuthInfo;
296
298
299typedef struct {
302
303typedef struct {
308
309#define READ_BUFFER_SIZE 8192
310
311typedef struct
312{
326 BOOL clear_auth; /* Flag to clear the password field on the authorization dialog */
327
328 CRITICAL_SECTION headers_section; /* section to protect the headers array */
331
334 ULONGLONG cache_size; /* size of cached data */
339
340 CRITICAL_SECTION read_section; /* section to protect the following fields */
341 ULONGLONG contentLength; /* total number of bytes to be read */
342 ULONGLONG content_pos; /* content read position */
343 BOOL read_gzip; /* are we reading in gzip mode? */
344 DWORD read_pos; /* current read position in read_buf */
345 DWORD read_size; /* valid data size in read_buf */
346 BYTE read_buf[READ_BUFFER_SIZE]; /* buffer for already read but not returned data */
347
351
354
356{
359};
360
362
363void *alloc_object(object_header_t*,const object_vtbl_t*,size_t);
367
370
372
373HINTERNET FTP_Connect(appinfo_t *hIC, LPCWSTR lpszServerName,
374 INTERNET_PORT nServerPort, LPCWSTR lpszUserName,
376 DWORD dwInternalFlags);
377
379 INTERNET_PORT nServerPort, LPCWSTR lpszUserName,
381 DWORD dwInternalFlags, HINTERNET*);
382
383BOOL GetAddress(const WCHAR*,INTERNET_PORT,SOCKADDR*,int*,char*);
384
385DWORD get_cookie_header(const WCHAR*,const WCHAR*,WCHAR**);
387
388void INTERNET_SetLastError(DWORD dwError);
392
394 DWORD dwInternetStatus, LPVOID lpvStatusInfo,
395 DWORD dwStatusInfoLength);
397
400void NETCON_unload(void);
402DWORD NETCON_send(netconn_t *connection, const void *msg, size_t len, int flags,
403 int *sent /* out */);
404DWORD NETCON_recv(netconn_t*,void*,size_t,BOOL,int*);
409int sock_send(int fd, const void *msg, size_t len, int flags);
410int sock_recv(int fd, void *msg, size_t len, int flags);
411
413
416
417static inline req_file_t *req_file_addref(req_file_t *req_file)
418{
419 InterlockedIncrement(&req_file->ref);
420 return req_file;
421}
422
423BOOL init_urlcache(void);
424void free_urlcache(void);
425void free_cookie(void);
426void free_authorization_cache(void);
427
428void init_winsock(void);
429
430#define MAX_REPLY_LEN 0x1000
431
432/* Used for debugging - maybe need to be shared in the Wine debugging code ? */
433typedef struct
434{
436 const char* name;
438
439/* Undocumented security flags */
440#define _SECURITY_FLAG_CERT_REV_FAILED 0x00800000
441#define _SECURITY_FLAG_CERT_INVALID_CA 0x01000000
442#define _SECURITY_FLAG_CERT_INVALID_CN 0x02000000
443#define _SECURITY_FLAG_CERT_INVALID_DATE 0x04000000
444
445#define _SECURITY_ERROR_FLAGS_MASK \
446 (_SECURITY_FLAG_CERT_REV_FAILED \
447 |_SECURITY_FLAG_CERT_INVALID_CA \
448 |_SECURITY_FLAG_CERT_INVALID_CN \
449 |_SECURITY_FLAG_CERT_INVALID_DATE)
450
451#endif /* _WINE_INTERNET_H_ */
@ sent
Definition: SystemMenu.c:27
#define InterlockedIncrement
Definition: armddk.h:53
#define msg(x)
Definition: auth_time.c:54
Definition: list.h:39
#define malloc
Definition: debug_ros.c:4
#define NULL
Definition: types.h:112
#define CP_ACP
Definition: compat.h:109
#define ReadFile(a, b, c, d, e)
Definition: compat.h:742
#define SetFilePointer
Definition: compat.h:743
#define WideCharToMultiByte
Definition: compat.h:111
#define MultiByteToWideChar
Definition: compat.h:110
#define lstrlenW
Definition: compat.h:750
HINTERNET connection
Definition: port.c:65
BOOL WINAPI FindNextFileW(IN HANDLE hFindFile, OUT LPWIN32_FIND_DATAW lpFindFileData)
Definition: find.c:382
BOOL WINAPI WriteFile(_In_ HANDLE hFile, _In_reads_bytes_opt_(nNumberOfBytesToWrite) LPCVOID lpBuffer, _In_ DWORD nNumberOfBytesToWrite, _Out_opt_ LPDWORD lpNumberOfBytesWritten, _Inout_opt_ LPOVERLAPPED lpOverlapped)
Definition: rw.c:25
__time32_t time_t
Definition: corecrt.h:228
_ACRTIMP size_t __cdecl strnlen(const char *, size_t)
Definition: string.c:1607
_ACRTIMP size_t __cdecl strlen(const char *)
Definition: string.c:1597
_ACRTIMP char *__cdecl asctime(const struct tm *)
Definition: time.c:1636
INT WSAAPI send(IN SOCKET s, IN CONST CHAR FAR *buf, IN INT len, IN INT flags)
Definition: send.c:23
return ret
Definition: mutex.c:147
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
GLsizeiptr size
Definition: glext.h:5919
GLbitfield flags
Definition: glext.h:7161
GLenum const GLvoid * addr
Definition: glext.h:9621
GLenum GLsizei len
Definition: glext.h:6722
unsigned int UINT
Definition: sysinfo.c:13
VOID INTERNET_SendCallback(object_header_t *hdr, DWORD_PTR dwContext, DWORD dwInternetStatus, LPVOID lpvStatusInfo, DWORD dwStatusInfoLength)
static void WININET_find_data_WtoA(LPWIN32_FIND_DATAW dataW, LPWIN32_FIND_DATAA dataA)
Definition: internet.h:180
BOOL WININET_Release(object_header_t *info)
Definition: internet.c:244
static WCHAR * strndupW(const WCHAR *str, UINT max_len)
Definition: internet.h:91
DWORD create_netconn(server_t *, DWORD, BOOL, DWORD, netconn_t **)
object_header_t * WININET_AddRef(object_header_t *info)
Definition: internet.c:202
server_t * get_server(substr_t, INTERNET_PORT, BOOL, BOOL)
Definition: http.c:192
static req_file_t * req_file_addref(req_file_t *req_file)
Definition: internet.h:417
static substr_t substr(const WCHAR *str, size_t len)
Definition: internet.h:169
collect_type_t
Definition: internet.h:58
@ COLLECT_TIMEOUT
Definition: internet.h:59
@ COLLECT_CONNECTIONS
Definition: internet.h:60
@ COLLECT_CLEANUP
Definition: internet.h:61
static WCHAR * strndupAtoW(const char *str, int len_a, DWORD *len_w)
Definition: internet.h:112
BOOL collect_connections(collect_type_t)
Definition: http.c:229
BOOL is_valid_netconn(netconn_t *)
time_t ConvertTimeString(LPCWSTR asctime)
#define READ_BUFFER_SIZE
Definition: internet.h:309
DWORD INTERNET_GetLastError(void)
Definition: internet.c:4477
DWORD INET_QueryOption(object_header_t *, DWORD, void *, DWORD *, BOOL)
Definition: internet.c:3159
int sock_send(int fd, const void *msg, size_t len, int flags)
void free_cookie(void)
Definition: cookie.c:1269
LPSTR INTERNET_GetResponseBuffer(void)
Definition: internet.c:4556
void req_file_release(req_file_t *)
Definition: internet.c:4634
void free_netconn(netconn_t *)
DWORD NETCON_send(netconn_t *connection, const void *msg, size_t len, int flags, int *sent)
DWORD set_cookie(substr_t, substr_t, substr_t, substr_t, DWORD)
Definition: cookie.c:912
void INTERNET_SetLastError(DWORD dwError)
Definition: internet.c:4456
DWORD NETCON_secure_connect(netconn_t *, server_t *)
DWORD HTTP_Connect(appinfo_t *, LPCWSTR, INTERNET_PORT nServerPort, LPCWSTR lpszUserName, LPCWSTR lpszPassword, DWORD dwFlags, DWORD_PTR dwContext, DWORD dwInternalFlags, HINTERNET *)
Definition: http.c:5910
int NETCON_GetCipherStrength(netconn_t *)
DWORD NETCON_recv(netconn_t *, void *, size_t, BOOL, int *)
void server_addref(server_t *)
Definition: http.c:143
WH_TYPE
Definition: internet.h:199
@ WH_HFILE
Definition: internet.h:204
@ WH_HHTTPSESSION
Definition: internet.h:203
@ WH_HGOPHERSESSION
Definition: internet.h:202
@ WH_HFTPFINDNEXT
Definition: internet.h:205
@ WH_HHTTPREQ
Definition: internet.h:206
@ WH_HFTPSESSION
Definition: internet.h:201
@ WH_HINIT
Definition: internet.h:200
void NETCON_unload(void)
DWORD INTERNET_AsyncCall(task_header_t *)
Definition: internet.c:4534
DWORD INET_SetOption(object_header_t *, DWORD, void *, DWORD)
Definition: internet.c:3309
int sock_recv(int fd, void *msg, size_t len, int flags)
DWORD create_req_file(const WCHAR *, req_file_t **)
Definition: internet.c:4607
static char * strdupWtoA(const WCHAR *str)
Definition: internet.h:150
static substr_t substrz(const WCHAR *str)
Definition: internet.h:175
WCHAR * INTERNET_FindProxyForProtocol(LPCWSTR szProxy, LPCWSTR proto)
Definition: internet.c:511
DWORD get_cookie_header(const WCHAR *, const WCHAR *, WCHAR **)
Definition: cookie.c:646
void free_urlcache(void)
Definition: urlcache.c:4124
LPCVOID NETCON_GetCert(netconn_t *connection)
void server_release(server_t *)
Definition: http.c:148
void close_netconn(netconn_t *)
void(* async_task_proc_t)(task_header_t *)
Definition: internet.h:353
void * alloc_object(object_header_t *, const object_vtbl_t *, size_t)
Definition: internet.c:124
BOOL NETCON_is_alive(netconn_t *)
void init_winsock(void)
Definition: dpnet_main.c:55
HINTERNET FTP_Connect(appinfo_t *hIC, LPCWSTR lpszServerName, INTERNET_PORT nServerPort, LPCWSTR lpszUserName, LPCWSTR lpszPassword, DWORD dwFlags, DWORD_PTR dwContext, DWORD dwInternalFlags)
Definition: ftp.c:2430
object_header_t * get_handle_object(HINTERNET hinternet)
Definition: internet.c:209
void * alloc_async_task(object_header_t *, async_task_proc_t, size_t)
Definition: internet.c:4513
void free_authorization_cache(void)
Definition: http.c:926
BOOL init_urlcache(void)
Definition: urlcache.c:4106
static WCHAR * strdupAtoW(const char *str)
Definition: internet.h:134
struct HTTPHEADERW * LPHTTPHEADERW
DWORD NETCON_set_timeout(netconn_t *connection, BOOL send, DWORD value)
BOOL GetAddress(const WCHAR *, INTERNET_PORT, SOCKADDR *, int *, char *)
Definition: utility.c:47
HMODULE WININET_hModule
Definition: internet.c:71
#define read_buf
Definition: intsym.h:279
char hdr[14]
Definition: iptest.cpp:33
uint32_t entry
Definition: isohybrid.c:63
CONST void * LPCVOID
Definition: minwindef.h:164
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
Definition: netsh.h:141
#define BOOL
Definition: nt_native.h:43
#define DWORD
Definition: nt_native.h:44
short WCHAR
Definition: pedump.c:58
long LONG
Definition: pedump.c:60
const WCHAR * str
static int fd
Definition: io.c:51
LPWSTR lpszValue
Definition: internet.h:289
WORD wCount
Definition: internet.h:291
LPWSTR lpszField
Definition: internet.h:288
WORD wFlags
Definition: internet.h:290
_Field_z_ CHAR cFileName[MAX_PATH]
Definition: minwinbase.h:277
_Field_z_ CHAR cAlternateFileName[14]
Definition: minwinbase.h:278
DWORD dwFileAttributes
Definition: minwinbase.h:269
FILETIME ftLastAccessTime
Definition: minwinbase.h:271
FILETIME ftCreationTime
Definition: minwinbase.h:270
FILETIME ftLastWriteTime
Definition: minwinbase.h:272
FILETIME ftLastWriteTime
Definition: minwinbase.h:286
_Field_z_ WCHAR cAlternateFileName[14]
Definition: minwinbase.h:292
_Field_z_ WCHAR cFileName[MAX_PATH]
Definition: minwinbase.h:291
DWORD dwFileAttributes
Definition: minwinbase.h:283
FILETIME ftLastAccessTime
Definition: minwinbase.h:285
FILETIME ftCreationTime
Definition: minwinbase.h:284
WH_TYPE htype
Definition: internet.h:240
ULONG connect_timeout
Definition: internet.h:243
HINTERNET hInternet
Definition: internet.h:242
DWORD dwInternalFlags
Definition: internet.h:253
ULONG receive_timeout
Definition: internet.h:245
struct list children
Definition: internet.h:258
const object_vtbl_t * vtbl
Definition: internet.h:241
struct list entry
Definition: internet.h:257
DWORD_PTR dwContext
Definition: internet.h:250
ULONG data_receive_timeout
Definition: internet.h:247
ULONG send_timeout
Definition: internet.h:244
INTERNET_STATUS_CALLBACK lpfnStatusCB
Definition: internet.h:256
ULONG data_send_timeout
Definition: internet.h:246
LPWSTR proxy
Definition: internet.h:265
LPWSTR proxyBypass
Definition: internet.h:266
DWORD accessType
Definition: internet.h:269
LPWSTR agent
Definition: internet.h:264
LPWSTR proxyPassword
Definition: internet.h:268
object_header_t hdr
Definition: internet.h:263
LPWSTR proxyUsername
Definition: internet.h:267
const data_stream_vtbl_t * vtbl
Definition: internet.h:300
server_t * server
Definition: internet.h:315
DWORD security_flags
Definition: internet.h:320
struct HttpAuthInfo * proxyAuthInfo
Definition: internet.h:338
CRITICAL_SECTION read_section
Definition: internet.h:340
ULONGLONG cache_size
Definition: internet.h:334
data_stream_t * data_stream
Definition: internet.h:348
netconn_stream_t netconn_stream
Definition: internet.h:349
DWORD read_pos
Definition: internet.h:344
http_session_t * session
Definition: internet.h:314
FILETIME expires
Definition: internet.h:336
struct HttpAuthInfo * authInfo
Definition: internet.h:337
DWORD bytesWritten
Definition: internet.h:325
FILETIME last_modified
Definition: internet.h:332
BOOL read_gzip
Definition: internet.h:343
LPWSTR version
Definition: internet.h:321
DWORD nCustHeaders
Definition: internet.h:330
HANDLE hCacheFile
Definition: internet.h:333
object_header_t hdr
Definition: internet.h:313
req_file_t * req_file
Definition: internet.h:335
DWORD bytesToWrite
Definition: internet.h:324
netconn_t * netconn
Definition: internet.h:319
LPWSTR statusText
Definition: internet.h:323
ULONGLONG contentLength
Definition: internet.h:341
BOOL clear_auth
Definition: internet.h:326
server_t * proxy
Definition: internet.h:316
DWORD status_code
Definition: internet.h:322
CRITICAL_SECTION headers_section
Definition: internet.h:328
DWORD read_size
Definition: internet.h:345
HTTPHEADERW * custHeaders
Definition: internet.h:329
ULONGLONG content_pos
Definition: internet.h:342
LPWSTR path
Definition: internet.h:317
LPWSTR verb
Definition: internet.h:318
appinfo_t * appInfo
Definition: internet.h:275
INTERNET_PORT hostPort
Definition: internet.h:279
object_header_t hdr
Definition: internet.h:274
LPWSTR password
Definition: internet.h:278
LPWSTR hostName
Definition: internet.h:276
LPWSTR userName
Definition: internet.h:277
ULONGLONG content_length
Definition: internet.h:305
ULONGLONG content_read
Definition: internet.h:306
data_stream_t data_stream
Definition: internet.h:304
BOOL is_blocking
Definition: internet.h:70
size_t extra_len
Definition: internet.h:76
char * extra_buf
Definition: internet.h:75
char * peek_msg_mem
Definition: internet.h:78
BOOL secure
Definition: internet.h:69
CtxtHandle ssl_ctx
Definition: internet.h:71
char * peek_msg
Definition: internet.h:77
size_t peek_len
Definition: internet.h:79
int socket
Definition: internet.h:68
DWORD security_flags
Definition: internet.h:80
DWORD64 keep_until
Definition: internet.h:84
BOOL keep_alive
Definition: internet.h:83
SecPkgContext_StreamSizes ssl_sizes
Definition: internet.h:72
char * ssl_buf
Definition: internet.h:74
server_t * server
Definition: internet.h:73
BOOL mask_errors
Definition: internet.h:81
LONG ref
Definition: internet.h:214
WCHAR * file_name
Definition: internet.h:216
WCHAR * url
Definition: internet.h:217
BOOL is_committed
Definition: internet.h:218
HANDLE file_handle
Definition: internet.h:215
const WCHAR * canon_host_port
Definition: internet.h:44
WCHAR * name
Definition: internet.h:35
const CERT_CHAIN_CONTEXT * cert_chain
Definition: internet.h:49
DWORD security_flags
Definition: internet.h:48
WCHAR * scheme_host_port
Definition: internet.h:42
int addr_len
Definition: internet.h:39
BOOL is_https
Definition: internet.h:37
const WCHAR * host_port
Definition: internet.h:43
INTERNET_PORT port
Definition: internet.h:36
LONG ref
Definition: internet.h:46
size_t len
Definition: internet.h:166
const WCHAR * str
Definition: internet.h:165
object_header_t * hdr
Definition: internet.h:358
async_task_proc_t proc
Definition: internet.h:357
const char * name
Definition: internet.h:436
#define DWORD_PTR
Definition: treelist.c:76
const uint16_t * LPCWSTR
Definition: typedefs.h:57
uint32_t DWORD_PTR
Definition: typedefs.h:65
uint16_t * LPWSTR
Definition: typedefs.h:56
uint64_t DWORD64
Definition: typedefs.h:67
char * LPSTR
Definition: typedefs.h:51
uint64_t ULONGLONG
Definition: typedefs.h:67
uint32_t ULONG
Definition: typedefs.h:59
Definition: pdh_main.c:64
_In_opt_ LPSTR _In_opt_ LPSTR lpszPassword
Definition: winbase.h:2442
WORD INTERNET_PORT
Definition: winhttp.h:43
#define INTERNET_HANDLE_TYPE_CONNECT_GOPHER
Definition: wininet.h:804
#define INTERNET_HANDLE_TYPE_HTTP_REQUEST
Definition: wininet.h:814
VOID(CALLBACK * INTERNET_STATUS_CALLBACK)(_In_ HINTERNET, _In_opt_ DWORD_PTR, _In_ DWORD, _In_opt_ LPVOID, _In_ DWORD)
Definition: wininet.h:859
#define INTERNET_HANDLE_TYPE_FTP_FIND
Definition: wininet.h:806
#define INTERNET_HANDLE_TYPE_INTERNET
Definition: wininet.h:802
#define INTERNET_HANDLE_TYPE_CONNECT_HTTP
Definition: wininet.h:805
#define INTERNET_HANDLE_TYPE_CONNECT_FTP
Definition: wininet.h:803
#define INTERNET_HANDLE_TYPE_FTP_FILE
Definition: wininet.h:808
#define INET6_ADDRSTRLEN
Definition: ws2ipdef.h:132
unsigned char BYTE
Definition: xxhash.c:193