51#define NO_SHLWAPI_STREAM
80 0, 0, { (
DWORD_PTR)(__FILE__
": WININET_cs") }
101 L"Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";
142 ERR(
"handle isn't free but should be\n");
162 ret->lpfnStatusCB =
parent->lpfnStatusCB;
172 TRACE(
"%p -> refcount = %d\n",
info, refs );
197 if(!
info->valid_handle)
204 TRACE(
"invalidating child handle %p for parent %p\n",
child->hInternet,
info);
214 TRACE(
"object %p refcount = %d\n",
info, refs );
218 if (
info->vtbl->CloseConnection )
221 info->vtbl->CloseConnection(
info );
236 if(
info->hInternet) {
463 DWORD dwAutoProxyUrlLength,
DWORD dwDetectFlags)
542 const WCHAR *envproxy;
545 memset( lpwpi, 0,
sizeof(*lpwpi) );
600 lpwpi->
proxy = szProxy;
607 TRACE(
"No proxy server settings in registry.\n");
624 WARN(
"failed to parse http_proxy value %s\n",
debugstr_w(envproxy));
633 TRACE(
"Proxy is enabled.\n");
635 if (!(envproxy =
_wgetenv(
L"no_proxy" )))
659 TRACE(
"No proxy bypass server settings in registry.\n");
679 else TRACE(
"Proxy is disabled.\n");
723#define FE(x) { x, #x }
794 TRACE(
"INTERNET_OPTION_HANDLE_TYPE\n");
806 TRACE(
"INTERNET_OPTION_USER_AGENT\n");
850 DWORD proxyBytesRequired = 0, proxyBypassBytesRequired = 0;
867 pi->lpszProxyBypass =
NULL;
875 pi->lpszProxyBypass = proxy_bypass;
882 DWORD proxyBytesRequired = 0, proxyBypassBytesRequired = 0;
900 pi->lpszProxyBypass =
NULL;
908 proxyBypassBytesRequired,
NULL,
NULL);
909 pi->lpszProxyBypass = proxy_bypass;
917 TRACE(
"INTERNET_OPTION_CONNECT_TIMEOUT\n");
937 TRACE(
"INTERNET_OPTION_CONNECT_TIMEOUT\n");
951 FIXME(
"INTERNET_OPTION_REFRESH\n");
988#define FE(x) { x, #x }
997 const char *access_type_str =
"Unknown";
1002 if (access_type[
i].
val == dwAccessType) {
1003 access_type_str = access_type[
i].
name;
1007 TRACE(
" access type : %s\n", access_type_str);
1041 TRACE(
"returning %p\n", lpwai);
1060 WCHAR *szAgent, *szProxy, *szBypass;
1201 TRACE(
"(%p, %p, %d, 0x%08x)\n", lpdwStatus, lpszConnectionName, dwNameLen,
dwReserved);
1208 WARN(
"always returning LAN connection.\n");
1214 if(lpszConnectionName && dwNameLen) {
1215 *lpszConnectionName =
'\0';
1232 TRACE(
"(%p, %p, %d, 0x%08x)\n", lpdwStatus, lpszConnectionName, dwNameLen,
dwReserved);
1234 if (lpszConnectionName && dwNameLen > 0)
1239 if (rc && lpwszConnectionName)
1267 TRACE(
"(%p, %s, %u, %s, %p, %u, %x, %lx)\n", hInternet,
debugstr_w(lpszServerName),
1270 if (!lpszServerName)
1286 rc =
FTP_Connect(hIC, lpszServerName, nServerPort,
1305 TRACE(
"returning %p\n", rc);
1336 szUserName, szPassword, dwService,
dwFlags, dwContext);
1385 WARN(
"Invalid handle\n");
1390 if(
hdr->vtbl->FindNextFileW) {
1391 res =
hdr->vtbl->FindNextFileW(
hdr, lpvFindData);
1393 WARN(
"Handle doesn't support NextFile\n");
1418 TRACE(
"%p\n", hInternet);
1436 if (!*component_length)
1441 *component_length =
len;
1445 if (*component_length <
len+1) {
1450 *component_length =
len;
1453 (*component)[
len] = 0;
1460 size_t size, ret_size = *ret_length;
1472 if (
size+1 > ret_size) {
1474 *ret_length =
size+1;
1606 if(lpszScheme==
NULL)
1637 TRACE(
"(%s %u %x %p)\n",
1641 if (!lpszUrl || !*lpszUrl || !lpUC)
1646 if (!dwUrlLength) dwUrlLength =
lstrlenW(lpszUrl);
1683 while (lpszap - lpszUrl < dwUrlLength)
1685 if (
iswalnum(*lpszap) || *lpszap ==
'+' || *lpszap ==
'.' || *lpszap ==
'-')
1712 lpszParam =
wmemchr(lpszap,
'?', dwUrlLength - (lpszap - lpszUrl));
1714 lpszParam =
wmemchr(lpszap,
'#', dwUrlLength - (lpszap - lpszUrl));
1717 lpszParam, lpszParam ? dwUrlLength-(lpszParam-lpszUrl) : 0))
1730 if ((lpszcp[0] ==
'/') && (lpszcp[1] ==
'/'))
1734 lpszNetLoc =
wmemchr(lpszcp,
'/', dwUrlLength - (lpszcp - lpszUrl));
1738 lpszNetLoc =
min(lpszNetLoc, lpszParam);
1740 lpszNetLoc = lpszParam;
1742 else if (!lpszNetLoc)
1743 lpszNetLoc = lpszcp + dwUrlLength-(lpszcp-lpszUrl);
1754 lpszHost =
wmemchr(lpszcp,
'@', dwUrlLength - (lpszcp - lpszUrl));
1755 if (lpszHost ==
NULL || lpszHost > lpszNetLoc)
1764 LPCWSTR lpszPasswd = lpszHost;
1766 while (lpszcp < lpszHost)
1769 lpszPasswd = lpszcp;
1777 if (lpszPasswd != lpszHost)
1780 lpszPasswd == lpszHost ?
NULL : lpszPasswd, lpszHost - lpszPasswd))
1789 lpszPort = lpszNetLoc;
1801 while (lpszcp < lpszNetLoc)
1819 if (lpszPort != lpszNetLoc)
1851 if (lpszcp != 0 && lpszcp - lpszUrl < dwUrlLength && (!lpszParam || lpszcp <= lpszParam))
1859 len = lpszParam - lpszcp;
1865 LPWSTR lpsznewline =
wmemchr(lpszcp,
'\n', dwUrlLength - (lpszcp - lpszUrl));
1866 if (lpsznewline !=
NULL)
1867 len = lpsznewline - lpszcp;
1869 len = dwUrlLength-(lpszcp-lpszUrl);
1884 tmppath[
len] =
'\0';
1894 if (tmppath[
len - 1] ==
'.' &&
1895 (tmppath[
len - 2] ==
'\\' ||
1896 (tmppath[
len - 2] ==
'.' && tmppath[
len - 3] ==
'\\')))
1900 tmppath[
len] =
'\\';
1901 tmppath[
len+1] =
'\0';
1916 TRACE(
"%s: scheme(%s) host(%s) path(%s) extra(%s)\n",
debugstr_wn(lpszUrl,dwUrlLength),
1983 TRACE(
"(%s, %p, %p, 0x%08x) buffer length: %d\n",
debugstr_a(lpszUrl), lpszBuffer,
2009 TRACE(
"(%s, %p, %p, 0x%08x) buffer length: %d\n",
debugstr_w(lpszUrl), lpszBuffer,
2053 TRACE(
"%p\n", hInternet);
2081 TRACE(
"%p\n", hInternet);
2098 FIXME(
"(%p %d %p %d %lx): stub\n",
hFile, lDistanceToMove, pReserved, dwMoveContext, dwContext);
2115 DWORD dwNumOfBytesToWrite,
LPDWORD lpdwNumOfBytesWritten)
2120 TRACE(
"(%p %p %d %p)\n",
hFile,
lpBuffer, dwNumOfBytesToWrite, lpdwNumOfBytesWritten);
2124 WARN(
"Invalid handle\n");
2132 WARN(
"No Writefile method.\n");
2168 if(
hdr->vtbl->ReadFile) {
2169 res =
hdr->vtbl->ReadFile(
hdr,
lpBuffer, dwNumOfBytesToRead, pdwNumOfBytesRead, 0, 0);
2171 *pdwNumOfBytesRead = 0;
2177 pdwNumOfBytesRead ? *pdwNumOfBytesRead : -1);
2218 if (lpBuffersOut->
dwStructSize !=
sizeof(*lpBuffersOut)) {
2229 if(
hdr->vtbl->ReadFile)
2267 if(
hdr->vtbl->ReadFile)
2283 ULONG err,
size = 1024,
flags = GAA_FLAG_SKIP_ANYCAST | GAA_FLAG_SKIP_MULTICAST |
2285 IP_ADAPTER_ADDRESSES *tmp, *
ret;
2302 IP_ADAPTER_ADDRESSES *adapters, *
ptr;
2311 memset( &send_params, 0,
sizeof(send_params) );
2375 if (len_suffix > len_domain)
return FALSE;
2392 if (!ai)
return NULL;
2477 FIXME(
"INTERNET_OPTION_CONNECTED_STATE: semi-stub\n");
2491 TRACE(
"Getting global proxy info\n");
2501 TRACE(
"INTERNET_OPTION_MAX_CONNS_PER_SERVER\n");
2512 TRACE(
"INTERNET_OPTION_MAX_CONNS_1_0_SERVER\n");
2523 FIXME(
"INTERNET_OPTION_SECURITY_FLAGS: Stub\n");
2529 TRACE(
"INTERNET_OPTION_VERSION\n");
2548 TRACE(
"Getting global proxy info\n");
2553 WARN(
"INTERNET_OPTION_PER_CONNECTION_OPTION stub\n");
2555 FIXME(
"INTERNET_OPTION_PER_CONNECTION_OPTION stub\n");
2617 WARN(
"Unhandled dwOption %d\n",
optionW->dwOption);
2639 TRACE(
"INTERNET_OPTION_CONNECT_TIMEOUT\n");
2673 WARN(
"INTERNET_OPTION_REQUEST_FLAGS\n");
2679 WARN(
"Called on global option %u\n",
option);
2757 FIXME(
"INTERNETOPTION_SETTINGS_CHANGED semi-stub\n");
2765 WARN(
"Called on global option %u\n",
option);
2782 TRACE(
"INTERNET_OPTION_MAX_CONNS_PER_SERVER\n");
2793 TRACE(
"INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER\n");
2804 TRACE(
"INTERNET_OPTION_CONNECT_TIMEOUT\n");
2815 FIXME(
"INTERNET_OPTION_SUPPRESS_BEHAVIOR stub\n");
2844 TRACE(
"(%p %d %p %d)\n", hInternet, dwOption,
lpBuffer, dwBufferLength);
2880 }
else if(dwBufferLength !=
sizeof(
ULONG)) {
2924 FIXME(
"INTERNET_OPTION_PROXY unimplemented\n");
2933 FIXME(
"Option INTERNET_OPTION_CODEPAGE (%d): STUB\n",
codepage);
2939 FIXME(
"Option INTERNET_OPTION_REQUEST_PRIORITY (%d): STUB\n",
priority);
2945 FIXME(
"Option INTERNET_OPTION_CONNECT_TIMEOUT (%d): STUB\n", connecttimeout);
2951 FIXME(
"Option INTERNET_OPTION_DATA_RECEIVE_TIMEOUT (%d): STUB\n", receivetimeout);
2955 FIXME(
"Option INTERNET_OPTION_RESET_URLCACHE_SESSION: STUB\n");
2958 FIXME(
"Option INTERNET_OPTION_END_BROWSER_SESSION: semi-stub\n");
2963 FIXME(
"Option INTERNET_OPTION_CONNECTED_STATE: STUB\n");
2966 TRACE(
"Option INTERNET_OPTION_DISABLE_PASSPORT_AUTH: harmless stub, since not enabled\n");
2969 FIXME(
"Option INTERNET_OPTION_IGNORE_OFFLINE: STUB\n");
2976 FIXME(
"INTERNET_OPTION_SEND/RECEIVE_TIMEOUT/DATA_SEND_TIMEOUT %d\n",
timeout);
2982 FIXME(
"INTERNET_OPTION_CONNECT_RETRIES %d\n", retries);
3002 FIXME(
"Option INTERNET_OPTION_SECURITY_FLAGS; STUB\n");
3005 FIXME(
"Option INTERNET_OPTION_DISABLE_AUTODIAL; STUB\n");
3022 FIXME(
"INTERNET_OPTION_COOKIES_3RD_PARTY; STUB\n");
3027 FIXME(
"INTERNET_OPTION_SEND_UTF8_SERVERNAME_TO_PROXY; STUB\n");
3032 FIXME(
"INTERNET_OPTION_CODEPAGE_PATH; STUB\n");
3037 FIXME(
"INTERNET_OPTION_CODEPAGE_EXTRA; STUB\n");
3042 FIXME(
"INTERNET_OPTION_IDN; STUB\n");
3061 switch (
option->dwOption) {
3069 pi.proxyEnabled = 1;
3073 FIXME(
"Unhandled flags: 0x%x\n",
option->Value.dwValue);
3074 pi.proxyEnabled = 0;
3089 FIXME(
"Unhandled dwOption %d\n",
option->dwOption);
3108 FIXME(
"Option %d STUB\n",dwOption);
3144 DWORD proxlen, prbylen;
3149 wlen =
sizeof(*piw) + proxlen + prbylen;
3154 prby = &prox[proxlen+1];
3221 WARN(
"Unknown PER_CONN dwOption: %d, guessing at conversion to Wide\n", optA->
dwOption);
3230 wlen = dwBufferLength;
3241 for (
i = 0;
i <
list->dwOptionCount; ++
i) {
3290 {
L"Sun",
L"Mon",
L"Tue",
L"Wed",
3291 L"Thu",
L"Fri",
L"Sat"};
3293 {
L"Jan",
L"Feb",
L"Mar",
L"Apr",
3294 L"May",
L"Jun",
L"Jul",
L"Aug",
3295 L"Sep",
L"Oct",
L"Nov",
L"Dec"};
3344 swprintf(
string,
size,
L"%s, %02d %s %4d %02d:%02d:%02d GMT",
3396 if (
s[0] ==
'\0' ||
s[1] ==
'\0' ||
s[2] ==
'\0')
return TRUE;
3397 time->wDayOfWeek = 7;
3399 for (
i = 0;
i < 7;
i++)
3403 time->wDayOfWeek =
i;
3408 if (
time->wDayOfWeek > 6)
return TRUE;
3414 if (
s[0] ==
'\0' ||
s[1] ==
'\0' ||
s[2] ==
'\0')
return TRUE;
3417 for (
i = 0;
i < 12;
i++)
3421 time->wMonth =
i + 1;
3425 if (
time->wMonth == 0)
return TRUE;
3428 if (*
s ==
'\0')
return TRUE;
3433 if (*
s ==
'\0')
return TRUE;
3438 if (*
s ==
'\0')
return TRUE;
3443 if (*
s ==
'\0')
return TRUE;
3447 time->wMilliseconds = 0;
3470 static const CHAR ping[] =
"ping -c 1 ";
3471 static const CHAR redirect[] =
" >/dev/null 2>/dev/null";
3482 if (lpszUrl ==
NULL)
3491 FIXME(
"Unimplemented with URL of NULL\n");
3512 int sa_len =
sizeof(saddr);
3612 dwHeadersLength,
dwFlags, dwContext);
3636 switch(urlComponents.
nScheme) {
3643 if(client1 ==
NULL) {
3664 if(client1 ==
NULL) {
3684 TRACE(
" %p <--\n", client1);
3730 dwHeadersLength,
dwFlags, dwContext);
3861 if (!lpwite)
return 0;
3960 LPDWORD lpdwNumberOfBytesAvailable,
3966 TRACE(
"(%p %p %x %lx)\n",
hFile, lpdwNumberOfBytesAvailable,
dwFlags, dwContext);
3974 if(
hdr->vtbl->QueryDataAvailable) {
3975 res =
hdr->vtbl->QueryDataAvailable(
hdr, lpdwNumberOfBytesAvailable,
dwFlags, dwContext);
3977 WARN(
"wrong handle\n");
3992 req_file = heap_alloc_zero(
sizeof(*req_file));
4038 TRACE(
"(%p %p)\n", hInternet, lphLockReqHandle);
4046 if(
hdr->vtbl->LockRequestFile) {
4047 res =
hdr->vtbl->LockRequestFile(
hdr, &req_file);
4049 WARN(
"wrong handle\n");
4055 *lphLockReqHandle = req_file;
4063 TRACE(
"(%p)\n", hLockHandle);
4163#define MAX_WORD_DIGITS 5
4165#define URL_GET_COMP_LENGTH(url, component) ((url)->dw##component##Length ? \
4166 (url)->dw##component##Length : lstrlenW((url)->lpsz##component))
4167#define URL_GET_COMP_LENGTHA(url, component) ((url)->dw##component##Length ? \
4168 (url)->dw##component##Length : strlen((url)->lpsz##component))
4226 *lpdwUrlLength += dwLen;
4233 nScheme = lpUrlComponents->
nScheme;
4243 *lpdwUrlLength +=
strlen(
"//");
4248 *lpdwUrlLength +=
strlen(
"@");
4261 *lpdwUrlLength +=
strlen(
":");
4275 *lpdwUrlLength +=
strlen(
":");
4368 TRACE(
"(%p,%d,%p,%p)\n", lpUrlComponents,
dwFlags, lpszUrl, lpdwUrlLength);
4384 *lpdwUrlLength /=
sizeof(
WCHAR);
4431 static const WCHAR slashSlashW[] = {
'/',
'/'};
4433 TRACE(
"(%p,%d,%p,%p)\n", lpUrlComponents,
dwFlags, lpszUrl, lpdwUrlLength);
4444 if (!lpszUrl || *lpdwUrlLength < dwLen)
4446 *lpdwUrlLength = (dwLen + 1) *
sizeof(
WCHAR);
4451 *lpdwUrlLength = dwLen;
4467 nScheme = lpUrlComponents->
nScheme;
4484 memcpy(lpszUrl, slashSlashW,
sizeof(slashSlashW));
4601 TRACE(
"(%s %p %p)\n",
debugstr_a(lpszURL), ppCertChain, pdwSecureFlags);
4621 TRACE(
"(%s %p %p)\n",
debugstr_w(lpszURL), ppCertChain, pdwSecureFlags);
4623 if (!ppCertChain && !pdwSecureFlags) {
4628 url.dwHostNameLength = 1;
4700 FIXME(
"(%p, 0x%08x) stub\n", hInternet, dwError);
4706 FIXME(
"(%p, %08lx) stub\n",
a,
b);
ACPI_SIZE strlen(const char *String)
char * strchr(const char *String, int ch)
static char * heap_strdupWtoA(const WCHAR *str)
static DWORD const fdwReason
static WCHAR * heap_strdupAtoW(const char *str)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
static void * heap_realloc(void *mem, size_t len)
#define InterlockedIncrement
#define InterlockedDecrement
static nis_server * get_server(struct sockaddr_in *sin, char *host, nis_server *srv, eps, int maxep)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
void user(int argc, const char *argv[])
static void list_remove(struct list_entry *entry)
static void list_init(struct list_entry *head)
__inline int valid_handle(HANDLE handle)
#define RegCloseKey(hKey)
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
#define ERROR_NOT_ENOUGH_MEMORY
#define ERROR_INSUFFICIENT_BUFFER
#define DHCPCAPI_REQUEST_SYNCHRONOUS
#define OPTION_MSFT_IE_PROXY
DWORD APIENTRY DhcpRequestParams(DWORD Flags, PVOID Reserved, LPWSTR AdapterName, LPDHCPCAPI_CLASSID ClassId, DHCPCAPI_PARAMS_ARRAY SendParams, DHCPCAPI_PARAMS_ARRAY RecdParams, LPBYTE Buffer, LPDWORD pSize, LPWSTR RequestIdStr)
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
LONG WINAPI RegDeleteValueW(HKEY hKey, LPCWSTR lpValueName)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
static WCHAR * heap_strdupW(const WCHAR *str)
PCCERT_CHAIN_CONTEXT WINAPI CertDuplicateCertificateChain(PCCERT_CHAIN_CONTEXT pChainContext)
#define ERROR_CALL_NOT_IMPLEMENTED
#define ERROR_INVALID_PARAMETER
#define DLL_THREAD_DETACH
#define DLL_PROCESS_ATTACH
#define DLL_PROCESS_DETACH
#define INVALID_SET_FILE_POINTER
#define INVALID_HANDLE_VALUE
static __inline const char * debugstr_an(const char *s, int n)
#define stricmp(_String1, _String2)
#define ERROR_INVALID_HANDLE
#define FILE_ATTRIBUTE_NORMAL
#define WideCharToMultiByte
#define DLL_THREAD_ATTACH
#define MultiByteToWideChar
BOOL WINAPI DeleteFileW(IN LPCWSTR lpFileName)
LPVOID WINAPI TlsGetValue(IN DWORD Index)
DWORD WINAPI TlsAlloc(VOID)
BOOL WINAPI QueueUserWorkItem(IN LPTHREAD_START_ROUTINE Function, IN PVOID Context, IN ULONG Flags)
BOOL WINAPI TlsSetValue(IN DWORD Index, IN LPVOID Value)
BOOL WINAPI TlsFree(IN DWORD Index)
VOID WINAPI GetSystemTime(OUT LPSYSTEMTIME lpSystemTime)
HRESULT WINAPI PathCreateFromUrlW(LPCWSTR pszUrl, LPWSTR pszPath, LPDWORD pcchPath, DWORD dwReserved)
HRESULT WINAPI UrlCombineW(LPCWSTR pszBase, LPCWSTR pszRelative, LPWSTR pszCombined, LPDWORD pcchCombined, DWORD dwFlags)
HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized, LPDWORD pcchCanonicalized, DWORD dwFlags)
HRESULT WINAPI UrlCombineA(LPCSTR pszBase, LPCSTR pszRelative, LPSTR pszCombined, LPDWORD pcchCombined, DWORD dwFlags)
HRESULT WINAPI UrlCanonicalizeA(LPCSTR pszUrl, LPSTR pszCanonicalized, LPDWORD pcchCanonicalized, DWORD dwFlags)
HINTERNET WINAPI FtpOpenFileW(HINTERNET hFtpSession, LPCWSTR lpszFileName, DWORD fdwAccess, DWORD dwFlags, DWORD_PTR dwContext)
HINTERNET FTP_Connect(appinfo_t *hIC, LPCWSTR lpszServerName, INTERNET_PORT nServerPort, LPCWSTR lpszUserName, LPCWSTR lpszPassword, DWORD dwFlags, DWORD_PTR dwContext, DWORD dwInternalFlags)
BOOL WINAPI HttpAddRequestHeadersW(HINTERNET hHttpRequest, LPCWSTR lpszHeader, DWORD dwHeaderLength, DWORD dwModifier)
BOOL WINAPI HttpSendRequestW(HINTERNET hHttpRequest, LPCWSTR lpszHeaders, DWORD dwHeaderLength, LPVOID lpOptional, DWORD dwOptionalLength)
void server_release(server_t *server)
DWORD HTTP_Connect(appinfo_t *hIC, LPCWSTR lpszServerName, INTERNET_PORT serverPort, LPCWSTR lpszUserName, LPCWSTR lpszPassword, DWORD dwFlags, DWORD_PTR dwContext, DWORD dwInternalFlags, HINTERNET *ret)
BOOL collect_connections(collect_type_t collect_type)
void free_authorization_cache(void)
HINTERNET WINAPI HttpOpenRequestW(HINTERNET hHttpSession, LPCWSTR lpszVerb, LPCWSTR lpszObjectName, LPCWSTR lpszVersion, LPCWSTR lpszReferrer, LPCWSTR *lpszAcceptTypes, DWORD dwFlags, DWORD_PTR dwContext)
BOOL WINAPI InternetQueryOptionW(HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer, LPDWORD lpdwBufferLength)
BOOL WINAPI InternetSetOptionExW(HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer, DWORD dwBufferLength, DWORD dwFlags)
static const WCHAR szInternetSettings[]
static DWORD convert_url_canonicalization_flags(DWORD dwFlags)
DWORD WINAPI InternetHangUp(DWORD_PTR dwConnection, DWORD dwReserved)
BOOL WINAPI InternetWriteFile(HINTERNET hFile, LPCVOID lpBuffer, DWORD dwNumOfBytesToWrite, LPDWORD lpdwNumOfBytesWritten)
static const WCHAR WININET_month[12][4]
BOOL WINAPI InternetQueryOptionA(HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer, LPDWORD lpdwBufferLength)
static LPCWSTR INTERNET_GetSchemeString(INTERNET_SCHEME scheme)
BOOL WINAPI InternetTimeToSystemTimeA(LPCSTR string, SYSTEMTIME *time, DWORD reserved)
BOOL WININET_Release(object_header_t *info)
BOOL WINAPI InternetCheckConnectionA(LPCSTR lpszUrl, DWORD dwFlags, DWORD dwReserved)
DWORD INTERNET_AsyncCall(task_header_t *task)
static UINT_PTR next_handle
BOOL WINAPI ResumeSuspendedDownload(HINTERNET hInternet, DWORD dwError)
BOOL WINAPI InternetTimeFromSystemTimeA(const SYSTEMTIME *time, DWORD format, LPSTR string, DWORD size)
BOOL WINAPI InternetLockRequestFile(HINTERNET hInternet, HANDLE *lphLockReqHandle)
static CRITICAL_SECTION_DEBUG WININET_cs_debug
static BOOL set_url_component(WCHAR **component, DWORD *component_length, const WCHAR *value, DWORD len)
BOOL WINAPI InternetAutodialHangup(DWORD dwReserved)
BOOL WINAPI InternetReadFileExW(HINTERNET hFile, LPINTERNET_BUFFERSW lpBuffer, DWORD dwFlags, DWORD_PTR dwContext)
static WCHAR * get_proxy_autoconfig_url(void)
object_header_t * WININET_AddRef(object_header_t *info)
BOOL WINAPI InternetUnlockRequestFile(HANDLE hLockHandle)
static LONG INTERNET_LoadProxySettings(proxyinfo_t *lpwpi)
static const WCHAR * url_schemes[]
BOOL WINAPI InternetCanonicalizeUrlA(LPCSTR lpszUrl, LPSTR lpszBuffer, LPDWORD lpdwBufferLength, DWORD dwFlags)
DWORD WINAPI PrivacySetZonePreferenceW(DWORD zone, DWORD type, DWORD template, LPCWSTR preference)
BOOL WINAPI DetectAutoProxyUrl(LPSTR lpszAutoProxyUrl, DWORD dwAutoProxyUrlLength, DWORD dwDetectFlags)
BOOL WINAPI InternetCreateUrlA(LPURL_COMPONENTSA lpUrlComponents, DWORD dwFlags, LPSTR lpszUrl, LPDWORD lpdwUrlLength)
DWORD WINAPI ShowClientAuthCerts(HWND parent)
DWORD WINAPI InternetSetFilePointer(HINTERNET hFile, LONG lDistanceToMove, PVOID pReserved, DWORD dwMoveContext, DWORD_PTR dwContext)
BOOL WINAPI InternetQueryFortezzaStatus(DWORD *a, DWORD_PTR b)
static DWORD g_dwTlsErrIndex
BOOL WINAPI InternetCrackUrlW(const WCHAR *lpszUrl, DWORD dwUrlLength, DWORD dwFlags, URL_COMPONENTSW *lpUC)
static WCHAR * build_wpad_url(const char *hostname, const struct addrinfo *ai)
DWORD create_req_file(const WCHAR *file_name, req_file_t **ret)
static int reverse_lookup(const struct addrinfo *ai, char *hostname, size_t len)
static BOOL parse_proxy_url(proxyinfo_t *info, const WCHAR *url)
static BOOL INTERNET_ConfigureProxy(appinfo_t *lpwai)
static void free_global_proxy(void)
static INTERNET_SCHEME GetInternetSchemeW(LPCWSTR lpszScheme, DWORD nMaxCmp)
BOOL WINAPI InternetGoOnlineA(LPSTR lpszURL, HWND hwndParent, DWORD dwReserved)
BOOL WINAPI InternetCombineUrlA(LPCSTR lpszBaseUrl, LPCSTR lpszRelativeUrl, LPSTR lpszBuffer, LPDWORD lpdwBufferLength, DWORD dwFlags)
#define URL_GET_COMP_LENGTH(url, component)
DWORD INTERNET_GetLastError(void)
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
BOOL WINAPI InternetTimeFromSystemTimeW(const SYSTEMTIME *time, DWORD format, LPWSTR string, DWORD size)
BOOL WINAPI InternetFindNextFileW(HINTERNET hFind, LPVOID lpvFindData)
BOOL WINAPI InternetFindNextFileA(HINTERNET hFind, LPVOID lpvFindData)
LPSTR INTERNET_GetResponseBuffer(void)
static void invalidate_handle(object_header_t *info)
BOOL WINAPI InternetCanonicalizeUrlW(LPCWSTR lpszUrl, LPWSTR lpszBuffer, LPDWORD lpdwBufferLength, DWORD dwFlags)
BOOL WINAPI InternetTimeToSystemTimeW(LPCWSTR string, SYSTEMTIME *time, DWORD reserved)
BOOL WINAPI InternetGetLastResponseInfoW(LPDWORD lpdwError, LPWSTR lpszBuffer, LPDWORD lpdwBufferLength)
static DWORD APPINFO_QueryOption(object_header_t *hdr, DWORD option, void *buffer, DWORD *size, BOOL unicode)
#define URL_GET_COMP_LENGTHA(url, component)
static DWORD query_global_option(DWORD option, void *buffer, DWORD *size, BOOL unicode)
static ULONG max_1_0_conns
static void dump_INTERNET_FLAGS(DWORD dwFlags)
BOOL WINAPI InternetReadFile(HINTERNET hFile, LPVOID lpBuffer, DWORD dwNumOfBytesToRead, LPDWORD pdwNumOfBytesRead)
void INTERNET_SetLastError(DWORD dwError)
BOOL WINAPI InternetCreateUrlW(LPURL_COMPONENTSW lpUrlComponents, DWORD dwFlags, LPWSTR lpszUrl, LPDWORD lpdwUrlLength)
static CRITICAL_SECTION WININET_cs
static char * get_computer_name(COMPUTER_NAME_FORMAT format)
BOOL WINAPI InternetGetSecurityInfoByURLW(LPCWSTR lpszURL, PCCERT_CHAIN_CONTEXT *ppCertChain, DWORD *pdwSecureFlags)
HINTERNET WINAPI InternetOpenA(LPCSTR lpszAgent, DWORD dwAccessType, LPCSTR lpszProxy, LPCSTR lpszProxyBypass, DWORD dwFlags)
DWORD INET_SetOption(object_header_t *hdr, DWORD option, void *buf, DWORD size)
HINTERNET WINAPI InternetOpenUrlW(HINTERNET hInternet, LPCWSTR lpszUrl, LPCWSTR lpszHeaders, DWORD dwHeadersLength, DWORD dwFlags, DWORD_PTR dwContext)
void req_file_release(req_file_t *req_file)
static BOOL set_url_component_WtoA(const WCHAR *comp_w, DWORD length, const WCHAR *url_w, char **comp, DWORD *ret_length, const char *url_a)
HRESULT WINAPI DllInstall(BOOL bInstall, LPCWSTR cmdline)
BOOL WINAPI InternetSetOptionA(HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer, DWORD dwBufferLength)
DWORD WINAPI InternetAttemptConnect(DWORD dwReserved)
BOOL WINAPI InternetGetSecurityInfoByURLA(LPSTR lpszURL, PCCERT_CHAIN_CONTEXT *ppCertChain, DWORD *pdwSecureFlags)
static object_header_t ** handle_table
static HINTERNET INTERNET_InternetOpenUrlW(appinfo_t *hIC, LPCWSTR lpszUrl, LPCWSTR lpszHeaders, DWORD dwHeadersLength, DWORD dwFlags, DWORD_PTR dwContext)
static void FreeProxyInfo(proxyinfo_t *lpwpi)
static INTERNET_STATUS_CALLBACK set_status_callback(object_header_t *lpwh, INTERNET_STATUS_CALLBACK callback, BOOL unicode)
WCHAR * INTERNET_FindProxyForProtocol(LPCWSTR szProxy, LPCWSTR proto)
HINTERNET WINAPI InternetOpenUrlA(HINTERNET hInternet, LPCSTR lpszUrl, LPCSTR lpszHeaders, DWORD dwHeadersLength, DWORD dwFlags, DWORD_PTR dwContext)
INTERNET_STATUS_CALLBACK WINAPI InternetSetStatusCallbackA(HINTERNET hInternet, INTERNET_STATUS_CALLBACK lpfnIntCB)
BOOL WINAPI InternetReadFileExA(HINTERNET hFile, LPINTERNET_BUFFERSA lpBuffersOut, DWORD dwFlags, DWORD_PTR dwContext)
struct WITHREADERROR * LPWITHREADERROR
static DWORD zone_preference
static WCHAR * detect_proxy_autoconfig_url_dhcp(void)
void * alloc_async_task(object_header_t *hdr, async_task_proc_t proc, size_t size)
DWORD WINAPI InternetConfirmZoneCrossingW(HWND hWnd, LPWSTR szUrlPrev, LPWSTR szUrlNew, BOOL bPost)
static BOOL scheme_is_opaque(INTERNET_SCHEME nScheme)
INTERNET_STATUS_CALLBACK WINAPI InternetSetStatusCallbackW(HINTERNET hInternet, INTERNET_STATUS_CALLBACK lpfnIntCB)
object_header_t * get_handle_object(HINTERNET hinternet)
BOOL WINAPI InternetAutodial(DWORD dwFlags, HWND hwndParent)
DWORD WINAPI PrivacyGetZonePreferenceW(DWORD zone, DWORD type, LPDWORD template, LPWSTR preference, LPDWORD length)
DWORD WINAPI InternetDialA(HWND hwndParent, LPSTR lpszConnectoid, DWORD dwFlags, DWORD_PTR *lpdwConnection, DWORD dwReserved)
static void convert_urlcomp_atow(LPURL_COMPONENTSA lpUrlComponents, LPURL_COMPONENTSW urlCompW)
BOOL WINAPI InternetCloseHandle(HINTERNET hInternet)
BOOL WINAPI CreateMD5SSOHash(PWSTR pszChallengeInfo, PWSTR pwszRealm, PWSTR pwszTarget, PBYTE pbHexHash)
BOOL WINAPI InternetCrackUrlA(const char *url, DWORD url_length, DWORD flags, URL_COMPONENTSA *ret_comp)
BOOL WINAPI InternetGetConnectedStateExW(LPDWORD lpdwStatus, LPWSTR lpszConnectionName, DWORD dwNameLen, DWORD dwReserved)
static DWORD set_global_option(DWORD option, void *buf, DWORD size)
BOOL WINAPI InternetCheckConnectionW(LPCWSTR lpszUrl, DWORD dwFlags, DWORD dwReserved)
DWORD INET_QueryOption(object_header_t *hdr, DWORD option, void *buffer, DWORD *size, BOOL unicode)
static WCHAR * detect_proxy_autoconfig_url_dns(void)
static BOOL url_uses_default_port(INTERNET_SCHEME nScheme, INTERNET_PORT nPort)
BOOL WINAPI InternetCombineUrlW(LPCWSTR lpszBaseUrl, LPCWSTR lpszRelativeUrl, LPWSTR lpszBuffer, LPDWORD lpdwBufferLength, DWORD dwFlags)
BOOL WINAPI InternetGetConnectedState(LPDWORD lpdwStatus, DWORD dwReserved)
static IP_ADAPTER_ADDRESSES * get_adapters(void)
BOOL WINAPI InternetQueryDataAvailable(HINTERNET hFile, LPDWORD lpdwNumberOfBytesAvailable, DWORD dwFlags, DWORD_PTR dwContext)
BOOL WINAPI InternetGetLastResponseInfoA(LPDWORD lpdwError, LPSTR lpszBuffer, LPDWORD lpdwBufferLength)
static proxyinfo_t * global_proxy
static ULONG connect_timeout
BOOL WINAPI InternetGetConnectedStateExA(LPDWORD lpdwStatus, LPSTR lpszConnectionName, DWORD dwNameLen, DWORD dwReserved)
HINTERNET WINAPI InternetConnectA(HINTERNET hInternet, LPCSTR lpszServerName, INTERNET_PORT nServerPort, LPCSTR lpszUserName, LPCSTR lpszPassword, DWORD dwService, DWORD dwFlags, DWORD_PTR dwContext)
static BOOL is_domain_suffix(const char *domain, const char *suffix)
HINTERNET WINAPI InternetConnectW(HINTERNET hInternet, LPCWSTR lpszServerName, INTERNET_PORT nServerPort, LPCWSTR lpszUserName, LPCWSTR lpszPassword, DWORD dwService, DWORD dwFlags, DWORD_PTR dwContext)
static const WCHAR WININET_wkday[7][4]
static const object_vtbl_t APPINFOVtbl
static LPWITHREADERROR INTERNET_AllocThreadError(void)
HINTERNET WINAPI InternetOpenW(LPCWSTR lpszAgent, DWORD dwAccessType, LPCWSTR lpszProxy, LPCWSTR lpszProxyBypass, DWORD dwFlags)
static UINT_PTR handle_table_size
void * alloc_object(object_header_t *parent, const object_vtbl_t *vtbl, size_t size)
static VOID APPINFO_Destroy(object_header_t *hdr)
static BOOL set_url_component_AtoW(const char *comp_a, DWORD len_a, WCHAR **comp_w, DWORD *len_w, WCHAR **buf)
static LONG INTERNET_SaveProxySettings(proxyinfo_t *lpwpi)
BOOL WINAPI InternetSetOptionW(HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer, DWORD dwBufferLength)
static DWORD CALLBACK INTERNET_WorkerThreadFunc(LPVOID lpvParam)
BOOL WINAPI InternetGoOnlineW(LPWSTR lpszURL, HWND hwndParent, DWORD dwReserved)
BOOL WINAPI InternetInitializeAutoProxyDll(DWORD dwReserved)
static DWORD APPINFO_SetOption(object_header_t *hdr, DWORD option, void *buf, DWORD size)
static BOOL calc_url_length(LPURL_COMPONENTSW lpUrlComponents, LPDWORD lpdwUrlLength)
DWORD WINAPI InternetConfirmZoneCrossingA(HWND hWnd, LPSTR szUrlPrev, LPSTR szUrlNew, BOOL bPost)
static void AsyncInternetOpenUrlProc(task_header_t *hdr)
DWORD WINAPI InternetDialW(HWND hwndParent, LPWSTR lpszConnectoid, DWORD dwFlags, DWORD_PTR *lpdwConnection, DWORD dwReserved)
BOOL WINAPI InternetSetOptionExA(HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer, DWORD dwBufferLength, DWORD dwFlags)
#define IDS_LANCONNECTION
static const WCHAR stringW[]
GLuint GLuint GLsizei GLenum type
GLdouble GLdouble GLdouble r
GLenum GLenum GLuint components
GLboolean GLboolean GLboolean b
GLenum GLuint GLenum GLsizei const GLchar * buf
GLuint GLsizei GLsizei * length
GLenum GLuint GLsizei bufsize
GLboolean GLboolean GLboolean GLboolean a
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean flag
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
static const WCHAR optionW[]
_Check_return_ long __cdecl wcstol(_In_z_ const wchar_t *_Str, _Out_opt_ _Deref_post_z_ wchar_t **_EndPtr, _In_ int _Radix)
_Check_return_ _CRTIMP wchar_t *__cdecl _wgetenv(_In_z_ const wchar_t *_VarName)
_CRTIMP wchar_t *__cdecl _ltow(_In_ long _Value, _Pre_notnull_ _Post_z_ wchar_t *_Dest, _In_ int _Radix)
_CONST_RETURN wchar_t *__cdecl wmemchr(_In_reads_(_N) const wchar_t *_S, _In_ wchar_t _C, _In_ size_t _N)
_CONST_RETURN wchar_t *__cdecl wcsstr(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_SubStr)
static void WININET_find_data_WtoA(LPWIN32_FIND_DATAW dataW, LPWIN32_FIND_DATAA dataA)
void free_urlcache(void) DECLSPEC_HIDDEN
static substr_t substr(const WCHAR *str, size_t len)
void init_winsock(void) DECLSPEC_HIDDEN
#define _SECURITY_ERROR_FLAGS_MASK
void(* async_task_proc_t)(task_header_t *)
BOOL GetAddress(const WCHAR *, INTERNET_PORT, SOCKADDR *, int *, char *) DECLSPEC_HIDDEN
static WCHAR * heap_strndupAtoW(const char *str, int len_a, DWORD *len_w)
BOOL init_urlcache(void) DECLSPEC_HIDDEN
VOID INTERNET_SendCallback(object_header_t *hdr, DWORD_PTR dwContext, DWORD dwInternetStatus, LPVOID lpvStatusInfo, DWORD dwStatusInfoLength) DECLSPEC_HIDDEN
void NETCON_unload(void) DECLSPEC_HIDDEN
#define GAA_FLAG_SKIP_FRIENDLY_NAME
BOOL WINAPI GetComputerNameExA(COMPUTER_NAME_FORMAT, LPSTR, LPDWORD)
#define IF_TYPE_SOFTWARE_LOOPBACK
#define MAX_ADAPTER_NAME_LENGTH
static IN DWORD IN LPVOID lpvReserved
#define memcpy(s1, s2, n)
#define ERROR_FILE_NOT_FOUND
static IPrintDialogCallback callback
unsigned __int3264 UINT_PTR
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
static unsigned __int64 next
int __cdecl system(_In_opt_z_ const char *_Command)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
vector< Header * > headers
#define URL_ESCAPE_UNSAFE
#define URL_WININET_COMPATIBILITY
#define URL_ESCAPE_SPACES_ONLY
#define URL_ESCAPE_PERCENT
SOCKET WSAAPI accept(IN SOCKET s, OUT LPSOCKADDR addr, OUT INT FAR *addrlen)
SOCKET WSAAPI socket(IN INT af, IN INT type, IN INT protocol)
CHAR response[MAX_REPLY_LEN]
LIST_ENTRY ProcessLocksList
union _INTERNET_PER_CONN_OPTIONA::@3405 Value
union _INTERNET_PER_CONN_OPTIONW::@3406 Value
LPINTERNET_PER_CONN_OPTIONA pOptions
LPINTERNET_PER_CONN_OPTIONW pOptions
struct sockaddr * ai_addr
struct addrinfo * ai_next
DWORD(* SetOption)(object_header_t *, DWORD, void *, DWORD)
DWORD(* WriteFile)(object_header_t *, const void *, DWORD, DWORD *)
static rfbScreenInfoPtr server
DWORD WINAPI GetLastError(void)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
#define TLS_OUT_OF_INDEXES
_In_opt_ LPSTR _In_opt_ LPSTR lpszPassword
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
#define ERROR_BUFFER_OVERFLOW
#define ERROR_BAD_ARGUMENTS
#define ERROR_NOT_CONNECTED
#define INTERNET_SCHEME_FTP
_In_ _In_opt_ _Out_writes_bytes_to_opt_ lpdwBufferLength _Inout_ LPDWORD lpdwBufferLength
#define ICU_ENCODE_SPACES_ONLY
#define INTERNET_SCHEME_HTTP
#define INTERNET_DEFAULT_HTTP_PORT
#define INTERNET_SCHEME_HTTPS
#define ICU_ENCODE_PERCENT
#define INTERNET_DEFAULT_HTTPS_PORT
#define AUTO_PROXY_FLAG_ALWAYS_DETECT
#define INTERNET_OPTION_CONNECTED_STATE
#define INTERNET_FLAG_FROM_CACHE
#define INTERNET_DEFAULT_FTP_PORT
#define INTERNET_PER_CONN_AUTOCONFIG_RELOAD_DELAY_MINS
#define INTERNET_FLAG_PRAGMA_NOCACHE
#define INTERNET_ERROR_MASK_COMBINED_SEC_CERT
#define INTERNET_OPTION_CODEPAGE
#define INTERNET_FLAG_NO_AUTO_REDIRECT
#define INTERNET_OPTION_SECURITY_FLAGS
#define INTERNET_OPTION_PROXY_PASSWORD
#define PROXY_TYPE_AUTO_PROXY_URL
#define INTERNET_FLAG_RELOAD
#define INTERNET_FLAG_RESYNCHRONIZE
#define INTERNET_PER_CONN_FLAGS
#define INTERNET_OPTION_PROXY_USERNAME
#define INTERNET_PER_CONN_AUTODISCOVERY_FLAGS
#define INTERNET_FLAG_RAW_DATA
#define INTERNET_FLAG_TRANSFER_ASCII
#define INTERNET_FLAG_ASYNC
#define INTERNET_OPTION_DATA_SEND_TIMEOUT
#define INTERNET_FLAG_NO_COOKIES
#define INTERNET_RFC1123_FORMAT
#define INTERNET_FLAG_KEEP_CONNECTION
#define INTERNET_OPTION_USER_AGENT
#define INTERNET_SERVICE_FTP
VOID(CALLBACK * INTERNET_STATUS_CALLBACK)(_In_ HINTERNET, _In_opt_ DWORD_PTR, _In_ DWORD, _In_opt_ LPVOID, _In_ DWORD)
#define ERROR_INTERNET_ASYNC_THREAD_FAILED
#define ERROR_INTERNET_ITEM_NOT_FOUND
#define INTERNET_OPTION_CONNECT_RETRIES
#define INTERNET_FLAG_PASSIVE
#define INTERNET_ERROR_MASK_INSERT_CDROM
#define INTERNET_OPTION_IGNORE_OFFLINE
#define INTERNET_OPTION_PASSWORD
#define PROXY_TYPE_DIRECT
#define INTERNET_OPTION_IDN
#define INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY
struct _INTERNET_PER_CONN_OPTION_LISTW INTERNET_PER_CONN_OPTION_LISTW
#define INTERNET_OPTION_CONNECT_TIMEOUT
#define INTERNET_STATUS_HANDLE_CLOSING
#define ERROR_INTERNET_OPTION_NOT_SETTABLE
#define INTERNET_FLAG_NEED_FILE
#define INTERNET_CONNECTION_LAN
#define INTERNET_PER_CONN_AUTOCONFIG_URL
#define INTERNET_FLAG_NO_CACHE_WRITE
#define INTERNET_FLAG_TRANSFER_BINARY
#define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY
#define INTERNET_FLAG_CACHE_ASYNC
#define INTERNET_FLAG_SECURE
#define HTTP_ADDREQ_FLAG_ADD
#define INTERNET_HANDLE_TYPE_INTERNET
#define INTERNET_FLAG_HYPERLINK
#define INTERNET_FLAG_NO_UI
#define INTERNET_FLAG_MAKE_PERSISTENT
#define INTERNET_OPEN_TYPE_DIRECT
#define INTERNET_PER_CONN_PROXY_SERVER
#define INTERNET_OPTION_DATA_RECEIVE_TIMEOUT
@ INTERNET_SCHEME_DEFAULT
@ INTERNET_SCHEME_UNKNOWN
#define INTERNET_OPTION_MAX_CONNS_PER_SERVER
#define FLAG_ICC_FORCE_CONNECTION
#define INTERNET_OPTION_PROXY
#define INTERNET_RFC1123_BUFSIZE
#define INTERNET_PER_CONN_FLAGS_UI
#define INTERNET_OPTION_COOKIES_3RD_PARTY
#define INTERNET_OPTION_CODEPAGE_PATH
#define INTERNET_PER_CONN_PROXY_BYPASS
#define ERROR_INTERNET_INVALID_OPERATION
#define INTERNET_OPTION_RESET_URLCACHE_SESSION
#define INTERNET_PER_CONN_AUTOCONFIG_SECONDARY_URL
#define INTERNET_OPEN_TYPE_PROXY
#define INTERNET_OPTION_PER_CONNECTION_OPTION
#define INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_URL
#define INTERNET_INVALID_PORT_NUMBER
#define INTERNET_FLAG_READ_PREFETCH
#define INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
#define INTERNET_OPTION_DISABLE_PASSPORT_AUTH
#define INTERNET_FLAG_CACHE_IF_NET_FAIL
#define INTERNET_OPTION_SEND_TIMEOUT
#define INTERNET_OPEN_TYPE_PRECONFIG
#define INTERNET_DEFAULT_GOPHER_PORT
#define INTERNET_OPTION_DISABLE_AUTODIAL
#define INTERNET_OPTION_VERSION
#define INTERNET_STATE_CONNECTED
#define INTERNET_OPTION_RECEIVE_TIMEOUT
#define INTERNET_OPTION_ERROR_MASK
#define INTERNET_FLAG_IGNORE_CERT_CN_INVALID
#define INTERNET_OPTION_CODEPAGE_EXTRA
#define ERROR_INTERNET_INVALID_OPTION
#define INTERNET_OPTION_SUPPRESS_BEHAVIOR
#define INTERNET_OPTION_POLICY
#define INTERNET_OPTION_HTTP_VERSION
#define INTERNET_OPTION_CONTEXT_VALUE
#define INTERNET_OPTION_HANDLE_TYPE
#define INTERNET_FLAG_FORMS_SUBMIT
#define ERROR_INTERNET_INCORRECT_HANDLE_TYPE
#define INTERNET_INVALID_STATUS_CALLBACK
#define INTERNET_OPTION_REFRESH
#define ERROR_INTERNET_BAD_OPTION_LENGTH
#define INTERNET_FLAG_EXISTING_CONNECT
#define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
#define INTERNET_OPTION_USERNAME
#define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
#define INTERNET_OPTION_HTTP_DECODING
#define INTERNET_OPTION_SETTINGS_CHANGED
#define INTERNET_OPTION_REQUEST_PRIORITY
#define INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER
#define ERROR_INTERNET_UNRECOGNIZED_SCHEME
#define INTERNET_OPTION_END_BROWSER_SESSION
#define INTERNET_OPTION_CALLBACK
#define INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_TIME
#define INTERNET_SERVICE_HTTP
#define INTERNET_OPTION_SEND_UTF8_SERVERNAME_TO_PROXY
#define INTERNET_FLAG_NO_AUTH
#define INTERNET_OPTION_REQUEST_FLAGS
#define INTERNET_SERVICE_GOPHER
#define INTERNET_PROXY_INFOA
#define LPINTERNET_PROXY_INFOA
#define LPINTERNET_PROXY_INFOW
#define INTERNET_PROXY_INFOW
#define WT_EXECUTELONGFUNCTION
#define HKEY_CURRENT_USER
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)