You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
293 lines
9.1 KiB
293 lines
9.1 KiB
#if defined(_WIN64)
|
|
#include <pshpack8.h>
|
|
#else
|
|
#include <pshpack4.h>
|
|
#endif
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
typedef struct {
|
|
DWORD dwOption; // option to be queried or set
|
|
union {
|
|
DWORD dwValue; // dword value for the option
|
|
LPSTR pszValue; // pointer to string value for the option
|
|
FILETIME ftValue; // file-time value for the option
|
|
} Value;
|
|
} INTERNET_PER_CONN_OPTIONA, * LPINTERNET_PER_CONN_OPTIONA;
|
|
typedef INTERNET_PER_CONN_OPTIONA INTERNET_PER_CONN_OPTION;
|
|
typedef LPINTERNET_PER_CONN_OPTIONA LPINTERNET_PER_CONN_OPTION;
|
|
|
|
typedef struct {
|
|
DWORD dwSize; // size of the INTERNET_PER_CONN_OPTION_LIST struct
|
|
LPSTR pszConnection; // connection name to set/query options
|
|
DWORD dwOptionCount; // number of options to set/query
|
|
DWORD dwOptionError; // on error, which option failed
|
|
LPINTERNET_PER_CONN_OPTIONA pOptions;
|
|
// array of options to set/query
|
|
} INTERNET_PER_CONN_OPTION_LISTA, * LPINTERNET_PER_CONN_OPTION_LISTA;
|
|
typedef INTERNET_PER_CONN_OPTION_LISTA INTERNET_PER_CONN_OPTION_LIST;
|
|
typedef LPINTERNET_PER_CONN_OPTION_LISTA LPINTERNET_PER_CONN_OPTION_LIST;
|
|
|
|
typedef struct {
|
|
DWORD dwStructSize; // size of this structure. Used in version check
|
|
LPSTR lpszScheme; // pointer to scheme name
|
|
DWORD dwSchemeLength; // length of scheme name
|
|
INTERNET_SCHEME nScheme; // enumerated scheme type (if known)
|
|
LPSTR lpszHostName; // pointer to host name
|
|
DWORD dwHostNameLength; // length of host name
|
|
INTERNET_PORT nPort; // converted port number
|
|
LPSTR lpszUserName; // pointer to user name
|
|
DWORD dwUserNameLength; // length of user name
|
|
LPSTR lpszPassword; // pointer to password
|
|
DWORD dwPasswordLength; // length of password
|
|
LPSTR lpszUrlPath; // pointer to URL-path
|
|
DWORD dwUrlPathLength; // length of URL-path
|
|
LPSTR lpszExtraInfo; // pointer to extra information (e.g. ?foo or #foo)
|
|
DWORD dwExtraInfoLength; // length of extra information
|
|
} URL_COMPONENTSA, * LPURL_COMPONENTSA;
|
|
|
|
typedef struct _INTERNET_BUFFERSA {
|
|
DWORD dwStructSize; // used for API versioning. Set to sizeof(INTERNET_BUFFERS)
|
|
struct _INTERNET_BUFFERSA * Next; // chain of buffers
|
|
LPCSTR lpcszHeader; // pointer to headers (may be NULL)
|
|
DWORD dwHeadersLength; // length of headers if not NULL
|
|
DWORD dwHeadersTotal; // size of headers if not enough buffer
|
|
LPVOID lpvBuffer; // pointer to data buffer (may be NULL)
|
|
DWORD dwBufferLength; // length of data buffer if not NULL
|
|
DWORD dwBufferTotal; // total size of chunk, or content-length if not chunked
|
|
DWORD dwOffsetLow; // used for read-ranges (only used in HttpSendRequest2)
|
|
DWORD dwOffsetHigh;
|
|
} INTERNET_BUFFERSA, * LPINTERNET_BUFFERSA;
|
|
typedef INTERNET_BUFFERSA INTERNET_BUFFERS;
|
|
typedef LPINTERNET_BUFFERSA LPINTERNET_BUFFERS;
|
|
|
|
BOOLAPI
|
|
InternetTimeFromSystemTimeA(
|
|
IN CONST SYSTEMTIME *pst, // input GMT time
|
|
OUT LPSTR lpszTime // output string buffer
|
|
);
|
|
#define InternetTimeFromSystemTime InternetTimeFromSystemTimeA
|
|
|
|
BOOLAPI
|
|
InternetTimeToSystemTimeA(
|
|
IN LPCSTR lpszTime, // NULL terminated string
|
|
OUT SYSTEMTIME *pst, // output in GMT time
|
|
IN DWORD dwReserved
|
|
);
|
|
#define InternetTimeToSystemTime InternetTimeToSystemTimeA
|
|
|
|
typedef struct
|
|
{
|
|
DWORD dwAccessType; // see WINHTTP_ACCESS_* types below
|
|
LPSTR lpszProxy; // proxy server list
|
|
LPSTR lpszProxyBypass; // proxy bypass list
|
|
} WINHTTP_PROXY_INFOA;
|
|
|
|
typedef WINHTTP_PROXY_INFOA* LPINTERNET_PROXY_INFO;
|
|
|
|
|
|
BOOLAPI
|
|
WinHttpCrackUrlA(
|
|
IN LPCSTR lpszUrl,
|
|
IN DWORD dwUrlLength,
|
|
IN DWORD dwFlags,
|
|
IN OUT LPURL_COMPONENTSA lpUrlComponents
|
|
);
|
|
|
|
BOOLAPI
|
|
WinHttpCreateUrlA(
|
|
IN LPURL_COMPONENTSA lpUrlComponents,
|
|
IN DWORD dwFlags,
|
|
OUT LPSTR lpszUrl,
|
|
IN OUT LPDWORD lpdwUrlLength
|
|
);
|
|
|
|
INTERNETAPI
|
|
HINTERNET
|
|
WINAPI
|
|
InternetOpenA(
|
|
IN LPCSTR lpszAgent,
|
|
IN DWORD dwAccessType,
|
|
IN LPCSTR lpszProxy OPTIONAL,
|
|
IN LPCSTR lpszProxyBypass OPTIONAL,
|
|
IN DWORD dwFlags
|
|
);
|
|
#define InternetOpen InternetOpenA
|
|
|
|
INTERNETAPI
|
|
HINTERNET
|
|
WINAPI
|
|
InternetConnectA(
|
|
IN HINTERNET hInternet,
|
|
IN LPCSTR lpszServerName,
|
|
IN INTERNET_PORT nServerPort,
|
|
IN DWORD dwFlags,
|
|
IN DWORD_PTR dwContext
|
|
);
|
|
#define InternetConnect InternetConnectA
|
|
|
|
INTERNETAPI
|
|
HINTERNET
|
|
WINAPI
|
|
InternetOpenUrlA(
|
|
IN HINTERNET hInternet,
|
|
IN LPCSTR lpszUrl,
|
|
IN LPCSTR lpszHeaders OPTIONAL,
|
|
IN DWORD dwHeadersLength,
|
|
IN DWORD dwFlags,
|
|
IN DWORD_PTR dwContext
|
|
);
|
|
#define InternetOpenUrl InternetOpenUrlA
|
|
|
|
INTERNETAPI
|
|
BOOL
|
|
WINAPI
|
|
InternetReadFileExA(
|
|
IN HINTERNET hFile,
|
|
OUT LPINTERNET_BUFFERSA lpBuffersOut,
|
|
IN DWORD dwFlags,
|
|
IN DWORD_PTR dwContext
|
|
);
|
|
#define InternetReadFileEx InternetReadFileExA
|
|
|
|
INTERNETAPI
|
|
BOOL
|
|
WINAPI
|
|
InternetWriteFileExA(
|
|
IN HINTERNET hFile,
|
|
IN LPINTERNET_BUFFERSA lpBuffersIn,
|
|
IN DWORD dwFlags,
|
|
IN DWORD_PTR dwContext
|
|
);
|
|
#define InternetWriteFileEx InternetWriteFileExA
|
|
|
|
BOOLAPI
|
|
InternetQueryOptionA(
|
|
IN HINTERNET hInternet OPTIONAL,
|
|
IN DWORD dwOption,
|
|
OUT LPVOID lpBuffer OPTIONAL,
|
|
IN OUT LPDWORD lpdwBufferLength
|
|
);
|
|
#define InternetQueryOption InternetQueryOptionA
|
|
|
|
BOOLAPI
|
|
InternetSetOptionA(
|
|
IN HINTERNET hInternet OPTIONAL,
|
|
IN DWORD dwOption,
|
|
IN LPVOID lpBuffer,
|
|
IN DWORD dwBufferLength
|
|
);
|
|
#define InternetSetOption InternetSetOptionA
|
|
|
|
BOOLAPI
|
|
InternetGetLastResponseInfoA(
|
|
OUT LPDWORD lpdwError,
|
|
OUT LPSTR lpszBuffer OPTIONAL,
|
|
IN OUT LPDWORD lpdwBufferLength
|
|
);
|
|
#define InternetGetLastResponseInfo InternetGetLastResponseInfoA
|
|
|
|
INTERNETAPI
|
|
WINHTTP_STATUS_CALLBACK
|
|
WINAPI
|
|
InternetSetStatusCallbackA(
|
|
IN HINTERNET hInternet,
|
|
IN WINHTTP_STATUS_CALLBACK lpfnInternetCallback
|
|
);
|
|
#define InternetSetStatusCallback InternetSetStatusCallbackA
|
|
|
|
BOOLAPI
|
|
HttpAddRequestHeadersA(
|
|
IN HINTERNET hRequest,
|
|
IN LPCSTR lpszHeaders,
|
|
IN DWORD dwHeadersLength,
|
|
IN DWORD dwModifiers
|
|
);
|
|
#define HttpAddRequestHeaders HttpAddRequestHeadersA
|
|
|
|
#define HTTP_VERSIONA "HTTP/1.0"
|
|
#define HTTP_VERSION HTTP_VERSIONA
|
|
|
|
INTERNETAPI
|
|
HINTERNET
|
|
WINAPI
|
|
HttpOpenRequestA(
|
|
IN HINTERNET hConnect,
|
|
IN LPCSTR lpszVerb,
|
|
IN LPCSTR lpszObjectName,
|
|
IN LPCSTR lpszVersion,
|
|
IN LPCSTR lpszReferrer OPTIONAL,
|
|
IN LPCSTR FAR * lplpszAcceptTypes OPTIONAL,
|
|
IN DWORD dwFlags,
|
|
IN DWORD_PTR dwContext
|
|
);
|
|
#define HttpOpenRequest HttpOpenRequestA
|
|
|
|
BOOLAPI
|
|
HttpSendRequestA(
|
|
IN HINTERNET hRequest,
|
|
IN LPCSTR lpszHeaders OPTIONAL,
|
|
IN DWORD dwHeadersLength,
|
|
IN LPVOID lpOptional OPTIONAL,
|
|
IN DWORD dwOptionalLength
|
|
);
|
|
#define HttpSendRequest HttpSendRequestA
|
|
|
|
BOOLAPI WinHttpSetCredentialsA (
|
|
|
|
IN HINTERNET hRequest, // HINTERNET handle returned by HttpOpenRequest.
|
|
|
|
IN DWORD AuthTargets, // Only WINHTTP_AUTH_TARGET_SERVER and
|
|
// WINHTTP_AUTH_TARGET_PROXY are supported
|
|
// in this version and they are mutually
|
|
// exclusive
|
|
|
|
IN DWORD AuthScheme, // must be one of the supported Auth Schemes
|
|
// returned from HttpQueryAuthSchemes(), Apps
|
|
// should use the Preferred Scheme returned
|
|
|
|
IN LPCSTR pszUserName, // 1) NULL if default creds is to be used, in
|
|
// which case pszPassword will be ignored
|
|
|
|
IN LPCSTR pszPassword, // 1) "" == Blank Passowrd; 2)Parameter ignored
|
|
// if pszUserName is NULL; 3) Invalid to pass in
|
|
// NULL if pszUserName is not NULL
|
|
IN LPVOID pAuthParams
|
|
|
|
);
|
|
#define HttpSetCredentials HttpSetCredentialsA
|
|
|
|
INTERNETAPI
|
|
BOOL
|
|
WINAPI
|
|
HttpSendRequestExA(
|
|
IN HINTERNET hRequest,
|
|
IN LPINTERNET_BUFFERSA lpBuffersIn OPTIONAL,
|
|
OUT LPINTERNET_BUFFERSA lpBuffersOut OPTIONAL,
|
|
IN DWORD dwFlags,
|
|
IN DWORD_PTR dwContext
|
|
);
|
|
#define HttpSendRequestEx HttpSendRequestExA
|
|
|
|
BOOLAPI
|
|
HttpQueryInfoA(
|
|
IN HINTERNET hRequest,
|
|
IN DWORD dwInfoLevel,
|
|
IN LPCSTR lpszName OPTIONAL,
|
|
IN OUT LPVOID lpBuffer OPTIONAL,
|
|
IN OUT LPDWORD lpdwBufferLength,
|
|
IN OUT LPDWORD lpdwIndex OPTIONAL
|
|
);
|
|
#define HttpQueryInfo HttpQueryInfoA
|
|
|
|
#if defined(__cplusplus)
|
|
} // end extern "C" {
|
|
#endif
|
|
|
|
BOOL internalWinHttpGetDefaultProxyConfigurationA( IN OUT WINHTTP_PROXY_INFOA * pProxyInfo);
|
|
BOOL internalWinHttpSetDefaultProxyConfigurationA( IN WINHTTP_PROXY_INFOA * pProxyInfo);
|
|
|
|
|
|
|