spiegel-keyman/common/windows/delphi/ext/jwa/Win32API/JwaWinInet.pas
2022-06-06 08:13:37 +10:00

6390 lines
216 KiB
ObjectPascal

{******************************************************************************}
{ }
{ Microsoft Windows Internet Extensions interface unit }
{ }
{ Portions created by Microsoft are Copyright (C) 1995-1999 Microsoft }
{ Corporation. All Rights Reserved. }
{ }
{ }
{ The initial developer of the Pascal code is Rudy Velthuis }
{ }
{ Portions created by Marcel van Brakel are Copyright (C) 1999-2000 }
{ Rudy Velthuis. All Rights Reserved. }
{ }
{ The original file is: WinInet.h released 16 May 1999. }
{ The original Pascal code is: WinInet.pas, released 27 May 1999. }
{ }
{ Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
{ }
{ You may retrieve the latest version of this file at the Project JEDI }
{ APILIB home page, located at http://jedi-apilib.sourceforge.net }
{ }
{ The contents of this file are used with permission, subject to the Mozilla }
{ Public License Version 1.1 (the "License"); you may not use this file except }
{ in compliance with the License. You may obtain a copy of the License at }
{ http://www.mozilla.org/MPL/MPL-1.1.html }
{ }
{ Software distributed under the License is distributed on an "AS IS" basis, }
{ WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
{ the specific language governing rights and limitations under the License. }
{ }
{ Alternatively, the contents of this file may be used under the terms of the }
{ GNU Lesser General Public License (the "LGPL License"), in which case the }
{ provisions of the LGPL License are applicable instead of those above. }
{ If you wish to allow use of your version of this file only under the terms }
{ of the LGPL License and not to allow others to use your version of this file }
{ under the MPL, indicate your decision by deleting the provisions above and }
{ replace them with the notice and other provisions required by the LGPL }
{ License. If you do not delete the provisions above, a recipient may use }
{ your version of this file under either the MPL or the LGPL License. }
{ }
{ For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
{ }
{******************************************************************************}
{$IFNDEF JWA_OMIT_SECTIONS}
unit JwaWinInet;
{$ENDIF JWA_OMIT_SECTIONS}
{$HPPEMIT ''}
{$HPPEMIT '#include "wininet.h"'}
{$HPPEMIT ''}
{$IFNDEF JWA_OMIT_SECTIONS}
interface
uses
JwaWinBase, JwaWinUser, JwaWinType;
{
Set up Structure Packing to be 4 bytes
for all wininet structures
}
{$ALIGN ON}
{$ENDIF JWA_OMIT_SECTIONS}
{$IFNDEF JWA_IMPLEMENTATIONSECTION}
//
// internet types
//
type
PHINTERNET = ^HINTERNET;
{$EXTERNALSYM HINTERNET}
HINTERNET = Pointer;
PInternetPort = ^TInternetPort;
PINTERNET_PORT = ^INTERNET_PORT;
{$EXTERNALSYM INTERNET_PORT}
INTERNET_PORT = Word;
TInternetPort = INTERNET_PORT;
//
// Internet APIs
//
// manifests
const
{EXTERNALSYM INTERNET_INVALID_PORT_NUMBER}
INTERNET_INVALID_PORT_NUMBER = 0; // use the protocol-specific default
{EXTERNALSYM INTERNET_DEFAULT_FTP_PORT}
INTERNET_DEFAULT_FTP_PORT = 21; // default for FTP servers
{EXTERNALSYM INTERNET_DEFAULT_GOPHER_PORT}
INTERNET_DEFAULT_GOPHER_PORT = 70; // " " gopher "
{EXTERNALSYM INTERNET_DEFAULT_HTTP_PORT}
INTERNET_DEFAULT_HTTP_PORT = 80; // " " HTTP "
{EXTERNALSYM INTERNET_DEFAULT_HTTPS_PORT}
INTERNET_DEFAULT_HTTPS_PORT = 443; // " " HTTPS "
{$EXTERNALSYM INTERNET_DEFAULT_SOCKS_PORT}
INTERNET_DEFAULT_SOCKS_PORT = 1080; // default for SOCKS firewall servers.
//
// maximum field lengths (arbitrary)
//
{$EXTERNALSYM INTERNET_MAX_HOST_NAME_LENGTH}
INTERNET_MAX_HOST_NAME_LENGTH = 256;
{$EXTERNALSYM INTERNET_MAX_USER_NAME_LENGTH}
INTERNET_MAX_USER_NAME_LENGTH = 128;
{$EXTERNALSYM INTERNET_MAX_PASSWORD_LENGTH}
INTERNET_MAX_PASSWORD_LENGTH = 128;
{$IFNDEF JWA_INCLUDEMODE}
{..$NODEFINE DWORD_PTR}
//DWORD_PTR = DWORD;
{$ENDIF JWA_INCLUDEMODE}
{$EXTERNALSYM INTERNET_MAX_PORT_NUMBER_LENGTH}
INTERNET_MAX_PORT_NUMBER_LENGTH = 5; // INTERNET_PORT is unsigned short
{$EXTERNALSYM INTERNET_MAX_PORT_NUMBER_VALUE}
INTERNET_MAX_PORT_NUMBER_VALUE = 65535; // maximum unsigned short value
{$EXTERNALSYM INTERNET_MAX_PATH_LENGTH}
INTERNET_MAX_PATH_LENGTH = 2048;
{$EXTERNALSYM INTERNET_MAX_SCHEME_LENGTH}
INTERNET_MAX_SCHEME_LENGTH = 32; // longest protocol name length
{$EXTERNALSYM INTERNET_MAX_URL_LENGTH}
INTERNET_MAX_URL_LENGTH = INTERNET_MAX_SCHEME_LENGTH +
Length('://') + 1 +
INTERNET_MAX_PATH_LENGTH;
// values returned by InternetQueryOption() with INTERNET_OPTION_KEEP_CONNECTION:
{$EXTERNALSYM INTERNET_KEEP_ALIVE_UNKNOWN}
INTERNET_KEEP_ALIVE_UNKNOWN = DWORD(-1);
{$EXTERNALSYM INTERNET_KEEP_ALIVE_ENABLED}
INTERNET_KEEP_ALIVE_ENABLED = 1;
{$EXTERNALSYM INTERNET_KEEP_ALIVE_DISABLED}
INTERNET_KEEP_ALIVE_DISABLED = 0;
// flags returned by InternetQueryOption() with INTERNET_OPTION_REQUEST_FLAGS
{$EXTERNALSYM INTERNET_REQFLAG_FROM_CACHE}
INTERNET_REQFLAG_FROM_CACHE = $00000001; // response came from cache
{$EXTERNALSYM INTERNET_REQFLAG_ASYNC}
INTERNET_REQFLAG_ASYNC = $00000002; // request was made asynchronously
{$EXTERNALSYM INTERNET_REQFLAG_VIA_PROXY}
INTERNET_REQFLAG_VIA_PROXY = $00000004; // request was made via a proxy
{$EXTERNALSYM INTERNET_REQFLAG_NO_HEADERS}
INTERNET_REQFLAG_NO_HEADERS = $00000008; // orginal response contained no headers
{$EXTERNALSYM INTERNET_REQFLAG_PASSIVE}
INTERNET_REQFLAG_PASSIVE = $00000010; // FTP: passive-mode connection
{$EXTERNALSYM INTERNET_REQFLAG_CACHE_WRITE_DISABLED}
INTERNET_REQFLAG_CACHE_WRITE_DISABLED = $00000040; // HTTPS: this request not cacheable
{$EXTERNALSYM INTERNET_REQFLAG_NET_TIMEOUT}
INTERNET_REQFLAG_NET_TIMEOUT = $00000080; // w/ _FROM_CACHE: net request timed out
// flags common to open functions (not InternetOpen()):
{$EXTERNALSYM INTERNET_FLAG_RELOAD}
INTERNET_FLAG_RELOAD = $80000000; // retrieve the original item
// flags for InternetOpenUrl():
{$EXTERNALSYM INTERNET_FLAG_RAW_DATA}
INTERNET_FLAG_RAW_DATA = $40000000; // FTP/gopher find: receive the item as raw (structured) data
{$EXTERNALSYM INTERNET_FLAG_EXISTING_CONNECT}
INTERNET_FLAG_EXISTING_CONNECT = $20000000; // FTP: use existing InternetConnect handle for server if possible
// flags for InternetOpen():
{$EXTERNALSYM INTERNET_FLAG_ASYNC}
INTERNET_FLAG_ASYNC = $10000000; // this request is asynchronous (where supported)
// protocol-specific flags:
{$EXTERNALSYM INTERNET_FLAG_PASSIVE}
INTERNET_FLAG_PASSIVE = $08000000; // used for FTP connections
// additional cache flags
{$EXTERNALSYM INTERNET_FLAG_NO_CACHE_WRITE}
INTERNET_FLAG_NO_CACHE_WRITE = $04000000; // don't write this item to the cache
{$EXTERNALSYM INTERNET_FLAG_DONT_CACHE}
INTERNET_FLAG_DONT_CACHE = INTERNET_FLAG_NO_CACHE_WRITE;
{$EXTERNALSYM INTERNET_FLAG_MAKE_PERSISTENT}
INTERNET_FLAG_MAKE_PERSISTENT = $02000000; // make this item persistent in cache
{$EXTERNALSYM INTERNET_FLAG_FROM_CACHE}
INTERNET_FLAG_FROM_CACHE = $01000000; // use offline semantics
{$EXTERNALSYM INTERNET_FLAG_OFFLINE}
INTERNET_FLAG_OFFLINE = INTERNET_FLAG_FROM_CACHE;
// additional flags
{$EXTERNALSYM INTERNET_FLAG_SECURE}
INTERNET_FLAG_SECURE = $00800000; // use PCT/SSL if applicable (HTTP)
{$EXTERNALSYM INTERNET_FLAG_KEEP_CONNECTION}
INTERNET_FLAG_KEEP_CONNECTION = $00400000; // use keep-alive semantics
{$EXTERNALSYM INTERNET_FLAG_NO_AUTO_REDIRECT}
INTERNET_FLAG_NO_AUTO_REDIRECT = $00200000; // don't handle redirections automatically
{$EXTERNALSYM INTERNET_FLAG_READ_PREFETCH}
INTERNET_FLAG_READ_PREFETCH = $00100000; // do background read prefetch
{$EXTERNALSYM INTERNET_FLAG_NO_COOKIES}
INTERNET_FLAG_NO_COOKIES = $00080000; // no automatic cookie handling
{$EXTERNALSYM INTERNET_FLAG_NO_AUTH}
INTERNET_FLAG_NO_AUTH = $00040000; // no automatic authentication handling
{$EXTERNALSYM INTERNET_FLAG_CACHE_IF_NET_FAIL}
INTERNET_FLAG_CACHE_IF_NET_FAIL = $00010000; // return cache file if net request fails
// Security Ignore Flags, Allow HttpOpenRequest to overide
// Secure Channel (SSL/PCT) failures of the following types.
{$EXTERNALSYM INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP}
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP = $00008000; // ex: https:// to http://
{$EXTERNALSYM INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS}
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS = $00004000; // ex: http:// to https://
{$EXTERNALSYM INTERNET_FLAG_IGNORE_CERT_DATE_INVALID}
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID = $00002000; // expired X509 Cert.
{$EXTERNALSYM INTERNET_FLAG_IGNORE_CERT_CN_INVALID}
INTERNET_FLAG_IGNORE_CERT_CN_INVALID = $00001000; // bad common name in X509 Cert.
// more caching flags
{$EXTERNALSYM INTERNET_FLAG_RESYNCHRONIZE}
INTERNET_FLAG_RESYNCHRONIZE = $00000800; // asking wininet to update an item if it is newer
{$EXTERNALSYM INTERNET_FLAG_HYPERLINK}
INTERNET_FLAG_HYPERLINK = $00000400; // asking wininet to do hyperlinking semantic which works right for scripts
{$EXTERNALSYM INTERNET_FLAG_NO_UI}
INTERNET_FLAG_NO_UI = $00000200; // no cookie popup
{$EXTERNALSYM INTERNET_FLAG_PRAGMA_NOCACHE}
INTERNET_FLAG_PRAGMA_NOCACHE = $00000100; // asking wininet to add "pragma: no-cache"
{$EXTERNALSYM INTERNET_FLAG_CACHE_ASYNC}
INTERNET_FLAG_CACHE_ASYNC = $00000080; // ok to perform lazy cache-write
{$EXTERNALSYM INTERNET_FLAG_FORMS_SUBMIT}
INTERNET_FLAG_FORMS_SUBMIT = $00000040; // this is a forms submit
{$EXTERNALSYM INTERNET_FLAG_FWD_BACK}
INTERNET_FLAG_FWD_BACK = $00000020; // fwd-back button op
{$EXTERNALSYM INTERNET_FLAG_NEED_FILE}
INTERNET_FLAG_NEED_FILE = $00000010; // need a file for this request
{$EXTERNALSYM INTERNET_FLAG_MUST_CACHE_REQUEST}
INTERNET_FLAG_MUST_CACHE_REQUEST = INTERNET_FLAG_NEED_FILE;
// FTP
// manifests
{$EXTERNALSYM FTP_TRANSFER_TYPE_UNKNOWN}
FTP_TRANSFER_TYPE_UNKNOWN = $00000000;
{$EXTERNALSYM FTP_TRANSFER_TYPE_ASCII}
FTP_TRANSFER_TYPE_ASCII = $00000001;
{$EXTERNALSYM FTP_TRANSFER_TYPE_BINARY}
FTP_TRANSFER_TYPE_BINARY = $00000002;
{$EXTERNALSYM FTP_TRANSFER_TYPE_MASK}
FTP_TRANSFER_TYPE_MASK = FTP_TRANSFER_TYPE_ASCII or FTP_TRANSFER_TYPE_BINARY;
// flags for FTP
{$EXTERNALSYM INTERNET_FLAG_TRANSFER_ASCII}
INTERNET_FLAG_TRANSFER_ASCII = FTP_TRANSFER_TYPE_ASCII; // = $00000001
{$EXTERNALSYM INTERNET_FLAG_TRANSFER_BINARY}
INTERNET_FLAG_TRANSFER_BINARY = FTP_TRANSFER_TYPE_BINARY; // = $00000002
// flags field masks
{$EXTERNALSYM SECURITY_INTERNET_MASK}
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 INTERNET_FLAGS_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 or
INTERNET_FLAG_FWD_BACK;
// Note by translator: the following flag is not defined anywhere in the
// current platform SDK, so I excluded it. Older headers don't have it.
// or INTERNET_FLAG_BGUPDATE
{$EXTERNALSYM INTERNET_ERROR_MASK_INSERT_CDROM}
INTERNET_ERROR_MASK_INSERT_CDROM = $1;
{$EXTERNALSYM INTERNET_ERROR_MASK_COMBINED_SEC_CERT}
INTERNET_ERROR_MASK_COMBINED_SEC_CERT = $2;
{$EXTERNALSYM INTERNET_ERROR_MASK_NEED_MSN_SSPI_PKG}
INTERNET_ERROR_MASK_NEED_MSN_SSPI_PKG = $4;
{$EXTERNALSYM INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY}
INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY = $8;
{$EXTERNALSYM INTERNET_OPTIONS_MASK}
INTERNET_OPTIONS_MASK = not INTERNET_FLAGS_MASK;
// common per-API flags (new APIs)
{$EXTERNALSYM WININET_API_FLAG_ASYNC}
WININET_API_FLAG_ASYNC = $00000001; // force async operation
{$EXTERNALSYM WININET_API_FLAG_SYNC}
WININET_API_FLAG_SYNC = $00000004; // force sync operation
{$EXTERNALSYM WININET_API_FLAG_USE_CONTEXT}
WININET_API_FLAG_USE_CONTEXT = $00000008; // use value supplied in dwContext (even if 0)
// INTERNET_NO_CALLBACK - if this value is presented as the dwContext parameter
// then no call-backs will be made for that API
{$EXTERNALSYM INTERNET_NO_CALLBACK}
INTERNET_NO_CALLBACK = 0;
// structures/types
// INTERNET_SCHEME - enumerated URL scheme type
{$EXTERNALSYM INTERNET_SCHEME_PARTIAL}
INTERNET_SCHEME_PARTIAL = -2;
{$EXTERNALSYM INTERNET_SCHEME_UNKNOWN}
INTERNET_SCHEME_UNKNOWN = -1;
{$EXTERNALSYM INTERNET_SCHEME_DEFAULT}
INTERNET_SCHEME_DEFAULT = 0;
{$EXTERNALSYM INTERNET_SCHEME_FTP}
INTERNET_SCHEME_FTP = 1;
{$EXTERNALSYM INTERNET_SCHEME_GOPHER}
INTERNET_SCHEME_GOPHER = 2;
{$EXTERNALSYM INTERNET_SCHEME_HTTP}
INTERNET_SCHEME_HTTP = 3;
{$EXTERNALSYM INTERNET_SCHEME_HTTPS}
INTERNET_SCHEME_HTTPS = 4;
{$EXTERNALSYM INTERNET_SCHEME_FILE}
INTERNET_SCHEME_FILE = 5;
{$EXTERNALSYM INTERNET_SCHEME_NEWS}
INTERNET_SCHEME_NEWS = 6;
{$EXTERNALSYM INTERNET_SCHEME_MAILTO}
INTERNET_SCHEME_MAILTO = 7;
{$EXTERNALSYM INTERNET_SCHEME_SOCKS}
INTERNET_SCHEME_SOCKS = 8;
{$EXTERNALSYM INTERNET_SCHEME_JAVASCRIPT}
INTERNET_SCHEME_JAVASCRIPT = 9;
{$EXTERNALSYM INTERNET_SCHEME_VBSCRIPT}
INTERNET_SCHEME_VBSCRIPT = 10;
{$EXTERNALSYM INTERNET_SCHEME_FIRST}
INTERNET_SCHEME_FIRST = INTERNET_SCHEME_FTP;
{$EXTERNALSYM INTERNET_SCHEME_LAST}
INTERNET_SCHEME_LAST = INTERNET_SCHEME_VBSCRIPT;
type
PINTERNET_SCHEME = ^INTERNET_SCHEME;
{$EXTERNALSYM INTERNET_SCHEME}
INTERNET_SCHEME = ULONG;
// INTERNET_ASYNC_RESULT - 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;
{$EXTERNALSYM INTERNET_ASYNC_RESULT}
INTERNET_ASYNC_RESULT = record // not packed!
dwResult: DWORD; // the HINTERNET, DWORD or BOOL return code from an async API
dwError: DWORD; // the error code if the API failed
end;
TInternetAsyncResult = INTERNET_ASYNC_RESULT;
// INTERNET_PROXY_INFO - structure supplied with INTERNET_OPTION_PROXY to get/
// set proxy information on a InternetOpen() handle
PInternetProxyInfo = ^TInternetProxyInfo;
{$EXTERNALSYM INTERNET_PROXY_INFO}
INTERNET_PROXY_INFO = record // not packed!
dwAccessType: DWORD; // INTERNET_OPEN_TYPE_DIRECT, INTERNET_OPEN_TYPE_PROXY, or
// INTERNET_OPEN_TYPE_PRECONFIG (set only)
lpszProxy: LPCTSTR; // proxy server list
lpszProxyBypass: LPCTSTR; // proxy bypass list
end;
TInternetProxyInfo = INTERNET_PROXY_INFO;
//
// INTERNET_PER_CONN_OPTION_LIST - set per-connection options such as proxy
// and autoconfig info
//
// Set and queried using Internet[Set|Query]Option with
// INTERNET_OPTION_PER_CONNECTION_OPTION
//
PInternetPerConnOptionA = ^TInternetPerConnOptionA;
PInternetPerConnOptionW = ^TInternetPerConnOptionW;
PInternetPerConnOption = PInternetPerConnOptionA;
{$EXTERNALSYM INTERNET_PER_CONN_OPTIONA}
INTERNET_PER_CONN_OPTIONA = record // not packed!
dwOption: DWORD; // option to be queried or set
Value: record
case Integer of
1: (dwValue: DWORD); // dword value for the option
2: (pszValue: PAnsiChar); // pointer to string value for the option
3: (ftValue: TFileTime); // file-time value for the option
end;
end;
{$EXTERNALSYM INTERNET_PER_CONN_OPTIONW}
INTERNET_PER_CONN_OPTIONW = record // not packed!
dwOption: DWORD; // option to be queried or set
Value: record
case Integer of
1: (dwValue: DWORD); // dword value for the option
2: (pszValue: PWideChar); // pointer to string value for the option
3: (ftValue: TFileTime); // file-time value for the option
end;
end;
{$EXTERNALSYM INTERNET_PER_CONN_OPTION}
INTERNET_PER_CONN_OPTION = INTERNET_PER_CONN_OPTIONA;
TInternetPerConnOptionA = INTERNET_PER_CONN_OPTIONA;
TInternetPerConnOptionW = INTERNET_PER_CONN_OPTIONW;
TInternetPerConnOption = TInternetPerConnOptionA;
PInternetPerConnOptionListA = ^TInternetPerConnOptionListA;
PInternetPerConnOptionListW = ^TInternetPerConnOptionListW;
PInternetPerConnOptionList = PInternetPerConnOptionListA;
{$EXTERNALSYM INTERNET_PER_CONN_OPTION_LISTA}
INTERNET_PER_CONN_OPTION_LISTA = record // not packed!
dwSize: DWORD; // size of the INTERNET_PER_CONN_OPTION_LIST struct
pszConnection: PAnsiChar; // connection name to set/query options
dwOptionCount: DWORD; // number of options to set/query
dwOptionError: DWORD; // on error, which option failed
pOptions: PInternetPerConnOptionA; // array of options to set/query
end;
{$EXTERNALSYM INTERNET_PER_CONN_OPTION_LISTW}
INTERNET_PER_CONN_OPTION_LISTW = record // not packed!
dwSize: DWORD; // size of the INTERNET_PER_CONN_OPTION_LIST struct
pszConnection: PWideChar; // connection name to set/query options
dwOptionCount: DWORD; // number of options to set/query
dwOptionError: DWORD; // on error, which option failed
pOptions: PInternetPerConnOptionW; // array of options to set/query
end;
{$EXTERNALSYM INTERNET_PER_CONN_OPTION_LIST}
INTERNET_PER_CONN_OPTION_LIST = INTERNET_PER_CONN_OPTION_LISTA;
TInternetPerConnOptionListA = INTERNET_PER_CONN_OPTION_LISTA;
TInternetPerConnOptionListW = INTERNET_PER_CONN_OPTION_LISTW;
TInternetPerConnOptionList = TInternetPerConnOptionListA;
// Options used in INTERNET_PER_CONN_OPTION struct
const
{$EXTERNALSYM INTERNET_PER_CONN_FLAGS}
INTERNET_PER_CONN_FLAGS = 1;
{$EXTERNALSYM INTERNET_PER_CONN_PROXY_SERVER}
INTERNET_PER_CONN_PROXY_SERVER = 2;
{$EXTERNALSYM INTERNET_PER_CONN_PROXY_BYPASS}
INTERNET_PER_CONN_PROXY_BYPASS = 3;
{$EXTERNALSYM INTERNET_PER_CONN_AUTOCONFIG_URL}
INTERNET_PER_CONN_AUTOCONFIG_URL = 4;
{$EXTERNALSYM INTERNET_PER_CONN_AUTODISCOVERY_FLAGS}
INTERNET_PER_CONN_AUTODISCOVERY_FLAGS = 5;
// PER_CONN_FLAGS
{$EXTERNALSYM PROXY_TYPE_DIRECT}
PROXY_TYPE_DIRECT = $00000001; // direct to net
{$EXTERNALSYM PROXY_TYPE_PROXY}
PROXY_TYPE_PROXY = $00000002; // via named proxy
{$EXTERNALSYM PROXY_TYPE_AUTO_PROXY_URL}
PROXY_TYPE_AUTO_PROXY_URL = $00000004; // autoproxy URL
{$EXTERNALSYM PROXY_TYPE_AUTO_DETECT}
PROXY_TYPE_AUTO_DETECT = $00000008; // use autoproxy detection
// PER_CONN_AUTODISCOVERY_FLAGS
{$EXTERNALSYM AUTO_PROXY_FLAG_USER_SET}
AUTO_PROXY_FLAG_USER_SET = $00000001; // user changed this setting
{$EXTERNALSYM AUTO_PROXY_FLAG_ALWAYS_DETECT}
AUTO_PROXY_FLAG_ALWAYS_DETECT = $00000002; // force detection even when its not needed
{$EXTERNALSYM AUTO_PROXY_FLAG_DETECTION_RUN}
AUTO_PROXY_FLAG_DETECTION_RUN = $00000004; // detection has been run
{$EXTERNALSYM AUTO_PROXY_FLAG_MIGRATED}
AUTO_PROXY_FLAG_MIGRATED = $00000008; // migration has just been done
{$EXTERNALSYM AUTO_PROXY_FLAG_DONT_CACHE_PROXY_RESULT}
AUTO_PROXY_FLAG_DONT_CACHE_PROXY_RESULT = $00000010; // don't cache result of host=proxy name
{$EXTERNALSYM AUTO_PROXY_FLAG_CACHE_INIT_RUN}
AUTO_PROXY_FLAG_CACHE_INIT_RUN = $00000020; // don't initalize and run unless URL expired
{$EXTERNALSYM AUTO_PROXY_FLAG_DETECTION_SUSPECT}
AUTO_PROXY_FLAG_DETECTION_SUSPECT = $00000040; // if we're on a LAN & Modem, with only one IP, bad?!?
// INTERNET_VERSION_INFO - version information returned via
// InternetQueryOption(..., INTERNET_OPTION_VERSION, ...)
type
PInternetVersionInfo = ^TInternetVersionInfo;
{$EXTERNALSYM INTERNET_VERSION_INFO}
INTERNET_VERSION_INFO = record // not packed!
dwMajorVersion: DWORD;
dwMinorVersion: DWORD;
end;
TInternetVersionInfo = INTERNET_VERSION_INFO;
// HTTP_VERSION_INFO - query or set global HTTP version (1.0 or 1.1)
PHttpVersionInfo = ^THttpVersionInfo;
{$EXTERNALSYM HTTP_VERSION_INFO}
HTTP_VERSION_INFO = record // not packed!
dwMajorVersion: DWORD;
dwMinorVersion: DWORD;
end;
THttpVersionInfo = HTTP_VERSION_INFO;
// INTERNET_CONNECTED_INFO - information used to set the global connected state
PInternetConnectedInfo = ^TInternetConnectedInfo;
{$EXTERNALSYM INTERNET_CONNECTED_INFO}
INTERNET_CONNECTED_INFO = record // not packed!
dwConnectedState: DWORD; // new connected/disconnected state.
// See INTERNET_STATE_CONNECTED, etc.
dwFlags: DWORD; // flags controlling connected->disconnected (or disconnected->
// connected) transition. See below
end;
TInternetConnectedInfo = INTERNET_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
{$EXTERNALSYM ISO_FORCE_DISCONNECTED}
ISO_FORCE_DISCONNECTED = $00000001;
// 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 NULL 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
PURLComponentsA = ^TURLComponentsA;
PURLComponentsW = ^TURLComponentsW;
PURLComponents = PURLComponentsA;
{$EXTERNALSYM URL_COMPONENTSA}
URL_COMPONENTSA = record // not packed!
dwStructSize: DWORD; // size of this structure. Used in version check
lpszScheme: PAnsiChar; // pointer to scheme name
dwSchemeLength: DWORD; // length of scheme name
nScheme: INTERNET_SCHEME; // enumerated scheme type (if known)
lpszHostName: PAnsiChar; // pointer to host name
dwHostNameLength: DWORD; // length of host name
nPort: INTERNET_PORT; // converted port number
lpszUserName: PAnsiChar; // pointer to user name
dwUserNameLength: DWORD; // length of user name
lpszPassword: PAnsiChar; // pointer to password
dwPasswordLength: DWORD; // length of password
lpszUrlPath: PAnsiChar; // pointer to URL-path
dwUrlPathLength: DWORD; // length of URL-path
lpszExtraInfo: PAnsiChar; // pointer to extra information (e.g. ?foo or #foo)
dwExtraInfoLength: DWORD; // length of extra information
end;
{$EXTERNALSYM URL_COMPONENTSW}
URL_COMPONENTSW = record // not packed!
dwStructSize: DWORD; // size of this structure. Used in version check
lpszScheme: PWideChar; // pointer to scheme name
dwSchemeLength: DWORD; // length of scheme name
nScheme: INTERNET_SCHEME; // enumerated scheme type (if known)
lpszHostName: PWideChar; // pointer to host name
dwHostNameLength: DWORD; // length of host name
nPort: INTERNET_PORT; // converted port number
lpszUserName: PWideChar; // pointer to user name
dwUserNameLength: DWORD; // length of user name
lpszPassword: PWideChar; // pointer to password
dwPasswordLength: DWORD; // length of password
lpszUrlPath: PWideChar; // pointer to URL-path
dwUrlPathLength: DWORD; // length of URL-path
lpszExtraInfo: PWideChar; // pointer to extra information (e.g. ?foo or #foo)
dwExtraInfoLength: DWORD; // length of extra information
end;
{$EXTERNALSYM URL_COMPONENTS}
URL_COMPONENTS = URL_COMPONENTSA;
TURLComponentsA = URL_COMPONENTSA;
TURLComponentsW = URL_COMPONENTSW;
TURLComponents = TURLComponentsA;
// INTERNET_CERTIFICATE_INFO lpBuffer - contains the certificate returned from
// the server
PInternetCertificateInfo = ^TInternetCertificateInfo;
{$EXTERNALSYM INTERNET_CERTIFICATE_INFO}
INTERNET_CERTIFICATE_INFO = record // not packed!
ftExpiry: TFileTime; // ftExpiry - date the certificate expires.
ftStart: TFileTime; // ftStart - date the certificate becomes valid.
lpszSubjectInfo: LPTSTR; // lpszSubjectInfo - the name of organization, site, and server
lpszIssuerInfo: LPTSTR; // lpszIssuerInfo - the name of orgainzation, site, and server
lpszProtocolName: LPTSTR; // lpszProtocolName - the name of the protocol used to provide the secure
// connection.
lpszSignatureAlgName: LPTSTR; // lpszSignatureAlgName - the name of the algorithm used for signing
// the certificate.
lpszEncryptionAlgName: LPTSTR; // 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;
TInternetCertificateInfo = INTERNET_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
type
PInternetBuffersA = ^TInternetBuffersA;
PInternetBuffersW = ^TInternetBuffersW;
PInternetBuffers = PInternetBuffersA;
{$EXTERNALSYM _INTERNET_BUFFERSA}
_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_BUFFERSW}
_INTERNET_BUFFERSW = record
dwStructSize: DWORD; // used for API versioning. Set to sizeof(INTERNET_BUFFERS)
Next: PInternetBuffers; // chain of buffers
lpcszHeader: PWideChar; // 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_BUFFERS}
_INTERNET_BUFFERS = _INTERNET_BUFFERSA;
{$EXTERNALSYM _INTERNET_BUFFERSA}
INTERNET_BUFFERSA = _INTERNET_BUFFERSA;
{$EXTERNALSYM _INTERNET_BUFFERSW}
INTERNET_BUFFERSW = _INTERNET_BUFFERSW;
{$EXTERNALSYM INTERNET_BUFFERS}
INTERNET_BUFFERS = INTERNET_BUFFERSA;
TInternetBuffersA = _INTERNET_BUFFERSA;
TInternetBuffersW = _INTERNET_BUFFERSW;
TInternetBuffers = TInternetBuffersA;
// prototypes
{$EXTERNALSYM InternetTimeFromSystemTimeA}
function InternetTimeFromSystemTimeA(const pst: TSystemTime;
dwRFC: DWORD; lpszTime: PAnsiChar; cbTime: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetTimeFromSystemTimeW}
function InternetTimeFromSystemTimeW(const pst: TSystemTime;
dwRFC: DWORD; lpszTime: PWideChar; cbTime: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetTimeFromSystemTime}
function InternetTimeFromSystemTime(const pst: TSystemTime;
dwRFC: DWORD; lpszTime: PTSTR; cbTime: DWORD): BOOL; stdcall;
// constants for InternetTimeFromSystemTime
const
{$EXTERNALSYM INTERNET_RFC1123_FORMAT}
INTERNET_RFC1123_FORMAT = 0;
{$EXTERNALSYM INTERNET_RFC1123_BUFSIZE}
INTERNET_RFC1123_BUFSIZE = 30;
{$EXTERNALSYM InternetTimeToSystemTimeA}
function InternetTimeToSystemTimeA(lpszTime: PAnsiChar;
out pst: TSystemTime; dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetTimeToSystemTimeW}
function InternetTimeToSystemTimeW(lpszTime: PWideChar;
out pst: TSystemTime; dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetTimeToSystemTime}
function InternetTimeToSystemTime(lpszTime: PTSTR;
out pst: TSystemTime; dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCrackUrlA}
function InternetCrackUrlA(lpszUrl: PAnsiChar; dwUrlLength, dwFlags: DWORD;
out UrlComponents: TURLComponentsA): BOOL; stdcall;
{$EXTERNALSYM InternetCrackUrlW}
function InternetCrackUrlW(lpszUrl: PWideChar; dwUrlLength, dwFlags: DWORD;
out UrlComponents: TURLComponentsW): BOOL; stdcall;
{$EXTERNALSYM InternetCrackUrl}
function InternetCrackUrl(lpszUrl: PTSTR; dwUrlLength, dwFlags: DWORD;
out UrlComponents: TURLComponents): BOOL; stdcall;
{$EXTERNALSYM InternetCreateUrlA}
function InternetCreateUrlA(var lpUrlComponents: TURLComponentsA;
dwFlags: DWORD; lpszUrl: PAnsiChar; var lpdwUrlLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCreateUrlW}
function InternetCreateUrlW(var lpUrlComponents: TURLComponentsW;
dwFlags: DWORD; lpszUrl: PWideChar; var lpdwUrlLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCreateUrl}
function InternetCreateUrl(var lpUrlComponents: TURLComponents;
dwFlags: DWORD; lpszUrl: PTSTR; var lpdwUrlLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCanonicalizeUrlA}
function InternetCanonicalizeUrlA(lpszUrl: PAnsiChar;
lpszBuffer: PAnsiChar; var lpdwBufferLength: DWORD; dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCanonicalizeUrlW}
function InternetCanonicalizeUrlW(lpszUrl: PWideChar;
lpszBuffer: PWideChar; var lpdwBufferLength: DWORD; dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCanonicalizeUrl}
function InternetCanonicalizeUrl(lpszUrl: PTSTR;
lpszBuffer: PTSTR; var lpdwBufferLength: DWORD; dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCombineUrlA}
function InternetCombineUrlA(lpszBaseUrl, lpszRelativeUrl: PAnsiChar;
lpszBuffer: PAnsiChar; dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCombineUrlW}
function InternetCombineUrlW(lpszBaseUrl, lpszRelativeUrl: PWideChar;
lpszBuffer: PWideChar; dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCombineUrl}
function InternetCombineUrl(lpszBaseUrl, lpszRelativeUrl: PTSTR;
lpszBuffer: PTSTR; dwFlags: DWORD): BOOL; stdcall;
const
// flags for InternetCrackUrl() and InternetCreateUrl()
{$EXTERNALSYM ICU_ESCAPE}
ICU_ESCAPE = $80000000; // (un)escape URL characters
{$EXTERNALSYM ICU_USERNAME}
ICU_USERNAME = $40000000; // use internal username & password
// flags for InternetCanonicalizeUrl() and InternetCombineUrl()
{$EXTERNALSYM ICU_NO_ENCODE}
ICU_NO_ENCODE = $20000000; // Don't convert unsafe characters to escape sequence
{$EXTERNALSYM ICU_DECODE}
ICU_DECODE = $10000000; // Convert %XX escape sequences to characters
{$EXTERNALSYM ICU_NO_META}
ICU_NO_META = $08000000; // Don't convert .. etc. meta path sequences
{$EXTERNALSYM ICU_ENCODE_SPACES_ONLY}
ICU_ENCODE_SPACES_ONLY = $04000000; // Encode spaces only
{$EXTERNALSYM ICU_BROWSER_MODE}
ICU_BROWSER_MODE = $02000000; // Special encode/decode rules for browser
ICU_ENCODE_PERCENT = $00001000; // Encode any percent (ASCII 25)
// signs encountered, default is to
// not encode percent.
function InternetOpenA(lpszAgent: PAnsiChar; dwAccessType: DWORD;
lpszProxy, lpszProxyBypass: PAnsiChar; dwFlags: DWORD): HInternet; stdcall;
function InternetOpenW(lpszAgent: PWideChar; dwAccessType: DWORD;
lpszProxy, lpszProxyBypass: PWideChar; dwFlags: DWORD): HInternet; stdcall;
function InternetOpen(lpszAgent: PTSTR; dwAccessType: DWORD;
lpszProxy, lpszProxyBypass: PTSTR; dwFlags: DWORD): HInternet; stdcall;
const
// access types for InternetOpen()
{$EXTERNALSYM INTERNET_OPEN_TYPE_PRECONFIG}
INTERNET_OPEN_TYPE_PRECONFIG = 0; // use registry configuration
{$EXTERNALSYM INTERNET_OPEN_TYPE_DIRECT}
INTERNET_OPEN_TYPE_DIRECT = 1; // direct to net
{$EXTERNALSYM INTERNET_OPEN_TYPE_PROXY}
INTERNET_OPEN_TYPE_PROXY = 3; // via named proxy
{$EXTERNALSYM INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY}
INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4; // prevent using java/script/INS
// old names for access types
{$EXTERNALSYM PRE_CONFIG_INTERNET_ACCESS}
PRE_CONFIG_INTERNET_ACCESS = INTERNET_OPEN_TYPE_PRECONFIG;
{$EXTERNALSYM LOCAL_INTERNET_ACCESS}
LOCAL_INTERNET_ACCESS = INTERNET_OPEN_TYPE_DIRECT;
{$EXTERNALSYM CERN_PROXY_INTERNET_ACCESS}
CERN_PROXY_INTERNET_ACCESS = INTERNET_OPEN_TYPE_PROXY;
{$EXTERNALSYM InternetCloseHandle}
function InternetCloseHandle(hInternet: HINTERNET): BOOL; stdcall;
{$EXTERNALSYM InternetConnectA}
function InternetConnectA(hInternet: HINTERNET;
lpszServerName: PAnsiChar; nServerPort: TInternetPort;
lpszUserName, lpszPassword: PAnsiChar;
dwService, dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM InternetConnectW}
function InternetConnectW(hInternet: HINTERNET;
lpszServerName: PWideChar; nServerPort: TInternetPort;
lpszUserName, lpszPassword: PWideChar;
dwService, dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM InternetConnect}
function InternetConnect(hInternet: HINTERNET;
lpszServerName: PTSTR; nServerPort: TInternetPort;
lpszUserName, lpszPassword: PTSTR;
dwService, dwFlags, dwContext: DWORD): HINTERNET; stdcall;
const
// service types for InternetConnect()
{$EXTERNALSYM INTERNET_SERVICE_URL}
INTERNET_SERVICE_URL = 0;
{$EXTERNALSYM INTERNET_SERVICE_FTP}
INTERNET_SERVICE_FTP = 1;
{$EXTERNALSYM INTERNET_SERVICE_GOPHER}
INTERNET_SERVICE_GOPHER = 2;
{$EXTERNALSYM INTERNET_SERVICE_HTTP}
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
{$EXTERNALSYM InternetConnectUrlA}
function InternetConnectUrlA(hInternet: HINTERNET; lpszUrl: PAnsiChar;
dwFlags, dwContext: DWORD): HINTERNET;
{$EXTERNALSYM InternetConnectUrlW}
function InternetConnectUrlW(hInternet: HINTERNET; lpszUrl: PWideChar;
dwFlags, dwContext: DWORD): HINTERNET;
{$EXTERNALSYM InternetConnectUrl}
function InternetConnectUrl(hInternet: HINTERNET; lpszUrl: PTSTR;
dwFlags, dwContext: DWORD): HINTERNET;
{$EXTERNALSYM InternetOpenUrlA}
function InternetOpenUrlA(hInternet: HINTERNET; lpszUrl, lpszHeaders: PAnsiChar;
dwHeadersLength, dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM InternetOpenUrlW}
function InternetOpenUrlW(hInternet: HINTERNET; lpszUrl, lpszHeaders: PWideChar;
dwHeadersLength, dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM InternetOpenUrl}
function InternetOpenUrl(hInternet: HINTERNET; lpszUrl, lpszHeaders: PTSTR;
dwHeadersLength, dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM InternetReadFile}
function InternetReadFile(hFile: HINTERNET; lpBuffer: Pointer;
dwNumberOfBytesToRead: DWORD; var lpdwNumberOfBytesRead: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetReadFileExA}
function InternetReadFileExA(hFile: HINTERNET;
var lpBuffersOut: TInternetBuffersA;
dwFlags, dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetReadFileExW}
function InternetReadFileExW(hFile: HINTERNET;
var lpBuffersOut: TInternetBuffersW;
dwFlags, dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetReadFileEx}
function InternetReadFileEx(hFile: HINTERNET;
var lpBuffersOut: TInternetBuffers;
dwFlags, dwContext: DWORD): BOOL; stdcall;
const
// flags for InternetReadFileEx()
{$EXTERNALSYM IRF_ASYNC}
IRF_ASYNC = WININET_API_FLAG_ASYNC;
{$EXTERNALSYM IRF_SYNC}
IRF_SYNC = WININET_API_FLAG_SYNC;
{$EXTERNALSYM IRF_USE_CONTEXT}
IRF_USE_CONTEXT = WININET_API_FLAG_USE_CONTEXT;
{$EXTERNALSYM IRF_NO_WAIT}
IRF_NO_WAIT = $00000008;
{$EXTERNALSYM InternetSetFilePointer}
function InternetSetFilePointer(hFile: HINTERNET;
lDistanceToMove: Longint; pReserved: Pointer;
dwMoveMethod, dwContext: DWORD): DWORD; stdcall;
{$EXTERNALSYM InternetWriteFile}
function InternetWriteFile(hFile: HINTERNET;
lpBuffer: Pointer; dwNumberOfBytesToWrite: DWORD;
var lpdwNumberOfBytesWritten: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetQueryDataAvailable}
function InternetQueryDataAvailable(hFile: HINTERNET;
var lpdwNumberOfBytesAvailable: DWORD;
dwFlags, dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetFindNextFileA}
function InternetFindNextFileA(hFind: HINTERNET; lpvFindData: Pointer): BOOL; stdcall;
{$EXTERNALSYM InternetFindNextFileW}
function InternetFindNextFileW(hFind: HINTERNET; lpvFindData: Pointer): BOOL; stdcall;
{$EXTERNALSYM InternetFindNextFile}
function InternetFindNextFile(hFind: HINTERNET; lpvFindData: Pointer): BOOL; stdcall;
{$EXTERNALSYM InternetQueryOptionA}
function InternetQueryOptionA(hInternet: HINTERNET; dwOption: DWORD;
lpBuffer: Pointer; var lpdwBufferLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetQueryOptionW}
function InternetQueryOptionW(hInternet: HINTERNET; dwOption: DWORD;
lpBuffer: Pointer; var lpdwBufferLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetQueryOption}
function InternetQueryOption(hInternet: HINTERNET; dwOption: DWORD;
lpBuffer: Pointer; var lpdwBufferLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetSetOptionA}
function InternetSetOptionA(hInternet: HINTERNET; dwOption: DWORD;
lpBuffer: Pointer; dwBufferLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetSetOptionW}
function InternetSetOptionW(hInternet: HINTERNET; dwOption: DWORD;
lpBuffer: Pointer; dwBufferLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetSetOption}
function InternetSetOption(hInternet: HINTERNET; dwOption: DWORD;
lpBuffer: Pointer; dwBufferLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetSetOptionExA}
function InternetSetOptionExA(hInternet: HINTERNET; dwOption: DWORD;
lpBuffer: Pointer; dwBufferLength, dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetSetOptionExW}
function InternetSetOptionExW(hInternet: HINTERNET; dwOption: DWORD;
lpBuffer: Pointer; dwBufferLength, dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetSetOptionEx}
function InternetSetOptionEx(hInternet: HINTERNET; dwOption: DWORD;
lpBuffer: Pointer; dwBufferLength, dwFlags: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetLockRequestFile}
function InternetLockRequestFile(hInternet: HINTERNET;
lphLockRequestInfo: PHandle): BOOL; stdcall;
{$EXTERNALSYM InternetUnlockRequestFile}
function InternetUnlockRequestFile(hLockRequestInfo: THandle): BOOL; stdcall;
const
// flags for InternetSetOptionEx()
{$EXTERNALSYM ISO_GLOBAL}
ISO_GLOBAL = $00000001; // modify option globally
{$EXTERNALSYM ISO_REGISTRY}
ISO_REGISTRY = $00000002; // write option to registry (where applicable)
{$EXTERNALSYM ISO_VALID_FLAGS}
ISO_VALID_FLAGS = ISO_GLOBAL or ISO_REGISTRY;
// options manifests for Internet{Query|Set}Option
{$EXTERNALSYM INTERNET_OPTION_CALLBACK}
INTERNET_OPTION_CALLBACK = 1;
{$EXTERNALSYM INTERNET_OPTION_CONNECT_TIMEOUT}
INTERNET_OPTION_CONNECT_TIMEOUT = 2;
{$EXTERNALSYM INTERNET_OPTION_CONNECT_RETRIES}
INTERNET_OPTION_CONNECT_RETRIES = 3;
{$EXTERNALSYM INTERNET_OPTION_CONNECT_BACKOFF}
INTERNET_OPTION_CONNECT_BACKOFF = 4;
{$EXTERNALSYM INTERNET_OPTION_SEND_TIMEOUT}
INTERNET_OPTION_SEND_TIMEOUT = 5;
{$EXTERNALSYM INTERNET_OPTION_CONTROL_SEND_TIMEOUT}
INTERNET_OPTION_CONTROL_SEND_TIMEOUT = INTERNET_OPTION_SEND_TIMEOUT;
{$EXTERNALSYM INTERNET_OPTION_RECEIVE_TIMEOUT}
INTERNET_OPTION_RECEIVE_TIMEOUT = 6;
{$EXTERNALSYM INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT}
INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT = INTERNET_OPTION_RECEIVE_TIMEOUT;
{$EXTERNALSYM INTERNET_OPTION_DATA_SEND_TIMEOUT}
INTERNET_OPTION_DATA_SEND_TIMEOUT = 7;
{$EXTERNALSYM INTERNET_OPTION_DATA_RECEIVE_TIMEOUT}
INTERNET_OPTION_DATA_RECEIVE_TIMEOUT = 8;
{$EXTERNALSYM INTERNET_OPTION_HANDLE_TYPE}
INTERNET_OPTION_HANDLE_TYPE = 9;
{$EXTERNALSYM INTERNET_OPTION_LISTEN_TIMEOUT}
INTERNET_OPTION_LISTEN_TIMEOUT = 11;
{$EXTERNALSYM INTERNET_OPTION_READ_BUFFER_SIZE}
INTERNET_OPTION_READ_BUFFER_SIZE = 12;
{$EXTERNALSYM INTERNET_OPTION_WRITE_BUFFER_SIZE}
INTERNET_OPTION_WRITE_BUFFER_SIZE = 13;
{$EXTERNALSYM INTERNET_OPTION_ASYNC_ID}
INTERNET_OPTION_ASYNC_ID = 15;
{$EXTERNALSYM INTERNET_OPTION_ASYNC_PRIORITY}
INTERNET_OPTION_ASYNC_PRIORITY = 16;
{$EXTERNALSYM INTERNET_OPTION_PARENT_HANDLE}
INTERNET_OPTION_PARENT_HANDLE = 21;
{$EXTERNALSYM INTERNET_OPTION_KEEP_CONNECTION}
INTERNET_OPTION_KEEP_CONNECTION = 22;
{$EXTERNALSYM INTERNET_OPTION_REQUEST_FLAGS}
INTERNET_OPTION_REQUEST_FLAGS = 23;
{$EXTERNALSYM INTERNET_OPTION_EXTENDED_ERROR}
INTERNET_OPTION_EXTENDED_ERROR = 24;
{$EXTERNALSYM INTERNET_OPTION_OFFLINE_MODE}
INTERNET_OPTION_OFFLINE_MODE = 26;
{$EXTERNALSYM INTERNET_OPTION_CACHE_STREAM_HANDLE}
INTERNET_OPTION_CACHE_STREAM_HANDLE = 27;
{$EXTERNALSYM INTERNET_OPTION_USERNAME}
INTERNET_OPTION_USERNAME = 28;
{$EXTERNALSYM INTERNET_OPTION_PASSWORD}
INTERNET_OPTION_PASSWORD = 29;
{$EXTERNALSYM INTERNET_OPTION_ASYNC}
INTERNET_OPTION_ASYNC = 30;
{$EXTERNALSYM INTERNET_OPTION_SECURITY_FLAGS}
INTERNET_OPTION_SECURITY_FLAGS = 31;
{$EXTERNALSYM INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT}
INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT = 32;
{$EXTERNALSYM INTERNET_OPTION_DATAFILE_NAME}
INTERNET_OPTION_DATAFILE_NAME = 33;
{$EXTERNALSYM INTERNET_OPTION_URL}
INTERNET_OPTION_URL = 34;
{$EXTERNALSYM INTERNET_OPTION_SECURITY_CERTIFICATE}
INTERNET_OPTION_SECURITY_CERTIFICATE = 35;
{$EXTERNALSYM INTERNET_OPTION_SECURITY_KEY_BITNESS}
INTERNET_OPTION_SECURITY_KEY_BITNESS = 36;
{$EXTERNALSYM INTERNET_OPTION_REFRESH}
INTERNET_OPTION_REFRESH = 37;
{$EXTERNALSYM INTERNET_OPTION_PROXY}
INTERNET_OPTION_PROXY = 38;
{$EXTERNALSYM INTERNET_OPTION_SETTINGS_CHANGED}
INTERNET_OPTION_SETTINGS_CHANGED = 39;
{$EXTERNALSYM INTERNET_OPTION_VERSION}
INTERNET_OPTION_VERSION = 40;
{$EXTERNALSYM INTERNET_OPTION_USER_AGENT}
INTERNET_OPTION_USER_AGENT = 41;
{$EXTERNALSYM INTERNET_OPTION_END_BROWSER_SESSION}
INTERNET_OPTION_END_BROWSER_SESSION = 42;
{$EXTERNALSYM INTERNET_OPTION_PROXY_USERNAME}
INTERNET_OPTION_PROXY_USERNAME = 43;
{$EXTERNALSYM INTERNET_OPTION_PROXY_PASSWORD}
INTERNET_OPTION_PROXY_PASSWORD = 44;
{$EXTERNALSYM INTERNET_OPTION_CONTEXT_VALUE}
INTERNET_OPTION_CONTEXT_VALUE = 45;
{$EXTERNALSYM INTERNET_OPTION_CONNECT_LIMIT}
INTERNET_OPTION_CONNECT_LIMIT = 46;
{$EXTERNALSYM INTERNET_OPTION_SECURITY_SELECT_CLIENT_CERT}
INTERNET_OPTION_SECURITY_SELECT_CLIENT_CERT = 47;
{$EXTERNALSYM INTERNET_OPTION_POLICY}
INTERNET_OPTION_POLICY = 48;
{$EXTERNALSYM INTERNET_OPTION_DISCONNECTED_TIMEOUT}
INTERNET_OPTION_DISCONNECTED_TIMEOUT = 49;
{$EXTERNALSYM INTERNET_OPTION_CONNECTED_STATE}
INTERNET_OPTION_CONNECTED_STATE = 50;
{$EXTERNALSYM INTERNET_OPTION_IDLE_STATE}
INTERNET_OPTION_IDLE_STATE = 51;
{$EXTERNALSYM INTERNET_OPTION_OFFLINE_SEMANTICS}
INTERNET_OPTION_OFFLINE_SEMANTICS = 52;
{$EXTERNALSYM INTERNET_OPTION_SECONDARY_CACHE_KEY}
INTERNET_OPTION_SECONDARY_CACHE_KEY = 53;
{$EXTERNALSYM INTERNET_OPTION_CALLBACK_FILTER}
INTERNET_OPTION_CALLBACK_FILTER = 54;
{$EXTERNALSYM INTERNET_OPTION_CONNECT_TIME}
INTERNET_OPTION_CONNECT_TIME = 55;
{$EXTERNALSYM INTERNET_OPTION_SEND_THROUGHPUT}
INTERNET_OPTION_SEND_THROUGHPUT = 56;
{$EXTERNALSYM INTERNET_OPTION_RECEIVE_THROUGHPUT}
INTERNET_OPTION_RECEIVE_THROUGHPUT = 57;
{$EXTERNALSYM INTERNET_OPTION_REQUEST_PRIORITY}
INTERNET_OPTION_REQUEST_PRIORITY = 58;
{$EXTERNALSYM INTERNET_OPTION_HTTP_VERSION}
INTERNET_OPTION_HTTP_VERSION = 59;
{$EXTERNALSYM INTERNET_OPTION_RESET_URLCACHE_SESSION}
INTERNET_OPTION_RESET_URLCACHE_SESSION = 60;
{$EXTERNALSYM INTERNET_OPTION_ERROR_MASK}
INTERNET_OPTION_ERROR_MASK = 62;
{$EXTERNALSYM INTERNET_OPTION_FROM_CACHE_TIMEOUT}
INTERNET_OPTION_FROM_CACHE_TIMEOUT = 63;
{$EXTERNALSYM INTERNET_OPTION_BYPASS_EDITED_ENTRY}
INTERNET_OPTION_BYPASS_EDITED_ENTRY = 64;
{$EXTERNALSYM INTERNET_OPTION_CODEPAGE}
INTERNET_OPTION_CODEPAGE = 68;
{$EXTERNALSYM INTERNET_OPTION_CACHE_TIMESTAMPS}
INTERNET_OPTION_CACHE_TIMESTAMPS = 69;
{$EXTERNALSYM INTERNET_OPTION_DISABLE_AUTODIAL}
INTERNET_OPTION_DISABLE_AUTODIAL = 70;
{$EXTERNALSYM INTERNET_OPTION_MAX_CONNS_PER_SERVER}
INTERNET_OPTION_MAX_CONNS_PER_SERVER = 73;
{$EXTERNALSYM INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER}
INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER = 74;
{$EXTERNALSYM INTERNET_OPTION_PER_CONNECTION_OPTION}
INTERNET_OPTION_PER_CONNECTION_OPTION = 75;
{$EXTERNALSYM INTERNET_OPTION_DIGEST_AUTH_UNLOAD}
INTERNET_OPTION_DIGEST_AUTH_UNLOAD = 76;
{$EXTERNALSYM INTERNET_OPTION_IGNORE_OFFLINE}
INTERNET_OPTION_IGNORE_OFFLINE = 77;
{$EXTERNALSYM INTERNET_FIRST_OPTION}
INTERNET_FIRST_OPTION = INTERNET_OPTION_CALLBACK;
{$EXTERNALSYM INTERNET_LAST_OPTION}
INTERNET_LAST_OPTION = INTERNET_OPTION_IGNORE_OFFLINE;
// values for INTERNET_OPTION_PRIORITY
{$EXTERNALSYM INTERNET_PRIORITY_FOREGROUND}
INTERNET_PRIORITY_FOREGROUND = 1000;
// handle types
{$EXTERNALSYM INTERNET_HANDLE_TYPE_INTERNET}
INTERNET_HANDLE_TYPE_INTERNET = 1;
{$EXTERNALSYM INTERNET_HANDLE_TYPE_CONNECT_FTP}
INTERNET_HANDLE_TYPE_CONNECT_FTP = 2;
{$EXTERNALSYM INTERNET_HANDLE_TYPE_CONNECT_GOPHER}
INTERNET_HANDLE_TYPE_CONNECT_GOPHER = 3;
{$EXTERNALSYM INTERNET_HANDLE_TYPE_CONNECT_HTTP}
INTERNET_HANDLE_TYPE_CONNECT_HTTP = 4;
{$EXTERNALSYM INTERNET_HANDLE_TYPE_FTP_FIND}
INTERNET_HANDLE_TYPE_FTP_FIND = 5;
{$EXTERNALSYM INTERNET_HANDLE_TYPE_FTP_FIND_HTML}
INTERNET_HANDLE_TYPE_FTP_FIND_HTML = 6;
{$EXTERNALSYM INTERNET_HANDLE_TYPE_FTP_FILE}
INTERNET_HANDLE_TYPE_FTP_FILE = 7;
{$EXTERNALSYM INTERNET_HANDLE_TYPE_FTP_FILE_HTML}
INTERNET_HANDLE_TYPE_FTP_FILE_HTML = 8;
{$EXTERNALSYM INTERNET_HANDLE_TYPE_GOPHER_FIND}
INTERNET_HANDLE_TYPE_GOPHER_FIND = 9;
{$EXTERNALSYM INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML}
INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML = 10;
{$EXTERNALSYM INTERNET_HANDLE_TYPE_GOPHER_FILE}
INTERNET_HANDLE_TYPE_GOPHER_FILE = 11;
{$EXTERNALSYM INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML}
INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML = 12;
{$EXTERNALSYM INTERNET_HANDLE_TYPE_HTTP_REQUEST}
INTERNET_HANDLE_TYPE_HTTP_REQUEST = 13;
{$EXTERNALSYM INTERNET_HANDLE_TYPE_FILE_REQUEST}
INTERNET_HANDLE_TYPE_FILE_REQUEST = 14;
// values for INTERNET_OPTION_SECURITY_FLAGS
// query only
{$EXTERNALSYM SECURITY_FLAG_SECURE}
SECURITY_FLAG_SECURE = $00000001; // can query only
{$EXTERNALSYM SECURITY_FLAG_STRENGTH_WEAK}
SECURITY_FLAG_STRENGTH_WEAK = $10000000;
{$EXTERNALSYM SECURITY_FLAG_STRENGTH_MEDIUM}
SECURITY_FLAG_STRENGTH_MEDIUM = $40000000;
{$EXTERNALSYM SECURITY_FLAG_STRENGTH_STRONG}
SECURITY_FLAG_STRENGTH_STRONG = $20000000;
{$EXTERNALSYM SECURITY_FLAG_UNKNOWNBIT}
SECURITY_FLAG_UNKNOWNBIT = $80000000;
{$EXTERNALSYM SECURITY_FLAG_FORTEZZA}
SECURITY_FLAG_FORTEZZA = $08000000;
{$EXTERNALSYM SECURITY_FLAG_NORMALBITNESS}
SECURITY_FLAG_NORMALBITNESS = SECURITY_FLAG_STRENGTH_WEAK;
// The following are unused
{$EXTERNALSYM SECURITY_FLAG_SSL}
SECURITY_FLAG_SSL = $00000002;
{$EXTERNALSYM SECURITY_FLAG_SSL3}
SECURITY_FLAG_SSL3 = $00000004;
{$EXTERNALSYM SECURITY_FLAG_PCT}
SECURITY_FLAG_PCT = $00000008;
{$EXTERNALSYM SECURITY_FLAG_PCT4}
SECURITY_FLAG_PCT4 = $00000010;
{$EXTERNALSYM SECURITY_FLAG_IETFSSL4}
SECURITY_FLAG_IETFSSL4 = $00000020;
// The following are for backwards compatability only.
{$EXTERNALSYM SECURITY_FLAG_40BIT}
SECURITY_FLAG_40BIT = SECURITY_FLAG_STRENGTH_WEAK;
{$EXTERNALSYM SECURITY_FLAG_128BIT}
SECURITY_FLAG_128BIT = SECURITY_FLAG_STRENGTH_STRONG;
{$EXTERNALSYM SECURITY_FLAG_56BIT}
SECURITY_FLAG_56BIT = SECURITY_FLAG_STRENGTH_MEDIUM;
// setable flags
{$EXTERNALSYM SECURITY_FLAG_IGNORE_REVOCATION}
SECURITY_FLAG_IGNORE_REVOCATION = $00000080;
{$EXTERNALSYM SECURITY_FLAG_IGNORE_UNKNOWN_CA}
SECURITY_FLAG_IGNORE_UNKNOWN_CA = $00000100;
{$EXTERNALSYM SECURITY_FLAG_IGNORE_WRONG_USAGE}
SECURITY_FLAG_IGNORE_WRONG_USAGE = $00000200;
{$EXTERNALSYM SECURITY_FLAG_IGNORE_CERT_CN_INVALID}
SECURITY_FLAG_IGNORE_CERT_CN_INVALID = INTERNET_FLAG_IGNORE_CERT_CN_INVALID;
{$EXTERNALSYM SECURITY_FLAG_IGNORE_CERT_DATE_INVALID}
SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = INTERNET_FLAG_IGNORE_CERT_DATE_INVALID;
{$EXTERNALSYM SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS}
SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS;
{$EXTERNALSYM SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP}
SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP;
{$EXTERNALSYM SECURITY_SET_MASK}
SECURITY_SET_MASK = SECURITY_FLAG_IGNORE_REVOCATION or
SECURITY_FLAG_IGNORE_UNKNOWN_CA or
SECURITY_FLAG_IGNORE_CERT_CN_INVALID or
SECURITY_FLAG_IGNORE_CERT_DATE_INVALID or
SECURITY_FLAG_IGNORE_WRONG_USAGE;
{$EXTERNALSYM InternetGetLastResponseInfoA}
function InternetGetLastResponseInfoA(var lpdwError: DWORD;
lpszBuffer: PAnsiChar; var lpdwBufferLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetGetLastResponseInfoW}
function InternetGetLastResponseInfoW(var lpdwError: DWORD;
lpszBuffer: PWideChar; var lpdwBufferLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetGetLastResponseInfo}
function InternetGetLastResponseInfo(var lpdwError: DWORD;
lpszBuffer: PTSTR; var lpdwBufferLength: DWORD): BOOL; stdcall;
// callback function for InternetSetStatusCallback
type
PInternetStatusCallback = ^TInternetStatusCallback;
{$EXTERNALSYM INTERNET_STATUS_CALLBACK}
INTERNET_STATUS_CALLBACK = procedure(hInternet: HINTERNET;
dwContext, dwInternetStatus: DWORD; lpvStatusInformation: Pointer;
dwStatusInformationLength: DWORD) stdcall;
TInternetStatusCallback = INTERNET_STATUS_CALLBACK;
{$EXTERNALSYM InternetSetStatusCallbackA}
function InternetSetStatusCallbackA(hInternet: HINTERNET;
lpfnInternetCallback: TInternetStatusCallback): TInternetStatusCallback; stdcall;
{$EXTERNALSYM InternetSetStatusCallbackW}
function InternetSetStatusCallbackW(hInternet: HINTERNET;
lpfnInternetCallback: TInternetStatusCallback): TInternetStatusCallback; stdcall;
{$EXTERNALSYM InternetSetStatusCallback}
function InternetSetStatusCallback(hInternet: HINTERNET;
lpfnInternetCallback: TInternetStatusCallback): TInternetStatusCallback; stdcall;
// status manifests for Internet status callback
const
{$EXTERNALSYM INTERNET_STATUS_RESOLVING_NAME}
INTERNET_STATUS_RESOLVING_NAME = 10;
{$EXTERNALSYM INTERNET_STATUS_NAME_RESOLVED}
INTERNET_STATUS_NAME_RESOLVED = 11;
{$EXTERNALSYM INTERNET_STATUS_CONNECTING_TO_SERVER}
INTERNET_STATUS_CONNECTING_TO_SERVER = 20;
{$EXTERNALSYM INTERNET_STATUS_CONNECTED_TO_SERVER}
INTERNET_STATUS_CONNECTED_TO_SERVER = 21;
{$EXTERNALSYM INTERNET_STATUS_SENDING_REQUEST}
INTERNET_STATUS_SENDING_REQUEST = 30;
{$EXTERNALSYM INTERNET_STATUS_REQUEST_SENT}
INTERNET_STATUS_REQUEST_SENT = 31;
{$EXTERNALSYM INTERNET_STATUS_RECEIVING_RESPONSE}
INTERNET_STATUS_RECEIVING_RESPONSE = 40;
{$EXTERNALSYM INTERNET_STATUS_RESPONSE_RECEIVED}
INTERNET_STATUS_RESPONSE_RECEIVED = 41;
{$EXTERNALSYM INTERNET_STATUS_CTL_RESPONSE_RECEIVED}
INTERNET_STATUS_CTL_RESPONSE_RECEIVED = 42;
{$EXTERNALSYM INTERNET_STATUS_PREFETCH}
INTERNET_STATUS_PREFETCH = 43;
{$EXTERNALSYM INTERNET_STATUS_CLOSING_CONNECTION}
INTERNET_STATUS_CLOSING_CONNECTION = 50;
{$EXTERNALSYM INTERNET_STATUS_CONNECTION_CLOSED}
INTERNET_STATUS_CONNECTION_CLOSED = 51;
{$EXTERNALSYM INTERNET_STATUS_HANDLE_CREATED}
INTERNET_STATUS_HANDLE_CREATED = 60;
{$EXTERNALSYM INTERNET_STATUS_HANDLE_CLOSING}
INTERNET_STATUS_HANDLE_CLOSING = 70;
{$EXTERNALSYM INTERNET_STATUS_DETECTING_PROXY}
INTERNET_STATUS_DETECTING_PROXY = 80;
{$EXTERNALSYM INTERNET_STATUS_REQUEST_COMPLETE}
INTERNET_STATUS_REQUEST_COMPLETE = 100;
{$EXTERNALSYM INTERNET_STATUS_REDIRECT}
INTERNET_STATUS_REDIRECT = 110;
{$EXTERNALSYM INTERNET_STATUS_INTERMEDIATE_RESPONSE}
INTERNET_STATUS_INTERMEDIATE_RESPONSE = 120;
{$EXTERNALSYM INTERNET_STATUS_USER_INPUT_REQUIRED}
INTERNET_STATUS_USER_INPUT_REQUIRED = 140;
{$EXTERNALSYM INTERNET_STATUS_STATE_CHANGE}
INTERNET_STATUS_STATE_CHANGE = 200;
// the following can be indicated in a state change notification:
{$EXTERNALSYM INTERNET_STATE_CONNECTED}
INTERNET_STATE_CONNECTED = $00000001; // connected state (mutually exclusive with disconnected)
{$EXTERNALSYM INTERNET_STATE_DISCONNECTED}
INTERNET_STATE_DISCONNECTED = $00000002; // disconnected from network
{$EXTERNALSYM INTERNET_STATE_DISCONNECTED_BY_USER}
INTERNET_STATE_DISCONNECTED_BY_USER = $00000010; // disconnected by user request
{$EXTERNALSYM INTERNET_STATE_IDLE}
INTERNET_STATE_IDLE = $00000100; // no network requests being made (by Wininet)
{$EXTERNALSYM INTERNET_STATE_BUSY}
INTERNET_STATE_BUSY = $00000200; // network requests being made (by Wininet)
// if the following value is returned by InternetSetStatusCallback, then
// probably an invalid (non-code) address was supplied for the callback
{$EXTERNALSYM INTERNET_INVALID_STATUS_CALLBACK}
INTERNET_INVALID_STATUS_CALLBACK = PInternetStatusCallback(-1);
//
// FTP
//
// prototypes
{$EXTERNALSYM FtpFindFirstFileA}
function FtpFindFirstFileA(hConnect: HINTERNET;
lpszSearchFile: PAnsiChar; lpFindFileData: PWin32FindData;
dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM FtpFindFirstFileW}
function FtpFindFirstFileW(hConnect: HINTERNET;
lpszSearchFile: PWideChar; lpFindFileData: PWin32FindData;
dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM FtpFindFirstFile}
function FtpFindFirstFile(hConnect: HINTERNET;
lpszSearchFile: PTSTR; lpFindFileData: PWin32FindData;
dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM FtpGetFileA}
function FtpGetFileA(hConnect: HINTERNET;
lpszRemoteFile, lpszNewFile: PAnsiChar; fFailIfExists: BOOL;
dwFlagsAndAttributes, dwFlags, dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM FtpGetFileW}
function FtpGetFileW(hConnect: HINTERNET;
lpszRemoteFile, lpszNewFile: PWideChar; fFailIfExists: BOOL;
dwFlagsAndAttributes, dwFlags, dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM FtpGetFile}
function FtpGetFile(hConnect: HINTERNET;
lpszRemoteFile, lpszNewFile: PTSTR; fFailIfExists: BOOL;
dwFlagsAndAttributes, dwFlags, dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM FtpPutFileA}
function FtpPutFileA(hConnect: HINTERNET; lpszLocalFile,
lpszNewRemoteFile: PAnsiChar; dwFlags, dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM FtpPutFileW}
function FtpPutFileW(hConnect: HINTERNET; lpszLocalFile,
lpszNewRemoteFile: PWideChar; dwFlags, dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM FtpPutFile}
function FtpPutFile(hConnect: HINTERNET; lpszLocalFile,
lpszNewRemoteFile: PTSTR; dwFlags, dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM FtpGetFileEx}
function FtpGetFileEx(hFtpSession: HINTERNET; lpszRemoteFile: LPCSTR;
lpszNewFile: LPCWSTR; fFailIfExists: BOOL;
dwFlagsAndAttributes, dwFlags: DWORD; dwContext: DWORD_PTR): BOOL; stdcall;
{$EXTERNALSYM FtpPutFileEx}
function FtpPutFileEx(hFtpSession: HINTERNET; lpszLocalFile: LPCWSTR;
lpszNewRemoteFile: LPCSTR; dwFlags: DWORD;
dwContext: DWORD_PTR): BOOL; stdcall;
{$EXTERNALSYM FtpDeleteFileA}
function FtpDeleteFileA(hConnect: HINTERNET; lpszFileName: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM FtpDeleteFileW}
function FtpDeleteFileW(hConnect: HINTERNET; lpszFileName: PWideChar): BOOL; stdcall;
{$EXTERNALSYM FtpDeleteFile}
function FtpDeleteFile(hConnect: HINTERNET; lpszFileName: PTSTR): BOOL; stdcall;
{$EXTERNALSYM FtpRenameFileA}
function FtpRenameFileA(hConnect: HINTERNET;
lpszExisting, lpszNew: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM FtpRenameFileW}
function FtpRenameFileW(hConnect: HINTERNET;
lpszExisting, lpszNew: PWideChar): BOOL; stdcall;
{$EXTERNALSYM FtpRenameFile}
function FtpRenameFile(hConnect: HINTERNET;
lpszExisting, lpszNew: PTSTR): BOOL; stdcall;
{$EXTERNALSYM FtpOpenFileA}
function FtpOpenFileA(hConnect: HINTERNET; lpszFileName: PAnsiChar;
dwAccess, dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM FtpOpenFileW}
function FtpOpenFileW(hConnect: HINTERNET; lpszFileName: PWideChar;
dwAccess, dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM FtpOpenFile}
function FtpOpenFile(hConnect: HINTERNET; lpszFileName: PTSTR;
dwAccess, dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM FtpCreateDirectoryA}
function FtpCreateDirectoryA(hConnect: HINTERNET; lpszDirectory: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM FtpCreateDirectoryW}
function FtpCreateDirectoryW(hConnect: HINTERNET; lpszDirectory: PWideChar): BOOL; stdcall;
{$EXTERNALSYM FtpCreateDirectory}
function FtpCreateDirectory(hConnect: HINTERNET; lpszDirectory: PTSTR): BOOL; stdcall;
{$EXTERNALSYM FtpRemoveDirectoryA}
function FtpRemoveDirectoryA(hConnect: HINTERNET; lpszDirectory: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM FtpRemoveDirectoryW}
function FtpRemoveDirectoryW(hConnect: HINTERNET; lpszDirectory: PWideChar): BOOL; stdcall;
{$EXTERNALSYM FtpRemoveDirectory}
function FtpRemoveDirectory(hConnect: HINTERNET; lpszDirectory: PTSTR): BOOL; stdcall;
{$EXTERNALSYM FtpSetCurrentDirectoryA}
function FtpSetCurrentDirectoryA(hConnect: HINTERNET;
lpszDirectory: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM FtpSetCurrentDirectoryW}
function FtpSetCurrentDirectoryW(hConnect: HINTERNET;
lpszDirectory: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM FtpSetCurrentDirectory}
function FtpSetCurrentDirectory(hConnect: HINTERNET;
lpszDirectory: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM FtpGetCurrentDirectoryA}
function FtpGetCurrentDirectoryA(hConnect: HINTERNET; lpszCurrentDirectory: PAnsiChar;
var lpdwCurrentDirectory: DWORD): BOOL; stdcall;
{$EXTERNALSYM FtpGetCurrentDirectoryW}
function FtpGetCurrentDirectoryW(hConnect: HINTERNET; lpszCurrentDirectory: PWideChar;
var lpdwCurrentDirectory: DWORD): BOOL; stdcall;
{$EXTERNALSYM FtpGetCurrentDirectory}
function FtpGetCurrentDirectory(hConnect: HINTERNET; lpszCurrentDirectory: PTSTR;
var lpdwCurrentDirectory: DWORD): BOOL; stdcall;
{$EXTERNALSYM FtpCommandA}
function FtpCommandA(hConnect: HINTERNET; fExpectResponse: BOOL;
dwFlags: DWORD; lpszCommand: PAnsiChar; dwContext: DWORD_PTR;
out phFtpCommand: HINTERNET): BOOL; stdcall;
{$EXTERNALSYM FtpCommandW}
function FtpCommandW(hConnect: HINTERNET; fExpectResponse: BOOL;
dwFlags: DWORD; lpszCommand: PWideChar; dwContext: DWORD_PTR;
out phFtpCommand: HINTERNET): BOOL; stdcall;
{$EXTERNALSYM FtpCommand}
function FtpCommand(hConnect: HINTERNET; fExpectResponse: BOOL;
dwFlags: DWORD; lpszCommand: PTSTR; dwContext: DWORD_PTR;
out phFtpCommand: HINTERNET): BOOL; stdcall;
{$EXTERNALSYM FtpGetFileSize}
function FtpGetFileSize(hFile: HINTERNET;
out lpdwFileSizeHigh: DWORD): DWORD; stdcall;
//
// Gopher
//
// manifests
// string field lengths (in characters, not bytes)
const
{$EXTERNALSYM MAX_GOPHER_DISPLAY_TEXT}
MAX_GOPHER_DISPLAY_TEXT = 128;
{$EXTERNALSYM MAX_GOPHER_SELECTOR_TEXT}
MAX_GOPHER_SELECTOR_TEXT = 256;
{$EXTERNALSYM MAX_GOPHER_HOST_NAME}
MAX_GOPHER_HOST_NAME = INTERNET_MAX_HOST_NAME_LENGTH;
{$EXTERNALSYM MAX_GOPHER_LOCATOR_LENGTH}
MAX_GOPHER_LOCATOR_LENGTH = 1 + MAX_GOPHER_DISPLAY_TEXT +
1 + MAX_GOPHER_SELECTOR_TEXT +
1 + MAX_GOPHER_HOST_NAME +
1 + INTERNET_MAX_PORT_NUMBER_LENGTH +
1 + 1 + 2;
// structures/types
// GOPHER_FIND_DATA - returns the results of a GopherFindFirstFile()/
// InternetFindNextFile() request
type
PGopherFindDataA = ^TGopherFindDataA;
PGopherFindDataW = ^TGopherFindDataW;
PGopherFindData = PGopherFindDataA;
{$EXTERNALSYM GOPHER_FIND_DATAA}
GOPHER_FIND_DATAA = record // not packed!
DisplayString: packed array [0..MAX_GOPHER_DISPLAY_TEXT] of AnsiChar;
GopherType: DWORD; // GOPHER_TYPE_, if known
SizeLow: DWORD;
SizeHigh: DWORD;
LastModificationTime: TFileTime;
Locator: packed array [0..MAX_GOPHER_LOCATOR_LENGTH] of AnsiChar;
end;
{$EXTERNALSYM GOPHER_FIND_DATAW}
GOPHER_FIND_DATAW = record // not packed!
DisplayString: packed array [0..MAX_GOPHER_DISPLAY_TEXT] of WideChar;
GopherType: DWORD; // GOPHER_TYPE_, if known
SizeLow: DWORD;
SizeHigh: DWORD;
LastModificationTime: TFileTime;
Locator: packed array [0..MAX_GOPHER_LOCATOR_LENGTH] of WideChar;
end;
{$EXTERNALSYM GOPHER_FIND_DATA}
GOPHER_FIND_DATA = GOPHER_FIND_DATAA;
TGopherFindDataA = GOPHER_FIND_DATAA;
TGopherFindDataW = GOPHER_FIND_DATAW;
TGopherFindData = TGopherFindDataA;
// manifests for GopherType
const
{$EXTERNALSYM GOPHER_TYPE_TEXT_FILE}
GOPHER_TYPE_TEXT_FILE = $00000001;
{$EXTERNALSYM GOPHER_TYPE_DIRECTORY}
GOPHER_TYPE_DIRECTORY = $00000002;
{$EXTERNALSYM GOPHER_TYPE_CSO}
GOPHER_TYPE_CSO = $00000004;
{$EXTERNALSYM GOPHER_TYPE_ERROR}
GOPHER_TYPE_ERROR = $00000008;
{$EXTERNALSYM GOPHER_TYPE_MAC_BINHEX}
GOPHER_TYPE_MAC_BINHEX = $00000010;
{$EXTERNALSYM GOPHER_TYPE_DOS_ARCHIVE}
GOPHER_TYPE_DOS_ARCHIVE = $00000020;
{$EXTERNALSYM GOPHER_TYPE_UNIX_UUENCODED}
GOPHER_TYPE_UNIX_UUENCODED = $00000040;
{$EXTERNALSYM GOPHER_TYPE_INDEX_SERVER}
GOPHER_TYPE_INDEX_SERVER = $00000080;
{$EXTERNALSYM GOPHER_TYPE_TELNET}
GOPHER_TYPE_TELNET = $00000100;
{$EXTERNALSYM GOPHER_TYPE_BINARY}
GOPHER_TYPE_BINARY = $00000200;
{$EXTERNALSYM GOPHER_TYPE_REDUNDANT}
GOPHER_TYPE_REDUNDANT = $00000400;
{$EXTERNALSYM GOPHER_TYPE_TN3270}
GOPHER_TYPE_TN3270 = $00000800;
{$EXTERNALSYM GOPHER_TYPE_GIF}
GOPHER_TYPE_GIF = $00001000;
{$EXTERNALSYM GOPHER_TYPE_IMAGE}
GOPHER_TYPE_IMAGE = $00002000;
{$EXTERNALSYM GOPHER_TYPE_BITMAP}
GOPHER_TYPE_BITMAP = $00004000;
{$EXTERNALSYM GOPHER_TYPE_MOVIE}
GOPHER_TYPE_MOVIE = $00008000;
{$EXTERNALSYM GOPHER_TYPE_SOUND}
GOPHER_TYPE_SOUND = $00010000;
{$EXTERNALSYM GOPHER_TYPE_HTML}
GOPHER_TYPE_HTML = $00020000;
{$EXTERNALSYM GOPHER_TYPE_PDF}
GOPHER_TYPE_PDF = $00040000;
{$EXTERNALSYM GOPHER_TYPE_CALENDAR}
GOPHER_TYPE_CALENDAR = $00080000;
{$EXTERNALSYM GOPHER_TYPE_INLINE}
GOPHER_TYPE_INLINE = $00100000;
{$EXTERNALSYM GOPHER_TYPE_UNKNOWN}
GOPHER_TYPE_UNKNOWN = $20000000;
{$EXTERNALSYM GOPHER_TYPE_ASK}
GOPHER_TYPE_ASK = $40000000;
{$EXTERNALSYM GOPHER_TYPE_GOPHER_PLUS}
GOPHER_TYPE_GOPHER_PLUS = $80000000;
// gopher type macros
{$EXTERNALSYM IS_GOPHER_FILE}
function IS_GOPHER_FILE(AType: DWORD): BOOL;
{$EXTERNALSYM IS_GOPHER_DIRECTORY}
function IS_GOPHER_DIRECTORY(AType: DWORD): BOOL;
{$EXTERNALSYM IS_GOPHER_PHONE_SERVER}
function IS_GOPHER_PHONE_SERVER(AType: DWORD): BOOL;
{$EXTERNALSYM IS_GOPHER_ERROR}
function IS_GOPHER_ERROR(AType: DWORD): BOOL;
{$EXTERNALSYM IS_GOPHER_INDEX_SERVER}
function IS_GOPHER_INDEX_SERVER(AType: DWORD): BOOL;
{$EXTERNALSYM IS_GOPHER_TELNET_SESSION}
function IS_GOPHER_TELNET_SESSION(AType: DWORD): BOOL;
{$EXTERNALSYM IS_GOPHER_BACKUP_SERVER}
function IS_GOPHER_BACKUP_SERVER(AType: DWORD): BOOL;
{$EXTERNALSYM IS_GOPHER_TN3270_SESSION}
function IS_GOPHER_TN3270_SESSION(AType: DWORD): BOOL;
{$EXTERNALSYM IS_GOPHER_ASK}
function IS_GOPHER_ASK(AType: DWORD): BOOL;
{$EXTERNALSYM IS_GOPHER_PLUS}
function IS_GOPHER_PLUS(AType: DWORD): BOOL;
{$EXTERNALSYM IS_GOPHER_TYPE_KNOWN}
function IS_GOPHER_TYPE_KNOWN(AType: DWORD): BOOL;
// GOPHER_TYPE_FILE_MASK - use this to determine if a locator identifies a
// (known) file type
const
GOPHER_TYPE_FILE_MASK = GOPHER_TYPE_TEXT_FILE or
GOPHER_TYPE_MAC_BINHEX or
GOPHER_TYPE_DOS_ARCHIVE or
GOPHER_TYPE_UNIX_UUENCODED or
GOPHER_TYPE_BINARY or
GOPHER_TYPE_GIF or
GOPHER_TYPE_IMAGE or
GOPHER_TYPE_BITMAP or
GOPHER_TYPE_MOVIE or
GOPHER_TYPE_SOUND or
GOPHER_TYPE_HTML or
GOPHER_TYPE_PDF or
GOPHER_TYPE_CALENDAR or
GOPHER_TYPE_INLINE;
// structured gopher attributes (as defined in gopher+ protocol document)
type
PGopherAdminAttributeType = ^TGopherAdminAttributeType;
{$EXTERNALSYM GOPHER_ADMIN_ATTRIBUTE_TYPE}
GOPHER_ADMIN_ATTRIBUTE_TYPE = record // not packed!
Comment: LPCTSTR;
EmailAddress: LPCTSTR;
end;
TGopherAdminAttributeType = GOPHER_ADMIN_ATTRIBUTE_TYPE;
PGopherModDateAttributeType = ^TGopherModDateAttributeType;
{$EXTERNALSYM GOPHER_MOD_DATE_ATTRIBUTE_TYPE}
GOPHER_MOD_DATE_ATTRIBUTE_TYPE = record // not packed!
DateAndTime: TFileTime;
end;
TGopherModDateAttributeType = GOPHER_MOD_DATE_ATTRIBUTE_TYPE;
PGopherTtlAttributeType = ^TGopherTtlAttributeType;
{$EXTERNALSYM GOPHER_TTL_ATTRIBUTE_TYPE}
GOPHER_TTL_ATTRIBUTE_TYPE = record
Ttl: DWORD;
end;
TGopherTtlAttributeType = GOPHER_TTL_ATTRIBUTE_TYPE;
PGopherScoreAttributeType = ^TGopherScoreAttributeType;
{$EXTERNALSYM GOPHER_SCORE_ATTRIBUTE_TYPE}
GOPHER_SCORE_ATTRIBUTE_TYPE = record
Score: Integer;
end;
TGopherScoreAttributeType = GOPHER_SCORE_ATTRIBUTE_TYPE;
PGopherScoreRangeAttributeType = ^TGopherScoreRangeAttributeType;
{$EXTERNALSYM GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE}
GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE = record
LowerBound: Integer;
UpperBound: Integer;
end;
TGopherScoreRangeAttributeType = GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE;
PGopherSiteAttributeType = ^TGopherSiteAttributeType;
{$EXTERNALSYM GOPHER_SITE_ATTRIBUTE_TYPE}
GOPHER_SITE_ATTRIBUTE_TYPE = record
Site: LPCTSTR;
end;
TGopherSiteAttributeType = GOPHER_SITE_ATTRIBUTE_TYPE;
PGopherOrganizationAttributeType = ^TGopherOrganizationAttributeType;
{$EXTERNALSYM GOPHER_ORGANIZATION_ATTRIBUTE_TYPE}
GOPHER_ORGANIZATION_ATTRIBUTE_TYPE = record
Organization: LPCTSTR;
end;
TGopherOrganizationAttributeType = GOPHER_ORGANIZATION_ATTRIBUTE_TYPE;
PGopherLocationAttributeType = ^TGopherLocationAttributeType;
{$EXTERNALSYM GOPHER_LOCATION_ATTRIBUTE_TYPE}
GOPHER_LOCATION_ATTRIBUTE_TYPE = record
Location: LPCTSTR;
end;
TGopherLocationAttributeType = GOPHER_LOCATION_ATTRIBUTE_TYPE;
PGopherGeographicalLocationAttributeType = ^TGopherGeographicalLocationAttributeType;
{$EXTERNALSYM GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE}
GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE = record
DegreesNorth: Integer;
MinutesNorth: Integer;
SecondsNorth: Integer;
DegreesEast: Integer;
MinutesEast: Integer;
SecondsEast: Integer;
end;
TGopherGeographicalLocationAttributeType = GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE;
PGopherTimeZoneAttributeType = ^TGopherTimeZoneAttributeType;
{$EXTERNALSYM GOPHER_TIMEZONE_ATTRIBUTE_TYPE}
GOPHER_TIMEZONE_ATTRIBUTE_TYPE = record
Zone: Integer;
end;
TGopherTimeZoneAttributeType = GOPHER_TIMEZONE_ATTRIBUTE_TYPE;
PGopherProviderAttributeType = ^TGopherProviderAttributeType;
{$EXTERNALSYM GOPHER_PROVIDER_ATTRIBUTE_TYPE}
GOPHER_PROVIDER_ATTRIBUTE_TYPE = record
Provider: LPCTSTR;
end;
TGopherProviderAttributeType = GOPHER_PROVIDER_ATTRIBUTE_TYPE;
PGopherVersionAttributeType = ^TGopherVersionAttributeType;
{$EXTERNALSYM GOPHER_VERSION_ATTRIBUTE_TYPE}
GOPHER_VERSION_ATTRIBUTE_TYPE = record
Version: LPCTSTR;
end;
TGopherVersionAttributeType = GOPHER_VERSION_ATTRIBUTE_TYPE;
PGopherAbstractAttributeType= ^TGopherAbstractAttributeType;
{$EXTERNALSYM GOPHER_ABSTRACT_ATTRIBUTE_TYPE}
GOPHER_ABSTRACT_ATTRIBUTE_TYPE = record
ShortAbstract: LPCTSTR;
AbstractFile: LPCTSTR;
end;
TGopherAbstractAttributeType = GOPHER_ABSTRACT_ATTRIBUTE_TYPE;
PGopherViewAttributeType = ^TGopherViewAttributeType;
{$EXTERNALSYM GOPHER_VIEW_ATTRIBUTE_TYPE}
GOPHER_VIEW_ATTRIBUTE_TYPE = record
ContentType: LPCTSTR;
Language: LPCTSTR;
Size: DWORD;
end;
TGopherViewAttributeType = GOPHER_VIEW_ATTRIBUTE_TYPE;
PGopherVeronicaAttributeType = ^TGopherVeronicaAttributeType;
{$EXTERNALSYM GOPHER_VERONICA_ATTRIBUTE_TYPE}
GOPHER_VERONICA_ATTRIBUTE_TYPE = record
TreeWalk: BOOL;
end;
TGopherVeronicaAttributeType = GOPHER_VERONICA_ATTRIBUTE_TYPE;
PGopherAskAttributeType = ^TGopherAskAttributeType;
{$EXTERNALSYM GOPHER_ASK_ATTRIBUTE_TYPE}
GOPHER_ASK_ATTRIBUTE_TYPE = record
QuestionType: LPCTSTR;
QuestionText: LPCTSTR;
end;
TGopherAskAttributeType = GOPHER_ASK_ATTRIBUTE_TYPE;
// GOPHER_UNKNOWN_ATTRIBUTE_TYPE - this is returned if we retrieve an attribute
// that is not specified in the current gopher/gopher+ documentation. It is up
// to the application to parse the information
PGopherUnknownAttributeType = ^TGopherUnknownAttributeType;
GOPHER_UNKNOWN_ATTRIBUTE_TYPE = record
Text: LPCTSTR;
end;
TGopherUnknownAttributeType = GOPHER_UNKNOWN_ATTRIBUTE_TYPE;
// GOPHER_ATTRIBUTE_TYPE - returned in the user's buffer when an enumerated
// GopherGetAttribute call is made
PGopherAttributeType = ^TGopherAttributeType;
{$EXTERNALSYM GOPHER_ATTRIBUTE_TYPE}
GOPHER_ATTRIBUTE_TYPE = record
CategoryId: DWORD; // e.g. GOPHER_CATEGORY_ID_ADMIN
AttributeId: DWORD; // e.g. GOPHER_ATTRIBUTE_ID_ADMIN
AttributeType: record
case Integer of
1: (Admin: TGopherAdminAttributeType);
2: (ModDate: TGopherModDateAttributeType);
3: (Ttl: TGopherTtlAttributeType);
4: (Score: TGopherScoreAttributeType);
5: (ScoreRange: TGopherScoreRangeAttributeType);
6: (Site: TGopherSiteAttributeType);
7: (Organization: TGopherOrganizationAttributeType);
8: (Location: TGopherLocationAttributeType);
9: (GeographicalLocation: TGopherGeographicalLocationAttributeType);
10: (TimeZone: TGopherTimeZoneAttributeType);
12: (Provider: TGopherProviderAttributeType);
13: (Version: TGopherVersionAttributeType);
14: (Abstract: TGopherAbstractAttributeType);
15: (View: TGopherViewAttributeType);
16: (Veronica: TGopherVeronicaAttributeType);
17: (Ask: TGopherAskAttributeType);
18: (Unknown: TGopherUnknownAttributeType);
end;
end;
TGopherAttributeType = GOPHER_ATTRIBUTE_TYPE;
const
{$EXTERNALSYM MAX_GOPHER_CATEGORY_NAME}
MAX_GOPHER_CATEGORY_NAME = 128; // arbitrary
{$EXTERNALSYM MAX_GOPHER_ATTRIBUTE_NAME}
MAX_GOPHER_ATTRIBUTE_NAME = 128; // "
{$EXTERNALSYM MIN_GOPHER_ATTRIBUTE_LENGTH}
MIN_GOPHER_ATTRIBUTE_LENGTH = 256; // "
// known gopher attribute categories. See below for ordinals
{$EXTERNALSYM GOPHER_INFO_CATEGORY}
GOPHER_INFO_CATEGORY = '+INFO';
{$EXTERNALSYM GOPHER_ADMIN_CATEGORY}
GOPHER_ADMIN_CATEGORY = '+ADMIN';
{$EXTERNALSYM GOPHER_VIEWS_CATEGORY}
GOPHER_VIEWS_CATEGORY = '+VIEWS';
{$EXTERNALSYM GOPHER_ABSTRACT_CATEGORY}
GOPHER_ABSTRACT_CATEGORY = '+ABSTRACT';
{$EXTERNALSYM GOPHER_VERONICA_CATEGORY}
GOPHER_VERONICA_CATEGORY = '+VERONICA';
// known gopher attributes. These are the attribute names as defined in the
// gopher+ protocol document
{$EXTERNALSYM GOPHER_ADMIN_ATTRIBUTE}
GOPHER_ADMIN_ATTRIBUTE = 'Admin';
{$EXTERNALSYM GOPHER_MOD_DATE_ATTRIBUTE}
GOPHER_MOD_DATE_ATTRIBUTE = 'Mod-Date';
{$EXTERNALSYM GOPHER_TTL_ATTRIBUTE}
GOPHER_TTL_ATTRIBUTE = 'TTL';
{$EXTERNALSYM GOPHER_SCORE_ATTRIBUTE}
GOPHER_SCORE_ATTRIBUTE = 'Score';
{$EXTERNALSYM GOPHER_RANGE_ATTRIBUTE}
GOPHER_RANGE_ATTRIBUTE = 'Score-range';
{$EXTERNALSYM GOPHER_SITE_ATTRIBUTE}
GOPHER_SITE_ATTRIBUTE = 'Site';
{$EXTERNALSYM GOPHER_ORG_ATTRIBUTE}
GOPHER_ORG_ATTRIBUTE = 'Org';
{$EXTERNALSYM GOPHER_LOCATION_ATTRIBUTE}
GOPHER_LOCATION_ATTRIBUTE = 'Loc';
{$EXTERNALSYM GOPHER_GEOG_ATTRIBUTE}
GOPHER_GEOG_ATTRIBUTE = 'Geog';
{$EXTERNALSYM GOPHER_TIMEZONE_ATTRIBUTE}
GOPHER_TIMEZONE_ATTRIBUTE = 'TZ';
{$EXTERNALSYM GOPHER_PROVIDER_ATTRIBUTE}
GOPHER_PROVIDER_ATTRIBUTE = 'Provider';
{$EXTERNALSYM GOPHER_VERSION_ATTRIBUTE}
GOPHER_VERSION_ATTRIBUTE = 'Version';
{$EXTERNALSYM GOPHER_ABSTRACT_ATTRIBUTE}
GOPHER_ABSTRACT_ATTRIBUTE = 'Abstract';
{$EXTERNALSYM GOPHER_VIEW_ATTRIBUTE}
GOPHER_VIEW_ATTRIBUTE = 'View';
{$EXTERNALSYM GOPHER_TREEWALK_ATTRIBUTE}
GOPHER_TREEWALK_ATTRIBUTE = 'treewalk';
// identifiers for attribute strings
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_BASE}
GOPHER_ATTRIBUTE_ID_BASE = $ABCCCC00;
{$EXTERNALSYM GOPHER_CATEGORY_ID_ALL}
GOPHER_CATEGORY_ID_ALL = GOPHER_ATTRIBUTE_ID_BASE + 1;
{$EXTERNALSYM GOPHER_CATEGORY_ID_INFO}
GOPHER_CATEGORY_ID_INFO = GOPHER_ATTRIBUTE_ID_BASE + 2;
{$EXTERNALSYM GOPHER_CATEGORY_ID_ADMIN}
GOPHER_CATEGORY_ID_ADMIN = GOPHER_ATTRIBUTE_ID_BASE + 3;
{$EXTERNALSYM GOPHER_CATEGORY_ID_VIEWS}
GOPHER_CATEGORY_ID_VIEWS = GOPHER_ATTRIBUTE_ID_BASE + 4;
{$EXTERNALSYM GOPHER_CATEGORY_ID_ABSTRACT}
GOPHER_CATEGORY_ID_ABSTRACT = GOPHER_ATTRIBUTE_ID_BASE + 5;
{$EXTERNALSYM GOPHER_CATEGORY_ID_VERONICA}
GOPHER_CATEGORY_ID_VERONICA = GOPHER_ATTRIBUTE_ID_BASE + 6;
{$EXTERNALSYM GOPHER_CATEGORY_ID_ASK}
GOPHER_CATEGORY_ID_ASK = GOPHER_ATTRIBUTE_ID_BASE + 7;
{$EXTERNALSYM GOPHER_CATEGORY_ID_UNKNOWN}
GOPHER_CATEGORY_ID_UNKNOWN = GOPHER_ATTRIBUTE_ID_BASE + 8;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_ALL}
GOPHER_ATTRIBUTE_ID_ALL = GOPHER_ATTRIBUTE_ID_BASE + 9;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_ADMIN}
GOPHER_ATTRIBUTE_ID_ADMIN = GOPHER_ATTRIBUTE_ID_BASE + 10;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_MOD_DATE}
GOPHER_ATTRIBUTE_ID_MOD_DATE = GOPHER_ATTRIBUTE_ID_BASE + 11;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_TTL}
GOPHER_ATTRIBUTE_ID_TTL = GOPHER_ATTRIBUTE_ID_BASE + 12;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_SCORE}
GOPHER_ATTRIBUTE_ID_SCORE = GOPHER_ATTRIBUTE_ID_BASE + 13;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_RANGE}
GOPHER_ATTRIBUTE_ID_RANGE = GOPHER_ATTRIBUTE_ID_BASE + 14;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_SITE}
GOPHER_ATTRIBUTE_ID_SITE = GOPHER_ATTRIBUTE_ID_BASE + 15;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_ORG}
GOPHER_ATTRIBUTE_ID_ORG = GOPHER_ATTRIBUTE_ID_BASE + 16;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_LOCATION}
GOPHER_ATTRIBUTE_ID_LOCATION = GOPHER_ATTRIBUTE_ID_BASE + 17;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_GEOG}
GOPHER_ATTRIBUTE_ID_GEOG = GOPHER_ATTRIBUTE_ID_BASE + 18;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_TIMEZONE}
GOPHER_ATTRIBUTE_ID_TIMEZONE = GOPHER_ATTRIBUTE_ID_BASE + 19;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_PROVIDER}
GOPHER_ATTRIBUTE_ID_PROVIDER = GOPHER_ATTRIBUTE_ID_BASE + 20;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_VERSION}
GOPHER_ATTRIBUTE_ID_VERSION = GOPHER_ATTRIBUTE_ID_BASE + 21;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_ABSTRACT}
GOPHER_ATTRIBUTE_ID_ABSTRACT = GOPHER_ATTRIBUTE_ID_BASE + 22;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_VIEW}
GOPHER_ATTRIBUTE_ID_VIEW = GOPHER_ATTRIBUTE_ID_BASE + 23;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_TREEWALK}
GOPHER_ATTRIBUTE_ID_TREEWALK = GOPHER_ATTRIBUTE_ID_BASE + 24;
{$EXTERNALSYM GOPHER_ATTRIBUTE_ID_UNKNOWN}
GOPHER_ATTRIBUTE_ID_UNKNOWN = GOPHER_ATTRIBUTE_ID_BASE + 25;
// prototypes
{$EXTERNALSYM GopherCreateLocatorA}
function GopherCreateLocatorA(lpszHost: PAnsiChar; nServerPort: TInternetPort;
lpszDisplayString, lpszSelectorString: PAnsiChar; dwGopherType: DWORD;
lpszLocator: PAnsiChar; lpdwBufferLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM GopherCreateLocatorW}
function GopherCreateLocatorW(lpszHost: PWideChar; nServerPort: TInternetPort;
lpszDisplayString, lpszSelectorString: PWideChar; dwGopherType: DWORD;
lpszLocator: PWideChar; lpdwBufferLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM GopherCreateLocator}
function GopherCreateLocator(lpszHost: PTSTR; nServerPort: TInternetPort;
lpszDisplayString, lpszSelectorString: PTSTR; dwGopherType: DWORD;
lpszLocator: PTSTR; lpdwBufferLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM GopherGetLocatorTypeA}
function GopherGetLocatorTypeA(lpszLocator: PAnsiChar;
var lpdwGopherType: DWORD): BOOL; stdcall;
{$EXTERNALSYM GopherGetLocatorTypeW}
function GopherGetLocatorTypeW(lpszLocator: PWideChar;
var lpdwGopherType: DWORD): BOOL; stdcall;
{$EXTERNALSYM GopherGetLocatorType}
function GopherGetLocatorType(lpszLocator: PTSTR;
var lpdwGopherType: DWORD): BOOL; stdcall;
{$EXTERNALSYM GopherFindFirstFileA}
function GopherFindFirstFileA(hConnect: HINTERNET; lpszLocator, lpszSearchString: PAnsiChar;
lpFindDat: PGopherFindDataA; dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM GopherFindFirstFileW}
function GopherFindFirstFileW(hConnect: HINTERNET; lpszLocator, lpszSearchString: PWideChar;
lpFindDat: PGopherFindDataW; dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM GopherFindFirstFile}
function GopherFindFirstFile(hConnect: HINTERNET; lpszLocator, lpszSearchString: PTSTR;
lpFindDat: PGopherFindData; dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM GopherOpenFileA}
function GopherOpenFileA(hConnect: HINTERNET; lpszLocator, lpszView: PAnsiChar;
dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM GopherOpenFileW}
function GopherOpenFileW(hConnect: HINTERNET; lpszLocator, lpszView: PWideChar;
dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM GopherOpenFile}
function GopherOpenFile(hConnect: HINTERNET; lpszLocator, lpszView: PTSTR;
dwFlags, dwContext: DWORD): HINTERNET; stdcall;
type
{$EXTERNALSYM GOPHER_ATTRIBUTE_ENUMERATOR}
GOPHER_ATTRIBUTE_ENUMERATOR = function(lpAttributeInfo: PGopherAttributeType;
dwError: DWORD): BOOL stdcall;
TGopherAttributeEnumerator = GOPHER_ATTRIBUTE_ENUMERATOR;
{$EXTERNALSYM GopherGetAttributeA}
function GopherGetAttributeA(hConnect: HINTERNET; lpszLocator,
lpszAttributeName: PAnsiChar; lpBuffer: PByte; dwBufferLength: DWORD;
var lpdwCharactersReturned: DWORD; lpfnEnumerator:
TGopherAttributeEnumerator; dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM GopherGetAttributeW}
function GopherGetAttributeW(hConnect: HINTERNET; lpszLocator,
lpszAttributeName: PWideChar; lpBuffer: PByte; dwBufferLength: DWORD;
var lpdwCharactersReturned: DWORD; lpfnEnumerator:
TGopherAttributeEnumerator; dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM GopherGetAttribute}
function GopherGetAttribute(hConnect: HINTERNET; lpszLocator,
lpszAttributeName: PTSTR; lpBuffer: PByte; dwBufferLength: DWORD;
var lpdwCharactersReturned: DWORD; lpfnEnumerator:
TGopherAttributeEnumerator; dwContext: DWORD): BOOL; stdcall;
//
// HTTP
//
// manifests
const
// the default major/minor HTTP version numbers
{$EXTERNALSYM HTTP_MAJOR_VERSION}
HTTP_MAJOR_VERSION = 1;
{$EXTERNALSYM HTTP_MINOR_VERSION}
HTTP_MINOR_VERSION = 0;
{$EXTERNALSYM HTTP_VERSIONA}
HTTP_VERSIONA = 'HTTP/1.0';
{$EXTERNALSYM HTTP_VERSIONW}
HTTP_VERSIONW = 'HTTP/1.0';
{$EXTERNALSYM HTTP_VERSION}
HTTP_VERSION = HTTP_VERSIONA;
// HttpQueryInfo info levels. Generally, there is one info level
// for each potential RFC822/HTTP/MIME header that an HTTP server
// may send as part of a request response.
//
// The HTTP_QUERY_RAW_HEADERS info level is provided for clients
// that choose to perform their own header parsing.
{$EXTERNALSYM HTTP_QUERY_MIME_VERSION}
HTTP_QUERY_MIME_VERSION = 0;
{$EXTERNALSYM HTTP_QUERY_CONTENT_TYPE}
HTTP_QUERY_CONTENT_TYPE = 1;
{$EXTERNALSYM HTTP_QUERY_CONTENT_TRANSFER_ENCODING}
HTTP_QUERY_CONTENT_TRANSFER_ENCODING = 2;
{$EXTERNALSYM HTTP_QUERY_CONTENT_ID}
HTTP_QUERY_CONTENT_ID = 3;
{$EXTERNALSYM HTTP_QUERY_CONTENT_DESCRIPTION}
HTTP_QUERY_CONTENT_DESCRIPTION = 4;
{$EXTERNALSYM HTTP_QUERY_CONTENT_LENGTH}
HTTP_QUERY_CONTENT_LENGTH = 5;
{$EXTERNALSYM HTTP_QUERY_CONTENT_LANGUAGE}
HTTP_QUERY_CONTENT_LANGUAGE = 6;
{$EXTERNALSYM HTTP_QUERY_ALLOW}
HTTP_QUERY_ALLOW = 7;
{$EXTERNALSYM HTTP_QUERY_PUBLIC}
HTTP_QUERY_PUBLIC = 8;
{$EXTERNALSYM HTTP_QUERY_DATE}
HTTP_QUERY_DATE = 9;
{$EXTERNALSYM HTTP_QUERY_EXPIRES}
HTTP_QUERY_EXPIRES = 10;
{$EXTERNALSYM HTTP_QUERY_LAST_MODIFIED}
HTTP_QUERY_LAST_MODIFIED = 11;
{$EXTERNALSYM HTTP_QUERY_MESSAGE_ID}
HTTP_QUERY_MESSAGE_ID = 12;
{$EXTERNALSYM HTTP_QUERY_URI}
HTTP_QUERY_URI = 13;
{$EXTERNALSYM HTTP_QUERY_DERIVED_FROM}
HTTP_QUERY_DERIVED_FROM = 14;
{$EXTERNALSYM HTTP_QUERY_COST}
HTTP_QUERY_COST = 15;
{$EXTERNALSYM HTTP_QUERY_LINK}
HTTP_QUERY_LINK = 16;
{$EXTERNALSYM HTTP_QUERY_PRAGMA}
HTTP_QUERY_PRAGMA = 17;
{$EXTERNALSYM HTTP_QUERY_VERSION}
HTTP_QUERY_VERSION = 18; // special: part of status line
{$EXTERNALSYM HTTP_QUERY_STATUS_CODE}
HTTP_QUERY_STATUS_CODE = 19; // special: part of status line
{$EXTERNALSYM HTTP_QUERY_STATUS_TEXT}
HTTP_QUERY_STATUS_TEXT = 20; // special: part of status line
{$EXTERNALSYM HTTP_QUERY_RAW_HEADERS}
HTTP_QUERY_RAW_HEADERS = 21; // special: all headers as ASCIIZ
{$EXTERNALSYM HTTP_QUERY_RAW_HEADERS_CRLF}
HTTP_QUERY_RAW_HEADERS_CRLF = 22; // special: all headers
{$EXTERNALSYM HTTP_QUERY_CONNECTION}
HTTP_QUERY_CONNECTION = 23;
{$EXTERNALSYM HTTP_QUERY_ACCEPT}
HTTP_QUERY_ACCEPT = 24;
{$EXTERNALSYM HTTP_QUERY_ACCEPT_CHARSET}
HTTP_QUERY_ACCEPT_CHARSET = 25;
{$EXTERNALSYM HTTP_QUERY_ACCEPT_ENCODING}
HTTP_QUERY_ACCEPT_ENCODING = 26;
{$EXTERNALSYM HTTP_QUERY_ACCEPT_LANGUAGE}
HTTP_QUERY_ACCEPT_LANGUAGE = 27;
{$EXTERNALSYM HTTP_QUERY_AUTHORIZATION}
HTTP_QUERY_AUTHORIZATION = 28;
{$EXTERNALSYM HTTP_QUERY_CONTENT_ENCODING}
HTTP_QUERY_CONTENT_ENCODING = 29;
{$EXTERNALSYM HTTP_QUERY_FORWARDED}
HTTP_QUERY_FORWARDED = 30;
{$EXTERNALSYM HTTP_QUERY_FROM}
HTTP_QUERY_FROM = 31;
{$EXTERNALSYM HTTP_QUERY_IF_MODIFIED_SINCE}
HTTP_QUERY_IF_MODIFIED_SINCE = 32;
{$EXTERNALSYM HTTP_QUERY_LOCATION}
HTTP_QUERY_LOCATION = 33;
{$EXTERNALSYM HTTP_QUERY_ORIG_URI}
HTTP_QUERY_ORIG_URI = 34;
{$EXTERNALSYM HTTP_QUERY_REFERER}
HTTP_QUERY_REFERER = 35;
{$EXTERNALSYM HTTP_QUERY_RETRY_AFTER}
HTTP_QUERY_RETRY_AFTER = 36;
{$EXTERNALSYM HTTP_QUERY_SERVER}
HTTP_QUERY_SERVER = 37;
{$EXTERNALSYM HTTP_QUERY_TITLE}
HTTP_QUERY_TITLE = 38;
{$EXTERNALSYM HTTP_QUERY_USER_AGENT}
HTTP_QUERY_USER_AGENT = 39;
{$EXTERNALSYM HTTP_QUERY_WWW_AUTHENTICATE}
HTTP_QUERY_WWW_AUTHENTICATE = 40;
{$EXTERNALSYM HTTP_QUERY_PROXY_AUTHENTICATE}
HTTP_QUERY_PROXY_AUTHENTICATE = 41;
{$EXTERNALSYM HTTP_QUERY_ACCEPT_RANGES}
HTTP_QUERY_ACCEPT_RANGES = 42;
{$EXTERNALSYM HTTP_QUERY_SET_COOKIE}
HTTP_QUERY_SET_COOKIE = 43;
{$EXTERNALSYM HTTP_QUERY_COOKIE}
HTTP_QUERY_COOKIE = 44;
{$EXTERNALSYM HTTP_QUERY_REQUEST_METHOD}
HTTP_QUERY_REQUEST_METHOD = 45; // special: GET/POST etc.
{$EXTERNALSYM HTTP_QUERY_REFRESH}
HTTP_QUERY_REFRESH = 46;
{$EXTERNALSYM HTTP_QUERY_CONTENT_DISPOSITION}
HTTP_QUERY_CONTENT_DISPOSITION = 47;
// HTTP 1.1 defined headers
{$EXTERNALSYM HTTP_QUERY_AGE}
HTTP_QUERY_AGE = 48;
{$EXTERNALSYM HTTP_QUERY_CACHE_CONTROL}
HTTP_QUERY_CACHE_CONTROL = 49;
{$EXTERNALSYM HTTP_QUERY_CONTENT_BASE}
HTTP_QUERY_CONTENT_BASE = 50;
{$EXTERNALSYM HTTP_QUERY_CONTENT_LOCATION}
HTTP_QUERY_CONTENT_LOCATION = 51;
{$EXTERNALSYM HTTP_QUERY_CONTENT_MD5}
HTTP_QUERY_CONTENT_MD5 = 52;
{$EXTERNALSYM HTTP_QUERY_CONTENT_RANGE}
HTTP_QUERY_CONTENT_RANGE = 53;
{$EXTERNALSYM HTTP_QUERY_ETAG}
HTTP_QUERY_ETAG = 54;
{$EXTERNALSYM HTTP_QUERY_HOST}
HTTP_QUERY_HOST = 55;
{$EXTERNALSYM HTTP_QUERY_IF_MATCH}
HTTP_QUERY_IF_MATCH = 56;
{$EXTERNALSYM HTTP_QUERY_IF_NONE_MATCH}
HTTP_QUERY_IF_NONE_MATCH = 57;
{$EXTERNALSYM HTTP_QUERY_IF_RANGE}
HTTP_QUERY_IF_RANGE = 58;
{$EXTERNALSYM HTTP_QUERY_IF_UNMODIFIED_SINCE}
HTTP_QUERY_IF_UNMODIFIED_SINCE = 59;
{$EXTERNALSYM HTTP_QUERY_MAX_FORWARDS}
HTTP_QUERY_MAX_FORWARDS = 60;
{$EXTERNALSYM HTTP_QUERY_PROXY_AUTHORIZATION}
HTTP_QUERY_PROXY_AUTHORIZATION = 61;
{$EXTERNALSYM HTTP_QUERY_RANGE}
HTTP_QUERY_RANGE = 62;
{$EXTERNALSYM HTTP_QUERY_TRANSFER_ENCODING}
HTTP_QUERY_TRANSFER_ENCODING = 63;
{$EXTERNALSYM HTTP_QUERY_UPGRADE}
HTTP_QUERY_UPGRADE = 64;
{$EXTERNALSYM HTTP_QUERY_VARY}
HTTP_QUERY_VARY = 65;
{$EXTERNALSYM HTTP_QUERY_VIA}
HTTP_QUERY_VIA = 66;
{$EXTERNALSYM HTTP_QUERY_WARNING}
HTTP_QUERY_WARNING = 67;
{$EXTERNALSYM HTTP_QUERY_EXPECT}
HTTP_QUERY_EXPECT = 68;
{$EXTERNALSYM HTTP_QUERY_PROXY_CONNECTION}
HTTP_QUERY_PROXY_CONNECTION = 69;
{$EXTERNALSYM HTTP_QUERY_UNLESS_MODIFIED_SINCE}
HTTP_QUERY_UNLESS_MODIFIED_SINCE = 70;
{$EXTERNALSYM HTTP_QUERY_ECHO_REQUEST}
HTTP_QUERY_ECHO_REQUEST = 71;
{$EXTERNALSYM HTTP_QUERY_ECHO_REPLY}
HTTP_QUERY_ECHO_REPLY = 72;
// These are the set of headers that should be added back to a request when
// re-doing a request after a RETRY_WITH response.
{$EXTERNALSYM HTTP_QUERY_ECHO_HEADERS}
HTTP_QUERY_ECHO_HEADERS = 73;
{$EXTERNALSYM HTTP_QUERY_ECHO_HEADERS_CRLF}
HTTP_QUERY_ECHO_HEADERS_CRLF = 74;
{$EXTERNALSYM HTTP_QUERY_MAX}
HTTP_QUERY_MAX = 74;
// HTTP_QUERY_CUSTOM - if this special value is supplied as the dwInfoLevel
// parameter of HttpQueryInfo() then the lpBuffer parameter contains the name
// of the header we are to query
{$EXTERNALSYM HTTP_QUERY_CUSTOM}
HTTP_QUERY_CUSTOM = 65535;
// HTTP_QUERY_FLAG_REQUEST_HEADERS - if this bit is set in the dwInfoLevel
// parameter of HttpQueryInfo() then the request headers will be queried for the
// request information
{$EXTERNALSYM HTTP_QUERY_FLAG_REQUEST_HEADERS}
HTTP_QUERY_FLAG_REQUEST_HEADERS = $80000000;
// HTTP_QUERY_FLAG_SYSTEMTIME - if this bit is set in the dwInfoLevel parameter
// of HttpQueryInfo() AND the header being queried contains date information,
// e.g. the 'Expires:' header then lpBuffer will contain a SYSTEMTIME structure
// containing the date and time information converted from the header string
{$EXTERNALSYM HTTP_QUERY_FLAG_SYSTEMTIME}
HTTP_QUERY_FLAG_SYSTEMTIME = $40000000;
// HTTP_QUERY_FLAG_NUMBER - if this bit is set in the dwInfoLevel parameter of
// HttpQueryInfo(), then the value of the header will be converted to a number
// before being returned to the caller, if applicable
{$EXTERNALSYM HTTP_QUERY_FLAG_NUMBER}
HTTP_QUERY_FLAG_NUMBER = $20000000;
// HTTP_QUERY_FLAG_COALESCE - combine the values from several headers of the
// same name into the output buffer
{$EXTERNALSYM HTTP_QUERY_FLAG_COALESCE}
HTTP_QUERY_FLAG_COALESCE = $10000000;
{$EXTERNALSYM HTTP_QUERY_MODIFIER_FLAGS_MASK}
HTTP_QUERY_MODIFIER_FLAGS_MASK = HTTP_QUERY_FLAG_REQUEST_HEADERS or
HTTP_QUERY_FLAG_SYSTEMTIME or
HTTP_QUERY_FLAG_NUMBER or
HTTP_QUERY_FLAG_COALESCE;
{$EXTERNALSYM HTTP_QUERY_HEADER_MASK}
HTTP_QUERY_HEADER_MASK = not HTTP_QUERY_MODIFIER_FLAGS_MASK;
// HTTP Response Status Codes:
{$EXTERNALSYM HTTP_STATUS_CONTINUE}
HTTP_STATUS_CONTINUE = 100; // OK to continue with request
{$EXTERNALSYM HTTP_STATUS_SWITCH_PROTOCOLS}
HTTP_STATUS_SWITCH_PROTOCOLS = 101; // server has switched protocols in upgrade header
{$EXTERNALSYM HTTP_STATUS_OK}
HTTP_STATUS_OK = 200; // request completed
{$EXTERNALSYM HTTP_STATUS_CREATED}
HTTP_STATUS_CREATED = 201; // object created, reason = new URI
{$EXTERNALSYM HTTP_STATUS_ACCEPTED}
HTTP_STATUS_ACCEPTED = 202; // async completion (TBS)
{$EXTERNALSYM HTTP_STATUS_PARTIAL}
HTTP_STATUS_PARTIAL = 203; // partial completion
{$EXTERNALSYM HTTP_STATUS_NO_CONTENT}
HTTP_STATUS_NO_CONTENT = 204; // no info to return
{$EXTERNALSYM HTTP_STATUS_RESET_CONTENT}
HTTP_STATUS_RESET_CONTENT = 205; // request completed, but clear form
{$EXTERNALSYM HTTP_STATUS_PARTIAL_CONTENT}
HTTP_STATUS_PARTIAL_CONTENT = 206; // partial GET furfilled
{$EXTERNALSYM HTTP_STATUS_AMBIGUOUS}
HTTP_STATUS_AMBIGUOUS = 300; // server couldn't decide what to return
{$EXTERNALSYM HTTP_STATUS_MOVED}
HTTP_STATUS_MOVED = 301; // object permanently moved
{$EXTERNALSYM HTTP_STATUS_REDIRECT}
HTTP_STATUS_REDIRECT = 302; // object temporarily moved
{$EXTERNALSYM HTTP_STATUS_REDIRECT_METHOD}
HTTP_STATUS_REDIRECT_METHOD = 303; // redirection w/ new access method
{$EXTERNALSYM HTTP_STATUS_NOT_MODIFIED}
HTTP_STATUS_NOT_MODIFIED = 304; // if-modified-since was not modified
{$EXTERNALSYM HTTP_STATUS_USE_PROXY}
HTTP_STATUS_USE_PROXY = 305; // redirection to proxy, location header specifies proxy to use
{$EXTERNALSYM HTTP_STATUS_REDIRECT_KEEP_VERB}
HTTP_STATUS_REDIRECT_KEEP_VERB = 307; // HTTP/1.1: keep same verb
{$EXTERNALSYM HTTP_STATUS_BAD_REQUEST}
HTTP_STATUS_BAD_REQUEST = 400; // invalid syntax
{$EXTERNALSYM HTTP_STATUS_DENIED}
HTTP_STATUS_DENIED = 401; // access denied
{$EXTERNALSYM HTTP_STATUS_PAYMENT_REQ}
HTTP_STATUS_PAYMENT_REQ = 402; // payment required
{$EXTERNALSYM HTTP_STATUS_FORBIDDEN}
HTTP_STATUS_FORBIDDEN = 403; // request forbidden
{$EXTERNALSYM HTTP_STATUS_NOT_FOUND}
HTTP_STATUS_NOT_FOUND = 404; // object not found
{$EXTERNALSYM HTTP_STATUS_BAD_METHOD}
HTTP_STATUS_BAD_METHOD = 405; // method is not allowed
{$EXTERNALSYM HTTP_STATUS_NONE_ACCEPTABLE}
HTTP_STATUS_NONE_ACCEPTABLE = 406; // no response acceptable to client found
{$EXTERNALSYM HTTP_STATUS_PROXY_AUTH_REQ}
HTTP_STATUS_PROXY_AUTH_REQ = 407; // proxy authentication required
{$EXTERNALSYM HTTP_STATUS_REQUEST_TIMEOUT}
HTTP_STATUS_REQUEST_TIMEOUT = 408; // server timed out waiting for request
{$EXTERNALSYM HTTP_STATUS_CONFLICT}
HTTP_STATUS_CONFLICT = 409; // user should resubmit with more info
{$EXTERNALSYM HTTP_STATUS_GONE}
HTTP_STATUS_GONE = 410; // the resource is no longer available
{$EXTERNALSYM HTTP_STATUS_LENGTH_REQUIRED}
HTTP_STATUS_LENGTH_REQUIRED = 411; // the server refused to accept request w/o a length
{$EXTERNALSYM HTTP_STATUS_PRECOND_FAILED}
HTTP_STATUS_PRECOND_FAILED = 412; // precondition given in request failed
{$EXTERNALSYM HTTP_STATUS_REQUEST_TOO_LARGE}
HTTP_STATUS_REQUEST_TOO_LARGE = 413; // request entity was too large
{$EXTERNALSYM HTTP_STATUS_URI_TOO_LONG}
HTTP_STATUS_URI_TOO_LONG = 414; // request URI too long
{$EXTERNALSYM HTTP_STATUS_UNSUPPORTED_MEDIA}
HTTP_STATUS_UNSUPPORTED_MEDIA = 415; // unsupported media type
{$EXTERNALSYM HTTP_STATUS_RETRY_WITH}
HTTP_STATUS_RETRY_WITH = 449; // retry after doing the appropriate action.
{$EXTERNALSYM HTTP_STATUS_SERVER_ERROR}
HTTP_STATUS_SERVER_ERROR = 500; // internal server error
{$EXTERNALSYM HTTP_STATUS_NOT_SUPPORTED}
HTTP_STATUS_NOT_SUPPORTED = 501; // required not supported
{$EXTERNALSYM HTTP_STATUS_BAD_GATEWAY}
HTTP_STATUS_BAD_GATEWAY = 502; // error response received from gateway
{$EXTERNALSYM HTTP_STATUS_SERVICE_UNAVAIL}
HTTP_STATUS_SERVICE_UNAVAIL = 503; // temporarily overloaded
{$EXTERNALSYM HTTP_STATUS_GATEWAY_TIMEOUT}
HTTP_STATUS_GATEWAY_TIMEOUT = 504; // timed out waiting for gateway
{$EXTERNALSYM HTTP_STATUS_VERSION_NOT_SUP}
HTTP_STATUS_VERSION_NOT_SUP = 505; // HTTP version not supported
{$EXTERNALSYM HTTP_STATUS_FIRST}
HTTP_STATUS_FIRST = HTTP_STATUS_CONTINUE;
{$EXTERNALSYM HTTP_STATUS_LAST}
HTTP_STATUS_LAST = HTTP_STATUS_VERSION_NOT_SUP;
// prototypes
{$EXTERNALSYM HttpOpenRequestA}
function HttpOpenRequestA(hConnect: HINTERNET; lpszVerb, lpszObjectName,
lpszVersion,lpszReferrer: PAnsiChar; lplpszAcceptTypes: PAnsiChar;
dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM HttpOpenRequestW}
function HttpOpenRequestW(hConnect: HINTERNET; lpszVerb, lpszObjectName,
lpszVersion,lpszReferrer: PWideChar; lplpszAcceptTypes: PWideChar;
dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM HttpOpenRequest}
function HttpOpenRequest(hConnect: HINTERNET; lpszVerb, lpszObjectName,
lpszVersion,lpszReferrer: PTSTR; lplpszAcceptTypes: PTSTR;
dwFlags, dwContext: DWORD): HINTERNET; stdcall;
{$EXTERNALSYM HttpAddRequestHeadersA}
function HttpAddRequestHeadersA(hRequest: HINTERNET; lpszHeaders: PAnsiChar;
dwHeadersLength, dwModifiers: DWORD): BOOL; stdcall;
{$EXTERNALSYM HttpAddRequestHeadersW}
function HttpAddRequestHeadersW(hRequest: HINTERNET; lpszHeaders: PWideChar;
dwHeadersLength, dwModifiers: DWORD): BOOL; stdcall;
{$EXTERNALSYM HttpAddRequestHeaders}
function HttpAddRequestHeaders(hRequest: HINTERNET; lpszHeaders: PTSTR;
dwHeadersLength, dwModifiers: DWORD): BOOL; stdcall;
// values for dwModifiers parameter of HttpAddRequestHeaders()
const
{$EXTERNALSYM HTTP_ADDREQ_INDEX_MASK}
HTTP_ADDREQ_INDEX_MASK = $0000FFFF;
{$EXTERNALSYM HTTP_ADDREQ_FLAGS_MASK}
HTTP_ADDREQ_FLAGS_MASK = $FFFF0000;
// HTTP_ADDREQ_FLAG_ADD_IF_NEW - the header will only be added if it doesn't
// already exist
{$EXTERNALSYM HTTP_ADDREQ_FLAG_ADD_IF_NEW}
HTTP_ADDREQ_FLAG_ADD_IF_NEW = $10000000;
// HTTP_ADDREQ_FLAG_ADD - if HTTP_ADDREQ_FLAG_REPLACE is set but the header is
// not found then if this flag is set, the header is added anyway, so long as
// there is a valid header-value
{$EXTERNALSYM HTTP_ADDREQ_FLAG_ADD}
HTTP_ADDREQ_FLAG_ADD = $20000000;
// HTTP_ADDREQ_FLAG_COALESCE - coalesce headers with same name. e.g.
// 'Accept: text/*' and 'Accept: audio/*' with this flag results in a single
// header: 'Accept: text/*, audio/*'
{$EXTERNALSYM HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA}
HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA = $40000000;
{$EXTERNALSYM HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON}
HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON = $01000000;
{$EXTERNALSYM HTTP_ADDREQ_FLAG_COALESCE}
HTTP_ADDREQ_FLAG_COALESCE = HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA;
// HTTP_ADDREQ_FLAG_REPLACE - replaces the specified header. Only one header can
// be supplied in the buffer. If the header to be replaced is not the first
// in a list of headers with the same name, then the relative index should be
// supplied in the low 8 bits of the dwModifiers parameter. If the header-value
// part is missing, then the header is removed
{$EXTERNALSYM HTTP_ADDREQ_FLAG_REPLACE}
HTTP_ADDREQ_FLAG_REPLACE = $80000000;
{$EXTERNALSYM HttpSendRequestA}
function HttpSendRequestA(hRequest: HINTERNET; lpszHeaders: PAnsiChar;
dwHeadersLength: DWORD; lpOptional: Pointer; dwOptionalLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM HttpSendRequestW}
function HttpSendRequestW(hRequest: HINTERNET; lpszHeaders: PWideChar;
dwHeadersLength: DWORD; lpOptional: Pointer; dwOptionalLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM HttpSendRequest}
function HttpSendRequest(hRequest: HINTERNET; lpszHeaders: PTSTR;
dwHeadersLength: DWORD; lpOptional: Pointer; dwOptionalLength: DWORD): BOOL; stdcall;
{$EXTERNALSYM HttpSendRequestExA}
function HttpSendRequestExA(hRequest: HINTERNET; lpBuffersIn,
lpBuffersOut: PInternetBuffersA; dwFlags, dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM HttpSendRequestExW}
function HttpSendRequestExW(hRequest: HINTERNET; lpBuffersIn,
lpBuffersOut: PInternetBuffersW; dwFlags, dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM HttpSendRequestEx}
function HttpSendRequestEx(hRequest: HINTERNET; lpBuffersIn,
lpBuffersOut: PInternetBuffers; dwFlags, dwContext: DWORD): BOOL; stdcall;
// flags for HttpSendRequestEx(), HttpEndRequest()
const
{$EXTERNALSYM HSR_ASYNC}
HSR_ASYNC = WININET_API_FLAG_ASYNC; // force async
{$EXTERNALSYM HSR_SYNC}
HSR_SYNC = WININET_API_FLAG_SYNC; // force sync
{$EXTERNALSYM HSR_USE_CONTEXT}
HSR_USE_CONTEXT = WININET_API_FLAG_USE_CONTEXT; // use dwContext value
{$EXTERNALSYM HSR_INITIATE}
HSR_INITIATE = $00000008; // iterative operation (completed by HttpEndRequest)
{$EXTERNALSYM HSR_DOWNLOAD}
HSR_DOWNLOAD = $00000010; // download to file
{$EXTERNALSYM HSR_CHUNKED}
HSR_CHUNKED = $00000020; // operation is send of chunked data
{$EXTERNALSYM HttpEndRequestA}
function HttpEndRequestA(hRequest: HINTERNET; lpBuffersOut: PInternetBuffersA;
dwFlags, dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM HttpEndRequestW}
function HttpEndRequestW(hRequest: HINTERNET; lpBuffersOut: PInternetBuffersW;
dwFlags, dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM HttpEndRequest}
function HttpEndRequest(hRequest: HINTERNET; lpBuffersOut: PInternetBuffers;
dwFlags, dwContext: DWORD): BOOL; stdcall;
{$EXTERNALSYM HttpQueryInfoA}
function HttpQueryInfoA(hRequest: HINTERNET; dwInfoLevel: DWORD;
lpBuffer: Pointer; var lpdwBufferLength, lpdwIndex: DWORD): BOOL; stdcall;
{$EXTERNALSYM HttpQueryInfoW}
function HttpQueryInfoW(hRequest: HINTERNET; dwInfoLevel: DWORD;
lpBuffer: Pointer; var lpdwBufferLength, lpdwIndex: DWORD): BOOL; stdcall;
{$EXTERNALSYM HttpQueryInfo}
function HttpQueryInfo(hRequest: HINTERNET; dwInfoLevel: DWORD;
lpBuffer: Pointer; var lpdwBufferLength, lpdwIndex: DWORD): BOOL; stdcall;
//
// Cookie APIs
//
{$EXTERNALSYM InternetSetCookieA}
function InternetSetCookieA(lpszUrl, lpszCookieName,
lpszCookieData: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM InternetSetCookieW}
function InternetSetCookieW(lpszUrl, lpszCookieName,
lpszCookieData: PWideChar): BOOL; stdcall;
{$EXTERNALSYM InternetSetCookie}
function InternetSetCookie(lpszUrl, lpszCookieName,
lpszCookieData: PTSTR): BOOL; stdcall;
{$EXTERNALSYM InternetGetCookieA}
function InternetGetCookieA(lpszUrl, lpszCookieName: PAnsiChar;
lpCookieData: PAnsiChar; var lpdwSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetGetCookieW}
function InternetGetCookieW(lpszUrl, lpszCookieName: PWideChar;
lpCookieData: PWideChar; var lpdwSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetGetCookie}
function InternetGetCookie(lpszUrl, lpszCookieName: PTSTR;
lpCookieData: PTSTR; var lpdwSize: DWORD): BOOL; stdcall;
//
// offline browsing
//
function InternetAttemptConnect(dwReserved: DWORD): DWORD; stdcall;
{$EXTERNALSYM InternetCheckConnectionA}
function InternetCheckConnectionA(lpszUrl: PAnsiChar;
dwFlags, dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCheckConnectionW}
function InternetCheckConnectionW(lpszUrl: PWideChar;
dwFlags, dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetCheckConnection}
function InternetCheckConnection(lpszUrl: PTSTR;
dwFlags, dwReserved: DWORD): BOOL; stdcall;
const
{$EXTERNALSYM FLAG_ICC_FORCE_CONNECTION}
FLAG_ICC_FORCE_CONNECTION = $00000001;
//
// Internet UI
//
// InternetErrorDlg - Provides UI for certain Errors.
{$EXTERNALSYM FLAGS_ERROR_UI_FILTER_FOR_ERRORS}
FLAGS_ERROR_UI_FILTER_FOR_ERRORS = $01;
{$EXTERNALSYM FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS}
FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS = $02;
{$EXTERNALSYM FLAGS_ERROR_UI_FLAGS_GENERATE_DATA}
FLAGS_ERROR_UI_FLAGS_GENERATE_DATA = $04;
{$EXTERNALSYM FLAGS_ERROR_UI_FLAGS_NO_UI}
FLAGS_ERROR_UI_FLAGS_NO_UI = $08;
{$EXTERNALSYM FLAGS_ERROR_UI_SERIALIZE_DIALOGS}
FLAGS_ERROR_UI_SERIALIZE_DIALOGS = $10;
// If SERIALIZE_DIALOGS flag set, client should implement thread-safe non-blocking callback...
{$EXTERNALSYM InternetAuthNotifyCallback}
function InternetAuthNotifyCallback(dwContext: DWORD_PTR; dwReturn: DWORD;
lpReserved: Pointer): DWORD; stdcall;
type
{$EXTERNALSYM PFN_AUTH_NOTIFY}
PFN_AUTH_NOTIFY = function(dwContext: DWORD_PTR; dwReturn: DWORD;
lpReserved: Pointer): DWORD stdcall;
PFNAuthNotify = PFN_AUTH_NOTIFY;
//
// ... and last parameter of InternetErrorDlg should point to...
//
type
PInternetAuthNotifyData = ^TInternetAuthNotifyData;
{$EXTERNALSYM INTERNET_AUTH_NOTIFY_DATA}
INTERNET_AUTH_NOTIFY_DATA = record
cbStruct: DWORD; // size of this structure
dwOptions: DWORD; // reserved: must set to 0
pfnNotify: PFNAuthNotify; // notification callback to retry InternetErrorDlg
dwContext: DWORD_PTR; // context to pass to to notification function
end;
TInternetAuthNotifyData = INTERNET_AUTH_NOTIFY_DATA;
{$EXTERNALSYM ResumeSuspendedDownload}
function ResumeSuspendedDownload(hRequest: HINTERNET;
dwResultCode: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetErrorDlg}
function InternetErrorDlg(hWnd: HWND; hRequest: HINTERNET;
dwError, dwFlags: DWORD; var lppvData: Pointer): DWORD; stdcall;
{$EXTERNALSYM InternetConfirmZoneCrossingA}
function InternetConfirmZoneCrossingA(hWnd: HWND; szUrlPrev, szUrlNew: PAnsiChar;
bPost: BOOL): DWORD; stdcall;
{$EXTERNALSYM InternetConfirmZoneCrossingW}
function InternetConfirmZoneCrossingW(hWnd: HWND; szUrlPrev, szUrlNew: PWideChar;
bPost: BOOL): DWORD; stdcall;
{$EXTERNALSYM InternetConfirmZoneCrossing}
function InternetConfirmZoneCrossing(hWnd: HWND; szUrlPrev, szUrlNew: PTSTR;
bPost: BOOL): DWORD; stdcall;
//
// Internet API error returns
//
const
{$EXTERNALSYM INTERNET_ERROR_BASE}
INTERNET_ERROR_BASE = 12000;
{$EXTERNALSYM ERROR_INTERNET_OUT_OF_HANDLES}
ERROR_INTERNET_OUT_OF_HANDLES = INTERNET_ERROR_BASE + 1;
{$EXTERNALSYM ERROR_INTERNET_TIMEOUT}
ERROR_INTERNET_TIMEOUT = INTERNET_ERROR_BASE + 2;
{$EXTERNALSYM ERROR_INTERNET_EXTENDED_ERROR}
ERROR_INTERNET_EXTENDED_ERROR = INTERNET_ERROR_BASE + 3;
{$EXTERNALSYM ERROR_INTERNET_INTERNAL_ERROR}
ERROR_INTERNET_INTERNAL_ERROR = INTERNET_ERROR_BASE + 4;
{$EXTERNALSYM ERROR_INTERNET_INVALID_URL}
ERROR_INTERNET_INVALID_URL = INTERNET_ERROR_BASE + 5;
{$EXTERNALSYM ERROR_INTERNET_UNRECOGNIZED_SCHEME}
ERROR_INTERNET_UNRECOGNIZED_SCHEME = INTERNET_ERROR_BASE + 6;
{$EXTERNALSYM ERROR_INTERNET_NAME_NOT_RESOLVED}
ERROR_INTERNET_NAME_NOT_RESOLVED = INTERNET_ERROR_BASE + 7;
{$EXTERNALSYM ERROR_INTERNET_PROTOCOL_NOT_FOUND}
ERROR_INTERNET_PROTOCOL_NOT_FOUND = INTERNET_ERROR_BASE + 8;
{$EXTERNALSYM ERROR_INTERNET_INVALID_OPTION}
ERROR_INTERNET_INVALID_OPTION = INTERNET_ERROR_BASE + 9;
{$EXTERNALSYM ERROR_INTERNET_BAD_OPTION_LENGTH}
ERROR_INTERNET_BAD_OPTION_LENGTH = INTERNET_ERROR_BASE + 10;
{$EXTERNALSYM ERROR_INTERNET_OPTION_NOT_SETTABLE}
ERROR_INTERNET_OPTION_NOT_SETTABLE = INTERNET_ERROR_BASE + 11;
{$EXTERNALSYM ERROR_INTERNET_SHUTDOWN}
ERROR_INTERNET_SHUTDOWN = INTERNET_ERROR_BASE + 12;
{$EXTERNALSYM ERROR_INTERNET_INCORRECT_USER_NAME}
ERROR_INTERNET_INCORRECT_USER_NAME = INTERNET_ERROR_BASE + 13;
{$EXTERNALSYM ERROR_INTERNET_INCORRECT_PASSWORD}
ERROR_INTERNET_INCORRECT_PASSWORD = INTERNET_ERROR_BASE + 14;
{$EXTERNALSYM ERROR_INTERNET_LOGIN_FAILURE}
ERROR_INTERNET_LOGIN_FAILURE = INTERNET_ERROR_BASE + 15;
{$EXTERNALSYM ERROR_INTERNET_INVALID_OPERATION}
ERROR_INTERNET_INVALID_OPERATION = INTERNET_ERROR_BASE + 16;
{$EXTERNALSYM ERROR_INTERNET_OPERATION_CANCELLED}
ERROR_INTERNET_OPERATION_CANCELLED = INTERNET_ERROR_BASE + 17;
{$EXTERNALSYM ERROR_INTERNET_INCORRECT_HANDLE_TYPE}
ERROR_INTERNET_INCORRECT_HANDLE_TYPE = INTERNET_ERROR_BASE + 18;
{$EXTERNALSYM ERROR_INTERNET_INCORRECT_HANDLE_STATE}
ERROR_INTERNET_INCORRECT_HANDLE_STATE = INTERNET_ERROR_BASE + 19;
{$EXTERNALSYM ERROR_INTERNET_NOT_PROXY_REQUEST}
ERROR_INTERNET_NOT_PROXY_REQUEST = INTERNET_ERROR_BASE + 20;
{$EXTERNALSYM ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND}
ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND = INTERNET_ERROR_BASE + 21;
{$EXTERNALSYM ERROR_INTERNET_BAD_REGISTRY_PARAMETER}
ERROR_INTERNET_BAD_REGISTRY_PARAMETER = INTERNET_ERROR_BASE + 22;
{$EXTERNALSYM ERROR_INTERNET_NO_DIRECT_ACCESS}
ERROR_INTERNET_NO_DIRECT_ACCESS = INTERNET_ERROR_BASE + 23;
{$EXTERNALSYM ERROR_INTERNET_NO_CONTEXT}
ERROR_INTERNET_NO_CONTEXT = INTERNET_ERROR_BASE + 24;
{$EXTERNALSYM ERROR_INTERNET_NO_CALLBACK}
ERROR_INTERNET_NO_CALLBACK = INTERNET_ERROR_BASE + 25;
{$EXTERNALSYM ERROR_INTERNET_REQUEST_PENDING}
ERROR_INTERNET_REQUEST_PENDING = INTERNET_ERROR_BASE + 26;
{$EXTERNALSYM ERROR_INTERNET_INCORRECT_FORMAT}
ERROR_INTERNET_INCORRECT_FORMAT = INTERNET_ERROR_BASE + 27;
{$EXTERNALSYM ERROR_INTERNET_ITEM_NOT_FOUND}
ERROR_INTERNET_ITEM_NOT_FOUND = INTERNET_ERROR_BASE + 28;
{$EXTERNALSYM ERROR_INTERNET_CANNOT_CONNECT}
ERROR_INTERNET_CANNOT_CONNECT = INTERNET_ERROR_BASE + 29;
{$EXTERNALSYM ERROR_INTERNET_CONNECTION_ABORTED}
ERROR_INTERNET_CONNECTION_ABORTED = INTERNET_ERROR_BASE + 30;
{$EXTERNALSYM ERROR_INTERNET_CONNECTION_RESET}
ERROR_INTERNET_CONNECTION_RESET = INTERNET_ERROR_BASE + 31;
{$EXTERNALSYM ERROR_INTERNET_FORCE_RETRY}
ERROR_INTERNET_FORCE_RETRY = INTERNET_ERROR_BASE + 32;
{$EXTERNALSYM ERROR_INTERNET_INVALID_PROXY_REQUEST}
ERROR_INTERNET_INVALID_PROXY_REQUEST = INTERNET_ERROR_BASE + 33;
{$EXTERNALSYM ERROR_INTERNET_NEED_UI}
ERROR_INTERNET_NEED_UI = INTERNET_ERROR_BASE + 34;
{$EXTERNALSYM ERROR_INTERNET_HANDLE_EXISTS}
ERROR_INTERNET_HANDLE_EXISTS = INTERNET_ERROR_BASE + 36;
{$EXTERNALSYM ERROR_INTERNET_SEC_CERT_DATE_INVALID}
ERROR_INTERNET_SEC_CERT_DATE_INVALID = INTERNET_ERROR_BASE + 37;
{$EXTERNALSYM ERROR_INTERNET_SEC_CERT_CN_INVALID}
ERROR_INTERNET_SEC_CERT_CN_INVALID = INTERNET_ERROR_BASE + 38;
{$EXTERNALSYM ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR}
ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR = INTERNET_ERROR_BASE + 39;
{$EXTERNALSYM ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR}
ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR = INTERNET_ERROR_BASE + 40;
{$EXTERNALSYM ERROR_INTERNET_MIXED_SECURITY}
ERROR_INTERNET_MIXED_SECURITY = INTERNET_ERROR_BASE + 41;
{$EXTERNALSYM ERROR_INTERNET_CHG_POST_IS_NON_SECURE}
ERROR_INTERNET_CHG_POST_IS_NON_SECURE = INTERNET_ERROR_BASE + 42;
{$EXTERNALSYM ERROR_INTERNET_POST_IS_NON_SECURE}
ERROR_INTERNET_POST_IS_NON_SECURE = INTERNET_ERROR_BASE + 43;
{$EXTERNALSYM ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED}
ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED = INTERNET_ERROR_BASE + 44;
{$EXTERNALSYM ERROR_INTERNET_INVALID_CA}
ERROR_INTERNET_INVALID_CA = INTERNET_ERROR_BASE + 45;
{$EXTERNALSYM ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP}
ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP = INTERNET_ERROR_BASE + 46;
{$EXTERNALSYM ERROR_INTERNET_ASYNC_THREAD_FAILED}
ERROR_INTERNET_ASYNC_THREAD_FAILED = INTERNET_ERROR_BASE + 47;
{$EXTERNALSYM ERROR_INTERNET_REDIRECT_SCHEME_CHANGE}
ERROR_INTERNET_REDIRECT_SCHEME_CHANGE = INTERNET_ERROR_BASE + 48;
{$EXTERNALSYM ERROR_INTERNET_DIALOG_PENDING}
ERROR_INTERNET_DIALOG_PENDING = INTERNET_ERROR_BASE + 49;
{$EXTERNALSYM ERROR_INTERNET_RETRY_DIALOG}
ERROR_INTERNET_RETRY_DIALOG = INTERNET_ERROR_BASE + 50;
{$EXTERNALSYM ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR}
ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR = INTERNET_ERROR_BASE + 52;
{$EXTERNALSYM ERROR_INTERNET_INSERT_CDROM}
ERROR_INTERNET_INSERT_CDROM = INTERNET_ERROR_BASE + 53;
{$EXTERNALSYM ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED}
ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED = INTERNET_ERROR_BASE + 54;
{$EXTERNALSYM ERROR_INTERNET_SEC_CERT_ERRORS}
ERROR_INTERNET_SEC_CERT_ERRORS = INTERNET_ERROR_BASE + 55;
{$EXTERNALSYM ERROR_INTERNET_SEC_CERT_NO_REV}
ERROR_INTERNET_SEC_CERT_NO_REV = INTERNET_ERROR_BASE + 56;
{$EXTERNALSYM ERROR_INTERNET_SEC_CERT_REV_FAILED}
ERROR_INTERNET_SEC_CERT_REV_FAILED = INTERNET_ERROR_BASE + 57;
// FTP API errors
{$EXTERNALSYM ERROR_FTP_TRANSFER_IN_PROGRESS}
ERROR_FTP_TRANSFER_IN_PROGRESS = INTERNET_ERROR_BASE + 110;
{$EXTERNALSYM ERROR_FTP_DROPPED}
ERROR_FTP_DROPPED = INTERNET_ERROR_BASE + 111;
{$EXTERNALSYM ERROR_FTP_NO_PASSIVE_MODE}
ERROR_FTP_NO_PASSIVE_MODE = INTERNET_ERROR_BASE + 112;
// gopher API errors
{$EXTERNALSYM ERROR_GOPHER_PROTOCOL_ERROR}
ERROR_GOPHER_PROTOCOL_ERROR = INTERNET_ERROR_BASE + 130;
{$EXTERNALSYM ERROR_GOPHER_NOT_FILE}
ERROR_GOPHER_NOT_FILE = INTERNET_ERROR_BASE + 131;
{$EXTERNALSYM ERROR_GOPHER_DATA_ERROR}
ERROR_GOPHER_DATA_ERROR = INTERNET_ERROR_BASE + 132;
{$EXTERNALSYM ERROR_GOPHER_END_OF_DATA}
ERROR_GOPHER_END_OF_DATA = INTERNET_ERROR_BASE + 133;
{$EXTERNALSYM ERROR_GOPHER_INVALID_LOCATOR}
ERROR_GOPHER_INVALID_LOCATOR = INTERNET_ERROR_BASE + 134;
{$EXTERNALSYM ERROR_GOPHER_INCORRECT_LOCATOR_TYPE}
ERROR_GOPHER_INCORRECT_LOCATOR_TYPE = INTERNET_ERROR_BASE + 135;
{$EXTERNALSYM ERROR_GOPHER_NOT_GOPHER_PLUS}
ERROR_GOPHER_NOT_GOPHER_PLUS = INTERNET_ERROR_BASE + 136;
{$EXTERNALSYM ERROR_GOPHER_ATTRIBUTE_NOT_FOUND}
ERROR_GOPHER_ATTRIBUTE_NOT_FOUND = INTERNET_ERROR_BASE + 137;
{$EXTERNALSYM ERROR_GOPHER_UNKNOWN_LOCATOR}
ERROR_GOPHER_UNKNOWN_LOCATOR = INTERNET_ERROR_BASE + 138;
// HTTP API errors
{$EXTERNALSYM ERROR_HTTP_HEADER_NOT_FOUND}
ERROR_HTTP_HEADER_NOT_FOUND = INTERNET_ERROR_BASE + 150;
{$EXTERNALSYM ERROR_HTTP_DOWNLEVEL_SERVER}
ERROR_HTTP_DOWNLEVEL_SERVER = INTERNET_ERROR_BASE + 151;
{$EXTERNALSYM ERROR_HTTP_INVALID_SERVER_RESPONSE}
ERROR_HTTP_INVALID_SERVER_RESPONSE = INTERNET_ERROR_BASE + 152;
{$EXTERNALSYM ERROR_HTTP_INVALID_HEADER}
ERROR_HTTP_INVALID_HEADER = INTERNET_ERROR_BASE + 153;
{$EXTERNALSYM ERROR_HTTP_INVALID_QUERY_REQUEST}
ERROR_HTTP_INVALID_QUERY_REQUEST = INTERNET_ERROR_BASE + 154;
{$EXTERNALSYM ERROR_HTTP_HEADER_ALREADY_EXISTS}
ERROR_HTTP_HEADER_ALREADY_EXISTS = INTERNET_ERROR_BASE + 155;
{$EXTERNALSYM ERROR_HTTP_REDIRECT_FAILED}
ERROR_HTTP_REDIRECT_FAILED = INTERNET_ERROR_BASE + 156;
{$EXTERNALSYM ERROR_HTTP_NOT_REDIRECTED}
ERROR_HTTP_NOT_REDIRECTED = INTERNET_ERROR_BASE + 160;
{$EXTERNALSYM ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION}
ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION = INTERNET_ERROR_BASE + 161;
{$EXTERNALSYM ERROR_HTTP_COOKIE_DECLINED}
ERROR_HTTP_COOKIE_DECLINED = INTERNET_ERROR_BASE + 162;
{$EXTERNALSYM ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION}
ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION = INTERNET_ERROR_BASE + 168;
// additional Internet API error codes
{$EXTERNALSYM ERROR_INTERNET_SECURITY_CHANNEL_ERROR}
ERROR_INTERNET_SECURITY_CHANNEL_ERROR = INTERNET_ERROR_BASE + 157;
{$EXTERNALSYM ERROR_INTERNET_UNABLE_TO_CACHE_FILE}
ERROR_INTERNET_UNABLE_TO_CACHE_FILE = INTERNET_ERROR_BASE + 158;
{$EXTERNALSYM ERROR_INTERNET_TCPIP_NOT_INSTALLED}
ERROR_INTERNET_TCPIP_NOT_INSTALLED = INTERNET_ERROR_BASE + 159;
{$EXTERNALSYM ERROR_INTERNET_DISCONNECTED}
ERROR_INTERNET_DISCONNECTED = INTERNET_ERROR_BASE + 163;
{$EXTERNALSYM ERROR_INTERNET_SERVER_UNREACHABLE}
ERROR_INTERNET_SERVER_UNREACHABLE = INTERNET_ERROR_BASE + 164;
{$EXTERNALSYM ERROR_INTERNET_PROXY_SERVER_UNREACHABLE}
ERROR_INTERNET_PROXY_SERVER_UNREACHABLE = INTERNET_ERROR_BASE + 165;
{$EXTERNALSYM ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT}
ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT = INTERNET_ERROR_BASE + 166;
{$EXTERNALSYM ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT}
ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT = INTERNET_ERROR_BASE + 167;
{$EXTERNALSYM ERROR_INTERNET_SEC_INVALID_CERT}
ERROR_INTERNET_SEC_INVALID_CERT = INTERNET_ERROR_BASE + 169;
{$EXTERNALSYM ERROR_INTERNET_SEC_CERT_REVOKED}
ERROR_INTERNET_SEC_CERT_REVOKED = INTERNET_ERROR_BASE + 170;
// InternetAutodial specific errors
{$EXTERNALSYM ERROR_INTERNET_FAILED_DUETOSECURITYCHECK}
ERROR_INTERNET_FAILED_DUETOSECURITYCHECK = INTERNET_ERROR_BASE + 171;
{$EXTERNALSYM ERROR_INTERNET_NOT_INITIALIZED}
ERROR_INTERNET_NOT_INITIALIZED = INTERNET_ERROR_BASE + 172;
{$EXTERNALSYM ERROR_INTERNET_NEED_MSN_SSPI_PKG}
ERROR_INTERNET_NEED_MSN_SSPI_PKG = INTERNET_ERROR_BASE + 173;
{$EXTERNALSYM ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY}
ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY = INTERNET_ERROR_BASE + 174;
{$EXTERNALSYM INTERNET_ERROR_LAST}
INTERNET_ERROR_LAST = ERROR_INTERNET_LOGIN_FAILURE_DISPLAY_ENTITY_BODY;
//
// URLCACHE APIs
//
// datatype definitions.
// cache entry type flags.
{$EXTERNALSYM NORMAL_CACHE_ENTRY}
NORMAL_CACHE_ENTRY = $00000001;
{$EXTERNALSYM STICKY_CACHE_ENTRY}
STICKY_CACHE_ENTRY = $00000004;
{$EXTERNALSYM EDITED_CACHE_ENTRY}
EDITED_CACHE_ENTRY = $00000008;
{$EXTERNALSYM TRACK_OFFLINE_CACHE_ENTRY}
TRACK_OFFLINE_CACHE_ENTRY = $00000010;
{$EXTERNALSYM TRACK_ONLINE_CACHE_ENTRY}
TRACK_ONLINE_CACHE_ENTRY = $00000020;
{$EXTERNALSYM COOKIE_CACHE_ENTRY}
COOKIE_CACHE_ENTRY = $00100000;
{$EXTERNALSYM URLHISTORY_CACHE_ENTRY}
URLHISTORY_CACHE_ENTRY = $00200000;
{$EXTERNALSYM SPARSE_CACHE_ENTRY}
SPARSE_CACHE_ENTRY = $00010000;
{$EXTERNALSYM URLCACHE_FIND_DEFAULT_FILTER}
URLCACHE_FIND_DEFAULT_FILTER = NORMAL_CACHE_ENTRY or
COOKIE_CACHE_ENTRY or
URLHISTORY_CACHE_ENTRY or
TRACK_OFFLINE_CACHE_ENTRY or
TRACK_ONLINE_CACHE_ENTRY or
STICKY_CACHE_ENTRY;
type
PInternetCacheEntryInfoA = ^TInternetCacheEntryInfoA;
PInternetCacheEntryInfoW = ^TInternetCacheEntryInfoW;
PInternetCacheEntryInfo = PInternetCacheEntryInfoA;
{$EXTERNALSYM _INTERNET_CACHE_ENTRY_INFOA}
_INTERNET_CACHE_ENTRY_INFOA = record
dwStructSize: DWORD; // version of cache system.
lpszSourceUrlName: PAnsiChar; // embedded pointer to the URL name string.
lpszLocalFileName: PAnsiChar; // embedded pointer to the local file name.
CacheEntryType: DWORD; // cache type bit mask.
dwUseCount: DWORD; // current users count of the cache entry.
dwHitRate: DWORD; // num of times the cache entry was retrieved.
dwSizeLow: DWORD; // low DWORD of the file size.
dwSizeHigh: DWORD; // high DWORD of the file size.
LastModifiedTime: TFileTime; // last modified time of the file in GMT format.
ExpireTime: TFileTime; // expire time of the file in GMT format
LastAccessTime: TFileTime; // last accessed time in GMT format
LastSyncTime: TFileTime; // last time the URL was synchronized
// with the source
lpHeaderInfo: PByte; // embedded pointer to the header info.
dwHeaderInfoSiz: DWORD; // size of the above header.
lpszFileExtension: PAnsiChar; // File extension used to retrive the urldata as a file.
case Integer of
1: (dwReserved: DWORD);
2: (dwExemptDelta: DWORD); // Exemption delta from last access time.
end;
{$EXTERNALSYM _INTERNET_CACHE_ENTRY_INFOW}
_INTERNET_CACHE_ENTRY_INFOW = record
dwStructSize: DWORD; // version of cache system.
lpszSourceUrlName: PWideChar; // embedded pointer to the URL name string.
lpszLocalFileName: PWideChar; // embedded pointer to the local file name.
CacheEntryType: DWORD; // cache type bit mask.
dwUseCount: DWORD; // current users count of the cache entry.
dwHitRate: DWORD; // num of times the cache entry was retrieved.
dwSizeLow: DWORD; // low DWORD of the file size.
dwSizeHigh: DWORD; // high DWORD of the file size.
LastModifiedTime: TFileTime; // last modified time of the file in GMT format.
ExpireTime: TFileTime; // expire time of the file in GMT format
LastAccessTime: TFileTime; // last accessed time in GMT format
LastSyncTime: TFileTime; // last time the URL was synchronized
// with the source
lpHeaderInfo: PByte; // embedded pointer to the header info.
dwHeaderInfoSiz: DWORD; // size of the above header.
lpszFileExtension: PWideChar; // File extension used to retrive the urldata as a file.
case Integer of
1: (dwReserved: DWORD);
2: (dwExemptDelta: DWORD); // Exemption delta from last access time.
end;
{$EXTERNALSYM _INTERNET_CACHE_ENTRY_INFO}
_INTERNET_CACHE_ENTRY_INFO = _INTERNET_CACHE_ENTRY_INFOA;
{$EXTERNALSYM INTERNET_CACHE_ENTRY_INFOA}
INTERNET_CACHE_ENTRY_INFOA = _INTERNET_CACHE_ENTRY_INFOA;
{$EXTERNALSYM INTERNET_CACHE_ENTRY_INFOW}
INTERNET_CACHE_ENTRY_INFOW = _INTERNET_CACHE_ENTRY_INFOW;
{$EXTERNALSYM INTERNET_CACHE_ENTRY_INFO}
INTERNET_CACHE_ENTRY_INFO = INTERNET_CACHE_ENTRY_INFOA;
TInternetCacheEntryInfoA = _INTERNET_CACHE_ENTRY_INFOA;
TInternetCacheEntryInfoW = _INTERNET_CACHE_ENTRY_INFOW;
TInternetCacheEntryInfo = TInternetCacheEntryInfoA;
type
PInternetCacheTimeStamps = ^TInternetCacheTimeStamps;
{$EXTERNALSYM _INTERNET_CACHE_TIMESTAMPS}
_INTERNET_CACHE_TIMESTAMPS = record
ftExpires: TFileTime;
ftLastModified: TFileTime;
end;
{$EXTERNALSYM INTERNET_CACHE_TIMESTAMPS}
INTERNET_CACHE_TIMESTAMPS = _INTERNET_CACHE_TIMESTAMPS;
TInternetCacheTimeStamps = _INTERNET_CACHE_TIMESTAMPS;
//
// Cache Group
//
type
{$EXTERNALSYM GROUPID}
GROUPID = Int64;
TGroupID = GROUPID;
//
// Cache Group Flags
//
const
{$EXTERNALSYM CACHEGROUP_ATTRIBUTE_GET_ALL}
CACHEGROUP_ATTRIBUTE_GET_ALL = $FFFFFFFF;
{$EXTERNALSYM CACHEGROUP_ATTRIBUTE_BASIC}
CACHEGROUP_ATTRIBUTE_BASIC = $00000001;
{$EXTERNALSYM CACHEGROUP_ATTRIBUTE_FLAG}
CACHEGROUP_ATTRIBUTE_FLAG = $00000002;
{$EXTERNALSYM CACHEGROUP_ATTRIBUTE_TYPE}
CACHEGROUP_ATTRIBUTE_TYPE = $00000004;
{$EXTERNALSYM CACHEGROUP_ATTRIBUTE_QUOTA}
CACHEGROUP_ATTRIBUTE_QUOTA = $00000008;
{$EXTERNALSYM CACHEGROUP_ATTRIBUTE_GROUPNAME}
CACHEGROUP_ATTRIBUTE_GROUPNAME = $00000010;
{$EXTERNALSYM CACHEGROUP_ATTRIBUTE_STORAGE}
CACHEGROUP_ATTRIBUTE_STORAGE = $00000020;
{$EXTERNALSYM CACHEGROUP_FLAG_NONPURGEABLE}
CACHEGROUP_FLAG_NONPURGEABLE = $00000001;
{$EXTERNALSYM CACHEGROUP_FLAG_GIDONLY}
CACHEGROUP_FLAG_GIDONLY = $00000004;
{$EXTERNALSYM CACHEGROUP_FLAG_FLUSHURL_ONDELETE}
CACHEGROUP_FLAG_FLUSHURL_ONDELETE = $00000002;
{$EXTERNALSYM CACHEGROUP_SEARCH_ALL}
CACHEGROUP_SEARCH_ALL = $00000000;
{$EXTERNALSYM CACHEGROUP_SEARCH_BYURL}
CACHEGROUP_SEARCH_BYURL = $00000001;
{$EXTERNALSYM CACHEGROUP_TYPE_INVALID}
CACHEGROUP_TYPE_INVALID = $00000001;
//
// updatable cache group fields
//
{$EXTERNALSYM CACHEGROUP_READWRITE_MASK}
CACHEGROUP_READWRITE_MASK = CACHEGROUP_ATTRIBUTE_TYPE or
CACHEGROUP_ATTRIBUTE_QUOTA or
CACHEGROUP_ATTRIBUTE_GROUPNAME or
CACHEGROUP_ATTRIBUTE_STORAGE;
//
// INTERNET_CACHE_GROUP_INFO
//
{$EXTERNALSYM GROUPNAME_MAX_LENGTH}
GROUPNAME_MAX_LENGTH = 120;
{$EXTERNALSYM GROUP_OWNER_STORAGE_SIZE}
GROUP_OWNER_STORAGE_SIZE = 4;
type
PInternetCacheGroupInfoA = ^TInternetCacheGroupInfoA;
PInternetCacheGroupInfoW = ^TInternetCacheGroupInfoW;
PInternetCacheGroupInfo = PInternetCacheGroupInfoA;
{$EXTERNALSYM _INTERNET_CACHE_GROUP_INFOA}
_INTERNET_CACHE_GROUP_INFOA = record
dwGroupSize: DWORD;
dwGroupFlags: DWORD;
dwGroupType: DWORD;
dwDiskUsage: DWORD; // in KB
dwDiskQuota: DWORD; // in KB
dwOwnerStorage: array[0..GROUP_OWNER_STORAGE_SIZE - 1] of DWORD;
szGroupName: array[0..GROUPNAME_MAX_LENGTH - 1] of AnsiChar;
end;
{$EXTERNALSYM _INTERNET_CACHE_GROUP_INFOW}
_INTERNET_CACHE_GROUP_INFOW = record
dwGroupSize: DWORD;
dwGroupFlags: DWORD;
dwGroupType: DWORD;
dwDiskUsage: DWORD; // in KB
dwDiskQuota: DWORD; // in KB
dwOwnerStorage: array[0..GROUP_OWNER_STORAGE_SIZE - 1] of DWORD;
szGroupName: array[0..GROUPNAME_MAX_LENGTH - 1] of WideChar;
end;
{$EXTERNALSYM _INTERNET_CACHE_GROUP_INFO}
_INTERNET_CACHE_GROUP_INFO = _INTERNET_CACHE_GROUP_INFOA;
{$EXTERNALSYM INTERNET_CACHE_GROUP_INFOA}
INTERNET_CACHE_GROUP_INFOA = _INTERNET_CACHE_GROUP_INFOA;
{$EXTERNALSYM INTERNET_CACHE_GROUP_INFOW}
INTERNET_CACHE_GROUP_INFOW = _INTERNET_CACHE_GROUP_INFOW;
{$EXTERNALSYM INTERNET_CACHE_GROUP_INFO}
INTERNET_CACHE_GROUP_INFO = INTERNET_CACHE_GROUP_INFOA;
TInternetCacheGroupInfoA = _INTERNET_CACHE_GROUP_INFOA;
TInternetCacheGroupInfoW = _INTERNET_CACHE_GROUP_INFOW;
TInternetCacheGroupInfo = TInternetCacheGroupInfoA;
//
// Cache APIs
//
{$EXTERNALSYM CreateUrlCacheEntryA}
function CreateUrlCacheEntryA(lpszUrlName: PAnsiChar; dwExpectedFileSize: DWORD;
lpszFileExtension: PAnsiChar; lpszFileName: PAnsiChar; dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM CreateUrlCacheEntryW}
function CreateUrlCacheEntryW(lpszUrlName: PWideChar; dwExpectedFileSize: DWORD;
lpszFileExtension: PWideChar; lpszFileName: PWideChar; dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM CreateUrlCacheEntry}
function CreateUrlCacheEntry(lpszUrlName: PTSTR; dwExpectedFileSize: DWORD;
lpszFileExtension: PTSTR; lpszFileName: PTSTR; dwReserved: DWORD): BOOL; stdcall;
// Temporary state of affairs until we reconcile our apis.
// Why are we doing this? HeaderInfo _should_ be string data.
// However, one group is passing binary data instead. For the
// unicode api, we've decided to disallow this, but this
// brings up an inconsistency between the u and a apis, which
// is undesirable.
// For Beta 1, we'll go with this behaviour, but in future releases
// we want to make these apis consistent.
{$EXTERNALSYM CommitUrlCacheEntryA}
function CommitUrlCacheEntryA(lpszUrlName, lpszLocalFileName: PAnsiChar;
ExpireTime, LastModifiedTime: TFileTime; CacheEntryType: DWORD;
lpHeaderInfo: PByte; dwHeaderSize: DWORD; lpszFileExtension: PAnsiChar;
lpszOriginalUrl: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM CommitUrlCacheEntryW}
function CommitUrlCacheEntryW(lpszUrlName, lpszLocalFileName: PWideChar;
ExpireTime, LastModifiedTime: TFileTime; CacheEntryType: DWORD;
lpHeaderInfo: PByte; dwHeaderSize: DWORD; lpszFileExtension: PWideChar;
lpszOriginalUrl: PWideChar): BOOL; stdcall;
{$EXTERNALSYM CommitUrlCacheEntry}
function CommitUrlCacheEntry(lpszUrlName, lpszLocalFileName: PTSTR;
ExpireTime, LastModifiedTime: TFileTime; CacheEntryType: DWORD;
lpHeaderInfo: PByte; dwHeaderSize: DWORD; lpszFileExtension: PTSTR;
lpszOriginalUrl: PTSTR): BOOL; stdcall;
{$EXTERNALSYM RetrieveUrlCacheEntryFileA}
function RetrieveUrlCacheEntryFileA(lpszUrlName: PAnsiChar; lpCacheEntryInfo:
PInternetCacheEntryInfoA; var lpdwCacheEntryInfoBufferSize: DWORD;
dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM RetrieveUrlCacheEntryFileW}
function RetrieveUrlCacheEntryFileW(lpszUrlName: PAnsiChar; lpCacheEntryInfo:
PInternetCacheEntryInfoW; var lpdwCacheEntryInfoBufferSize: DWORD;
dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM RetrieveUrlCacheEntryFile}
function RetrieveUrlCacheEntryFile(lpszUrlName: PAnsiChar; lpCacheEntryInfo:
PInternetCacheEntryInfo; var lpdwCacheEntryInfoBufferSize: DWORD;
dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM UnlockUrlCacheEntryFileA}
function UnlockUrlCacheEntryFileA(lpszUrlName: PAnsiChar;
dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM UnlockUrlCacheEntryFileW}
function UnlockUrlCacheEntryFileW(lpszUrlName: PWideChar;
dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM UnlockUrlCacheEntryFile}
function UnlockUrlCacheEntryFile(lpszUrlName: PTSTR;
dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM RetrieveUrlCacheEntryStreamA}
function RetrieveUrlCacheEntryStreamA(lpszUrlName: PAnsiChar; lpCacheEntryInfo:
PInternetCacheEntryInfoA; var lpdwCacheEntryInfoBufferSize: DWORD;
fRandomRead: BOOL; dwReserved: DWORD): THandle; stdcall;
{$EXTERNALSYM RetrieveUrlCacheEntryStreamW}
function RetrieveUrlCacheEntryStreamW(lpszUrlName: PWideChar; lpCacheEntryInfo:
PInternetCacheEntryInfoW; var lpdwCacheEntryInfoBufferSize: DWORD;
fRandomRead: BOOL; dwReserved: DWORD): THandle; stdcall;
{$EXTERNALSYM RetrieveUrlCacheEntryStream}
function RetrieveUrlCacheEntryStream(lpszUrlName: PTSTR; lpCacheEntryInfo:
PInternetCacheEntryInfo; var lpdwCacheEntryInfoBufferSize: DWORD;
fRandomRead: BOOL; dwReserved: DWORD): THandle; stdcall;
{$EXTERNALSYM ReadUrlCacheEntryStream}
function ReadUrlCacheEntryStream(hUrlCacheStream: THandle; dwLocation: DWORD;
lpBuffer: Pointer; var lpdwLen: DWORD; Reserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM UnlockUrlCacheEntryStream}
function UnlockUrlCacheEntryStream(hUrlCacheStream: THandle; Reserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUrlCacheEntryInfoA}
function GetUrlCacheEntryInfoA(lpszUrlName: PAnsiChar; lpCacheEntryInfo:
PInternetCacheEntryInfoA; var lpdwCacheEntryInfoBufferSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUrlCacheEntryInfoW}
function GetUrlCacheEntryInfoW(lpszUrlName: PWideChar; lpCacheEntryInfo:
PInternetCacheEntryInfoW; var lpdwCacheEntryInfoBufferSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUrlCacheEntryInfo}
function GetUrlCacheEntryInfo(lpszUrlName: PTSTR; lpCacheEntryInfo:
PInternetCacheEntryInfo; var lpdwCacheEntryInfoBufferSize: DWORD): BOOL; stdcall;
//
// Cache Group Functions
//
{$EXTERNALSYM FindFirstUrlCacheGroup}
function FindFirstUrlCacheGroup(dwFlags, dwFilter: DWORD;
lpSearchCondition: Pointer; dwSearchCondition: DWORD;
var lpGroupId: GROUPID; lpReserved: Pointer): THandle; stdcall;
{$EXTERNALSYM FindNextUrlCacheGroup}
function FindNextUrlCacheGroup(hFind: THandle;
var lpGroupId: GROUPID; lpReserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM GetUrlCacheGroupAttributeA}
function GetUrlCacheGroupAttributeA(gid: GROUPID;
dwFlags, dwAttributes: DWORD; var GroupInfo: TInternetCacheGroupInfoA;
var dwGroupInfo: DWORD; lpReserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM GetUrlCacheGroupAttributeW}
function GetUrlCacheGroupAttributeW(gid: GROUPID;
dwFlags, dwAttributes: DWORD; var GroupInfo: TInternetCacheGroupInfoW;
var dwGroupInfo: DWORD; lpReserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM GetUrlCacheGroupAttribute}
function GetUrlCacheGroupAttribute(gid: GROUPID;
dwFlags, dwAttributes: DWORD; var GroupInfo: TInternetCacheGroupInfo;
var dwGroupInfo: DWORD; lpReserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetUrlCacheGroupAttributeA}
function SetUrlCacheGroupAttributeA(gid: GROUPID;
dwFlags, dwAttributes: DWORD;
var lpGroupInfo: TInternetCacheGroupInfoA;
lpReserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetUrlCacheGroupAttributeW}
function SetUrlCacheGroupAttributeW(gid: GROUPID;
dwFlags, dwAttributes: DWORD;
var lpGroupInfo: TInternetCacheGroupInfoW;
lpReserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetUrlCacheGroupAttribute}
function SetUrlCacheGroupAttribute(gid: GROUPID;
dwFlags, dwAttributes: DWORD;
var lpGroupInfo: TInternetCacheGroupInfo;
lpReserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM CreateUrlCacheGroup}
function CreateUrlCacheGroup(dwFlags: DWORD;
lpReserved: Pointer): GROUPID; stdcall;
{$EXTERNALSYM DeleteUrlCacheGroup}
function DeleteUrlCacheGroup(GroupId: GROUPID; dwFlags: DWORD;
lpReserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM GetUrlCacheEntryInfoExA}
function GetUrlCacheEntryInfoExA(lpszUrl: PAnsiChar; lpCacheEntryInfo:
PInternetCacheEntryInfoA; var lpdwCacheEntryInfoBufSize: DWORD;
lpszReserved: PAnsiChar; lpdwReserved: LPDWORD; lpReserved: Pointer;
dwFlag: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUrlCacheEntryInfoExW}
function GetUrlCacheEntryInfoExW(lpszUrl: PWideChar; lpCacheEntryInfo:
PInternetCacheEntryInfoW; var lpdwCacheEntryInfoBufSize: DWORD;
lpszReserved: PWideChar; lpdwReserved: LPDWORD; lpReserved: Pointer;
dwFlag: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUrlCacheEntryInfoEx}
function GetUrlCacheEntryInfoEx(lpszUrl: PTSTR; lpCacheEntryInfo:
PInternetCacheEntryInfo; var lpdwCacheEntryInfoBufSize: DWORD;
lpszReserved: PTSTR; lpdwReserved: LPDWORD; lpReserved: Pointer;
dwFlag: DWORD): BOOL; stdcall;
const
{$EXTERNALSYM CACHE_ENTRY_ATTRIBUTE_FC}
CACHE_ENTRY_ATTRIBUTE_FC = $00000004;
{$EXTERNALSYM CACHE_ENTRY_HITRATE_FC}
CACHE_ENTRY_HITRATE_FC = $00000010;
{$EXTERNALSYM CACHE_ENTRY_MODTIME_FC}
CACHE_ENTRY_MODTIME_FC = $00000040;
{$EXTERNALSYM CACHE_ENTRY_EXPTIME_FC}
CACHE_ENTRY_EXPTIME_FC = $00000080;
{$EXTERNALSYM CACHE_ENTRY_ACCTIME_FC}
CACHE_ENTRY_ACCTIME_FC = $00000100;
{$EXTERNALSYM CACHE_ENTRY_SYNCTIME_FC}
CACHE_ENTRY_SYNCTIME_FC = $00000200;
{$EXTERNALSYM CACHE_ENTRY_HEADERINFO_FC}
CACHE_ENTRY_HEADERINFO_FC = $00000400;
{$EXTERNALSYM CACHE_ENTRY_EXEMPT_DELTA_FC}
CACHE_ENTRY_EXEMPT_DELTA_FC = $00000800;
{$EXTERNALSYM SetUrlCacheEntryInfoA}
function SetUrlCacheEntryInfoA(lpszUrlName: PAnsiChar; lpCacheEntryInfo:
PInternetCacheEntryInfoA; dwFieldControl: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetUrlCacheEntryInfoW}
function SetUrlCacheEntryInfoW(lpszUrlName: PWideChar; lpCacheEntryInfo:
PInternetCacheEntryInfoW; dwFieldControl: DWORD): BOOL; stdcall;
{$EXTERNALSYM SetUrlCacheEntryInfo}
function SetUrlCacheEntryInfo(lpszUrlName: PTSTR; lpCacheEntryInfo:
PInternetCacheEntryInfo; dwFieldControl: DWORD): BOOL; stdcall;
// Flags for SetUrlCacheEntryGroup
const
{$EXTERNALSYM INTERNET_CACHE_GROUP_ADD}
INTERNET_CACHE_GROUP_ADD = 0;
{$EXTERNALSYM INTERNET_CACHE_GROUP_REMOVE}
INTERNET_CACHE_GROUP_REMOVE = 1;
{$EXTERNALSYM SetUrlCacheEntryGroupA}
function SetUrlCacheEntryGroupA(lpszUrlName: PAnsiChar; dwFlags: DWORD; GroupId: GROUPID;
pbGroupAttributes: PByte; cbGroupAttributes: DWORD; lpReserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetUrlCacheEntryGroupW}
function SetUrlCacheEntryGroupW(lpszUrlName: PWideChar; dwFlags: DWORD; GroupId: GROUPID;
pbGroupAttributes: PByte; cbGroupAttributes: DWORD; lpReserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM SetUrlCacheEntryGroup}
function SetUrlCacheEntryGroup(lpszUrlName: PTSTR; dwFlags: DWORD; GroupId: GROUPID;
pbGroupAttributes: PByte; cbGroupAttributes: DWORD; lpReserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM FindFirstUrlCacheEntryExA}
function FindFirstUrlCacheEntryExA(lpszUrlSearchPattern: PAnsiChar; dwFlags,
dwFilter: DWORD; GroupId: TGroupID; lpFirstCacheEntryInfo:
PInternetCacheEntryInfoA; var lpdwFirstCacheEntryInfoBufferSize: DWORD;
lpGroupAttributes: Pointer; pcbGroupAttributes: LPDWORD;
lpReserved: Pointer): THandle; stdcall;
{$EXTERNALSYM FindFirstUrlCacheEntryExW}
function FindFirstUrlCacheEntryExW(lpszUrlSearchPattern: PWideChar; dwFlags,
dwFilter: DWORD; GroupId: TGroupID; lpFirstCacheEntryInfo:
PInternetCacheEntryInfoW; var lpdwFirstCacheEntryInfoBufferSize: DWORD;
lpGroupAttributes: Pointer; pcbGroupAttributes: LPDWORD;
lpReserved: Pointer): THandle; stdcall;
{$EXTERNALSYM FindFirstUrlCacheEntryEx}
function FindFirstUrlCacheEntryEx(lpszUrlSearchPattern: PTSTR; dwFlags,
dwFilter: DWORD; GroupId: TGroupID; lpFirstCacheEntryInfo:
PInternetCacheEntryInfo; var lpdwFirstCacheEntryInfoBufferSize: DWORD;
lpGroupAttributes: Pointer; pcbGroupAttributes: LPDWORD;
lpReserved: Pointer): THandle; stdcall;
{$EXTERNALSYM FindNextUrlCacheEntryExA}
function FindNextUrlCacheEntryExA(hEnumHandle: THandle; lpFirstCacheEntryInfo:
PInternetCacheEntryInfoA; var lpdwFirstCacheEntryInfoBufferSize: DWORD;
lpGroupAttributes: Pointer; pcbGroupAttributes: LPDWORD;
lpReserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM FindNextUrlCacheEntryExW}
function FindNextUrlCacheEntryExW(hEnumHandle: THandle; lpFirstCacheEntryInfo:
PInternetCacheEntryInfoW; var lpdwFirstCacheEntryInfoBufferSize: DWORD;
lpGroupAttributes: Pointer; pcbGroupAttributes: LPDWORD;
lpReserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM FindNextUrlCacheEntryEx}
function FindNextUrlCacheEntryEx(hEnumHandle: THandle; lpFirstCacheEntryInfo:
PInternetCacheEntryInfo; var lpdwFirstCacheEntryInfoBufferSize: DWORD;
lpGroupAttributes: Pointer; pcbGroupAttributes: LPDWORD;
lpReserved: Pointer): BOOL; stdcall;
{$EXTERNALSYM FindFirstUrlCacheEntryA}
function FindFirstUrlCacheEntryA(lpszUrlSearchPattern: PAnsiChar;
lpFirstCacheEntryInfo: PInternetCacheEntryInfoA;
var lpdwFirstCacheEntryInfoBufferSize: DWORD): THandle; stdcall;
{$EXTERNALSYM FindFirstUrlCacheEntryW}
function FindFirstUrlCacheEntryW(lpszUrlSearchPattern: PWideChar;
lpFirstCacheEntryInfo: PInternetCacheEntryInfoW;
var lpdwFirstCacheEntryInfoBufferSize: DWORD): THandle; stdcall;
{$EXTERNALSYM FindFirstUrlCacheEntry}
function FindFirstUrlCacheEntry(lpszUrlSearchPattern: PTSTR;
lpFirstCacheEntryInfo: PInternetCacheEntryInfo;
var lpdwFirstCacheEntryInfoBufferSize: DWORD): THandle; stdcall;
{$EXTERNALSYM FindNextUrlCacheEntryA}
function FindNextUrlCacheEntryA(hEnumHandle: THandle; lpNextCacheEntryInfo:
PInternetCacheEntryInfoA; var lpdwNextCacheEntryInfoBufferSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM FindNextUrlCacheEntryW}
function FindNextUrlCacheEntryW(hEnumHandle: THandle; lpNextCacheEntryInfo:
PInternetCacheEntryInfoW; var lpdwNextCacheEntryInfoBufferSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM FindNextUrlCacheEntry}
function FindNextUrlCacheEntry(hEnumHandle: THandle; lpNextCacheEntryInfo:
PInternetCacheEntryInfo; var lpdwNextCacheEntryInfoBufferSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM FindCloseUrlCache}
function FindCloseUrlCache(hEnumHandle: THandle): BOOL; stdcall;
{$EXTERNALSYM DeleteUrlCacheEntry}
function DeleteUrlCacheEntryA(lpszUrlName: PAnsiChar): BOOL; stdcall;
{$EXTERNALSYM DeleteUrlCacheEntry}
function DeleteUrlCacheEntryW(lpszUrlName: PWideChar): BOOL; stdcall;
{$EXTERNALSYM DeleteUrlCacheEntry}
function DeleteUrlCacheEntry(lpszUrlName: PTSTR): BOOL; stdcall;
//
// Autodial APIs
//
{$EXTERNALSYM InternetDialA}
function InternetDialA(hwndParent: HWND; lpszConnectoid: PAnsiChar; dwFlags: DWORD;
out lpdwConnection: DWORD_PTR; dwReserved: DWORD): DWORD; stdcall;
{$EXTERNALSYM InternetDialW}
function InternetDialW(hwndParent: HWND; lpszConnectoid: PWideChar; dwFlags: DWORD;
out lpdwConnection: DWORD_PTR; dwReserved: DWORD): DWORD; stdcall;
{$EXTERNALSYM InternetDial}
function InternetDial(hwndParent: HWND; lpszConnectoid: PTSTR; dwFlags: DWORD;
out lpdwConnection: DWORD_PTR; dwReserved: DWORD): DWORD; stdcall;
// Flags for InternetDial - must not conflict with InternetAutodial flags
// as they are valid here also.
const
{$EXTERNALSYM INTERNET_DIAL_FORCE_PROMPT}
INTERNET_DIAL_FORCE_PROMPT = $2000;
{$EXTERNALSYM INTERNET_DIAL_SHOW_OFFLINE}
INTERNET_DIAL_SHOW_OFFLINE = $4000;
{$EXTERNALSYM INTERNET_DIAL_UNATTENDED}
INTERNET_DIAL_UNATTENDED = $8000;
{$EXTERNALSYM InternetHangUp}
function InternetHangUp(dwConnection, dwReserved: DWORD): DWORD; stdcall;
const
{$EXTERNALSYM INTERENT_GOONLINE_REFRESH}
INTERENT_GOONLINE_REFRESH = $00000001;
{$EXTERNALSYM INTERENT_GOONLINE_MASK}
INTERENT_GOONLINE_MASK = $00000001;
{$EXTERNALSYM InternetGoOnlineA}
function InternetGoOnlineA(lpszURL: PAnsiChar; hwndParent: HWND; dwFlag: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetGoOnlineW}
function InternetGoOnlineW(lpszURL: PWideChar; hwndParent: HWND; dwFlag: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetGoOnline}
function InternetGoOnline(lpszURL: PTSTR; hwndParent: HWND; dwFlag: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetAutodial}
function InternetAutodial(dwFlags, dwReserved: DWORD): BOOL; stdcall;
// Flags for InternetAutodial
const
{$EXTERNALSYM INTERNET_AUTODIAL_FORCE_ONLINE}
INTERNET_AUTODIAL_FORCE_ONLINE = 1;
{$EXTERNALSYM INTERNET_AUTODIAL_FORCE_UNATTENDED}
INTERNET_AUTODIAL_FORCE_UNATTENDED = 2;
{$EXTERNALSYM INTERNET_AUTODIAL_FAILIFSECURITYCHECK}
INTERNET_AUTODIAL_FAILIFSECURITYCHECK = 4;
{$EXTERNALSYM INTERNET_AUTODIAL_FLAGS_MASK}
INTERNET_AUTODIAL_FLAGS_MASK = INTERNET_AUTODIAL_FORCE_ONLINE or
INTERNET_AUTODIAL_FORCE_UNATTENDED or
INTERNET_AUTODIAL_FAILIFSECURITYCHECK;
{$EXTERNALSYM InternetAutodialHangup}
function InternetAutodialHangup(dwReserved: DWORD): DWORD; stdcall;
{$EXTERNALSYM InternetGetConnectedState}
function InternetGetConnectedState(var lpdwFlags: DWORD; dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetGetConnectedStateExA}
function InternetGetConnectedStateExA(out lpdwFlags: DWORD;
lpszConnectionName: PAnsiChar; dwNameLen, dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetGetConnectedStateExW}
function InternetGetConnectedStateExW(out lpdwFlags: DWORD;
lpszConnectionName: PWideChar; dwNameLen, dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetGetConnectedStateEx}
function InternetGetConnectedStateEx(out lpdwFlags: DWORD;
lpszConnectionName: PTSTR; dwNameLen, dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetInitializeAutoProxyDll}
function InternetInitializeAutoProxyDll(dwReserved: DWORD): BOOL; stdcall;
// Flags for InternetGetConnectedState and Ex
const
{$EXTERNALSYM INTERNET_CONNECTION_MODEM}
INTERNET_CONNECTION_MODEM = $01;
{$EXTERNALSYM INTERNET_CONNECTION_LAN}
INTERNET_CONNECTION_LAN = $02;
{$EXTERNALSYM INTERNET_CONNECTION_PROXY}
INTERNET_CONNECTION_PROXY = $04;
{$EXTERNALSYM INTERNET_CONNECTION_MODEM_BUSY}
INTERNET_CONNECTION_MODEM_BUSY = $08; // no longer used
{$EXTERNALSYM INTERNET_RAS_INSTALLED}
INTERNET_RAS_INSTALLED = $10;
{$EXTERNALSYM INTERNET_CONNECTION_OFFLINE}
INTERNET_CONNECTION_OFFLINE = $20;
{$EXTERNALSYM INTERNET_CONNECTION_CONFIGURED}
INTERNET_CONNECTION_CONFIGURED = $40;
//
// Custom dial handler functions
//
// Custom dial handler prototype
type
{$EXTERNALSYM PFN_DIAL_HANDLER}
PFN_DIAL_HANDLER = function(p1: HWND; p2: LPCSTR; p3: DWORD;
var p4: DWORD): DWORD stdcall;
PFNDialHandler = PFN_DIAL_HANDLER;
// Flags for custom dial handler
const
{$EXTERNALSYM INTERNET_CUSTOMDIAL_CONNECT}
INTERNET_CUSTOMDIAL_CONNECT = 0;
{$EXTERNALSYM INTERNET_CUSTOMDIAL_UNATTENDED}
INTERNET_CUSTOMDIAL_UNATTENDED = 1;
{$EXTERNALSYM INTERNET_CUSTOMDIAL_DISCONNECT}
INTERNET_CUSTOMDIAL_DISCONNECT = 2;
{$EXTERNALSYM INTERNET_CUSTOMDIAL_SHOWOFFLINE}
INTERNET_CUSTOMDIAL_SHOWOFFLINE = 4;
// Custom dial handler supported functionality flags
{$EXTERNALSYM INTERNET_CUSTOMDIAL_SAFE_FOR_UNATTENDED}
INTERNET_CUSTOMDIAL_SAFE_FOR_UNATTENDED = 1;
{$EXTERNALSYM INTERNET_CUSTOMDIAL_WILL_SUPPLY_STATE}
INTERNET_CUSTOMDIAL_WILL_SUPPLY_STATE = 2;
{$EXTERNALSYM INTERNET_CUSTOMDIAL_CAN_HANGUP}
INTERNET_CUSTOMDIAL_CAN_HANGUP = 4;
{$EXTERNALSYM InternetSetDialStateA}
function InternetSetDialStateA(lpszConnectoid: PAnsiChar;
dwState, dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetSetDialStateW}
function InternetSetDialStateW(lpszConnectoid: PWideChar;
dwState, dwReserved: DWORD): BOOL; stdcall;
{$EXTERNALSYM InternetSetDialState}
function InternetSetDialState(lpszConnectoid: PTSTR;
dwState, dwReserved: DWORD): BOOL; stdcall;
const
// States for InternetSetDialState
{$EXTERNALSYM INTERNET_DIALSTATE_DISCONNECTED}
INTERNET_DIALSTATE_DISCONNECTED = 1;
{$ENDIF JWA_IMPLEMENTATIONSECTION}
{$IFNDEF JWA_OMIT_SECTIONS}
implementation
{$ENDIF JWA_OMIT_SECTIONS}
{$IFNDEF JWA_INTERFACESECTION}
{$IFNDEF JWA_INCLUDEMODE}
const
winetdll = 'wininet.dll';
{$ENDIF JWA_INCLUDEMODE}
function InternetConnectUrlA(hInternet: HINTERNET; lpszUrl: PAnsiChar;
dwFlags, dwContext: DWORD): HINTERNET;
begin
Result := InternetConnectA(hInternet, lpszUrl, INTERNET_INVALID_PORT_NUMBER,
nil, nil, INTERNET_SERVICE_URL, dwFlags, dwContext);
end;
function InternetConnectUrlW(hInternet: HINTERNET; lpszUrl: PWideChar;
dwFlags, dwContext: DWORD): HINTERNET;
begin
Result := InternetConnectW(hInternet, lpszUrl, INTERNET_INVALID_PORT_NUMBER,
nil, nil, INTERNET_SERVICE_URL, dwFlags, dwContext);
end;
function InternetConnectUrl(hInternet: HINTERNET; lpszUrl: PTSTR;
dwFlags, dwContext: DWORD): HINTERNET;
begin
Result := InternetConnect(hInternet, lpszUrl, INTERNET_INVALID_PORT_NUMBER,
nil, nil, INTERNET_SERVICE_URL, dwFlags, dwContext);
end;
function IS_GOPHER_FILE(AType: DWORD): BOOL;
begin
Result := AType and GOPHER_TYPE_FILE_MASK <> 0;
end;
function IS_GOPHER_DIRECTORY(AType: DWORD): BOOL;
begin
Result := AType and GOPHER_TYPE_DIRECTORY <> 0;
end;
function IS_GOPHER_PHONE_SERVER(AType: DWORD): BOOL;
begin
Result := AType and GOPHER_TYPE_CSO <> 0;
end;
function IS_GOPHER_ERROR(AType: DWORD): BOOL;
begin
Result := AType and GOPHER_TYPE_ERROR <> 0;
end;
function IS_GOPHER_INDEX_SERVER(AType: DWORD): BOOL;
begin
Result := AType and GOPHER_TYPE_INDEX_SERVER <> 0;
end;
function IS_GOPHER_TELNET_SESSION(AType: DWORD): BOOL;
begin
Result := AType and GOPHER_TYPE_TELNET <> 0;
end;
function IS_GOPHER_BACKUP_SERVER(AType: DWORD): BOOL;
begin
Result := AType and GOPHER_TYPE_REDUNDANT <> 0;
end;
function IS_GOPHER_TN3270_SESSION(AType: DWORD): BOOL;
begin
Result := AType and GOPHER_TYPE_TN3270 <> 0;
end;
function IS_GOPHER_ASK(AType: DWORD): BOOL;
begin
Result := AType and GOPHER_TYPE_ASK <> 0;
end;
function IS_GOPHER_PLUS(AType: DWORD): BOOL;
begin
Result := AType and GOPHER_TYPE_GOPHER_PLUS <> 0;
end;
function IS_GOPHER_TYPE_KNOWN(AType: DWORD): BOOL;
begin
Result := AType and GOPHER_TYPE_UNKNOWN = 0;
end;
{$IFDEF DYNAMIC_LINK}
var
_InternetConnectA: Pointer;
function InternetConnectA;
begin
GetProcedureAddress(_InternetConnectA, winetdll, 'InternetConnectA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetConnectA]
end;
end;
var
_InternetConnectW: Pointer;
function InternetConnectW;
begin
GetProcedureAddress(_InternetConnectW, winetdll, 'InternetConnectW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetConnectW]
end;
end;
var
_InternetConnect: Pointer;
function InternetConnect;
begin
GetProcedureAddress(_InternetConnect, winetdll, 'InternetConnect');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetConnect]
end;
end;
var
_InternetCloseHandle: Pointer;
function InternetCloseHandle;
begin
GetProcedureAddress(_InternetCloseHandle, winetdll, 'InternetCloseHandle');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCloseHandle]
end;
end;
var
_InternetTimeFromSystemTimeA: Pointer;
function InternetTimeFromSystemTimeA;
begin
GetProcedureAddress(_InternetTimeFromSystemTimeA, winetdll, 'InternetTimeFromSystemTimeA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetTimeFromSystemTimeA]
end;
end;
var
_InternetTimeToSystemTimeA: Pointer;
function InternetTimeToSystemTimeA;
begin
GetProcedureAddress(_InternetTimeToSystemTimeA, winetdll, 'InternetTimeToSystemTimeA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetTimeToSystemTimeA]
end;
end;
var
_InternetCrackUrlA: Pointer;
function InternetCrackUrlA;
begin
GetProcedureAddress(_InternetCrackUrlA, winetdll, 'InternetCrackUrlA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCrackUrlA]
end;
end;
var
_InternetCreateUrlA: Pointer;
function InternetCreateUrlA;
begin
GetProcedureAddress(_InternetCreateUrlA, winetdll, 'InternetCreateUrlA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCreateUrlA]
end;
end;
var
_InternetCanonicalizeUrlA: Pointer;
function InternetCanonicalizeUrlA;
begin
GetProcedureAddress(_InternetCanonicalizeUrlA, winetdll, 'InternetCanonicalizeUrlA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCanonicalizeUrlA]
end;
end;
var
_InternetCombineUrlA: Pointer;
function InternetCombineUrlA;
begin
GetProcedureAddress(_InternetCombineUrlA, winetdll, 'InternetCombineUrlA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCombineUrlA]
end;
end;
var
_InternetOpenUrlA: Pointer;
function InternetOpenUrlA;
begin
GetProcedureAddress(_InternetOpenUrlA, winetdll, 'InternetOpenUrlA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetOpenUrlA]
end;
end;
var
_InternetTimeFromSystemTimeW: Pointer;
function InternetTimeFromSystemTimeW;
begin
GetProcedureAddress(_InternetTimeFromSystemTimeW, winetdll, 'InternetTimeFromSystemTimeW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetTimeFromSystemTimeW]
end;
end;
var
_InternetTimeToSystemTimeW: Pointer;
function InternetTimeToSystemTimeW;
begin
GetProcedureAddress(_InternetTimeToSystemTimeW, winetdll, 'InternetTimeToSystemTimeW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetTimeToSystemTimeW]
end;
end;
var
_InternetCrackUrlW: Pointer;
function InternetCrackUrlW;
begin
GetProcedureAddress(_InternetCrackUrlW, winetdll, 'InternetCrackUrlW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCrackUrlW]
end;
end;
var
_InternetCreateUrlW: Pointer;
function InternetCreateUrlW;
begin
GetProcedureAddress(_InternetCreateUrlW, winetdll, 'InternetCreateUrlW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCreateUrlW]
end;
end;
var
_InternetCanonicalizeUrlW: Pointer;
function InternetCanonicalizeUrlW;
begin
GetProcedureAddress(_InternetCanonicalizeUrlW, winetdll, 'InternetCanonicalizeUrlW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCanonicalizeUrlW]
end;
end;
var
_InternetCombineUrlW: Pointer;
function InternetCombineUrlW;
begin
GetProcedureAddress(_InternetCombineUrlW, winetdll, 'InternetCombineUrlW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCombineUrlW]
end;
end;
var
_InternetOpenUrlW: Pointer;
function InternetOpenUrlW;
begin
GetProcedureAddress(_InternetOpenUrlW, winetdll, 'InternetOpenUrlW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetOpenUrlW]
end;
end;
var
_InternetTimeFromSystemTime: Pointer;
function InternetTimeFromSystemTime;
begin
GetProcedureAddress(_InternetTimeFromSystemTime, winetdll, 'InternetTimeFromSystemTime');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetTimeFromSystemTime]
end;
end;
var
_InternetTimeToSystemTime: Pointer;
function InternetTimeToSystemTime;
begin
GetProcedureAddress(_InternetTimeToSystemTime, winetdll, 'InternetTimeToSystemTime');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetTimeToSystemTime]
end;
end;
var
_InternetCrackUrl: Pointer;
function InternetCrackUrl;
begin
GetProcedureAddress(_InternetCrackUrl, winetdll, 'InternetCrackUrl');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCrackUrl]
end;
end;
var
_InternetCreateUrl: Pointer;
function InternetCreateUrl;
begin
GetProcedureAddress(_InternetCreateUrl, winetdll, 'InternetCreateUrl');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCreateUrl]
end;
end;
var
_InternetCanonicalizeUrl: Pointer;
function InternetCanonicalizeUrl;
begin
GetProcedureAddress(_InternetCanonicalizeUrl, winetdll, 'InternetCanonicalizeUrl');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCanonicalizeUrl]
end;
end;
var
_InternetCombineUrl: Pointer;
function InternetCombineUrl;
begin
GetProcedureAddress(_InternetCombineUrl, winetdll, 'InternetCombineUrl');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCombineUrl]
end;
end;
var
_InternetOpenUrl: Pointer;
function InternetOpenUrl;
begin
GetProcedureAddress(_InternetOpenUrl, winetdll, 'InternetOpenUrl');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetOpenUrl]
end;
end;
var
_InternetReadFile: Pointer;
function InternetReadFile;
begin
GetProcedureAddress(_InternetReadFile, winetdll, 'InternetReadFile');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetReadFile]
end;
end;
var
_InternetReadFileExA: Pointer;
function InternetReadFileExA;
begin
GetProcedureAddress(_InternetReadFileExA, winetdll, 'InternetReadFileExA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetReadFileExA]
end;
end;
var
_InternetReadFileExW: Pointer;
function InternetReadFileExW;
begin
GetProcedureAddress(_InternetReadFileExW, winetdll, 'InternetReadFileExW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetReadFileExW]
end;
end;
var
_InternetReadFileEx: Pointer;
function InternetReadFileEx;
begin
GetProcedureAddress(_InternetReadFileEx, winetdll, 'InternetReadFileEx');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetReadFileEx]
end;
end;
var
_InternetSetFilePointer: Pointer;
function InternetSetFilePointer;
begin
GetProcedureAddress(_InternetSetFilePointer, winetdll, 'InternetSetFilePointer');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetFilePointer]
end;
end;
var
_InternetWriteFile: Pointer;
function InternetWriteFile;
begin
GetProcedureAddress(_InternetWriteFile, winetdll, 'InternetWriteFile');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetWriteFile]
end;
end;
var
_InternetQueryDataAvailable: Pointer;
function InternetQueryDataAvailable;
begin
GetProcedureAddress(_InternetQueryDataAvailable, winetdll, 'InternetQueryDataAvailable');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetQueryDataAvailable]
end;
end;
var
_InternetFindNextFileA: Pointer;
function InternetFindNextFileA;
begin
GetProcedureAddress(_InternetFindNextFileA, winetdll, 'InternetFindNextFileA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetFindNextFileA]
end;
end;
var
_InternetQueryOptionA: Pointer;
function InternetQueryOptionA;
begin
GetProcedureAddress(_InternetQueryOptionA, winetdll, 'InternetQueryOptionA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetQueryOptionA]
end;
end;
var
_InternetSetOptionA: Pointer;
function InternetSetOptionA;
begin
GetProcedureAddress(_InternetSetOptionA, winetdll, 'InternetSetOptionA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetOptionA]
end;
end;
var
_InternetSetOptionExA: Pointer;
function InternetSetOptionExA;
begin
GetProcedureAddress(_InternetSetOptionExA, winetdll, 'InternetSetOptionExA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetOptionExA]
end;
end;
var
_InternetFindNextFileW: Pointer;
function InternetFindNextFileW;
begin
GetProcedureAddress(_InternetFindNextFileW, winetdll, 'InternetFindNextFileW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetFindNextFileW]
end;
end;
var
_InternetQueryOptionW: Pointer;
function InternetQueryOptionW;
begin
GetProcedureAddress(_InternetQueryOptionW, winetdll, 'InternetQueryOptionW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetQueryOptionW]
end;
end;
var
_InternetSetOptionW: Pointer;
function InternetSetOptionW;
begin
GetProcedureAddress(_InternetSetOptionW, winetdll, 'InternetSetOptionW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetOptionW]
end;
end;
var
_InternetSetOptionExW: Pointer;
function InternetSetOptionExW;
begin
GetProcedureAddress(_InternetSetOptionExW, winetdll, 'InternetSetOptionExW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetOptionExW]
end;
end;
var
_InternetFindNextFile: Pointer;
function InternetFindNextFile;
begin
GetProcedureAddress(_InternetFindNextFile, winetdll, 'InternetFindNextFile');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetFindNextFile]
end;
end;
var
_InternetQueryOption: Pointer;
function InternetQueryOption;
begin
GetProcedureAddress(_InternetQueryOption, winetdll, 'InternetQueryOption');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetQueryOption]
end;
end;
var
_InternetSetOption: Pointer;
function InternetSetOption;
begin
GetProcedureAddress(_InternetSetOption, winetdll, 'InternetSetOption');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetOption]
end;
end;
var
_InternetSetOptionEx: Pointer;
function InternetSetOptionEx;
begin
GetProcedureAddress(_InternetSetOptionEx, winetdll, 'InternetSetOptionEx');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetOptionEx]
end;
end;
var
_InternetLockRequestFile: Pointer;
function InternetLockRequestFile;
begin
GetProcedureAddress(_InternetLockRequestFile, winetdll, 'InternetLockRequestFile');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetLockRequestFile]
end;
end;
var
_InternetUnlockRequestFile: Pointer;
function InternetUnlockRequestFile;
begin
GetProcedureAddress(_InternetUnlockRequestFile, winetdll, 'InternetUnlockRequestFile');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetUnlockRequestFile]
end;
end;
var
_InternetGetLastResponseInfoA: Pointer;
function InternetGetLastResponseInfoA;
begin
GetProcedureAddress(_InternetGetLastResponseInfoA, winetdll, 'InternetGetLastResponseInfoA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetGetLastResponseInfoA]
end;
end;
var
_InternetSetStatusCallbackA: Pointer;
function InternetSetStatusCallbackA;
begin
GetProcedureAddress(_InternetSetStatusCallbackA, winetdll, 'InternetSetStatusCallbackA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetStatusCallbackA]
end;
end;
var
_FtpFindFirstFileA: Pointer;
function FtpFindFirstFileA;
begin
GetProcedureAddress(_FtpFindFirstFileA, winetdll, 'FtpFindFirstFileA');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpFindFirstFileA]
end;
end;
var
_FtpGetFileA: Pointer;
function FtpGetFileA;
begin
GetProcedureAddress(_FtpGetFileA, winetdll, 'FtpGetFileA');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpGetFileA]
end;
end;
var
_FtpPutFileA: Pointer;
function FtpPutFileA;
begin
GetProcedureAddress(_FtpPutFileA, winetdll, 'FtpPutFileA');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpPutFileA]
end;
end;
var
_InternetGetLastResponseInfoW: Pointer;
function InternetGetLastResponseInfoW;
begin
GetProcedureAddress(_InternetGetLastResponseInfoW, winetdll, 'InternetGetLastResponseInfoW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetGetLastResponseInfoW]
end;
end;
var
_InternetSetStatusCallbackW: Pointer;
function InternetSetStatusCallbackW;
begin
GetProcedureAddress(_InternetSetStatusCallbackW, winetdll, 'InternetSetStatusCallbackW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetStatusCallbackW]
end;
end;
var
_FtpFindFirstFileW: Pointer;
function FtpFindFirstFileW;
begin
GetProcedureAddress(_FtpFindFirstFileW, winetdll, 'FtpFindFirstFileW');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpFindFirstFileW]
end;
end;
var
_FtpGetFileW: Pointer;
function FtpGetFileW;
begin
GetProcedureAddress(_FtpGetFileW, winetdll, 'FtpGetFileW');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpGetFileW]
end;
end;
var
_FtpPutFileW: Pointer;
function FtpPutFileW;
begin
GetProcedureAddress(_FtpPutFileW, winetdll, 'FtpPutFileW');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpPutFileW]
end;
end;
var
_InternetGetLastResponseInfo: Pointer;
function InternetGetLastResponseInfo;
begin
GetProcedureAddress(_InternetGetLastResponseInfo, winetdll, 'InternetGetLastResponseInfo');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetGetLastResponseInfo]
end;
end;
var
_InternetSetStatusCallback: Pointer;
function InternetSetStatusCallback;
begin
GetProcedureAddress(_InternetSetStatusCallback, winetdll, 'InternetSetStatusCallback');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetStatusCallback]
end;
end;
var
_FtpFindFirstFile: Pointer;
function FtpFindFirstFile;
begin
GetProcedureAddress(_FtpFindFirstFile, winetdll, 'FtpFindFirstFile');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpFindFirstFile]
end;
end;
var
_FtpGetFile: Pointer;
function FtpGetFile;
begin
GetProcedureAddress(_FtpGetFile, winetdll, 'FtpGetFile');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpGetFile]
end;
end;
var
_FtpPutFile: Pointer;
function FtpPutFile;
begin
GetProcedureAddress(_FtpPutFile, winetdll, 'FtpPutFile');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpPutFile]
end;
end;
var
_FtpGetFileEx: Pointer;
function FtpGetFileEx;
begin
GetProcedureAddress(_FtpGetFileEx, winetdll, 'FtpGetFileEx');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpGetFileEx]
end;
end;
var
_FtpPutFileEx: Pointer;
function FtpPutFileEx;
begin
GetProcedureAddress(_FtpPutFileEx, winetdll, 'FtpPutFileEx');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpPutFileEx]
end;
end;
var
_FtpDeleteFileA: Pointer;
function FtpDeleteFileA;
begin
GetProcedureAddress(_FtpDeleteFileA, winetdll, 'FtpDeleteFileA');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpDeleteFileA]
end;
end;
var
_FtpRenameFileA: Pointer;
function FtpRenameFileA;
begin
GetProcedureAddress(_FtpRenameFileA, winetdll, 'FtpRenameFileA');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpRenameFileA]
end;
end;
var
_FtpOpenFileA: Pointer;
function FtpOpenFileA;
begin
GetProcedureAddress(_FtpOpenFileA, winetdll, 'FtpOpenFileA');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpOpenFileA]
end;
end;
var
_FtpCreateDirectoryA: Pointer;
function FtpCreateDirectoryA;
begin
GetProcedureAddress(_FtpCreateDirectoryA, winetdll, 'FtpCreateDirectoryA');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpCreateDirectoryA]
end;
end;
var
_FtpRemoveDirectoryA: Pointer;
function FtpRemoveDirectoryA;
begin
GetProcedureAddress(_FtpRemoveDirectoryA, winetdll, 'FtpRemoveDirectoryA');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpRemoveDirectoryA]
end;
end;
var
_FtpSetCurrentDirectoryA: Pointer;
function FtpSetCurrentDirectoryA;
begin
GetProcedureAddress(_FtpSetCurrentDirectoryA, winetdll, 'FtpSetCurrentDirectoryA');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpSetCurrentDirectoryA]
end;
end;
var
_FtpGetCurrentDirectoryA: Pointer;
function FtpGetCurrentDirectoryA;
begin
GetProcedureAddress(_FtpGetCurrentDirectoryA, winetdll, 'FtpGetCurrentDirectoryA');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpGetCurrentDirectoryA]
end;
end;
var
_FtpCommandA: Pointer;
function FtpCommandA;
begin
GetProcedureAddress(_FtpCommandA, winetdll, 'FtpCommandA');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpCommandA]
end;
end;
var
_FtpDeleteFileW: Pointer;
function FtpDeleteFileW;
begin
GetProcedureAddress(_FtpDeleteFileW, winetdll, 'FtpDeleteFileW');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpDeleteFileW]
end;
end;
var
_FtpRenameFileW: Pointer;
function FtpRenameFileW;
begin
GetProcedureAddress(_FtpRenameFileW, winetdll, 'FtpRenameFileW');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpRenameFileW]
end;
end;
var
_FtpOpenFileW: Pointer;
function FtpOpenFileW;
begin
GetProcedureAddress(_FtpOpenFileW, winetdll, 'FtpOpenFileW');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpOpenFileW]
end;
end;
var
_FtpCreateDirectoryW: Pointer;
function FtpCreateDirectoryW;
begin
GetProcedureAddress(_FtpCreateDirectoryW, winetdll, 'FtpCreateDirectoryW');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpCreateDirectoryW]
end;
end;
var
_FtpRemoveDirectoryW: Pointer;
function FtpRemoveDirectoryW;
begin
GetProcedureAddress(_FtpRemoveDirectoryW, winetdll, 'FtpRemoveDirectoryW');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpRemoveDirectoryW]
end;
end;
var
_FtpSetCurrentDirectoryW: Pointer;
function FtpSetCurrentDirectoryW;
begin
GetProcedureAddress(_FtpSetCurrentDirectoryW, winetdll, 'FtpSetCurrentDirectoryW');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpSetCurrentDirectoryW]
end;
end;
var
_FtpGetCurrentDirectoryW: Pointer;
function FtpGetCurrentDirectoryW;
begin
GetProcedureAddress(_FtpGetCurrentDirectoryW, winetdll, 'FtpGetCurrentDirectoryW');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpGetCurrentDirectoryW]
end;
end;
var
_FtpCommandW: Pointer;
function FtpCommandW;
begin
GetProcedureAddress(_FtpCommandW, winetdll, 'FtpCommandW');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpCommandW]
end;
end;
var
_FtpDeleteFile: Pointer;
function FtpDeleteFile;
begin
GetProcedureAddress(_FtpDeleteFile, winetdll, 'FtpDeleteFile');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpDeleteFile]
end;
end;
var
_FtpRenameFile: Pointer;
function FtpRenameFile;
begin
GetProcedureAddress(_FtpRenameFile, winetdll, 'FtpRenameFile');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpRenameFile]
end;
end;
var
_FtpOpenFile: Pointer;
function FtpOpenFile;
begin
GetProcedureAddress(_FtpOpenFile, winetdll, 'FtpOpenFile');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpOpenFile]
end;
end;
var
_FtpCreateDirectory: Pointer;
function FtpCreateDirectory;
begin
GetProcedureAddress(_FtpCreateDirectory, winetdll, 'FtpCreateDirectory');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpCreateDirectory]
end;
end;
var
_FtpRemoveDirectory: Pointer;
function FtpRemoveDirectory;
begin
GetProcedureAddress(_FtpRemoveDirectory, winetdll, 'FtpRemoveDirectory');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpRemoveDirectory]
end;
end;
var
_FtpSetCurrentDirectory: Pointer;
function FtpSetCurrentDirectory;
begin
GetProcedureAddress(_FtpSetCurrentDirectory, winetdll, 'FtpSetCurrentDirectory');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpSetCurrentDirectory]
end;
end;
var
_FtpGetCurrentDirectory: Pointer;
function FtpGetCurrentDirectory;
begin
GetProcedureAddress(_FtpGetCurrentDirectory, winetdll, 'FtpGetCurrentDirectory');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpGetCurrentDirectory]
end;
end;
var
_FtpCommand: Pointer;
function FtpCommand;
begin
GetProcedureAddress(_FtpCommand, winetdll, 'FtpCommand');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpCommand]
end;
end;
var
_FtpGetFileSize: Pointer;
function FtpGetFileSize;
begin
GetProcedureAddress(_FtpGetFileSize, winetdll, 'FtpGetFileSize');
asm
MOV ESP, EBP
POP EBP
JMP [_FtpGetFileSize]
end;
end;
var
_GopherCreateLocatorA: Pointer;
function GopherCreateLocatorA;
begin
GetProcedureAddress(_GopherCreateLocatorA, winetdll, 'GopherCreateLocatorA');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherCreateLocatorA]
end;
end;
var
_GopherGetLocatorTypeA: Pointer;
function GopherGetLocatorTypeA;
begin
GetProcedureAddress(_GopherGetLocatorTypeA, winetdll, 'GopherGetLocatorTypeA');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherGetLocatorTypeA]
end;
end;
var
_GopherFindFirstFileA: Pointer;
function GopherFindFirstFileA;
begin
GetProcedureAddress(_GopherFindFirstFileA, winetdll, 'GopherFindFirstFileA');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherFindFirstFileA]
end;
end;
var
_GopherOpenFileA: Pointer;
function GopherOpenFileA;
begin
GetProcedureAddress(_GopherOpenFileA, winetdll, 'GopherOpenFileA');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherOpenFileA]
end;
end;
var
_GopherGetAttributeA: Pointer;
function GopherGetAttributeA;
begin
GetProcedureAddress(_GopherGetAttributeA, winetdll, 'GopherGetAttributeA');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherGetAttributeA]
end;
end;
var
_HttpOpenRequestA: Pointer;
function HttpOpenRequestA;
begin
GetProcedureAddress(_HttpOpenRequestA, winetdll, 'HttpOpenRequestA');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpOpenRequestA]
end;
end;
var
_HttpAddRequestHeadersA: Pointer;
function HttpAddRequestHeadersA;
begin
GetProcedureAddress(_HttpAddRequestHeadersA, winetdll, 'HttpAddRequestHeadersA');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpAddRequestHeadersA]
end;
end;
var
_HttpSendRequestA: Pointer;
function HttpSendRequestA;
begin
GetProcedureAddress(_HttpSendRequestA, winetdll, 'HttpSendRequestA');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpSendRequestA]
end;
end;
var
_HttpSendRequestExA: Pointer;
function HttpSendRequestExA;
begin
GetProcedureAddress(_HttpSendRequestExA, winetdll, 'HttpSendRequestExA');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpSendRequestExA]
end;
end;
var
_HttpEndRequestA: Pointer;
function HttpEndRequestA;
begin
GetProcedureAddress(_HttpEndRequestA, winetdll, 'HttpEndRequestA');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpEndRequestA]
end;
end;
var
_HttpQueryInfoA: Pointer;
function HttpQueryInfoA;
begin
GetProcedureAddress(_HttpQueryInfoA, winetdll, 'HttpQueryInfoA');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpQueryInfoA]
end;
end;
var
_InternetSetCookieA: Pointer;
function InternetSetCookieA;
begin
GetProcedureAddress(_InternetSetCookieA, winetdll, 'InternetSetCookieA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetCookieA]
end;
end;
var
_InternetGetCookieA: Pointer;
function InternetGetCookieA;
begin
GetProcedureAddress(_InternetGetCookieA, winetdll, 'InternetGetCookieA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetGetCookieA]
end;
end;
var
_GopherCreateLocatorW: Pointer;
function GopherCreateLocatorW;
begin
GetProcedureAddress(_GopherCreateLocatorW, winetdll, 'GopherCreateLocatorW');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherCreateLocatorW]
end;
end;
var
_GopherGetLocatorTypeW: Pointer;
function GopherGetLocatorTypeW;
begin
GetProcedureAddress(_GopherGetLocatorTypeW, winetdll, 'GopherGetLocatorTypeW');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherGetLocatorTypeW]
end;
end;
var
_GopherFindFirstFileW: Pointer;
function GopherFindFirstFileW;
begin
GetProcedureAddress(_GopherFindFirstFileW, winetdll, 'GopherFindFirstFileW');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherFindFirstFileW]
end;
end;
var
_GopherOpenFileW: Pointer;
function GopherOpenFileW;
begin
GetProcedureAddress(_GopherOpenFileW, winetdll, 'GopherOpenFileW');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherOpenFileW]
end;
end;
var
_GopherGetAttributeW: Pointer;
function GopherGetAttributeW;
begin
GetProcedureAddress(_GopherGetAttributeW, winetdll, 'GopherGetAttributeW');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherGetAttributeW]
end;
end;
var
_HttpOpenRequestW: Pointer;
function HttpOpenRequestW;
begin
GetProcedureAddress(_HttpOpenRequestW, winetdll, 'HttpOpenRequestW');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpOpenRequestW]
end;
end;
var
_HttpAddRequestHeadersW: Pointer;
function HttpAddRequestHeadersW;
begin
GetProcedureAddress(_HttpAddRequestHeadersW, winetdll, 'HttpAddRequestHeadersW');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpAddRequestHeadersW]
end;
end;
var
_HttpSendRequestW: Pointer;
function HttpSendRequestW;
begin
GetProcedureAddress(_HttpSendRequestW, winetdll, 'HttpSendRequestW');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpSendRequestW]
end;
end;
var
_HttpSendRequestExW: Pointer;
function HttpSendRequestExW;
begin
GetProcedureAddress(_HttpSendRequestExW, winetdll, 'HttpSendRequestExW');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpSendRequestExW]
end;
end;
var
_HttpEndRequestW: Pointer;
function HttpEndRequestW;
begin
GetProcedureAddress(_HttpEndRequestW, winetdll, 'HttpEndRequestW');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpEndRequestW]
end;
end;
var
_HttpQueryInfoW: Pointer;
function HttpQueryInfoW;
begin
GetProcedureAddress(_HttpQueryInfoW, winetdll, 'HttpQueryInfoW');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpQueryInfoW]
end;
end;
var
_InternetSetCookieW: Pointer;
function InternetSetCookieW;
begin
GetProcedureAddress(_InternetSetCookieW, winetdll, 'InternetSetCookieW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetCookieW]
end;
end;
var
_InternetGetCookieW: Pointer;
function InternetGetCookieW;
begin
GetProcedureAddress(_InternetGetCookieW, winetdll, 'InternetGetCookieW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetGetCookieW]
end;
end;
var
_GopherCreateLocator: Pointer;
function GopherCreateLocator;
begin
GetProcedureAddress(_GopherCreateLocator, winetdll, 'GopherCreateLocator');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherCreateLocator]
end;
end;
var
_GopherGetLocatorType: Pointer;
function GopherGetLocatorType;
begin
GetProcedureAddress(_GopherGetLocatorType, winetdll, 'GopherGetLocatorType');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherGetLocatorType]
end;
end;
var
_GopherFindFirstFile: Pointer;
function GopherFindFirstFile;
begin
GetProcedureAddress(_GopherFindFirstFile, winetdll, 'GopherFindFirstFile');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherFindFirstFile]
end;
end;
var
_GopherOpenFile: Pointer;
function GopherOpenFile;
begin
GetProcedureAddress(_GopherOpenFile, winetdll, 'GopherOpenFile');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherOpenFile]
end;
end;
var
_GopherGetAttribute: Pointer;
function GopherGetAttribute;
begin
GetProcedureAddress(_GopherGetAttribute, winetdll, 'GopherGetAttribute');
asm
MOV ESP, EBP
POP EBP
JMP [_GopherGetAttribute]
end;
end;
var
_HttpOpenRequest: Pointer;
function HttpOpenRequest;
begin
GetProcedureAddress(_HttpOpenRequest, winetdll, 'HttpOpenRequest');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpOpenRequest]
end;
end;
var
_HttpAddRequestHeaders: Pointer;
function HttpAddRequestHeaders;
begin
GetProcedureAddress(_HttpAddRequestHeaders, winetdll, 'HttpAddRequestHeaders');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpAddRequestHeaders]
end;
end;
var
_HttpSendRequest: Pointer;
function HttpSendRequest;
begin
GetProcedureAddress(_HttpSendRequest, winetdll, 'HttpSendRequest');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpSendRequest]
end;
end;
var
_HttpSendRequestEx: Pointer;
function HttpSendRequestEx;
begin
GetProcedureAddress(_HttpSendRequestEx, winetdll, 'HttpSendRequestEx');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpSendRequestEx]
end;
end;
var
_HttpEndRequest: Pointer;
function HttpEndRequest;
begin
GetProcedureAddress(_HttpEndRequest, winetdll, 'HttpEndRequest');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpEndRequest]
end;
end;
var
_HttpQueryInfo: Pointer;
function HttpQueryInfo;
begin
GetProcedureAddress(_HttpQueryInfo, winetdll, 'HttpQueryInfo');
asm
MOV ESP, EBP
POP EBP
JMP [_HttpQueryInfo]
end;
end;
var
_InternetSetCookie: Pointer;
function InternetSetCookie;
begin
GetProcedureAddress(_InternetSetCookie, winetdll, 'InternetSetCookie');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetCookie]
end;
end;
var
_InternetGetCookie: Pointer;
function InternetGetCookie;
begin
GetProcedureAddress(_InternetGetCookie, winetdll, 'InternetGetCookie');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetGetCookie]
end;
end;
var
_InternetAttemptConnect: Pointer;
function InternetAttemptConnect;
begin
GetProcedureAddress(_InternetAttemptConnect, winetdll, 'InternetAttemptConnect');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetAttemptConnect]
end;
end;
var
_InternetCheckConnectionA: Pointer;
function InternetCheckConnectionA;
begin
GetProcedureAddress(_InternetCheckConnectionA, winetdll, 'InternetCheckConnectionA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCheckConnectionA]
end;
end;
var
_InternetCheckConnectionW: Pointer;
function InternetCheckConnectionW;
begin
GetProcedureAddress(_InternetCheckConnectionW, winetdll, 'InternetCheckConnectionW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCheckConnectionW]
end;
end;
var
_InternetCheckConnection: Pointer;
function InternetCheckConnection;
begin
GetProcedureAddress(_InternetCheckConnection, winetdll, 'InternetCheckConnection');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetCheckConnection]
end;
end;
var
_InternetAuthNotifyCallback: Pointer;
function InternetAuthNotifyCallback;
begin
GetProcedureAddress(_InternetAuthNotifyCallback, winetdll, 'InternetAuthNotifyCallback');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetAuthNotifyCallback]
end;
end;
var
_InternetErrorDlg: Pointer;
function InternetErrorDlg;
begin
GetProcedureAddress(_InternetErrorDlg, winetdll, 'InternetErrorDlg');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetErrorDlg]
end;
end;
var
_ResumeSuspendedDownload: Pointer;
function ResumeSuspendedDownload;
begin
GetProcedureAddress(_ResumeSuspendedDownload, winetdll, 'ResumeSuspendedDownload');
asm
MOV ESP, EBP
POP EBP
JMP [_ResumeSuspendedDownload]
end;
end;
var
_InternetConfirmZoneCrossingA: Pointer;
function InternetConfirmZoneCrossingA;
begin
GetProcedureAddress(_InternetConfirmZoneCrossingA, winetdll, 'InternetConfirmZoneCrossingA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetConfirmZoneCrossingA]
end;
end;
var
_CreateUrlCacheEntryA: Pointer;
function CreateUrlCacheEntryA;
begin
GetProcedureAddress(_CreateUrlCacheEntryA, winetdll, 'CreateUrlCacheEntryA');
asm
MOV ESP, EBP
POP EBP
JMP [_CreateUrlCacheEntryA]
end;
end;
var
_CommitUrlCacheEntryA: Pointer;
function CommitUrlCacheEntryA;
begin
GetProcedureAddress(_CommitUrlCacheEntryA, winetdll, 'CommitUrlCacheEntryA');
asm
MOV ESP, EBP
POP EBP
JMP [_CommitUrlCacheEntryA]
end;
end;
var
_RetrieveUrlCacheEntryFileA: Pointer;
function RetrieveUrlCacheEntryFileA;
begin
GetProcedureAddress(_RetrieveUrlCacheEntryFileA, winetdll, 'RetrieveUrlCacheEntryFileA');
asm
MOV ESP, EBP
POP EBP
JMP [_RetrieveUrlCacheEntryFileA]
end;
end;
var
_UnlockUrlCacheEntryFileA: Pointer;
function UnlockUrlCacheEntryFileA;
begin
GetProcedureAddress(_UnlockUrlCacheEntryFileA, winetdll, 'UnlockUrlCacheEntryFileA');
asm
MOV ESP, EBP
POP EBP
JMP [_UnlockUrlCacheEntryFileA]
end;
end;
var
_RetrieveUrlCacheEntryStreamA: Pointer;
function RetrieveUrlCacheEntryStreamA;
begin
GetProcedureAddress(_RetrieveUrlCacheEntryStreamA, winetdll, 'RetrieveUrlCacheEntryStreamA');
asm
MOV ESP, EBP
POP EBP
JMP [_RetrieveUrlCacheEntryStreamA]
end;
end;
var
_InternetConfirmZoneCrossingW: Pointer;
function InternetConfirmZoneCrossingW;
begin
GetProcedureAddress(_InternetConfirmZoneCrossingW, winetdll, 'InternetConfirmZoneCrossingW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetConfirmZoneCrossingW]
end;
end;
var
_CreateUrlCacheEntryW: Pointer;
function CreateUrlCacheEntryW;
begin
GetProcedureAddress(_CreateUrlCacheEntryW, winetdll, 'CreateUrlCacheEntryW');
asm
MOV ESP, EBP
POP EBP
JMP [_CreateUrlCacheEntryW]
end;
end;
var
_CommitUrlCacheEntryW: Pointer;
function CommitUrlCacheEntryW;
begin
GetProcedureAddress(_CommitUrlCacheEntryW, winetdll, 'CommitUrlCacheEntryW');
asm
MOV ESP, EBP
POP EBP
JMP [_CommitUrlCacheEntryW]
end;
end;
var
_RetrieveUrlCacheEntryFileW: Pointer;
function RetrieveUrlCacheEntryFileW;
begin
GetProcedureAddress(_RetrieveUrlCacheEntryFileW, winetdll, 'RetrieveUrlCacheEntryFileW');
asm
MOV ESP, EBP
POP EBP
JMP [_RetrieveUrlCacheEntryFileW]
end;
end;
var
_UnlockUrlCacheEntryFileW: Pointer;
function UnlockUrlCacheEntryFileW;
begin
GetProcedureAddress(_UnlockUrlCacheEntryFileW, winetdll, 'UnlockUrlCacheEntryFileW');
asm
MOV ESP, EBP
POP EBP
JMP [_UnlockUrlCacheEntryFileW]
end;
end;
var
_RetrieveUrlCacheEntryStreamW: Pointer;
function RetrieveUrlCacheEntryStreamW;
begin
GetProcedureAddress(_RetrieveUrlCacheEntryStreamW, winetdll, 'RetrieveUrlCacheEntryStreamW');
asm
MOV ESP, EBP
POP EBP
JMP [_RetrieveUrlCacheEntryStreamW]
end;
end;
var
_InternetConfirmZoneCrossing: Pointer;
function InternetConfirmZoneCrossing;
begin
GetProcedureAddress(_InternetConfirmZoneCrossing, winetdll, 'InternetConfirmZoneCrossing');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetConfirmZoneCrossing]
end;
end;
var
_CreateUrlCacheEntry: Pointer;
function CreateUrlCacheEntry;
begin
GetProcedureAddress(_CreateUrlCacheEntry, winetdll, 'CreateUrlCacheEntry');
asm
MOV ESP, EBP
POP EBP
JMP [_CreateUrlCacheEntry]
end;
end;
var
_CommitUrlCacheEntry: Pointer;
function CommitUrlCacheEntry;
begin
GetProcedureAddress(_CommitUrlCacheEntry, winetdll, 'CommitUrlCacheEntry');
asm
MOV ESP, EBP
POP EBP
JMP [_CommitUrlCacheEntry]
end;
end;
var
_RetrieveUrlCacheEntryFile: Pointer;
function RetrieveUrlCacheEntryFile;
begin
GetProcedureAddress(_RetrieveUrlCacheEntryFile, winetdll, 'RetrieveUrlCacheEntryFile');
asm
MOV ESP, EBP
POP EBP
JMP [_RetrieveUrlCacheEntryFile]
end;
end;
var
_UnlockUrlCacheEntryFile: Pointer;
function UnlockUrlCacheEntryFile;
begin
GetProcedureAddress(_UnlockUrlCacheEntryFile, winetdll, 'UnlockUrlCacheEntryFile');
asm
MOV ESP, EBP
POP EBP
JMP [_UnlockUrlCacheEntryFile]
end;
end;
var
_RetrieveUrlCacheEntryStream: Pointer;
function RetrieveUrlCacheEntryStream;
begin
GetProcedureAddress(_RetrieveUrlCacheEntryStream, winetdll, 'RetrieveUrlCacheEntryStream');
asm
MOV ESP, EBP
POP EBP
JMP [_RetrieveUrlCacheEntryStream]
end;
end;
var
_ReadUrlCacheEntryStream: Pointer;
function ReadUrlCacheEntryStream;
begin
GetProcedureAddress(_ReadUrlCacheEntryStream, winetdll, 'ReadUrlCacheEntryStream');
asm
MOV ESP, EBP
POP EBP
JMP [_ReadUrlCacheEntryStream]
end;
end;
var
_UnlockUrlCacheEntryStream: Pointer;
function UnlockUrlCacheEntryStream;
begin
GetProcedureAddress(_UnlockUrlCacheEntryStream, winetdll, 'UnlockUrlCacheEntryStream');
asm
MOV ESP, EBP
POP EBP
JMP [_UnlockUrlCacheEntryStream]
end;
end;
var
_GetUrlCacheEntryInfoA: Pointer;
function GetUrlCacheEntryInfoA;
begin
GetProcedureAddress(_GetUrlCacheEntryInfoA, winetdll, 'GetUrlCacheEntryInfoA');
asm
MOV ESP, EBP
POP EBP
JMP [_GetUrlCacheEntryInfoA]
end;
end;
var
_GetUrlCacheEntryInfoW: Pointer;
function GetUrlCacheEntryInfoW;
begin
GetProcedureAddress(_GetUrlCacheEntryInfoW, winetdll, 'GetUrlCacheEntryInfoW');
asm
MOV ESP, EBP
POP EBP
JMP [_GetUrlCacheEntryInfoW]
end;
end;
var
_GetUrlCacheEntryInfo: Pointer;
function GetUrlCacheEntryInfo;
begin
GetProcedureAddress(_GetUrlCacheEntryInfo, winetdll, 'GetUrlCacheEntryInfo');
asm
MOV ESP, EBP
POP EBP
JMP [_GetUrlCacheEntryInfo]
end;
end;
var
_FindFirstUrlCacheGroup: Pointer;
function FindFirstUrlCacheGroup;
begin
GetProcedureAddress(_FindFirstUrlCacheGroup, winetdll, 'FindFirstUrlCacheGroup');
asm
MOV ESP, EBP
POP EBP
JMP [_FindFirstUrlCacheGroup]
end;
end;
var
_FindNextUrlCacheGroup: Pointer;
function FindNextUrlCacheGroup;
begin
GetProcedureAddress(_FindNextUrlCacheGroup, winetdll, 'FindNextUrlCacheGroup');
asm
MOV ESP, EBP
POP EBP
JMP [_FindNextUrlCacheGroup]
end;
end;
var
_GetUrlCacheGroupAttributeA: Pointer;
function GetUrlCacheGroupAttributeA;
begin
GetProcedureAddress(_GetUrlCacheGroupAttributeA, winetdll, 'GetUrlCacheGroupAttributeA');
asm
MOV ESP, EBP
POP EBP
JMP [_GetUrlCacheGroupAttributeA]
end;
end;
var
_SetUrlCacheGroupAttributeA: Pointer;
function SetUrlCacheGroupAttributeA;
begin
GetProcedureAddress(_SetUrlCacheGroupAttributeA, winetdll, 'SetUrlCacheGroupAttributeA');
asm
MOV ESP, EBP
POP EBP
JMP [_SetUrlCacheGroupAttributeA]
end;
end;
var
_GetUrlCacheEntryInfoExA: Pointer;
function GetUrlCacheEntryInfoExA;
begin
GetProcedureAddress(_GetUrlCacheEntryInfoExA, winetdll, 'GetUrlCacheEntryInfoExA');
asm
MOV ESP, EBP
POP EBP
JMP [_GetUrlCacheEntryInfoExA]
end;
end;
var
_SetUrlCacheEntryInfoA: Pointer;
function SetUrlCacheEntryInfoA;
begin
GetProcedureAddress(_SetUrlCacheEntryInfoA, winetdll, 'SetUrlCacheEntryInfoA');
asm
MOV ESP, EBP
POP EBP
JMP [_SetUrlCacheEntryInfoA]
end;
end;
var
_GetUrlCacheGroupAttributeW: Pointer;
function GetUrlCacheGroupAttributeW;
begin
GetProcedureAddress(_GetUrlCacheGroupAttributeW, winetdll, 'GetUrlCacheGroupAttributeW');
asm
MOV ESP, EBP
POP EBP
JMP [_GetUrlCacheGroupAttributeW]
end;
end;
var
_SetUrlCacheGroupAttributeW: Pointer;
function SetUrlCacheGroupAttributeW;
begin
GetProcedureAddress(_SetUrlCacheGroupAttributeW, winetdll, 'SetUrlCacheGroupAttributeW');
asm
MOV ESP, EBP
POP EBP
JMP [_SetUrlCacheGroupAttributeW]
end;
end;
var
_GetUrlCacheEntryInfoExW: Pointer;
function GetUrlCacheEntryInfoExW;
begin
GetProcedureAddress(_GetUrlCacheEntryInfoExW, winetdll, 'GetUrlCacheEntryInfoExW');
asm
MOV ESP, EBP
POP EBP
JMP [_GetUrlCacheEntryInfoExW]
end;
end;
var
_SetUrlCacheEntryInfoW: Pointer;
function SetUrlCacheEntryInfoW;
begin
GetProcedureAddress(_SetUrlCacheEntryInfoW, winetdll, 'SetUrlCacheEntryInfoW');
asm
MOV ESP, EBP
POP EBP
JMP [_SetUrlCacheEntryInfoW]
end;
end;
var
_GetUrlCacheGroupAttribute: Pointer;
function GetUrlCacheGroupAttribute;
begin
GetProcedureAddress(_GetUrlCacheGroupAttribute, winetdll, 'GetUrlCacheGroupAttribute');
asm
MOV ESP, EBP
POP EBP
JMP [_GetUrlCacheGroupAttribute]
end;
end;
var
_SetUrlCacheGroupAttribute: Pointer;
function SetUrlCacheGroupAttribute;
begin
GetProcedureAddress(_SetUrlCacheGroupAttribute, winetdll, 'SetUrlCacheGroupAttribute');
asm
MOV ESP, EBP
POP EBP
JMP [_SetUrlCacheGroupAttribute]
end;
end;
var
_GetUrlCacheEntryInfoEx: Pointer;
function GetUrlCacheEntryInfoEx;
begin
GetProcedureAddress(_GetUrlCacheEntryInfoEx, winetdll, 'GetUrlCacheEntryInfoEx');
asm
MOV ESP, EBP
POP EBP
JMP [_GetUrlCacheEntryInfoEx]
end;
end;
var
_SetUrlCacheEntryInfo: Pointer;
function SetUrlCacheEntryInfo;
begin
GetProcedureAddress(_SetUrlCacheEntryInfo, winetdll, 'SetUrlCacheEntryInfo');
asm
MOV ESP, EBP
POP EBP
JMP [_SetUrlCacheEntryInfo]
end;
end;
var
_CreateUrlCacheGroup: Pointer;
function CreateUrlCacheGroup;
begin
GetProcedureAddress(_CreateUrlCacheGroup, winetdll, 'CreateUrlCacheGroup');
asm
MOV ESP, EBP
POP EBP
JMP [_CreateUrlCacheGroup]
end;
end;
var
_DeleteUrlCacheGroup: Pointer;
function DeleteUrlCacheGroup;
begin
GetProcedureAddress(_DeleteUrlCacheGroup, winetdll, 'DeleteUrlCacheGroup');
asm
MOV ESP, EBP
POP EBP
JMP [_DeleteUrlCacheGroup]
end;
end;
var
_SetUrlCacheEntryGroupA: Pointer;
function SetUrlCacheEntryGroupA;
begin
GetProcedureAddress(_SetUrlCacheEntryGroupA, winetdll, 'SetUrlCacheEntryGroupA');
asm
MOV ESP, EBP
POP EBP
JMP [_SetUrlCacheEntryGroupA]
end;
end;
var
_FindFirstUrlCacheEntryExA: Pointer;
function FindFirstUrlCacheEntryExA;
begin
GetProcedureAddress(_FindFirstUrlCacheEntryExA, winetdll, 'FindFirstUrlCacheEntryExA');
asm
MOV ESP, EBP
POP EBP
JMP [_FindFirstUrlCacheEntryExA]
end;
end;
var
_FindNextUrlCacheEntryExA: Pointer;
function FindNextUrlCacheEntryExA;
begin
GetProcedureAddress(_FindNextUrlCacheEntryExA, winetdll, 'FindNextUrlCacheEntryExA');
asm
MOV ESP, EBP
POP EBP
JMP [_FindNextUrlCacheEntryExA]
end;
end;
var
_FindFirstUrlCacheEntryA: Pointer;
function FindFirstUrlCacheEntryA;
begin
GetProcedureAddress(_FindFirstUrlCacheEntryA, winetdll, 'FindFirstUrlCacheEntryA');
asm
MOV ESP, EBP
POP EBP
JMP [_FindFirstUrlCacheEntryA]
end;
end;
var
_FindNextUrlCacheEntryA: Pointer;
function FindNextUrlCacheEntryA;
begin
GetProcedureAddress(_FindNextUrlCacheEntryA, winetdll, 'FindNextUrlCacheEntryA');
asm
MOV ESP, EBP
POP EBP
JMP [_FindNextUrlCacheEntryA]
end;
end;
var
_SetUrlCacheEntryGroupW: Pointer;
function SetUrlCacheEntryGroupW;
begin
GetProcedureAddress(_SetUrlCacheEntryGroupW, winetdll, 'SetUrlCacheEntryGroupW');
asm
MOV ESP, EBP
POP EBP
JMP [_SetUrlCacheEntryGroupW]
end;
end;
var
_FindFirstUrlCacheEntryExW: Pointer;
function FindFirstUrlCacheEntryExW;
begin
GetProcedureAddress(_FindFirstUrlCacheEntryExW, winetdll, 'FindFirstUrlCacheEntryExW');
asm
MOV ESP, EBP
POP EBP
JMP [_FindFirstUrlCacheEntryExW]
end;
end;
var
_FindNextUrlCacheEntryExW: Pointer;
function FindNextUrlCacheEntryExW;
begin
GetProcedureAddress(_FindNextUrlCacheEntryExW, winetdll, 'FindNextUrlCacheEntryExW');
asm
MOV ESP, EBP
POP EBP
JMP [_FindNextUrlCacheEntryExW]
end;
end;
var
_FindFirstUrlCacheEntryW: Pointer;
function FindFirstUrlCacheEntryW;
begin
GetProcedureAddress(_FindFirstUrlCacheEntryW, winetdll, 'FindFirstUrlCacheEntryW');
asm
MOV ESP, EBP
POP EBP
JMP [_FindFirstUrlCacheEntryW]
end;
end;
var
_FindNextUrlCacheEntryW: Pointer;
function FindNextUrlCacheEntryW;
begin
GetProcedureAddress(_FindNextUrlCacheEntryW, winetdll, 'FindNextUrlCacheEntryW');
asm
MOV ESP, EBP
POP EBP
JMP [_FindNextUrlCacheEntryW]
end;
end;
var
_SetUrlCacheEntryGroup: Pointer;
function SetUrlCacheEntryGroup;
begin
GetProcedureAddress(_SetUrlCacheEntryGroup, winetdll, 'SetUrlCacheEntryGroup');
asm
MOV ESP, EBP
POP EBP
JMP [_SetUrlCacheEntryGroup]
end;
end;
var
_FindFirstUrlCacheEntryEx: Pointer;
function FindFirstUrlCacheEntryEx;
begin
GetProcedureAddress(_FindFirstUrlCacheEntryEx, winetdll, 'FindFirstUrlCacheEntryEx');
asm
MOV ESP, EBP
POP EBP
JMP [_FindFirstUrlCacheEntryEx]
end;
end;
var
_FindNextUrlCacheEntryEx: Pointer;
function FindNextUrlCacheEntryEx;
begin
GetProcedureAddress(_FindNextUrlCacheEntryEx, winetdll, 'FindNextUrlCacheEntryEx');
asm
MOV ESP, EBP
POP EBP
JMP [_FindNextUrlCacheEntryEx]
end;
end;
var
_FindFirstUrlCacheEntry: Pointer;
function FindFirstUrlCacheEntry;
begin
GetProcedureAddress(_FindFirstUrlCacheEntry, winetdll, 'FindFirstUrlCacheEntry');
asm
MOV ESP, EBP
POP EBP
JMP [_FindFirstUrlCacheEntry]
end;
end;
var
_FindNextUrlCacheEntry: Pointer;
function FindNextUrlCacheEntry;
begin
GetProcedureAddress(_FindNextUrlCacheEntry, winetdll, 'FindNextUrlCacheEntry');
asm
MOV ESP, EBP
POP EBP
JMP [_FindNextUrlCacheEntry]
end;
end;
var
_FindCloseUrlCache: Pointer;
function FindCloseUrlCache;
begin
GetProcedureAddress(_FindCloseUrlCache, winetdll, 'FindCloseUrlCache');
asm
MOV ESP, EBP
POP EBP
JMP [_FindCloseUrlCache]
end;
end;
var
_DeleteUrlCacheEntryA: Pointer;
function DeleteUrlCacheEntryA;
begin
GetProcedureAddress(_DeleteUrlCacheEntryA, winetdll, 'DeleteUrlCacheEntryA');
asm
MOV ESP, EBP
POP EBP
JMP [_DeleteUrlCacheEntryA]
end;
end;
var
_InternetDialA: Pointer;
function InternetDialA;
begin
GetProcedureAddress(_InternetDialA, winetdll, 'InternetDialA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetDialA]
end;
end;
var
_DeleteUrlCacheEntryW: Pointer;
function DeleteUrlCacheEntryW;
begin
GetProcedureAddress(_DeleteUrlCacheEntryW, winetdll, 'DeleteUrlCacheEntryW');
asm
MOV ESP, EBP
POP EBP
JMP [_DeleteUrlCacheEntryW]
end;
end;
var
_InternetDialW: Pointer;
function InternetDialW;
begin
GetProcedureAddress(_InternetDialW, winetdll, 'InternetDialW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetDialW]
end;
end;
var
_DeleteUrlCacheEntry: Pointer;
function DeleteUrlCacheEntry;
begin
GetProcedureAddress(_DeleteUrlCacheEntry, winetdll, 'DeleteUrlCacheEntry');
asm
MOV ESP, EBP
POP EBP
JMP [_DeleteUrlCacheEntry]
end;
end;
var
_InternetDial: Pointer;
function InternetDial;
begin
GetProcedureAddress(_InternetDial, winetdll, 'InternetDial');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetDial]
end;
end;
var
_InternetHangUp: Pointer;
function InternetHangUp;
begin
GetProcedureAddress(_InternetHangUp, winetdll, 'InternetHangUp');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetHangUp]
end;
end;
var
_InternetGoOnlineA: Pointer;
function InternetGoOnlineA;
begin
GetProcedureAddress(_InternetGoOnlineA, winetdll, 'InternetGoOnlineA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetGoOnlineA]
end;
end;
var
_InternetGoOnlineW: Pointer;
function InternetGoOnlineW;
begin
GetProcedureAddress(_InternetGoOnlineW, winetdll, 'InternetGoOnlineW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetGoOnlineW]
end;
end;
var
_InternetGoOnline: Pointer;
function InternetGoOnline;
begin
GetProcedureAddress(_InternetGoOnline, winetdll, 'InternetGoOnline');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetGoOnline]
end;
end;
var
_InternetAutodial: Pointer;
function InternetAutodial;
begin
GetProcedureAddress(_InternetAutodial, winetdll, 'InternetAutodial');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetAutodial]
end;
end;
var
_InternetAutodialHangup: Pointer;
function InternetAutodialHangup;
begin
GetProcedureAddress(_InternetAutodialHangup, winetdll, 'InternetAutodialHangup');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetAutodialHangup]
end;
end;
var
_InternetGetConnectedState: Pointer;
function InternetGetConnectedState;
begin
GetProcedureAddress(_InternetGetConnectedState, winetdll, 'InternetGetConnectedState');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetGetConnectedState]
end;
end;
var
_InternetGetConnectedStateExA: Pointer;
function InternetGetConnectedStateExA;
begin
GetProcedureAddress(_InternetGetConnectedStateExA, winetdll, 'InternetGetConnectedStateExA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetGetConnectedStateExA]
end;
end;
var
_InternetGetConnectedStateExW: Pointer;
function InternetGetConnectedStateExW;
begin
GetProcedureAddress(_InternetGetConnectedStateExW, winetdll, 'InternetGetConnectedStateExW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetGetConnectedStateExW]
end;
end;
var
_InternetGetConnectedStateEx: Pointer;
function InternetGetConnectedStateEx;
begin
GetProcedureAddress(_InternetGetConnectedStateEx, winetdll, 'InternetGetConnectedStateEx');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetGetConnectedStateEx]
end;
end;
var
_InternetInitializeAutoProxyDll: Pointer;
function InternetInitializeAutoProxyDll;
begin
GetProcedureAddress(_InternetInitializeAutoProxyDll, winetdll, 'InternetInitializeAutoProxyDll');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetInitializeAutoProxyDll]
end;
end;
var
_InternetSetDialStateA: Pointer;
function InternetSetDialStateA;
begin
GetProcedureAddress(_InternetSetDialStateA, winetdll, 'InternetSetDialStateA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetDialStateA]
end;
end;
var
_InternetOpenA: Pointer;
function InternetOpenA;
begin
GetProcedureAddress(_InternetOpenA, winetdll, 'InternetOpenA');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetOpenA]
end;
end;
var
_InternetSetDialStateW: Pointer;
function InternetSetDialStateW;
begin
GetProcedureAddress(_InternetSetDialStateW, winetdll, 'InternetSetDialStateW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetDialStateW]
end;
end;
var
_InternetOpenW: Pointer;
function InternetOpenW;
begin
GetProcedureAddress(_InternetOpenW, winetdll, 'InternetOpenW');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetOpenW]
end;
end;
var
_InternetSetDialState: Pointer;
function InternetSetDialState;
begin
GetProcedureAddress(_InternetSetDialState, winetdll, 'InternetSetDialState');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetSetDialState]
end;
end;
var
_InternetOpen: Pointer;
function InternetOpen;
begin
GetProcedureAddress(_InternetOpen, winetdll, 'InternetOpen');
asm
MOV ESP, EBP
POP EBP
JMP [_InternetOpen]
end;
end;
{$ELSE}
function InternetConnectA; external winetdll name 'InternetConnectA';
function InternetConnectW; external winetdll name 'InternetConnectW';
function InternetConnect; external winetdll name 'InternetConnectA';
function InternetCloseHandle; external winetdll name 'InternetCloseHandle';
function InternetTimeFromSystemTimeA; external winetdll name 'InternetTimeFromSystemTimeA';
function InternetTimeToSystemTimeA; external winetdll name 'InternetTimeToSystemTimeA';
function InternetCrackUrlA; external winetdll name 'InternetCrackUrlA';
function InternetCreateUrlA; external winetdll name 'InternetCreateUrlA';
function InternetCanonicalizeUrlA; external winetdll name 'InternetCanonicalizeUrlA';
function InternetCombineUrlA; external winetdll name 'InternetCombineUrlA';
function InternetOpenUrlA; external winetdll name 'InternetOpenUrlA';
function InternetTimeFromSystemTimeW; external winetdll name 'InternetTimeFromSystemTimeW';
function InternetTimeToSystemTimeW; external winetdll name 'InternetTimeToSystemTimeW';
function InternetCrackUrlW; external winetdll name 'InternetCrackUrlW';
function InternetCreateUrlW; external winetdll name 'InternetCreateUrlW';
function InternetCanonicalizeUrlW; external winetdll name 'InternetCanonicalizeUrlW';
function InternetCombineUrlW; external winetdll name 'InternetCombineUrlW';
function InternetOpenUrlW; external winetdll name 'InternetOpenUrlW';
function InternetTimeFromSystemTime; external winetdll name 'InternetTimeFromSystemTimeA';
function InternetTimeToSystemTime; external winetdll name 'InternetTimeToSystemTimeA';
function InternetCrackUrl; external winetdll name 'InternetCrackUrlA';
function InternetCreateUrl; external winetdll name 'InternetCreateUrlA';
function InternetCanonicalizeUrl; external winetdll name 'InternetCanonicalizeUrlA';
function InternetCombineUrl; external winetdll name 'InternetCombineUrlA';
function InternetOpenUrl; external winetdll name 'InternetOpenUrlA';
function InternetReadFile; external winetdll name 'InternetReadFile';
function InternetReadFileExA; external winetdll name 'InternetReadFileExA';
function InternetReadFileExW; external winetdll name 'InternetReadFileExW';
function InternetReadFileEx; external winetdll name 'InternetReadFileExA';
function InternetSetFilePointer; external winetdll name 'InternetSetFilePointer';
function InternetWriteFile; external winetdll name 'InternetWriteFile';
function InternetQueryDataAvailable; external winetdll name 'InternetQueryDataAvailable';
function InternetFindNextFileA; external winetdll name 'InternetFindNextFileA';
function InternetQueryOptionA; external winetdll name 'InternetQueryOptionA';
function InternetSetOptionA; external winetdll name 'InternetSetOptionA';
function InternetSetOptionExA; external winetdll name 'InternetSetOptionExA';
function InternetFindNextFileW; external winetdll name 'InternetFindNextFileW';
function InternetQueryOptionW; external winetdll name 'InternetQueryOptionW';
function InternetSetOptionW; external winetdll name 'InternetSetOptionW';
function InternetSetOptionExW; external winetdll name 'InternetSetOptionExW';
function InternetFindNextFile; external winetdll name 'InternetFindNextFileA';
function InternetQueryOption; external winetdll name 'InternetQueryOptionA';
function InternetSetOption; external winetdll name 'InternetSetOptionA';
function InternetSetOptionEx; external winetdll name 'InternetSetOptionExA';
function InternetLockRequestFile; external winetdll name 'InternetLockRequestFile';
function InternetUnlockRequestFile; external winetdll name 'InternetUnlockRequestFile';
function InternetGetLastResponseInfoA; external winetdll name 'InternetGetLastResponseInfoA';
function InternetSetStatusCallbackA; external winetdll name 'InternetSetStatusCallbackA';
function FtpFindFirstFileA; external winetdll name 'FtpFindFirstFileA';
function FtpGetFileA; external winetdll name 'FtpGetFileA';
function FtpPutFileA; external winetdll name 'FtpPutFileA';
function InternetGetLastResponseInfoW; external winetdll name 'InternetGetLastResponseInfoW';
function InternetSetStatusCallbackW; external winetdll name 'InternetSetStatusCallbackW';
function FtpFindFirstFileW; external winetdll name 'FtpFindFirstFileW';
function FtpGetFileW; external winetdll name 'FtpGetFileW';
function FtpPutFileW; external winetdll name 'FtpPutFileW';
function InternetGetLastResponseInfo; external winetdll name 'InternetGetLastResponseInfoA';
function InternetSetStatusCallback; external winetdll name 'InternetSetStatusCallbackA';
function FtpFindFirstFile; external winetdll name 'FtpFindFirstFileA';
function FtpGetFile; external winetdll name 'FtpGetFileA';
function FtpPutFile; external winetdll name 'FtpPutFileA';
function FtpGetFileEx; external winetdll name 'FtpGetFileEx';
function FtpPutFileEx; external winetdll name 'FtpPutFileEx';
function FtpDeleteFileA; external winetdll name 'FtpDeleteFileA';
function FtpRenameFileA; external winetdll name 'FtpRenameFileA';
function FtpOpenFileA; external winetdll name 'FtpOpenFileA';
function FtpCreateDirectoryA; external winetdll name 'FtpCreateDirectoryA';
function FtpRemoveDirectoryA; external winetdll name 'FtpRemoveDirectoryA';
function FtpSetCurrentDirectoryA; external winetdll name 'FtpSetCurrentDirectoryA';
function FtpGetCurrentDirectoryA; external winetdll name 'FtpGetCurrentDirectoryA';
function FtpCommandA; external winetdll name 'FtpCommandA';
function FtpDeleteFileW; external winetdll name 'FtpDeleteFileW';
function FtpRenameFileW; external winetdll name 'FtpRenameFileW';
function FtpOpenFileW; external winetdll name 'FtpOpenFileW';
function FtpCreateDirectoryW; external winetdll name 'FtpCreateDirectoryW';
function FtpRemoveDirectoryW; external winetdll name 'FtpRemoveDirectoryW';
function FtpSetCurrentDirectoryW; external winetdll name 'FtpSetCurrentDirectoryW';
function FtpGetCurrentDirectoryW; external winetdll name 'FtpGetCurrentDirectoryW';
function FtpCommandW; external winetdll name 'FtpCommandW';
function FtpDeleteFile; external winetdll name 'FtpDeleteFileA';
function FtpRenameFile; external winetdll name 'FtpRenameFileA';
function FtpOpenFile; external winetdll name 'FtpOpenFileA';
function FtpCreateDirectory; external winetdll name 'FtpCreateDirectoryA';
function FtpRemoveDirectory; external winetdll name 'FtpRemoveDirectoryA';
function FtpSetCurrentDirectory; external winetdll name 'FtpSetCurrentDirectoryA';
function FtpGetCurrentDirectory; external winetdll name 'FtpGetCurrentDirectoryA';
function FtpCommand; external winetdll name 'FtpCommandA';
function FtpGetFileSize; external winetdll name 'FtpGetFileSize';
function GopherCreateLocatorA; external winetdll name 'GopherCreateLocatorA';
function GopherGetLocatorTypeA; external winetdll name 'GopherGetLocatorTypeA';
function GopherFindFirstFileA; external winetdll name 'GopherFindFirstFileA';
function GopherOpenFileA; external winetdll name 'GopherOpenFileA';
function GopherGetAttributeA; external winetdll name 'GopherGetAttributeA';
function HttpOpenRequestA; external winetdll name 'HttpOpenRequestA';
function HttpAddRequestHeadersA; external winetdll name 'HttpAddRequestHeadersA';
function HttpSendRequestA; external winetdll name 'HttpSendRequestA';
function HttpSendRequestExA; external winetdll name 'HttpSendRequestExA';
function HttpEndRequestA; external winetdll name 'HttpEndRequestA';
function HttpQueryInfoA; external winetdll name 'HttpQueryInfoA';
function InternetSetCookieA; external winetdll name 'InternetSetCookieA';
function InternetGetCookieA; external winetdll name 'InternetGetCookieA';
function GopherCreateLocatorW; external winetdll name 'GopherCreateLocatorW';
function GopherGetLocatorTypeW; external winetdll name 'GopherGetLocatorTypeW';
function GopherFindFirstFileW; external winetdll name 'GopherFindFirstFileW';
function GopherOpenFileW; external winetdll name 'GopherOpenFileW';
function GopherGetAttributeW; external winetdll name 'GopherGetAttributeW';
function HttpOpenRequestW; external winetdll name 'HttpOpenRequestW';
function HttpAddRequestHeadersW; external winetdll name 'HttpAddRequestHeadersW';
function HttpSendRequestW; external winetdll name 'HttpSendRequestW';
function HttpSendRequestExW; external winetdll name 'HttpSendRequestExW';
function HttpEndRequestW; external winetdll name 'HttpEndRequestW';
function HttpQueryInfoW; external winetdll name 'HttpQueryInfoW';
function InternetSetCookieW; external winetdll name 'InternetSetCookieW';
function InternetGetCookieW; external winetdll name 'InternetGetCookieW';
function GopherCreateLocator; external winetdll name 'GopherCreateLocatorA';
function GopherGetLocatorType; external winetdll name 'GopherGetLocatorTypeA';
function GopherFindFirstFile; external winetdll name 'GopherFindFirstFileA';
function GopherOpenFile; external winetdll name 'GopherOpenFileA';
function GopherGetAttribute; external winetdll name 'GopherGetAttributeA';
function HttpOpenRequest; external winetdll name 'HttpOpenRequestA';
function HttpAddRequestHeaders; external winetdll name 'HttpAddRequestHeadersA';
function HttpSendRequest; external winetdll name 'HttpSendRequestA';
function HttpSendRequestEx; external winetdll name 'HttpSendRequestExA';
function HttpEndRequest; external winetdll name 'HttpEndRequestA';
function HttpQueryInfo; external winetdll name 'HttpQueryInfoA';
function InternetSetCookie; external winetdll name 'InternetSetCookieA';
function InternetGetCookie; external winetdll name 'InternetGetCookieA';
function InternetAttemptConnect; external winetdll name 'InternetAttemptConnect';
function InternetCheckConnectionA; external winetdll name 'InternetCheckConnectionA';
function InternetCheckConnectionW; external winetdll name 'InternetCheckConnectionW';
function InternetCheckConnection; external winetdll name 'InternetCheckConnectionA';
function InternetAuthNotifyCallback; external winetdll name 'InternetAuthNotifyCallback';
function InternetErrorDlg; external winetdll name 'InternetErrorDlg';
function ResumeSuspendedDownload; external winetdll name 'ResumeSuspendedDownload';
function InternetConfirmZoneCrossingA; external winetdll name 'InternetConfirmZoneCrossingA';
function CreateUrlCacheEntryA; external winetdll name 'CreateUrlCacheEntryA';
function CommitUrlCacheEntryA; external winetdll name 'CommitUrlCacheEntryA';
function RetrieveUrlCacheEntryFileA; external winetdll name 'RetrieveUrlCacheEntryFileA';
function UnlockUrlCacheEntryFileA; external winetdll name 'UnlockUrlCacheEntryFileA';
function RetrieveUrlCacheEntryStreamA; external winetdll name 'RetrieveUrlCacheEntryStreamA';
function InternetConfirmZoneCrossingW; external winetdll name 'InternetConfirmZoneCrossingW';
function CreateUrlCacheEntryW; external winetdll name 'CreateUrlCacheEntryW';
function CommitUrlCacheEntryW; external winetdll name 'CommitUrlCacheEntryW';
function RetrieveUrlCacheEntryFileW; external winetdll name 'RetrieveUrlCacheEntryFileW';
function UnlockUrlCacheEntryFileW; external winetdll name 'UnlockUrlCacheEntryFileW';
function RetrieveUrlCacheEntryStreamW; external winetdll name 'RetrieveUrlCacheEntryStreamW';
function InternetConfirmZoneCrossing; external winetdll name 'InternetConfirmZoneCrossingA';
function CreateUrlCacheEntry; external winetdll name 'CreateUrlCacheEntryA';
function CommitUrlCacheEntry; external winetdll name 'CommitUrlCacheEntryA';
function RetrieveUrlCacheEntryFile; external winetdll name 'RetrieveUrlCacheEntryFileA';
function UnlockUrlCacheEntryFile; external winetdll name 'UnlockUrlCacheEntryFileA';
function RetrieveUrlCacheEntryStream; external winetdll name 'RetrieveUrlCacheEntryStreamA';
function ReadUrlCacheEntryStream; external winetdll name 'ReadUrlCacheEntryStream';
function UnlockUrlCacheEntryStream; external winetdll name 'UnlockUrlCacheEntryStream';
function GetUrlCacheEntryInfoA; external winetdll name 'GetUrlCacheEntryInfoA';
function GetUrlCacheEntryInfoW; external winetdll name 'GetUrlCacheEntryInfoW';
function GetUrlCacheEntryInfo; external winetdll name 'GetUrlCacheEntryInfoA';
function FindFirstUrlCacheGroup; external winetdll name 'FindFirstUrlCacheGroup';
function FindNextUrlCacheGroup; external winetdll name 'FindNextUrlCacheGroup';
function GetUrlCacheGroupAttributeA; external winetdll name 'GetUrlCacheGroupAttributeA';
function SetUrlCacheGroupAttributeA; external winetdll name 'SetUrlCacheGroupAttributeA';
function GetUrlCacheEntryInfoExA; external winetdll name 'GetUrlCacheEntryInfoExA';
function SetUrlCacheEntryInfoA; external winetdll name 'SetUrlCacheEntryInfoA';
function GetUrlCacheGroupAttributeW; external winetdll name 'GetUrlCacheGroupAttributeW';
function SetUrlCacheGroupAttributeW; external winetdll name 'SetUrlCacheGroupAttributeW';
function GetUrlCacheEntryInfoExW; external winetdll name 'GetUrlCacheEntryInfoExW';
function SetUrlCacheEntryInfoW; external winetdll name 'SetUrlCacheEntryInfoW';
function GetUrlCacheGroupAttribute; external winetdll name 'GetUrlCacheGroupAttributeA';
function SetUrlCacheGroupAttribute; external winetdll name 'SetUrlCacheGroupAttributeA';
function GetUrlCacheEntryInfoEx; external winetdll name 'GetUrlCacheEntryInfoExA';
function SetUrlCacheEntryInfo; external winetdll name 'SetUrlCacheEntryInfoA';
function CreateUrlCacheGroup; external winetdll name 'CreateUrlCacheGroup';
function DeleteUrlCacheGroup; external winetdll name 'DeleteUrlCacheGroup';
function SetUrlCacheEntryGroupA; external winetdll name 'SetUrlCacheEntryGroupA';
function FindFirstUrlCacheEntryExA; external winetdll name 'FindFirstUrlCacheEntryExA';
function FindNextUrlCacheEntryExA; external winetdll name 'FindNextUrlCacheEntryExA';
function FindFirstUrlCacheEntryA; external winetdll name 'FindFirstUrlCacheEntryA';
function FindNextUrlCacheEntryA; external winetdll name 'FindNextUrlCacheEntryA';
function SetUrlCacheEntryGroupW; external winetdll name 'SetUrlCacheEntryGroupW';
function FindFirstUrlCacheEntryExW; external winetdll name 'FindFirstUrlCacheEntryExW';
function FindNextUrlCacheEntryExW; external winetdll name 'FindNextUrlCacheEntryExW';
function FindFirstUrlCacheEntryW; external winetdll name 'FindFirstUrlCacheEntryW';
function FindNextUrlCacheEntryW; external winetdll name 'FindNextUrlCacheEntryW';
function SetUrlCacheEntryGroup; external winetdll name 'SetUrlCacheEntryGroupA';
function FindFirstUrlCacheEntryEx; external winetdll name 'FindFirstUrlCacheEntryExA';
function FindNextUrlCacheEntryEx; external winetdll name 'FindNextUrlCacheEntryExA';
function FindFirstUrlCacheEntry; external winetdll name 'FindFirstUrlCacheEntryA';
function FindNextUrlCacheEntry; external winetdll name 'FindNextUrlCacheEntryA';
function FindCloseUrlCache; external winetdll name 'FindCloseUrlCache';
function DeleteUrlCacheEntryA; external winetdll name 'DeleteUrlCacheEntryA';
function InternetDialA; external winetdll name 'InternetDialA';
function DeleteUrlCacheEntryW; external winetdll name 'DeleteUrlCacheEntryW';
function InternetDialW; external winetdll name 'InternetDialW';
function DeleteUrlCacheEntry; external winetdll name 'DeleteUrlCacheEntryA';
function InternetDial; external winetdll name 'InternetDialA';
function InternetHangUp; external winetdll name 'InternetHangUp';
function InternetGoOnlineA; external winetdll name 'InternetGoOnlineA';
function InternetGoOnlineW; external winetdll name 'InternetGoOnlineW';
function InternetGoOnline; external winetdll name 'InternetGoOnlineA';
function InternetAutodial; external winetdll name 'InternetAutodial';
function InternetAutodialHangup; external winetdll name 'InternetAutodialHangup';
function InternetGetConnectedState; external winetdll name 'InternetGetConnectedState';
function InternetGetConnectedStateExA; external winetdll name 'InternetGetConnectedStateExA';
function InternetGetConnectedStateExW; external winetdll name 'InternetGetConnectedStateExW';
function InternetGetConnectedStateEx; external winetdll name 'InternetGetConnectedStateExA';
function InternetInitializeAutoProxyDll; external winetdll name 'InternetInitializeAutoProxyDll';
function InternetSetDialStateA; external winetdll name 'InternetSetDialStateA';
function InternetOpenA; external winetdll name 'InternetOpenA';
function InternetSetDialStateW; external winetdll name 'InternetSetDialStateW';
function InternetOpenW; external winetdll name 'InternetOpenW';
function InternetSetDialState; external winetdll name 'InternetSetDialStateA';
function InternetOpen; external winetdll name 'InternetOpenA';
{$ENDIF DYNAMIC_LINK}
{$ENDIF JWA_INTERFACESECTION}
{$IFNDEF JWA_OMIT_SECTIONS}
end.
{$ENDIF JWA_OMIT_SECTIONS}