📄 clwininet.pas
字号:
{$EXTERNALSYM INTERNET_SCHEME_HTTP}
INTERNET_SCHEME_HTTPS = 4;
{$EXTERNALSYM INTERNET_SCHEME_HTTPS}
INTERNET_SCHEME_FILE = 5;
{$EXTERNALSYM INTERNET_SCHEME_FILE}
INTERNET_SCHEME_NEWS = 6;
{$EXTERNALSYM INTERNET_SCHEME_NEWS}
INTERNET_SCHEME_MAILTO = 7;
{$EXTERNALSYM INTERNET_SCHEME_MAILTO}
INTERNET_SCHEME_FIRST = INTERNET_SCHEME_FTP;
{$EXTERNALSYM INTERNET_SCHEME_FIRST}
INTERNET_SCHEME_LAST = INTERNET_SCHEME_MAILTO;
{$EXTERNALSYM INTERNET_SCHEME_LAST}
{ TInternetAsyncResult - this structure is returned to the application via }
{ the callback with INTERNET_STATUS_REQUEST_COMPLETE. It is not sufficient to }
{ just return the result of the async operation. If the API failed then the }
{ app cannot call GetLastError because the thread context will be incorrect. }
{ Both the value returned by the async API and any resultant error code are }
{ made available. The app need not check dwError if dwResult indicates that }
{ the API succeeded (in this case dwError will be ERROR_SUCCESS) }
type
PInternetAsyncResult = ^TInternetAsyncResult;
TInternetAsyncResult = packed record
dwResult: DWORD; { the HINTERNET, DWORD or BOOL return code from an async API }
dwError: DWORD; { dwError - the error code if the API failed }
end;
PInternetPrefetchStatus = ^TInternetPrefetchStatus;
TInternetPrefetchStatus = packed record
dwStatus: DWORD; { dwStatus - status of download. See INTERNET_PREFETCH_ flags }
dwSize: DWORD; { dwSize - size of file downloaded so far }
end;
const
{ INTERNET_PREFETCH_STATUS - dwStatus values }
INTERNET_PREFETCH_PROGRESS = 0;
{$EXTERNALSYM INTERNET_PREFETCH_PROGRESS}
INTERNET_PREFETCH_COMPLETE = 1;
{$EXTERNALSYM INTERNET_PREFETCH_COMPLETE}
INTERNET_PREFETCH_ABORTED = 2;
{$EXTERNALSYM INTERNET_PREFETCH_ABORTED}
type
{ TInternetProxyInfo - structure supplied with INTERNET_OPTION_PROXY to get/ }
{ set proxy information on a InternetOpen handle }
PInternetProxyInfo = ^INTERNET_PROXY_INFO;
INTERNET_PROXY_INFO = record
dwAccessType: DWORD; { dwAccessType - INTERNET_OPEN_TYPE_DIRECT, INTERNET_OPEN_TYPE_PROXY, or }
lpszProxy: LPCSTR; { lpszProxy - proxy server list }
lpszProxyBypass: LPCSTR; { lpszProxyBypass - proxy bypass list }
end;
{$EXTERNALSYM INTERNET_PROXY_INFO}
TInternetProxyInfo = INTERNET_PROXY_INFO;
LPINTERNET_PROXY_INFO = PInternetProxyInfo;
{$EXTERNALSYM LPINTERNET_PROXY_INFO}
{ INTERNET_VERSION_INFO - version information returned via }
{ InternetQueryOption(..., INTERNET_OPTION_VERSION, ...) }
PInternetVersionInfo = ^INTERNET_VERSION_INFO;
INTERNET_VERSION_INFO = record
dwMajorVersion: DWORD;
dwMinorVersion: DWORD;
end;
{$EXTERNALSYM INTERNET_VERSION_INFO}
TInternetVersionInfo = INTERNET_VERSION_INFO;
LPINTERNET_VERSION_INFO = PInternetVersionInfo;
{$EXTERNALSYM LPINTERNET_VERSION_INFO}
{ HTTP_VERSION_INFO - query or set global HTTP version (1.0 or 1.1) }
PHttpVersionInfo = ^HTTP_VERSION_INFO;
HTTP_VERSION_INFO = record
dwMajorVersion: DWORD;
dwMinorVersion: DWORD;
end;
{$EXTERNALSYM HTTP_VERSION_INFO}
THttpVersionInfo = HTTP_VERSION_INFO;
LPHTTP_VERSION_INFO = PHttpVersionInfo;
{$EXTERNALSYM LPHTTP_VERSION_INFO}
{ INTERNET_CONNECTED_INFO - information used to set the global connected state }
PInternetConnectedInfo = ^INTERNET_CONNECTED_INFO;
INTERNET_CONNECTED_INFO = record
dwConnectedState: DWORD; {dwConnectedState - new connected/disconnected state.}
dwFlags: DWORD; {dwFlags - flags controlling connected->disconnected (or disconnected-> }
{connected) transition. See below}
end;
{$EXTERNALSYM INTERNET_CONNECTED_INFO}
TInternetConnectedInfo = INTERNET_CONNECTED_INFO;
LPINTERNET_CONNECTED_INFO = PInternetConnectedInfo;
{$EXTERNALSYM LPINTERNET_CONNECTED_INFO}
{ flags for INTERNET_CONNECTED_INFO dwFlags }
{ ISO_FORCE_DISCONNECTED - if set when putting Wininet into disconnected mode, }
{ all outstanding requests will be aborted with a cancelled error }
const
ISO_FORCE_DISCONNECTED = $00000001;
{$EXTERNALSYM ISO_FORCE_DISCONNECTED}
{ URL_COMPONENTS - the constituent parts of an URL. Used in InternetCrackUrl }
{ and InternetCreateUrl }
{ For InternetCrackUrl, if a pointer field and its corresponding length field }
{ are both 0 then that component is not returned; If the pointer field is NULL }
{ but the length field is not zero, then both the pointer and length fields are }
{ returned; if both pointer and corresponding length fields are non-zero then }
{ the pointer field points to a buffer where the component is copied. The }
{ component may be un-escaped, depending on dwFlags }
{ For InternetCreateUrl, the pointer fields should be nil if the component }
{ is not required. If the corresponding length field is zero then the pointer }
{ field is the address of a zero-terminated string. If the length field is not }
{ zero then it is the string length of the corresponding pointer field }
type
PURLComponents = ^URL_COMPONENTS;
URL_COMPONENTS = record
dwStructSize: DWORD; { size of this structure. Used in version check }
lpszScheme: LPSTR; { pointer to scheme name }
dwSchemeLength: DWORD; { length of scheme name }
nScheme: TInternetScheme; { enumerated scheme type (if known) }
lpszHostName: LPSTR; { pointer to host name }
dwHostNameLength: DWORD; { length of host name }
nPort: INTERNET_PORT; { converted port number }
pad: WORD; { force correct allignment regardless of comp. flags}
lpszUserName: LPSTR; { pointer to user name }
dwUserNameLength: DWORD; { length of user name }
lpszPassword: LPSTR; { pointer to password }
dwPasswordLength: DWORD; { length of password }
lpszUrlPath: LPSTR; { pointer to URL-path }
dwUrlPathLength: DWORD; { length of URL-path }
lpszExtraInfo: LPSTR; { pointer to extra information (e.g. ?foo or #foo) }
dwExtraInfoLength: DWORD; { length of extra information }
end;
{$EXTERNALSYM URL_COMPONENTS}
TURLComponents = URL_COMPONENTS;
LPURL_COMPONENTS = PURLComponents;
{$EXTERNALSYM LPURL_COMPONENTS}
{ TInternetCertificateInfo lpBuffer - contains the certificate returned from
the server }
PInternetCertificateInfo = ^INTERNET_CERTIFICATE_INFO;
INTERNET_CERTIFICATE_INFO = record
ftExpiry: TFileTime; { ftExpiry - date the certificate expires. }
ftStart: TFileTime; { ftStart - date the certificate becomes valid. }
lpszSubjectInfo: LPSTR; { lpszSubjectInfo - the name of organization, site, and server }
{ the cert. was issued for. }
lpszIssuerInfo: LPSTR; { lpszIssuerInfo - the name of orgainzation, site, and server }
{ the cert was issues by. }
lpszProtocolName: LPSTR; { lpszProtocolName - the name of the protocol used to provide the secure }
{ connection. }
lpszSignatureAlgName: LPSTR; { lpszSignatureAlgName - the name of the algorithm used for signing }
{ the certificate. }
lpszEncryptionAlgName: LPSTR; { lpszEncryptionAlgName - the name of the algorithm used for }
{ doing encryption over the secure channel (SSL/PCT) connection. }
dwKeySize: DWORD; { dwKeySize - size of the key. }
end;
{$EXTERNALSYM INTERNET_CERTIFICATE_INFO}
TInternetCertificateInfo = INTERNET_CERTIFICATE_INFO;
LPINTERNET_CERTIFICATE_INFO = pInternetCertificateInfo;
{$EXTERNALSYM 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 }
PInternetBuffersA = ^INTERNET_BUFFERSA;
PInternetBuffersW = ^INTERNET_BUFFERSW;
PInternetBuffers = PInternetBuffersA;
INTERNET_BUFFERSA = record
dwStructSize: DWORD; { used for API versioning. Set to sizeof(INTERNET_BUFFERS) }
Next: PInternetBuffers; { chain of buffers }
lpcszHeader: PAnsiChar; { pointer to headers (may be NULL) }
dwHeadersLength: DWORD; { length of headers if not NULL }
dwHeadersTotal: DWORD; { size of headers if not enough buffer }
lpvBuffer: Pointer; { pointer to data buffer (may be NULL) }
dwBufferLength: DWORD; { length of data buffer if not NULL }
dwBufferTotal: DWORD; { total size of chunk, or content-length if not chunked }
dwOffsetLow: DWORD; { used for read-ranges (only used in HttpSendRequest2) }
dwOffsetHigh: DWORD;
end;
{$EXTERNALSYM INTERNET_BUFFERSA}
TInternetBuffersA = INTERNET_BUFFERSA;
LPINTERNET_BUFFERSA = PInternetBuffersA;
{$EXTERNALSYM LPINTERNET_BUFFERSA}
INTERNET_BUFFERSW = record
dwStructSize: DWORD; { used for API versioning. Set to sizeof(INTERNET_BUFFERS) }
Next: PInternetBuffers; { chain of buffers }
lpcszHeader: PAnsiChar; { pointer to headers (may be NULL) }
dwHeadersLength: DWORD; { length of headers if not NULL }
dwHeadersTotal: DWORD; { size of headers if not enough buffer }
lpvBuffer: Pointer; { pointer to data buffer (may be NULL) }
dwBufferLength: DWORD; { length of data buffer if not NULL }
dwBufferTotal: DWORD; { total size of chunk, or content-length if not chunked }
dwOffsetLow: DWORD; { used for read-ranges (only used in HttpSendRequest2) }
dwOffsetHigh: DWORD;
end;
{$EXTERNALSYM INTERNET_BUFFERSW}
TInternetBuffersW = INTERNET_BUFFERSW;
LPINTERNET_BUFFERSW = PInternetBuffersW;
{$EXTERNALSYM LPINTERNET_BUFFERSW}
INTERNET_BUFFERS = INTERNET_BUFFERSA;
{ prototypes }
(*function InternetTimeFromSystemTime(const pst: TSystemTime;
dwRFC: DWORD; lpszTime: LPSTR; cbTime: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetTimeFromSystemTime}
*)
const
{ constants for InternetTimeFromSystemTime }
INTERNET_RFC1123_FORMAT = 0;
{$EXTERNALSYM INTERNET_RFC1123_FORMAT}
INTERNET_RFC1123_BUFSIZE = 30;
{$EXTERNALSYM INTERNET_RFC1123_BUFSIZE}
function InternetCrackUrl(lpszUrl: PChar; dwUrlLength, dwFlags: DWORD;
var lpUrlComponents: TURLComponents): BOOL; stdcall;
{$EXTERNALSYM InternetCrackUrl}
type
TclInternetCrackUrl = function (lpszUrl: PChar; dwUrlLength, dwFlags: DWORD;
var lpUrlComponents: TURLComponents): BOOL; stdcall;
(*function InternetCrackUrlA(lpszUrl: PAnsiChar; dwUrlLength, dwFlags: DWORD;
var lpUrlComponents: TURLComponents): BOOL; stdcall;
{$EXTERNALSYM InternetCrackUrlA}
function InternetCrackUrlW(lpszUrl: PWideChar; dwUrlLength, dwFlags: DWORD;
var lpUrlComponents: TURLComponents): BOOL; stdcall;
{$EXTERNALSYM InternetCrackUrlW}
*)
function InternetCreateUrl(var lpUrlComponents: TURLComponents;
dwFlags: DWORD; lpszUrl: PChar; var dwUrlLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCreateUrl}
type
TclInternetCreateUrl = function (var lpUrlComponents: TURLComponents;
dwFlags: DWORD; lpszUrl: PChar; var dwUrlLength: DWORD): BOOL; stdcall;
(*function InternetCreateUrlA(var lpUrlComponents: TURLComponents;
dwFlags: DWORD; lpszUrl: PAnsiChar; var dwUrlLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCreateUrlA}
function InternetCreateUrlW(var lpUrlComponents: TURLComponents;
dwFlags: DWORD; lpszUrl: PWideChar; var dwUrlLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCreateUrlW}
*)
function InternetCanonicalizeUrl(lpszUrl: PChar;
lpszBuffer: PChar; var lpdwBufferLength: DWORD;
dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCanonicalizeUrl}
type
TclInternetCanonicalizeUrl = function (lpszUrl: PChar; lpszBuffer: PChar;
var lpdwBufferLength: DWORD; dwFlags: DWORD): BOOL; stdcall;
(*function InternetCanonicalizeUrlA(lpszUrl: PAnsiChar;
lpszBuffer: PAnsiChar; var lpdwBufferLength: DWORD;
dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCanonicalizeUrlA}
function InternetCanonicalizeUrlW(lpszUrl: PWideChar;
lpszBuffer: PWideChar; var lpdwBufferLength: DWORD;
dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCanonicalizeUrlW}
*)
function InternetCombineUrl(lpszBaseUrl, lpszRelativeUrl: PChar;
lpszBuffer: PChar; var lpdwBufferLength: DWORD;
dwFlags: DWORD): BOOL; stdcall;
type
TclInternetCombineUrl = function (lpszBaseUrl, lpszRelativeUrl: PChar;
lpszBuffer: PChar; var lpdwBufferLength: DWORD;
dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCombineUrl}
(*function InternetCombineUrlA(lpszBaseUrl, lpszRelativeUrl: PAnsiChar;
lpszBuffer: PAnsiChar; var lpdwBufferLength: DWORD;
dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCombineUrlA}
function InternetCombineUrlW(lpszBaseUrl, lpszRelativeUrl: PWideChar;
lpszBuffer: PWideChar; var lpdwBufferLength: DWORD;
dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCombineUrlW}
*)
const
{ flags for InternetCrackUrl and InternetCreateUrl }
ICU_ESCAPE = $80000000; { (un)escape URL characters }
{$EXTERNALSYM ICU_ESCAPE}
ICU_USERNAME = $40000000; { use internal username & password }
{$EXTERNALSYM ICU_USERNAME}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -