📄 clwininet.pas
字号:
{
Clever Internet Suite Version 6.2
Copyright (C) 1999 - 2006 Clever Components
www.CleverComponents.com
}
unit clWinInet;
interface
uses Windows;
{
Contains manifests, functions, types and prototypes for
Microsoft Windows Internet Extensions
Note: Use run-time binding
Impotrant: Some functions are not implemented yet
Modified On: 21 Mar 2003
}
{ internet types }
{$HPPEMIT '#include <wininet.h>'}
type
HINTERNET = Pointer;
{$EXTERNALSYM HINTERNET}
PHINTERNET = ^HINTERNET;
LPHINTERNET = PHINTERNET;
{$EXTERNALSYM LPHINTERNET}
INTERNET_PORT = Word;
{$EXTERNALSYM INTERNET_PORT}
PINTERNET_PORT = ^INTERNET_PORT;
LPINTERNET_PORT = PINTERNET_PORT;
{$EXTERNALSYM LPINTERNET_PORT}
{ Internet APIs }
{ manifests }
const
INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84;
{$EXTERNALSYM INTERNET_OPTION_CLIENT_CERT_CONTEXT}
INTERNET_OPTION_MAX_CONNS_PER_SERVER = 73;
{$EXTERNALSYM INTERNET_OPTION_MAX_CONNS_PER_SERVER}
INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER = 74;
{$EXTERNALSYM INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER}
INTERNET_INVALID_PORT_NUMBER = 0; { use the protocol-specific default }
{$EXTERNALSYM INTERNET_INVALID_PORT_NUMBER}
INTERNET_DEFAULT_FTP_PORT = 21; { default for FTP servers }
{$EXTERNALSYM INTERNET_DEFAULT_FTP_PORT}
INTERNET_DEFAULT_GOPHER_PORT = 70; { " " gopher " }
{$EXTERNALSYM INTERNET_DEFAULT_GOPHER_PORT}
INTERNET_DEFAULT_HTTP_PORT = 80; { " " HTTP " }
{$EXTERNALSYM INTERNET_DEFAULT_HTTP_PORT}
INTERNET_DEFAULT_HTTPS_PORT = 443; { " " HTTPS " }
{$EXTERNALSYM INTERNET_DEFAULT_HTTPS_PORT}
INTERNET_DEFAULT_SOCKS_PORT = 1080; { default for SOCKS firewall servers.}
{$EXTERNALSYM INTERNET_DEFAULT_SOCKS_PORT}
MAX_CACHE_ENTRY_INFO_SIZE = 4096;
{$EXTERNALSYM MAX_CACHE_ENTRY_INFO_SIZE}
{ maximum field lengths (arbitrary) }
INTERNET_MAX_HOST_NAME_LENGTH = 256;
{$EXTERNALSYM INTERNET_MAX_HOST_NAME_LENGTH}
INTERNET_MAX_USER_NAME_LENGTH = 128;
{$EXTERNALSYM INTERNET_MAX_USER_NAME_LENGTH}
INTERNET_MAX_PASSWORD_LENGTH = 128;
{$EXTERNALSYM INTERNET_MAX_PASSWORD_LENGTH}
INTERNET_MAX_PORT_NUMBER_LENGTH = 5; { INTERNET_PORT is unsigned short }
{$EXTERNALSYM INTERNET_MAX_PORT_NUMBER_LENGTH}
INTERNET_MAX_PORT_NUMBER_VALUE = 65535; { maximum unsigned short value }
{$EXTERNALSYM INTERNET_MAX_PORT_NUMBER_VALUE}
INTERNET_MAX_PATH_LENGTH = 2048;
{$EXTERNALSYM INTERNET_MAX_PATH_LENGTH}
INTERNET_MAX_SCHEME_LENGTH = 32; { longest protocol name length }
{$EXTERNALSYM INTERNET_MAX_SCHEME_LENGTH}
INTERNET_MAX_PROTOCOL_NAME = 'gopher'; { longest protocol name }
{$EXTERNALSYM INTERNET_MAX_PROTOCOL_NAME}
INTERNET_MAX_URL_LENGTH = ((SizeOf(INTERNET_MAX_PROTOCOL_NAME) - 1)
+ SizeOf('://')
+ INTERNET_MAX_PATH_LENGTH);
{$EXTERNALSYM INTERNET_MAX_URL_LENGTH}
{ values returned by InternetQueryOption with INTERNET_OPTION_KEEP_CONNECTION: }
INTERNET_KEEP_ALIVE_UNKNOWN = -1;
{$EXTERNALSYM INTERNET_KEEP_ALIVE_UNKNOWN}
INTERNET_KEEP_ALIVE_ENABLED = 1;
{$EXTERNALSYM INTERNET_KEEP_ALIVE_ENABLED}
INTERNET_KEEP_ALIVE_DISABLED = 0;
{$EXTERNALSYM INTERNET_KEEP_ALIVE_DISABLED}
{ flags returned by InternetQueryOption with INTERNET_OPTION_REQUEST_FLAGS }
INTERNET_REQFLAG_FROM_CACHE = $00000001;
{$EXTERNALSYM INTERNET_REQFLAG_FROM_CACHE}
INTERNET_REQFLAG_ASYNC = $00000002;
{$EXTERNALSYM INTERNET_REQFLAG_ASYNC}
INTERNET_REQFLAG_VIA_PROXY = $00000004; { request was made via a proxy }
{$EXTERNALSYM INTERNET_REQFLAG_VIA_PROXY}
INTERNET_REQFLAG_NO_HEADERS = $00000008; { orginal response contained no headers }
{$EXTERNALSYM INTERNET_REQFLAG_NO_HEADERS}
INTERNET_REQFLAG_PASSIVE = $00000010; { FTP: passive-mode connection }
{$EXTERNALSYM INTERNET_REQFLAG_PASSIVE}
INTERNET_REQFLAG_CACHE_WRITE_DISABLED = $00000040; { HTTPS: this request not cacheable }
{$EXTERNALSYM INTERNET_REQFLAG_CACHE_WRITE_DISABLED}
{ flags common to open functions (not InternetOpen): }
INTERNET_FLAG_RELOAD = $80000000; { retrieve the original item }
{$EXTERNALSYM INTERNET_FLAG_RELOAD}
{ flags for InternetOpenUrl: }
INTERNET_FLAG_RAW_DATA = $40000000; { receive the item as raw data }
{$EXTERNALSYM INTERNET_FLAG_RAW_DATA}
INTERNET_FLAG_EXISTING_CONNECT = $20000000; { do not create new connection object }
{$EXTERNALSYM INTERNET_FLAG_EXISTING_CONNECT}
{ flags for InternetOpen: }
INTERNET_FLAG_ASYNC = $10000000; { this request is asynchronous (where supported) }
{$EXTERNALSYM INTERNET_FLAG_ASYNC}
{ protocol-specific flags: }
INTERNET_FLAG_PASSIVE = $08000000; { used for FTP connections }
{$EXTERNALSYM INTERNET_FLAG_PASSIVE}
{ additional cache flags }
INTERNET_FLAG_NO_CACHE_WRITE = $04000000; { don't write this item to the cache }
{$EXTERNALSYM INTERNET_FLAG_NO_CACHE_WRITE}
INTERNET_FLAG_DONT_CACHE = INTERNET_FLAG_NO_CACHE_WRITE;
{$EXTERNALSYM INTERNET_FLAG_DONT_CACHE}
INTERNET_FLAG_MAKE_PERSISTENT = $02000000; { make this item persistent in cache }
{$EXTERNALSYM INTERNET_FLAG_MAKE_PERSISTENT}
INTERNET_FLAG_FROM_CACHE = $01000000; { use offline semantics }
{$EXTERNALSYM INTERNET_FLAG_FROM_CACHE}
INTERNET_FLAG_OFFLINE = $01000000; { use offline semantics }
{$EXTERNALSYM INTERNET_FLAG_OFFLINE}
{ additional flags }
INTERNET_FLAG_SECURE = $00800000; { use PCT/SSL if applicable (HTTP) }
{$EXTERNALSYM INTERNET_FLAG_SECURE}
INTERNET_FLAG_KEEP_CONNECTION = $00400000; { use keep-alive semantics }
{$EXTERNALSYM INTERNET_FLAG_KEEP_CONNECTION}
INTERNET_FLAG_NO_AUTO_REDIRECT = $00200000; { don't handle redirections automatically }
{$EXTERNALSYM INTERNET_FLAG_NO_AUTO_REDIRECT}
INTERNET_FLAG_READ_PREFETCH = $00100000; { do background read prefetch }
{$EXTERNALSYM INTERNET_FLAG_READ_PREFETCH}
INTERNET_FLAG_NO_COOKIES = $00080000; { no automatic cookie handling }
{$EXTERNALSYM INTERNET_FLAG_NO_COOKIES}
INTERNET_FLAG_NO_AUTH = $00040000; { no automatic authentication handling }
{$EXTERNALSYM INTERNET_FLAG_NO_AUTH}
INTERNET_FLAG_CACHE_IF_NET_FAIL = $00010000; { return cache file if net request fails }
{$EXTERNALSYM INTERNET_FLAG_CACHE_IF_NET_FAIL}
{ Security Ignore Flags, Allow HttpOpenRequest to overide
Secure Channel (SSL/PCT) failures of the following types. }
INTERNET_FLAG_IGNORE_CERT_CN_INVALID = $00001000; { bad common name in X509 Cert. }
{$EXTERNALSYM INTERNET_FLAG_IGNORE_CERT_CN_INVALID}
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID = $00002000; { expired X509 Cert. }
{$EXTERNALSYM INTERNET_FLAG_IGNORE_CERT_DATE_INVALID}
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS = $00004000; { ex: http:// to https:// }
{$EXTERNALSYM INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS}
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP = $00008000; { ex: https:// to http:// }
{$EXTERNALSYM INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP}
//
// more caching flags
//
INTERNET_FLAG_RESYNCHRONIZE = $00000800; // asking wininet to update an item if it is newer
{$EXTERNALSYM INTERNET_FLAG_RESYNCHRONIZE}
INTERNET_FLAG_HYPERLINK = $00000400; // asking wininet to do hyperlinking semantic which works right for scripts
{$EXTERNALSYM INTERNET_FLAG_HYPERLINK}
INTERNET_FLAG_NO_UI = $00000200; // no cookie popup
{$EXTERNALSYM INTERNET_FLAG_NO_UI}
INTERNET_FLAG_PRAGMA_NOCACHE = $00000100; // asking wininet to add "pragma: no-cache"
{$EXTERNALSYM INTERNET_FLAG_PRAGMA_NOCACHE}
INTERNET_FLAG_CACHE_ASYNC = $00000080; // ok to perform lazy cache-write
{$EXTERNALSYM INTERNET_FLAG_CACHE_ASYNC}
INTERNET_FLAG_FORMS_SUBMIT = $00000040; // this is a forms submit
{$EXTERNALSYM INTERNET_FLAG_FORMS_SUBMIT}
INTERNET_FLAG_NEED_FILE = $00000010; // need a file for this request
{$EXTERNALSYM INTERNET_FLAG_NEED_FILE}
INTERNET_FLAG_MUST_CACHE_REQUEST = INTERNET_FLAG_NEED_FILE;
{$EXTERNALSYM INTERNET_FLAG_MUST_CACHE_REQUEST}
{ FTP }
{ manifests }
const
{ flags for FTP }
FTP_TRANSFER_TYPE_UNKNOWN = $00000000;
{$EXTERNALSYM FTP_TRANSFER_TYPE_UNKNOWN}
FTP_TRANSFER_TYPE_ASCII = $00000001;
{$EXTERNALSYM FTP_TRANSFER_TYPE_ASCII}
FTP_TRANSFER_TYPE_BINARY = $00000002;
{$EXTERNALSYM FTP_TRANSFER_TYPE_BINARY}
FTP_TRANSFER_TYPE_MASK = FTP_TRANSFER_TYPE_ASCII or
FTP_TRANSFER_TYPE_BINARY;
{$EXTERNALSYM FTP_TRANSFER_TYPE_MASK}
INTERNET_FLAG_TRANSFER_ASCII = FTP_TRANSFER_TYPE_ASCII;
{$EXTERNALSYM INTERNET_FLAG_TRANSFER_ASCII}
INTERNET_FLAG_TRANSFER_BINARY = FTP_TRANSFER_TYPE_BINARY;
{$EXTERNALSYM INTERNET_FLAG_TRANSFER_BINARY}
{ flags field masks }
SECURITY_INTERNET_MASK = INTERNET_FLAG_IGNORE_CERT_CN_INVALID or
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID or
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS or
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP;
{$EXTERNALSYM SECURITY_INTERNET_MASK}
SECURITY_SET_MASK = SECURITY_INTERNET_MASK;
{$EXTERNALSYM SECURITY_SET_MASK}
INTERNET_FLAGS_MASK = INTERNET_FLAG_RELOAD or
INTERNET_FLAG_RAW_DATA or
INTERNET_FLAG_EXISTING_CONNECT or
INTERNET_FLAG_ASYNC or
INTERNET_FLAG_PASSIVE or
INTERNET_FLAG_NO_CACHE_WRITE or
INTERNET_FLAG_MAKE_PERSISTENT or
INTERNET_FLAG_FROM_CACHE or
INTERNET_FLAG_SECURE or
INTERNET_FLAG_KEEP_CONNECTION or
INTERNET_FLAG_NO_AUTO_REDIRECT or
INTERNET_FLAG_READ_PREFETCH or
INTERNET_FLAG_NO_COOKIES or
INTERNET_FLAG_NO_AUTH or
INTERNET_FLAG_CACHE_IF_NET_FAIL or
SECURITY_INTERNET_MASK or
INTERNET_FLAG_RESYNCHRONIZE or
INTERNET_FLAG_HYPERLINK or
INTERNET_FLAG_NO_UI or
INTERNET_FLAG_PRAGMA_NOCACHE or
INTERNET_FLAG_CACHE_ASYNC or
INTERNET_FLAG_FORMS_SUBMIT or
INTERNET_FLAG_NEED_FILE or
INTERNET_FLAG_TRANSFER_BINARY or
INTERNET_FLAG_TRANSFER_ASCII;
{$EXTERNALSYM INTERNET_FLAGS_MASK}
INTERNET_ERROR_MASK_INSERT_CDROM = $1;
{$EXTERNALSYM INTERNET_ERROR_MASK_INSERT_CDROM}
INTERNET_OPTIONS_MASK = not INTERNET_FLAGS_MASK;
{$EXTERNALSYM INTERNET_OPTIONS_MASK}
//
// common per-API flags (new APIs)
//
WININET_API_FLAG_ASYNC = $00000001; // force async operation
{$EXTERNALSYM WININET_API_FLAG_ASYNC}
WININET_API_FLAG_SYNC = $00000004; // force sync operation
{$EXTERNALSYM WININET_API_FLAG_SYNC}
WININET_API_FLAG_USE_CONTEXT = $00000008; // use value supplied in dwContext (even if 0)
{$EXTERNALSYM WININET_API_FLAG_USE_CONTEXT}
{ INTERNET_NO_CALLBACK - if this value is presented as the dwContext parameter }
{ then no call-backs will be made for that API }
INTERNET_NO_CALLBACK = 0;
{$EXTERNALSYM INTERNET_NO_CALLBACK}
{ structures/types }
type
PInternetScheme = ^TInternetScheme;
TInternetScheme = Integer;
const
INTERNET_SCHEME_PARTIAL = -2;
{$EXTERNALSYM INTERNET_SCHEME_PARTIAL}
INTERNET_SCHEME_UNKNOWN = -1;
{$EXTERNALSYM INTERNET_SCHEME_UNKNOWN}
INTERNET_SCHEME_DEFAULT = 0;
{$EXTERNALSYM INTERNET_SCHEME_DEFAULT}
INTERNET_SCHEME_FTP = 1;
{$EXTERNALSYM INTERNET_SCHEME_FTP}
INTERNET_SCHEME_GOPHER = 2;
{$EXTERNALSYM INTERNET_SCHEME_GOPHER}
INTERNET_SCHEME_HTTP = 3;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -