📄 wininet.h
字号:
LPWSTR lpszHostName; // pointer to host name
DWORD dwHostNameLength; // length of host name
INTERNET_PORT nPort; // converted port number
LPWSTR lpszUserName; // pointer to user name
DWORD dwUserNameLength; // length of user name
LPWSTR lpszPassword; // pointer to password
DWORD dwPasswordLength; // length of password
LPWSTR lpszUrlPath; // pointer to URL-path
DWORD dwUrlPathLength; // length of URL-path
LPWSTR lpszExtraInfo; // pointer to extra information (e.g. ?foo or #foo)
DWORD dwExtraInfoLength; // length of extra information
} URL_COMPONENTSW, * LPURL_COMPONENTSW;
#ifdef UNICODE
typedef URL_COMPONENTSW URL_COMPONENTS;
typedef LPURL_COMPONENTSW LPURL_COMPONENTS;
#else
typedef URL_COMPONENTSA URL_COMPONENTS;
typedef LPURL_COMPONENTSA LPURL_COMPONENTS;
#endif // UNICODE
//
// INTERNET_CERTIFICATE_INFO lpBuffer - contains the certificate returned from
// the server
//
typedef struct {
//
// ftExpiry - date the certificate expires.
//
FILETIME ftExpiry;
//
// ftStart - date the certificate becomes valid.
//
FILETIME ftStart;
//
// lpszSubjectInfo - the name of organization, site, and server
// the cert. was issued for.
//
LPTSTR lpszSubjectInfo;
//
// lpszIssuerInfo - the name of orgainzation, site, and server
// the cert was issues by.
//
LPTSTR lpszIssuerInfo;
//
// lpszProtocolName - the name of the protocol used to provide the secure
// connection.
//
LPTSTR lpszProtocolName;
//
// lpszSignatureAlgName - the name of the algorithm used for signing
// the certificate.
//
LPTSTR lpszSignatureAlgName;
//
// lpszEncryptionAlgName - the name of the algorithm used for
// doing encryption over the secure channel (SSL/PCT) connection.
//
LPTSTR lpszEncryptionAlgName;
//
// dwKeySize - size of the key.
//
DWORD dwKeySize;
} INTERNET_CERTIFICATE_INFO, * LPINTERNET_CERTIFICATE_INFO;
//
// INTERNET_BUFFERS - combines headers and data. May be chained for e.g. file
// upload or scatter/gather operations. For chunked read/write, lpcszHeader
// contains the chunked-ext
//
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 struct _INTERNET_BUFFERSW {
DWORD dwStructSize; // used for API versioning. Set to sizeof(INTERNET_BUFFERS)
struct _INTERNET_BUFFERSW * Next; // chain of buffers
LPCWSTR 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_BUFFERSW, * LPINTERNET_BUFFERSW;
#ifdef UNICODE
typedef INTERNET_BUFFERSW INTERNET_BUFFERS;
typedef LPINTERNET_BUFFERSW LPINTERNET_BUFFERS;
#else
typedef INTERNET_BUFFERSA INTERNET_BUFFERS;
typedef LPINTERNET_BUFFERSA LPINTERNET_BUFFERS;
#endif // UNICODE
//
// prototypes
//
BOOLAPI
InternetTimeFromSystemTime(
IN CONST SYSTEMTIME *pst, // input GMT time
IN DWORD dwRFC, // RFC format
OUT LPSTR lpszTime, // output string buffer
IN DWORD cbTime // output buffer size
);
//
// constants for InternetTimeFromSystemTime
//
#define INTERNET_RFC1123_FORMAT 0
#define INTERNET_RFC1123_BUFSIZE 30
BOOLAPI
InternetTimeToSystemTime(
IN LPCSTR lpszTime, // NULL terminated string
OUT SYSTEMTIME *pst, // output in GMT time
IN DWORD dwReserved
);
BOOLAPI
InternetCrackUrlA(
IN LPCSTR lpszUrl,
IN DWORD dwUrlLength,
IN DWORD dwFlags,
IN OUT LPURL_COMPONENTSA lpUrlComponents
);
BOOLAPI
InternetCrackUrlW(
IN LPCWSTR lpszUrl,
IN DWORD dwUrlLength,
IN DWORD dwFlags,
IN OUT LPURL_COMPONENTSW lpUrlComponents
);
#ifdef UNICODE
#define InternetCrackUrl InternetCrackUrlW
#else
#define InternetCrackUrl InternetCrackUrlA
#endif // !UNICODE
BOOLAPI
InternetCreateUrlA(
IN LPURL_COMPONENTSA lpUrlComponents,
IN DWORD dwFlags,
OUT LPSTR lpszUrl,
IN OUT LPDWORD lpdwUrlLength
);
BOOLAPI
InternetCreateUrlW(
IN LPURL_COMPONENTSW lpUrlComponents,
IN DWORD dwFlags,
OUT LPWSTR lpszUrl,
IN OUT LPDWORD lpdwUrlLength
);
#ifdef UNICODE
#define InternetCreateUrl InternetCreateUrlW
#else
#define InternetCreateUrl InternetCreateUrlA
#endif // !UNICODE
BOOLAPI
InternetCanonicalizeUrlA(
IN LPCSTR lpszUrl,
OUT LPSTR lpszBuffer,
IN OUT LPDWORD lpdwBufferLength,
IN DWORD dwFlags
);
BOOLAPI
InternetCanonicalizeUrlW(
IN LPCWSTR lpszUrl,
OUT LPWSTR lpszBuffer,
IN OUT LPDWORD lpdwBufferLength,
IN DWORD dwFlags
);
#ifdef UNICODE
#define InternetCanonicalizeUrl InternetCanonicalizeUrlW
#else
#define InternetCanonicalizeUrl InternetCanonicalizeUrlA
#endif // !UNICODE
BOOLAPI
InternetCombineUrlA(
IN LPCSTR lpszBaseUrl,
IN LPCSTR lpszRelativeUrl,
OUT LPSTR lpszBuffer,
IN OUT LPDWORD lpdwBufferLength,
IN DWORD dwFlags
);
BOOLAPI
InternetCombineUrlW(
IN LPCWSTR lpszBaseUrl,
IN LPCWSTR lpszRelativeUrl,
OUT LPWSTR lpszBuffer,
IN OUT LPDWORD lpdwBufferLength,
IN DWORD dwFlags
);
#ifdef UNICODE
#define InternetCombineUrl InternetCombineUrlW
#else
#define InternetCombineUrl InternetCombineUrlA
#endif // !UNICODE
//
// flags for InternetCrackUrl() and InternetCreateUrl()
//
#define ICU_ESCAPE 0x80000000 // (un)escape URL characters
#define ICU_USERNAME 0x40000000 // use internal username & password
//
// flags for InternetCanonicalizeUrl() and InternetCombineUrl()
//
#define ICU_NO_ENCODE 0x20000000 // Don't convert unsafe characters to escape sequence
#define ICU_DECODE 0x10000000 // Convert %XX escape sequences to characters
#define ICU_NO_META 0x08000000 // Don't convert .. etc. meta path sequences
#define ICU_ENCODE_SPACES_ONLY 0x04000000 // Encode spaces only
#define ICU_BROWSER_MODE 0x02000000 // Special encode/decode rules for browser
INTERNETAPI
HINTERNET
WINAPI
InternetOpenA(
IN LPCSTR lpszAgent,
IN DWORD dwAccessType,
IN LPCSTR lpszProxy OPTIONAL,
IN LPCSTR lpszProxyBypass OPTIONAL,
IN DWORD dwFlags
);
INTERNETAPI
HINTERNET
WINAPI
InternetOpenW(
IN LPCWSTR lpszAgent,
IN DWORD dwAccessType,
IN LPCWSTR lpszProxy OPTIONAL,
IN LPCWSTR lpszProxyBypass OPTIONAL,
IN DWORD dwFlags
);
#ifdef UNICODE
#define InternetOpen InternetOpenW
#else
#define InternetOpen InternetOpenA
#endif // !UNICODE
//
// access types for InternetOpen()
//
#define INTERNET_OPEN_TYPE_PRECONFIG 0 // use registry configuration
#define INTERNET_OPEN_TYPE_DIRECT 1 // direct to net
#define INTERNET_OPEN_TYPE_PROXY 3 // via named proxy
#define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY 4 // prevent using java/script/INS
//
// old names for access types
//
#define PRE_CONFIG_INTERNET_ACCESS INTERNET_OPEN_TYPE_PRECONFIG
#define LOCAL_INTERNET_ACCESS INTERNET_OPEN_TYPE_DIRECT
#define CERN_PROXY_INTERNET_ACCESS INTERNET_OPEN_TYPE_PROXY
BOOLAPI
InternetCloseHandle(
IN HINTERNET hInternet
);
INTERNETAPI
HINTERNET
WINAPI
InternetConnectA(
IN HINTERNET hInternet,
IN LPCSTR lpszServerName,
IN INTERNET_PORT nServerPort,
IN LPCSTR lpszUserName OPTIONAL,
IN LPCSTR lpszPassword OPTIONAL,
IN DWORD dwService,
IN DWORD dwFlags,
IN DWORD dwContext
);
INTERNETAPI
HINTERNET
WINAPI
InternetConnectW(
IN HINTERNET hInternet,
IN LPCWSTR lpszServerName,
IN INTERNET_PORT nServerPort,
IN LPCWSTR lpszUserName OPTIONAL,
IN LPCWSTR lpszPassword OPTIONAL,
IN DWORD dwService,
IN DWORD dwFlags,
IN DWORD dwContext
);
#ifdef UNICODE
#define InternetConnect InternetConnectW
#else
#define InternetConnect InternetConnectA
#endif // !UNICODE
//
// service types for InternetConnect()
//
#define INTERNET_SERVICE_URL 0
#define INTERNET_SERVICE_FTP 1
#define INTERNET_SERVICE_GOPHER 2
#define INTERNET_SERVICE_HTTP 3
//
// InternetConnectUrl() - a macro which allows you to specify an URL instead of
// the component parts to InternetConnect(). If any API which uses the returned
// connect handle specifies a NULL path then the URL-path part of the URL
// specified in InternetConnectUrl() will be used
//
#define InternetConnectUrl(hInternet, lpszUrl, dwFlags, dwContext) \
InternetConnect(hInternet, \
lpszUrl, \
INTERNET_INVALID_PORT_NUMBER, \
NULL, \
NULL, \
INTERNET_SERVICE_URL, \
dwFlags, \
dwContext \
)
INTERNETAPI
HINTERNET
WINAPI
InternetOpenUrlA(
IN HINTERNET hInternet,
IN LPCSTR lpszUrl,
IN LPCSTR lpszHeaders OPTIONAL,
IN DWORD dwHeadersLength,
IN DWORD dwFlags,
IN DWORD dwContext
);
INTERNETAPI
HINTERNET
WINAPI
InternetOpenUrlW(
IN HINTERNET hInternet,
IN LPCWSTR lpszUrl,
IN LPCWSTR lpszHeaders OPTIONAL,
IN DWORD dwHeadersLength,
IN DWORD dwFlags,
IN DWORD dwContext
);
#ifdef UNICODE
#define InternetOpenUrl InternetOpenUrlW
#else
#define InternetOpenUrl InternetOpenUrlA
#endif // !UNICODE
BOOLAPI
InternetReadFile(
IN HINTERNET hFile,
IN LPVOID lpBuffer,
IN DWORD dwNumberOfBytesToRead,
OUT LPDWORD lpdwNumberOfBytesRead
);
INTERNETAPI
BOOL
WINAPI
InternetReadFileExA(
IN HINTERNET hFile,
OUT LPINTERNET_BUFFERSA lpBuffersOut,
IN DWORD dwFlags,
IN DWORD dwContext
);
INTERNETAPI
BOOL
WINAPI
InternetReadFileExW(
IN HINTERNET hFile,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -