blob: 64b95c4c00e1c4e798201be85bda0b02ed2150ab [file] [log] [blame]
/**
* Windows API header module
*
* Translated from MinGW Windows headers
*
* Authors: Stewart Gordon
* License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0)
* Source: $(DRUNTIMESRC src/core/sys/windows/_wininet.d)
*/
module core.sys.windows.wininet;
version (Windows):
@system:
version (ANSI) {} else version = Unicode;
pragma(lib, "wininet");
// FIXME: check types and grouping of constants
import core.sys.windows.winbase, core.sys.windows.windef;
// From Winineti.h
enum {
INTERNET_FLAG_BGUPDATE = 0x00000008,
}
enum {
INTERNET_INVALID_PORT_NUMBER = 0,
INTERNET_DEFAULT_FTP_PORT = 21,
INTERNET_DEFAULT_GOPHER_PORT = 70,
INTERNET_DEFAULT_HTTP_PORT = 80,
INTERNET_DEFAULT_HTTPS_PORT = 443,
INTERNET_DEFAULT_SOCKS_PORT = 1080
}
enum size_t
MAX_CACHE_ENTRY_INFO_SIZE = 4096,
INTERNET_MAX_HOST_NAME_LENGTH = 256,
INTERNET_MAX_USER_NAME_LENGTH = 128,
INTERNET_MAX_PASSWORD_LENGTH = 128,
INTERNET_MAX_PORT_NUMBER_LENGTH = 5,
INTERNET_MAX_PORT_NUMBER_VALUE = 65535,
INTERNET_MAX_PATH_LENGTH = 2048,
INTERNET_MAX_SCHEME_LENGTH = 32,
INTERNET_MAX_URL_LENGTH = INTERNET_MAX_SCHEME_LENGTH
+ "://".length
+ INTERNET_MAX_PATH_LENGTH;
enum : DWORD {
INTERNET_KEEP_ALIVE_UNKNOWN = DWORD.max,
INTERNET_KEEP_ALIVE_DISABLED = 0,
INTERNET_KEEP_ALIVE_ENABLED
}
enum {
INTERNET_REQFLAG_FROM_CACHE = 0x00000001,
INTERNET_REQFLAG_ASYNC = 0x00000002,
INTERNET_REQFLAG_VIA_PROXY = 0x00000004,
INTERNET_REQFLAG_NO_HEADERS = 0x00000008,
INTERNET_REQFLAG_PASSIVE = 0x00000010,
INTERNET_REQFLAG_CACHE_WRITE_DISABLED = 0x00000040,
INTERNET_REQFLAG_NET_TIMEOUT = 0x00000080,
}
enum {
INTERNET_FLAG_IDN_DIRECT = 0x00000001,
INTERNET_FLAG_IDN_PROXY = 0x00000002
}
enum DWORD
INTERNET_FLAG_RELOAD = 0x80000000,
INTERNET_FLAG_RAW_DATA = 0x40000000,
INTERNET_FLAG_EXISTING_CONNECT = 0x20000000,
INTERNET_FLAG_ASYNC = 0x10000000,
INTERNET_FLAG_PASSIVE = 0x08000000,
INTERNET_FLAG_NO_CACHE_WRITE = 0x04000000,
INTERNET_FLAG_DONT_CACHE = INTERNET_FLAG_NO_CACHE_WRITE,
INTERNET_FLAG_MAKE_PERSISTENT = 0x02000000,
INTERNET_FLAG_FROM_CACHE = 0x01000000,
INTERNET_FLAG_OFFLINE = INTERNET_FLAG_FROM_CACHE,
INTERNET_FLAG_SECURE = 0x00800000,
INTERNET_FLAG_KEEP_CONNECTION = 0x00400000,
INTERNET_FLAG_NO_AUTO_REDIRECT = 0x00200000,
INTERNET_FLAG_READ_PREFETCH = 0x00100000,
INTERNET_FLAG_NO_COOKIES = 0x00080000,
INTERNET_FLAG_NO_AUTH = 0x00040000,
INTERNET_FLAG_RESTRICTED_ZONE = 0x00020000,
INTERNET_FLAG_CACHE_IF_NET_FAIL = 0x00010000,
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP = 0x00008000,
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS = 0x00004000,
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID = 0x00002000,
INTERNET_FLAG_IGNORE_CERT_CN_INVALID = 0x00001000,
INTERNET_FLAG_RESYNCHRONIZE = 0x00000800,
INTERNET_FLAG_HYPERLINK = 0x00000400,
INTERNET_FLAG_NO_UI = 0x00000200,
INTERNET_FLAG_PRAGMA_NOCACHE = 0x00000100,
INTERNET_FLAG_CACHE_ASYNC = 0x00000080,
INTERNET_FLAG_FORMS_SUBMIT = 0x00000040,
INTERNET_FLAG_FWD_BACK = 0x00000020,
INTERNET_FLAG_NEED_FILE = 0x00000010,
INTERNET_FLAG_MUST_CACHE_REQUEST = INTERNET_FLAG_NEED_FILE,
INTERNET_FLAG_TRANSFER_ASCII = FTP_TRANSFER_TYPE_ASCII,
INTERNET_FLAG_TRANSFER_BINARY = FTP_TRANSFER_TYPE_BINARY,
SECURITY_INTERNET_MASK = INTERNET_FLAG_IGNORE_CERT_CN_INVALID |
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID |
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS |
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP,
SECURITY_SET_MASK = SECURITY_INTERNET_MASK,
INTERNET_FLAGS_MASK = INTERNET_FLAG_RELOAD
| INTERNET_FLAG_RAW_DATA
| INTERNET_FLAG_EXISTING_CONNECT
| INTERNET_FLAG_ASYNC
| INTERNET_FLAG_PASSIVE
| INTERNET_FLAG_NO_CACHE_WRITE
| INTERNET_FLAG_MAKE_PERSISTENT
| INTERNET_FLAG_FROM_CACHE
| INTERNET_FLAG_SECURE
| INTERNET_FLAG_KEEP_CONNECTION
| INTERNET_FLAG_NO_AUTO_REDIRECT
| INTERNET_FLAG_READ_PREFETCH
| INTERNET_FLAG_NO_COOKIES
| INTERNET_FLAG_NO_AUTH
| INTERNET_FLAG_CACHE_IF_NET_FAIL
| SECURITY_INTERNET_MASK
| INTERNET_FLAG_RESYNCHRONIZE
| INTERNET_FLAG_HYPERLINK
| INTERNET_FLAG_NO_UI
| INTERNET_FLAG_PRAGMA_NOCACHE
| INTERNET_FLAG_CACHE_ASYNC
| INTERNET_FLAG_FORMS_SUBMIT
| INTERNET_FLAG_NEED_FILE
| INTERNET_FLAG_RESTRICTED_ZONE
| INTERNET_FLAG_TRANSFER_BINARY
| INTERNET_FLAG_TRANSFER_ASCII
| INTERNET_FLAG_FWD_BACK
| INTERNET_FLAG_BGUPDATE,
INTERNET_ERROR_MASK_INSERT_CDROM = 0x1,
INTERNET_ERROR_MASK_COMBINED_SEC_CERT = 0x2,
INTERNET_ERROR_MASK_NEED_MSN_SSPI_PKG = 0X4,
INTERNET_ERROR_MASK_LOGIN_FAILURE_DISPLAY_ENTITY_BODY = 0x8,
INTERNET_OPTIONS_MASK = ~INTERNET_FLAGS_MASK;
enum INTERNET_NO_CALLBACK = 0;
enum INTERNET_RFC1123_FORMAT = 0;
enum size_t INTERNET_RFC1123_BUFSIZE = 30;
enum DWORD
ICU_ESCAPE = 0x80000000,
ICU_USERNAME = 0x40000000,
ICU_NO_ENCODE = 0x20000000,
ICU_DECODE = 0x10000000,
ICU_NO_META = 0x08000000,
ICU_ENCODE_SPACES_ONLY = 0x04000000,
ICU_BROWSER_MODE = 0x02000000;
enum {
INTERNET_OPEN_TYPE_PRECONFIG = 0,
INTERNET_OPEN_TYPE_DIRECT = 1,
INTERNET_OPEN_TYPE_PROXY = 3,
PRE_CONFIG_INTERNET_ACCESS = INTERNET_OPEN_TYPE_PRECONFIG,
LOCAL_INTERNET_ACCESS = INTERNET_OPEN_TYPE_DIRECT,
GATEWAY_INTERNET_ACCESS = 2,
CERN_PROXY_INTERNET_ACCESS = INTERNET_OPEN_TYPE_PROXY,
}
enum ISO_GLOBAL = 1;
enum ISO_REGISTRY = 2;
enum ISO_VALID_FLAGS = ISO_GLOBAL | ISO_REGISTRY;
enum {
INTERNET_OPTION_CALLBACK = 1,
INTERNET_OPTION_CONNECT_TIMEOUT,
INTERNET_OPTION_CONNECT_RETRIES,
INTERNET_OPTION_CONNECT_BACKOFF,
INTERNET_OPTION_SEND_TIMEOUT,
INTERNET_OPTION_CONTROL_SEND_TIMEOUT = INTERNET_OPTION_SEND_TIMEOUT,
INTERNET_OPTION_RECEIVE_TIMEOUT,
INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT = INTERNET_OPTION_RECEIVE_TIMEOUT,
INTERNET_OPTION_DATA_SEND_TIMEOUT,
INTERNET_OPTION_DATA_RECEIVE_TIMEOUT,
INTERNET_OPTION_HANDLE_TYPE = 9,
INTERNET_OPTION_LISTEN_TIMEOUT = 11,
INTERNET_OPTION_READ_BUFFER_SIZE,
INTERNET_OPTION_WRITE_BUFFER_SIZE, // = 13
INTERNET_OPTION_ASYNC_ID = 15,
INTERNET_OPTION_ASYNC_PRIORITY, // = 16
INTERNET_OPTION_PARENT_HANDLE = 21,
INTERNET_OPTION_KEEP_CONNECTION,
INTERNET_OPTION_REQUEST_FLAGS,
INTERNET_OPTION_EXTENDED_ERROR, // = 24
INTERNET_OPTION_OFFLINE_MODE = 26,
INTERNET_OPTION_CACHE_STREAM_HANDLE,
INTERNET_OPTION_USERNAME,
INTERNET_OPTION_PASSWORD,
INTERNET_OPTION_ASYNC,
INTERNET_OPTION_SECURITY_FLAGS,
INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT,
INTERNET_OPTION_DATAFILE_NAME,
INTERNET_OPTION_URL,
INTERNET_OPTION_SECURITY_CERTIFICATE,
INTERNET_OPTION_SECURITY_KEY_BITNESS,
INTERNET_OPTION_REFRESH,
INTERNET_OPTION_PROXY,
INTERNET_OPTION_SETTINGS_CHANGED,
INTERNET_OPTION_VERSION,
INTERNET_OPTION_USER_AGENT,
INTERNET_OPTION_END_BROWSER_SESSION,
INTERNET_OPTION_PROXY_USERNAME,
INTERNET_OPTION_PROXY_PASSWORD, // = 44
INTERNET_OPTION_CONTEXT_VALUE = 45,
INTERNET_OPTION_CONNECT_LIMIT = 46,
INTERNET_OPTION_SECURITY_SELECT_CLIENT_CERT= 47,
INTERNET_OPTION_POLICY = 48,
INTERNET_OPTION_DISCONNECTED_TIMEOUT = 49,
INTERNET_OPTION_CONNECTED_STATE = 50,
INTERNET_OPTION_IDLE_STATE = 51,
INTERNET_OPTION_OFFLINE_SEMANTICS = 52,
INTERNET_OPTION_SECONDARY_CACHE_KEY = 53,
INTERNET_OPTION_CALLBACK_FILTER = 54,
INTERNET_OPTION_CONNECT_TIME = 55,
INTERNET_OPTION_SEND_THROUGHPUT = 56,
INTERNET_OPTION_RECEIVE_THROUGHPUT = 57,
INTERNET_OPTION_REQUEST_PRIORITY = 58,
INTERNET_OPTION_HTTP_VERSION = 59,
INTERNET_OPTION_RESET_URLCACHE_SESSION = 60,
INTERNET_OPTION_ERROR_MASK = 62,
INTERNET_OPTION_FROM_CACHE_TIMEOUT = 63,
INTERNET_OPTION_BYPASS_EDITED_ENTRY = 64,
INTERNET_OPTION_HTTP_DECODING = 65,
INTERNET_OPTION_DIAGNOSTIC_SOCKET_INFO = 67,
INTERNET_OPTION_CODEPAGE = 68,
INTERNET_OPTION_CACHE_TIMESTAMPS = 69,
INTERNET_OPTION_DISABLE_AUTODIAL = 70,
INTERNET_OPTION_MAX_CONNS_PER_SERVER = 73,
INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER= 74,
INTERNET_OPTION_PER_CONNECTION_OPTION = 75,
INTERNET_OPTION_DIGEST_AUTH_UNLOAD = 76,
INTERNET_OPTION_IGNORE_OFFLINE = 77,
INTERNET_OPTION_IDENTITY = 78,
INTERNET_OPTION_REMOVE_IDENTITY = 79,
INTERNET_OPTION_ALTER_IDENTITY = 80,
INTERNET_OPTION_SUPPRESS_BEHAVIOR = 81,
INTERNET_OPTION_AUTODIAL_MODE = 82,
INTERNET_OPTION_AUTODIAL_CONNECTION = 83,
INTERNET_OPTION_CLIENT_CERT_CONTEXT = 84,
INTERNET_OPTION_AUTH_FLAGS = 85,
INTERNET_OPTION_COOKIES_3RD_PARTY = 86,
INTERNET_OPTION_DISABLE_PASSPORT_AUTH = 87,
INTERNET_OPTION_SEND_UTF8_SERVERNAME_TO_PROXY = 88,
INTERNET_OPTION_EXEMPT_CONNECTION_LIMIT = 89,
INTERNET_OPTION_ENABLE_PASSPORT_AUTH = 90,
INTERNET_OPTION_HIBERNATE_INACTIVE_WORKER_THREADS = 91,
INTERNET_OPTION_ACTIVATE_WORKER_THREADS = 92,
INTERNET_OPTION_RESTORE_WORKER_THREAD_DEFAULTS = 93,
INTERNET_OPTION_SOCKET_SEND_BUFFER_LENGTH = 94,
INTERNET_OPTION_PROXY_SETTINGS_CHANGED = 95,
INTERNET_OPTION_DATAFILE_EXT = 96,
INTERNET_OPTION_CODEPAGE_PATH = 100,
INTERNET_OPTION_CODEPAGE_EXTRA = 101,
INTERNET_OPTION_IDN = 102,
INTERNET_OPTION_MAX_CONNS_PER_PROXY = 103,
INTERNET_OPTION_SUPPRESS_SERVER_AUTH = 104,
INTERNET_OPTION_SERVER_CERT_CHAIN_CONTEXT = 105,
INTERNET_OPTION_ENABLE_REDIRECT_CACHE_READ = 122,
INTERNET_OPTION_COMPRESSED_CONTENT_LENGTH = 147,
INTERNET_OPTION_ENABLE_HTTP_PROTOCOL = 148,
INTERNET_OPTION_HTTP_PROTOCOL_USED = 149,
INTERNET_OPTION_ENCODE_EXTRA = 155,
INTERNET_OPTION_HSTS = 157,
INTERNET_OPTION_ENTERPRISE_CONTEXT = 159,
INTERNET_OPTION_CONNECTION_FILTER = 162,
INTERNET_OPTION_REFERER_TOKEN_BINDING_HOSTNAME = 163,
INTERNET_OPTION_TOKEN_BINDING_PUBLIC_KEY = 181,
INTERNET_OPTION_COOKIES_SAME_SITE_LEVEL = 187,
INTERNET_FIRST_OPTION = INTERNET_OPTION_CALLBACK,
INTERNET_LAST_OPTION = INTERNET_OPTION_COOKIES_SAME_SITE_LEVEL,
}
enum INTERNET_PRIORITY_FOREGROUND = 1000;
enum {
INTERNET_HANDLE_TYPE_INTERNET = 1,
INTERNET_HANDLE_TYPE_CONNECT_FTP,
INTERNET_HANDLE_TYPE_CONNECT_GOPHER,
INTERNET_HANDLE_TYPE_CONNECT_HTTP,
INTERNET_HANDLE_TYPE_FTP_FIND,
INTERNET_HANDLE_TYPE_FTP_FIND_HTML,
INTERNET_HANDLE_TYPE_FTP_FILE,
INTERNET_HANDLE_TYPE_FTP_FILE_HTML,
INTERNET_HANDLE_TYPE_GOPHER_FIND,
INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML,
INTERNET_HANDLE_TYPE_GOPHER_FILE,
INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML,
INTERNET_HANDLE_TYPE_HTTP_REQUEST
}
enum DWORD
SECURITY_FLAG_SECURE = 0x00000001,
SECURITY_FLAG_SSL = 0x00000002,
SECURITY_FLAG_SSL3 = 0x00000004,
SECURITY_FLAG_PCT = 0x00000008,
SECURITY_FLAG_PCT4 = 0x00000010,
SECURITY_FLAG_IETFSSL4 = 0x00000020,
SECURITY_FLAG_IGNORE_REVOCATION = 0x00000080,
SECURITY_FLAG_IGNORE_UNKNOWN_CA = 0x00000100,
SECURITY_FLAG_IGNORE_WRONG_USAGE = 0x00000200,
SECURITY_FLAG_40BIT = 0x10000000,
SECURITY_FLAG_128BIT = 0x20000000,
SECURITY_FLAG_56BIT = 0x40000000,
SECURITY_FLAG_UNKNOWNBIT = 0x80000000,
SECURITY_FLAG_NORMALBITNESS = SECURITY_FLAG_40BIT,
SECURITY_FLAG_IGNORE_CERT_CN_INVALID = INTERNET_FLAG_IGNORE_CERT_CN_INVALID,
SECURITY_FLAG_IGNORE_CERT_DATE_INVALID = INTERNET_FLAG_IGNORE_CERT_DATE_INVALID,
SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS,
SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP = INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP;
enum {
INTERNET_SERVICE_FTP = 1,
INTERNET_SERVICE_GOPHER,
INTERNET_SERVICE_HTTP
}
enum {
INTERNET_STATUS_RESOLVING_NAME = 10,
INTERNET_STATUS_NAME_RESOLVED = 11,
INTERNET_STATUS_CONNECTING_TO_SERVER = 20,
INTERNET_STATUS_CONNECTED_TO_SERVER = 21,
INTERNET_STATUS_SENDING_REQUEST = 30,
INTERNET_STATUS_REQUEST_SENT = 31,
INTERNET_STATUS_RECEIVING_RESPONSE = 40,
INTERNET_STATUS_RESPONSE_RECEIVED = 41,
INTERNET_STATUS_CTL_RESPONSE_RECEIVED = 42,
INTERNET_STATUS_PREFETCH = 43,
INTERNET_STATUS_CLOSING_CONNECTION = 50,
INTERNET_STATUS_CONNECTION_CLOSED = 51,
INTERNET_STATUS_HANDLE_CREATED = 60,
INTERNET_STATUS_HANDLE_CLOSING = 70,
INTERNET_STATUS_REQUEST_COMPLETE = 100,
INTERNET_STATUS_REDIRECT = 110
}
enum {
FTP_TRANSFER_TYPE_UNKNOWN = 0,
FTP_TRANSFER_TYPE_ASCII = 1,
FTP_TRANSFER_TYPE_BINARY = 2,
FTP_TRANSFER_TYPE_MASK = 3
}
enum size_t
MAX_GOPHER_DISPLAY_TEXT = 128,
MAX_GOPHER_SELECTOR_TEXT = 256,
MAX_GOPHER_HOST_NAME = INTERNET_MAX_HOST_NAME_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 + 4;
enum DWORD
GOPHER_TYPE_TEXT_FILE = 0x00000001,
GOPHER_TYPE_DIRECTORY = 0x00000002,
GOPHER_TYPE_CSO = 0x00000004,
GOPHER_TYPE_ERROR = 0x00000008,
GOPHER_TYPE_MAC_BINHEX = 0x00000010,
GOPHER_TYPE_DOS_ARCHIVE = 0x00000020,
GOPHER_TYPE_UNIX_UUENCODED = 0x00000040,
GOPHER_TYPE_INDEX_SERVER = 0x00000080,
GOPHER_TYPE_TELNET = 0x00000100,
GOPHER_TYPE_BINARY = 0x00000200,
GOPHER_TYPE_REDUNDANT = 0x00000400,
GOPHER_TYPE_TN3270 = 0x00000800,
GOPHER_TYPE_GIF = 0x00001000,
GOPHER_TYPE_IMAGE = 0x00002000,
GOPHER_TYPE_BITMAP = 0x00004000,
GOPHER_TYPE_MOVIE = 0x00008000,
GOPHER_TYPE_SOUND = 0x00010000,
GOPHER_TYPE_HTML = 0x00020000,
GOPHER_TYPE_PDF = 0x00040000,
GOPHER_TYPE_CALENDAR = 0x00080000,
GOPHER_TYPE_INLINE = 0x00100000,
GOPHER_TYPE_UNKNOWN = 0x20000000,
GOPHER_TYPE_ASK = 0x40000000,
GOPHER_TYPE_GOPHER_PLUS = 0x80000000,
GOPHER_TYPE_FILE_MASK = 0x001FF271;
BOOL IS_GOPHER_FILE(DWORD t) {
return !!(t & GOPHER_TYPE_FILE_MASK);
}
BOOL IS_GOPHER_DIRECTORY(DWORD t) {
return !!(t & GOPHER_TYPE_DIRECTORY);
}
BOOL IS_GOPHER_PHONE_SERVER(DWORD t) {
return !!(t & GOPHER_TYPE_CSO);
}
BOOL IS_GOPHER_ERROR(DWORD t) {
return !!(t & GOPHER_TYPE_ERROR);
}
BOOL IS_GOPHER_INDEX_SERVER(DWORD t) {
return !!(t & GOPHER_TYPE_INDEX_SERVER);
}
BOOL IS_GOPHER_TELNET_SESSION(DWORD t) {
return !!(t & GOPHER_TYPE_TELNET);
}
BOOL IS_GOPHER_BACKUP_SERVER(DWORD t) {
return !!(t & GOPHER_TYPE_REDUNDANT);
}
BOOL IS_GOPHER_TN3270_SESSION(DWORD t) {
return !!(t & GOPHER_TYPE_TN3270);
}
BOOL IS_GOPHER_ASK(DWORD t) {
return !!(t & GOPHER_TYPE_ASK);
}
BOOL IS_GOPHER_PLUS(DWORD t) {
return !!(t & GOPHER_TYPE_GOPHER_PLUS);
}
BOOL IS_GOPHER_TYPE_KNOWN(DWORD t) {
return !(t & GOPHER_TYPE_UNKNOWN);
}
enum size_t
MAX_GOPHER_CATEGORY_NAME = 128,
MAX_GOPHER_ATTRIBUTE_NAME = 128,
MIN_GOPHER_ATTRIBUTE_LENGTH = 256;
const TCHAR[]
GOPHER_INFO_CATEGORY = "+INFO",
GOPHER_ADMIN_CATEGORY = "+ADMIN",
GOPHER_VIEWS_CATEGORY = "+VIEWS",
GOPHER_ABSTRACT_CATEGORY = "+ABSTRACT",
GOPHER_VERONICA_CATEGORY = "+VERONICA",
GOPHER_ADMIN_ATTRIBUTE = "Admin",
GOPHER_MOD_DATE_ATTRIBUTE = "Mod-Date",
GOPHER_TTL_ATTRIBUTE = "TTL",
GOPHER_SCORE_ATTRIBUTE = "Score",
GOPHER_RANGE_ATTRIBUTE = "Score-range",
GOPHER_SITE_ATTRIBUTE = "Site",
GOPHER_ORG_ATTRIBUTE = "Org",
GOPHER_LOCATION_ATTRIBUTE = "Loc",
GOPHER_GEOG_ATTRIBUTE = "Geog",
GOPHER_TIMEZONE_ATTRIBUTE = "TZ",
GOPHER_PROVIDER_ATTRIBUTE = "Provider",
GOPHER_VERSION_ATTRIBUTE = "Version",
GOPHER_ABSTRACT_ATTRIBUTE = "Abstract",
GOPHER_VIEW_ATTRIBUTE = "View",
GOPHER_TREEWALK_ATTRIBUTE = "treewalk";
enum : DWORD {
GOPHER_ATTRIBUTE_ID_BASE = 0xABCCCC00,
GOPHER_CATEGORY_ID_ALL,
GOPHER_CATEGORY_ID_INFO,
GOPHER_CATEGORY_ID_ADMIN,
GOPHER_CATEGORY_ID_VIEWS,
GOPHER_CATEGORY_ID_ABSTRACT,
GOPHER_CATEGORY_ID_VERONICA,
GOPHER_CATEGORY_ID_ASK,
GOPHER_CATEGORY_ID_UNKNOWN,
GOPHER_ATTRIBUTE_ID_ALL,
GOPHER_ATTRIBUTE_ID_ADMIN,
GOPHER_ATTRIBUTE_ID_MOD_DATE,
GOPHER_ATTRIBUTE_ID_TTL,
GOPHER_ATTRIBUTE_ID_SCORE,
GOPHER_ATTRIBUTE_ID_RANGE,
GOPHER_ATTRIBUTE_ID_SITE,
GOPHER_ATTRIBUTE_ID_ORG,
GOPHER_ATTRIBUTE_ID_LOCATION,
GOPHER_ATTRIBUTE_ID_GEOG,
GOPHER_ATTRIBUTE_ID_TIMEZONE,
GOPHER_ATTRIBUTE_ID_PROVIDER,
GOPHER_ATTRIBUTE_ID_VERSION,
GOPHER_ATTRIBUTE_ID_ABSTRACT,
GOPHER_ATTRIBUTE_ID_VIEW,
GOPHER_ATTRIBUTE_ID_TREEWALK,
GOPHER_ATTRIBUTE_ID_UNKNOWN
}
enum HTTP_MAJOR_VERSION = 1;
enum HTTP_MINOR_VERSION = 0;
const TCHAR[] HTTP_VERSION = "HTTP/1.0";
enum : DWORD {
HTTP_QUERY_MIME_VERSION,
HTTP_QUERY_CONTENT_TYPE,
HTTP_QUERY_CONTENT_TRANSFER_ENCODING,
HTTP_QUERY_CONTENT_ID,
HTTP_QUERY_CONTENT_DESCRIPTION,
HTTP_QUERY_CONTENT_LENGTH,
HTTP_QUERY_CONTENT_LANGUAGE,
HTTP_QUERY_ALLOW,
HTTP_QUERY_PUBLIC,
HTTP_QUERY_DATE,
HTTP_QUERY_EXPIRES,
HTTP_QUERY_LAST_MODIFIED,
HTTP_QUERY_MESSAGE_ID,
HTTP_QUERY_URI,
HTTP_QUERY_DERIVED_FROM,
HTTP_QUERY_COST,
HTTP_QUERY_LINK,
HTTP_QUERY_PRAGMA,
HTTP_QUERY_VERSION,
HTTP_QUERY_STATUS_CODE,
HTTP_QUERY_STATUS_TEXT,
HTTP_QUERY_RAW_HEADERS,
HTTP_QUERY_RAW_HEADERS_CRLF,
HTTP_QUERY_CONNECTION,
HTTP_QUERY_ACCEPT,
HTTP_QUERY_ACCEPT_CHARSET,
HTTP_QUERY_ACCEPT_ENCODING,
HTTP_QUERY_ACCEPT_LANGUAGE,
HTTP_QUERY_AUTHORIZATION,
HTTP_QUERY_CONTENT_ENCODING,
HTTP_QUERY_FORWARDED,
HTTP_QUERY_FROM,
HTTP_QUERY_IF_MODIFIED_SINCE,
HTTP_QUERY_LOCATION,
HTTP_QUERY_ORIG_URI,
HTTP_QUERY_REFERER,
HTTP_QUERY_RETRY_AFTER,
HTTP_QUERY_SERVER,
HTTP_QUERY_TITLE,
HTTP_QUERY_USER_AGENT,
HTTP_QUERY_WWW_AUTHENTICATE,
HTTP_QUERY_PROXY_AUTHENTICATE,
HTTP_QUERY_ACCEPT_RANGES,
HTTP_QUERY_SET_COOKIE,
HTTP_QUERY_COOKIE,
HTTP_QUERY_REQUEST_METHOD,
HTTP_QUERY_MAX = 45,
HTTP_QUERY_CUSTOM = 65535
}
enum DWORD
HTTP_QUERY_FLAG_REQUEST_HEADERS = 0x80000000,
HTTP_QUERY_FLAG_SYSTEMTIME = 0x40000000,
HTTP_QUERY_FLAG_NUMBER = 0x20000000,
HTTP_QUERY_FLAG_COALESCE = 0x10000000,
HTTP_QUERY_MODIFIER_FLAGS_MASK = 0xF0000000,
HTTP_QUERY_HEADER_MASK = ~HTTP_QUERY_MODIFIER_FLAGS_MASK;
enum {
HTTP_STATUS_OK = 200,
HTTP_STATUS_CREATED,
HTTP_STATUS_ACCEPTED,
HTTP_STATUS_PARTIAL,
HTTP_STATUS_NO_CONTENT, // = 204
HTTP_STATUS_AMBIGUOUS = 300,
HTTP_STATUS_MOVED,
HTTP_STATUS_REDIRECT,
HTTP_STATUS_REDIRECT_METHOD,
HTTP_STATUS_NOT_MODIFIED, // = 304
HTTP_STATUS_BAD_REQUEST = 400,
HTTP_STATUS_DENIED,
HTTP_STATUS_PAYMENT_REQ,
HTTP_STATUS_FORBIDDEN,
HTTP_STATUS_NOT_FOUND,
HTTP_STATUS_BAD_METHOD,
HTTP_STATUS_NONE_ACCEPTABLE,
HTTP_STATUS_PROXY_AUTH_REQ,
HTTP_STATUS_REQUEST_TIMEOUT,
HTTP_STATUS_CONFLICT,
HTTP_STATUS_GONE,
HTTP_STATUS_AUTH_REFUSED, // = 411
HTTP_STATUS_SERVER_ERROR = 500,
HTTP_STATUS_NOT_SUPPORTED,
HTTP_STATUS_BAD_GATEWAY,
HTTP_STATUS_SERVICE_UNAVAIL,
HTTP_STATUS_GATEWAY_TIMEOUT // = 504
}
enum {
INTERNET_PREFETCH_PROGRESS,
INTERNET_PREFETCH_COMPLETE,
INTERNET_PREFETCH_ABORTED
}
enum FLAGS_ERROR_UI_FILTER_FOR_ERRORS = 0x01;
enum FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS = 0x02;
enum FLAGS_ERROR_UI_FLAGS_GENERATE_DATA = 0x04;
enum FLAGS_ERROR_UI_FLAGS_NO_UI = 0x08;
enum DWORD
HTTP_ADDREQ_INDEX_MASK = 0x0000FFFF,
HTTP_ADDREQ_FLAGS_MASK = 0xFFFF0000,
HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON = 0x01000000,
HTTP_ADDREQ_FLAG_ADD_IF_NEW = 0x10000000,
HTTP_ADDREQ_FLAG_ADD = 0x20000000,
HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA = 0x40000000,
HTTP_ADDREQ_FLAG_COALESCE = HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA,
HTTP_ADDREQ_FLAG_REPLACE = 0x80000000;
enum {
INTERNET_ERROR_BASE = 12000,
ERROR_INTERNET_OUT_OF_HANDLES,
ERROR_INTERNET_TIMEOUT,
ERROR_INTERNET_EXTENDED_ERROR,
ERROR_INTERNET_INTERNAL_ERROR,
ERROR_INTERNET_INVALID_URL,
ERROR_INTERNET_UNRECOGNIZED_SCHEME,
ERROR_INTERNET_NAME_NOT_RESOLVED,
ERROR_INTERNET_PROTOCOL_NOT_FOUND,
ERROR_INTERNET_INVALID_OPTION,
ERROR_INTERNET_BAD_OPTION_LENGTH,
ERROR_INTERNET_OPTION_NOT_SETTABLE,
ERROR_INTERNET_SHUTDOWN,
ERROR_INTERNET_INCORRECT_USER_NAME,
ERROR_INTERNET_INCORRECT_PASSWORD,
ERROR_INTERNET_LOGIN_FAILURE,
ERROR_INTERNET_INVALID_OPERATION,
ERROR_INTERNET_OPERATION_CANCELLED,
ERROR_INTERNET_INCORRECT_HANDLE_TYPE,
ERROR_INTERNET_INCORRECT_HANDLE_STATE,
ERROR_INTERNET_NOT_PROXY_REQUEST,
ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND,
ERROR_INTERNET_BAD_REGISTRY_PARAMETER,
ERROR_INTERNET_NO_DIRECT_ACCESS,
ERROR_INTERNET_NO_CONTEXT,
ERROR_INTERNET_NO_CALLBACK,
ERROR_INTERNET_REQUEST_PENDING,
ERROR_INTERNET_INCORRECT_FORMAT,
ERROR_INTERNET_ITEM_NOT_FOUND,
ERROR_INTERNET_CANNOT_CONNECT,
ERROR_INTERNET_CONNECTION_ABORTED,
ERROR_INTERNET_CONNECTION_RESET,
ERROR_INTERNET_FORCE_RETRY,
ERROR_INTERNET_INVALID_PROXY_REQUEST,
ERROR_INTERNET_NEED_UI, // = INTERNET_ERROR_BASE + 34
ERROR_INTERNET_HANDLE_EXISTS = INTERNET_ERROR_BASE + 36,
ERROR_INTERNET_SEC_CERT_DATE_INVALID,
ERROR_INTERNET_SEC_CERT_CN_INVALID,
ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR,
ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR,
ERROR_INTERNET_MIXED_SECURITY,
ERROR_INTERNET_CHG_POST_IS_NON_SECURE,
ERROR_INTERNET_POST_IS_NON_SECURE,
ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED,
ERROR_INTERNET_INVALID_CA,
ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP,
ERROR_INTERNET_ASYNC_THREAD_FAILED,
ERROR_INTERNET_REDIRECT_SCHEME_CHANGE, // = INTERNET_ERROR_BASE + 48
ERROR_FTP_TRANSFER_IN_PROGRESS = INTERNET_ERROR_BASE + 110,
ERROR_FTP_DROPPED, // = INTERNET_ERROR_BASE + 111
ERROR_GOPHER_PROTOCOL_ERROR = INTERNET_ERROR_BASE + 130,
ERROR_GOPHER_NOT_FILE,
ERROR_GOPHER_DATA_ERROR,
ERROR_GOPHER_END_OF_DATA,
ERROR_GOPHER_INVALID_LOCATOR,
ERROR_GOPHER_INCORRECT_LOCATOR_TYPE,
ERROR_GOPHER_NOT_GOPHER_PLUS,
ERROR_GOPHER_ATTRIBUTE_NOT_FOUND,
ERROR_GOPHER_UNKNOWN_LOCATOR, // = INTERNET_ERROR_BASE + 138,
ERROR_HTTP_HEADER_NOT_FOUND = INTERNET_ERROR_BASE + 150,
ERROR_HTTP_DOWNLEVEL_SERVER,
ERROR_HTTP_INVALID_SERVER_RESPONSE,
ERROR_HTTP_INVALID_HEADER,
ERROR_HTTP_INVALID_QUERY_REQUEST,
ERROR_HTTP_HEADER_ALREADY_EXISTS,
ERROR_HTTP_REDIRECT_FAILED,
ERROR_INTERNET_SECURITY_CHANNEL_ERROR,
ERROR_INTERNET_UNABLE_TO_CACHE_FILE,
ERROR_INTERNET_TCPIP_NOT_INSTALLED,
ERROR_HTTP_NOT_REDIRECTED, // = INTERNET_ERROR_BASE + 160
// why?
INTERNET_ERROR_LAST = ERROR_INTERNET_TCPIP_NOT_INSTALLED
}
enum NORMAL_CACHE_ENTRY = 0x000001;
enum STABLE_CACHE_ENTRY = 0x000002;
enum STICKY_CACHE_ENTRY = 0x000004;
enum SPARSE_CACHE_ENTRY = 0x010000;
enum OCX_CACHE_ENTRY = 0x020000;
enum COOKIE_CACHE_ENTRY = 0x100000;
enum URLHISTORY_CACHE_ENTRY = 0x200000;
enum CACHE_ENTRY_ATTRIBUTE_FC = 0x0004;
enum CACHE_ENTRY_HITRATE_FC = 0x0010;
enum CACHE_ENTRY_MODTIME_FC = 0x0040;
enum CACHE_ENTRY_EXPTIME_FC = 0x0080;
enum CACHE_ENTRY_ACCTIME_FC = 0x0100;
enum CACHE_ENTRY_SYNCTIME_FC = 0x0200;
enum CACHE_ENTRY_HEADERINFO_FC = 0x0400;
enum {
WININET_API_FLAG_ASYNC = 1,
WININET_API_FLAG_SYNC = 4,
WININET_API_FLAG_USE_CONTEXT = 8
}
// FIXME: how should these really be grouped?
enum {
IRF_ASYNC = WININET_API_FLAG_ASYNC,
IRF_SYNC = WININET_API_FLAG_SYNC,
IRF_USE_CONTEXT = WININET_API_FLAG_USE_CONTEXT,
}
enum IRF_NO_WAIT = 8;
enum {
HSR_ASYNC = WININET_API_FLAG_ASYNC,
HSR_SYNC = WININET_API_FLAG_SYNC,
HSR_USE_CONTEXT = WININET_API_FLAG_USE_CONTEXT,
}
enum HSR_INITIATE = 8;
enum HSR_DOWNLOAD = 16;
enum HSR_CHUNKED = 32;
enum INTERNET_DIAL_UNATTENDED = 0x8000;
enum INTERNET_DIALSTATE_DISCONNECTED = 1;
enum INTERENT_GOONLINE_REFRESH = 1;
enum INTERENT_GOONLINE_MASK = 1;
enum INTERNET_AUTODIAL_FORCE_ONLINE = 1;
enum INTERNET_AUTODIAL_FORCE_UNATTENDED = 2;
enum INTERNET_AUTODIAL_FAILIFSECURITYCHECK = 4;
enum INTERNET_CONNECTION_MODEM = 0x01;
enum INTERNET_CONNECTION_LAN = 0x02;
enum INTERNET_CONNECTION_PROXY = 0x04;
enum INTERNET_CONNECTION_MODEM_BUSY = 0x08;
enum INTERNET_RAS_INSTALLED = 0x10;
enum INTERNET_CONNECTION_OFFLINE = 0x20;
enum INTERNET_CONNECTION_CONFIGURED = 0x40;
enum {
CACHEGROUP_SEARCH_ALL = 0,
CACHEGROUP_SEARCH_BYURL = 1
}
enum {
INTERNET_CACHE_GROUP_ADD = 0,
INTERNET_CACHE_GROUP_REMOVE = 1
}
mixin DECLARE_HANDLE!("HINTERNET"); // doesn't work - bug
/*struct HINTERNET {
HANDLE h;
alias h this;
}*/
alias HINTERNET* LPHINTERNET;
alias LONGLONG GROUPID;
alias WORD INTERNET_PORT;
alias WORD* LPINTERNET_PORT;
enum INTERNET_SCHEME {
INTERNET_SCHEME_PARTIAL = -2,
INTERNET_SCHEME_UNKNOWN,
INTERNET_SCHEME_DEFAULT,
INTERNET_SCHEME_FTP,
INTERNET_SCHEME_GOPHER,
INTERNET_SCHEME_HTTP,
INTERNET_SCHEME_HTTPS,
INTERNET_SCHEME_FILE,
INTERNET_SCHEME_NEWS,
INTERNET_SCHEME_MAILTO,
INTERNET_SCHEME_SOCKS,
INTERNET_SCHEME_JAVASCRIPT,
INTERNET_SCHEME_VBSCRIPT,
INTERNET_SCHEME_RES,
INTERNET_SCHEME_FIRST = INTERNET_SCHEME_FTP,
INTERNET_SCHEME_LAST = INTERNET_SCHEME_RES
}
alias INTERNET_SCHEME* LPINTERNET_SCHEME;
struct INTERNET_ASYNC_RESULT {
DWORD_PTR dwResult;
DWORD dwError;
}
alias INTERNET_ASYNC_RESULT* LPINTERNET_ASYNC_RESULT;
struct INTERNET_DIAGNOSTIC_SOCKET_INFO {
DWORD_PTR Socket;
DWORD SourcePort;
DWORD DestPort;
DWORD Flags;
}
alias INTERNET_DIAGNOSTIC_SOCKET_INFO* LPINTERNET_DIAGNOSTIC_SOCKET_INFO;
struct INTERNET_PREFETCH_STATUS {
DWORD dwStatus;
DWORD dwSize;
}
alias INTERNET_PREFETCH_STATUS* LPINTERNET_PREFETCH_STATUS;
struct INTERNET_PROXY_INFO {
DWORD dwAccessType;
LPCTSTR lpszProxy;
LPCTSTR lpszProxyBypass;
}
alias INTERNET_PROXY_INFO* LPINTERNET_PROXY_INFO;
struct INTERNET_PER_CONN_OPTIONA {
DWORD dwOption;
union {
DWORD dwValue;
LPSTR pszValue;
FILETIME ftValue;
}
}
alias INTERNET_PER_CONN_OPTIONA* LPINTERNET_PER_CONN_OPTIONA;
struct INTERNET_PER_CONN_OPTIONW {
DWORD dwOption;
union {
DWORD dwValue;
LPWSTR pszValue;
FILETIME ftValue;
}
}
alias INTERNET_PER_CONN_OPTIONW* LPINTERNET_PER_CONN_OPTIONW;
struct INTERNET_PER_CONN_OPTION_LISTA {
DWORD dwSize;
LPSTR pszConnection;
DWORD dwOptionCount;
DWORD dwOptionError;
LPINTERNET_PER_CONN_OPTIONA pOptions;
}
alias INTERNET_PER_CONN_OPTION_LISTA* LPINTERNET_PER_CONN_OPTION_LISTA;
struct INTERNET_PER_CONN_OPTION_LISTW {
DWORD dwSize;
LPWSTR pszConnection;
DWORD dwOptionCount;
DWORD dwOptionError;
LPINTERNET_PER_CONN_OPTIONW pOptions;
}
alias INTERNET_PER_CONN_OPTION_LISTW* LPINTERNET_PER_CONN_OPTION_LISTW;
enum {
INTERNET_PER_CONN_FLAGS = 1,
INTERNET_PER_CONN_PROXY_SERVER = 2,
INTERNET_PER_CONN_PROXY_BYPASS = 3,
INTERNET_PER_CONN_AUTOCONFIG_URL = 4,
INTERNET_PER_CONN_AUTODISCOVERY_FLAGS = 5,
INTERNET_PER_CONN_AUTOCONFIG_SECONDARY_URL = 6,
INTERNET_PER_CONN_AUTOCONFIG_RELOAD_DELAY_MINS = 7,
INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_TIME = 8,
INTERNET_PER_CONN_AUTOCONFIG_LAST_DETECT_URL = 9,
INTERNET_PER_CONN_FLAGS_UI = 10,
}
enum {
PROXY_TYPE_DIRECT = 0x00000001,
PROXY_TYPE_PROXY = 0x00000002,
PROXY_TYPE_AUTO_PROXY_URL = 0x00000004,
PROXY_TYPE_AUTO_DETECT = 0x00000008,
}
enum {
AUTO_PROXY_FLAG_USER_SET = 0x00000001,
AUTO_PROXY_FLAG_ALWAYS_DETECT = 0x00000002,
AUTO_PROXY_FLAG_DETECTION_RUN = 0x00000004,
AUTO_PROXY_FLAG_MIGRATED = 0x00000008,
AUTO_PROXY_FLAG_DONT_CACHE_PROXY_RESULT = 0x00000010,
AUTO_PROXY_FLAG_CACHE_INIT_RUN = 0x00000020,
AUTO_PROXY_FLAG_DETECTION_SUSPECT = 0x00000040,
}
struct INTERNET_VERSION_INFO {
DWORD dwMajorVersion;
DWORD dwMinorVersion;
}
alias INTERNET_VERSION_INFO* LPINTERNET_VERSION_INFO;
struct URL_COMPONENTSA {
DWORD dwStructSize = URL_COMPONENTSA.sizeof;
LPSTR lpszScheme;
DWORD dwSchemeLength;
INTERNET_SCHEME nScheme;
LPSTR lpszHostName;
DWORD dwHostNameLength;
INTERNET_PORT nPort;
LPSTR lpszUserName;
DWORD dwUserNameLength;
LPSTR lpszPassword;
DWORD dwPasswordLength;
LPSTR lpszUrlPath;
DWORD dwUrlPathLength;
LPSTR lpszExtraInfo;
DWORD dwExtraInfoLength;
}
alias URL_COMPONENTSA* LPURL_COMPONENTSA;
struct URL_COMPONENTSW {
DWORD dwStructSize = URL_COMPONENTSW.sizeof;
LPWSTR lpszScheme;
DWORD dwSchemeLength;
INTERNET_SCHEME nScheme;
LPWSTR lpszHostName;
DWORD dwHostNameLength;
INTERNET_PORT nPort;
LPWSTR lpszUserName;
DWORD dwUserNameLength;
LPWSTR lpszPassword;
DWORD dwPasswordLength;
LPWSTR lpszUrlPath;
DWORD dwUrlPathLength;
LPWSTR lpszExtraInfo;
DWORD dwExtraInfoLength;
}
alias URL_COMPONENTSW* LPURL_COMPONENTSW;
struct INTERNET_CERTIFICATE_INFO {
FILETIME ftExpiry;
FILETIME ftStart;
LPTSTR lpszSubjectInfo;
LPTSTR lpszIssuerInfo;
LPTSTR lpszProtocolName;
LPTSTR lpszSignatureAlgName;
LPTSTR lpszEncryptionAlgName;
DWORD dwKeySize;
}
alias INTERNET_CERTIFICATE_INFO* LPINTERNET_CERTIFICATE_INFO;
extern (Windows) alias void function(HINTERNET, DWORD_PTR, DWORD, PVOID, DWORD)
INTERNET_STATUS_CALLBACK;
alias INTERNET_STATUS_CALLBACK* LPINTERNET_STATUS_CALLBACK;
enum INTERNET_INVALID_STATUS_CALLBACK
= cast(INTERNET_STATUS_CALLBACK) -1;
struct GOPHER_FIND_DATAA {
CHAR[MAX_GOPHER_DISPLAY_TEXT+1] DisplayString = 0;
DWORD GopherType;
DWORD SizeLow;
DWORD SizeHigh;
FILETIME LastModificationTime;
CHAR[MAX_GOPHER_LOCATOR_LENGTH+1] Locator = 0;
}
alias GOPHER_FIND_DATAA* LPGOPHER_FIND_DATAA;
struct GOPHER_FIND_DATAW {
WCHAR[MAX_GOPHER_DISPLAY_TEXT+1] DisplayString = 0;
DWORD GopherType;
DWORD SizeLow;
DWORD SizeHigh;
FILETIME LastModificationTime;
WCHAR[MAX_GOPHER_LOCATOR_LENGTH+1] Locator = 0;
}
alias GOPHER_FIND_DATAW* LPGOPHER_FIND_DATAW;
struct GOPHER_ADMIN_ATTRIBUTE_TYPE {
LPCTSTR Comment;
LPCTSTR EmailAddress;
}
alias GOPHER_ADMIN_ATTRIBUTE_TYPE* LPGOPHER_ADMIN_ATTRIBUTE_TYPE;
struct GOPHER_MOD_DATE_ATTRIBUTE_TYPE {
FILETIME DateAndTime;
}
alias GOPHER_MOD_DATE_ATTRIBUTE_TYPE* LPGOPHER_MOD_DATE_ATTRIBUTE_TYPE;
struct GOPHER_TTL_ATTRIBUTE_TYPE {
DWORD Ttl;
}
alias GOPHER_TTL_ATTRIBUTE_TYPE* LPGOPHER_TTL_ATTRIBUTE_TYPE;
struct GOPHER_SCORE_ATTRIBUTE_TYPE {
INT Score;
}
alias GOPHER_SCORE_ATTRIBUTE_TYPE* LPGOPHER_SCORE_ATTRIBUTE_TYPE;
struct GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE {
INT LowerBound;
INT UpperBound;
}
alias GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE* LPGOPHER_SCORE_RANGE_ATTRIBUTE_TYPE;
struct GOPHER_SITE_ATTRIBUTE_TYPE {
LPCTSTR Site;
}
alias GOPHER_SITE_ATTRIBUTE_TYPE* LPGOPHER_SITE_ATTRIBUTE_TYPE;
struct GOPHER_ORGANIZATION_ATTRIBUTE_TYPE {
LPCTSTR Organization;
}
alias GOPHER_ORGANIZATION_ATTRIBUTE_TYPE* LPGOPHER_ORGANIZATION_ATTRIBUTE_TYPE;
struct GOPHER_LOCATION_ATTRIBUTE_TYPE {
LPCTSTR Location;
}
alias GOPHER_LOCATION_ATTRIBUTE_TYPE* LPGOPHER_LOCATION_ATTRIBUTE_TYPE;
struct GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE {
INT DegreesNorth;
INT MinutesNorth;
INT SecondsNorth;
INT DegreesEast;
INT MinutesEast;
INT SecondsEast;
}
alias GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE*
LPGOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE;
struct GOPHER_TIMEZONE_ATTRIBUTE_TYPE {
INT Zone;
}
alias GOPHER_TIMEZONE_ATTRIBUTE_TYPE* LPGOPHER_TIMEZONE_ATTRIBUTE_TYPE;
struct GOPHER_PROVIDER_ATTRIBUTE_TYPE {
LPCTSTR Provider;
}
alias GOPHER_PROVIDER_ATTRIBUTE_TYPE* LPGOPHER_PROVIDER_ATTRIBUTE_TYPE;
struct GOPHER_VERSION_ATTRIBUTE_TYPE {
LPCTSTR Version;
}
alias GOPHER_VERSION_ATTRIBUTE_TYPE* LPGOPHER_VERSION_ATTRIBUTE_TYPE;
struct GOPHER_ABSTRACT_ATTRIBUTE_TYPE {
LPCTSTR ShortAbstract;
LPCTSTR AbstractFile;
}
alias GOPHER_ABSTRACT_ATTRIBUTE_TYPE* LPGOPHER_ABSTRACT_ATTRIBUTE_TYPE;
struct GOPHER_VIEW_ATTRIBUTE_TYPE {
LPCTSTR ContentType;
LPCTSTR Language;
DWORD Size;
}
alias GOPHER_VIEW_ATTRIBUTE_TYPE* LPGOPHER_VIEW_ATTRIBUTE_TYPE;
struct GOPHER_VERONICA_ATTRIBUTE_TYPE {
BOOL TreeWalk;
}
alias GOPHER_VERONICA_ATTRIBUTE_TYPE* LPGOPHER_VERONICA_ATTRIBUTE_TYPE;
struct GOPHER_ASK_ATTRIBUTE_TYPE {
LPCTSTR QuestionType;
LPCTSTR QuestionText;
}
alias GOPHER_ASK_ATTRIBUTE_TYPE* LPGOPHER_ASK_ATTRIBUTE_TYPE;
struct GOPHER_UNKNOWN_ATTRIBUTE_TYPE {
LPCTSTR Text;
}
alias GOPHER_UNKNOWN_ATTRIBUTE_TYPE* LPGOPHER_UNKNOWN_ATTRIBUTE_TYPE;
struct GOPHER_ATTRIBUTE_TYPE {
DWORD CategoryId;
DWORD AttributeId;
union {
GOPHER_ADMIN_ATTRIBUTE_TYPE Admin;
GOPHER_MOD_DATE_ATTRIBUTE_TYPE ModDate;
GOPHER_TTL_ATTRIBUTE_TYPE Ttl;
GOPHER_SCORE_ATTRIBUTE_TYPE Score;
GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE ScoreRange;
GOPHER_SITE_ATTRIBUTE_TYPE Site;
GOPHER_ORGANIZATION_ATTRIBUTE_TYPE Organization;
GOPHER_LOCATION_ATTRIBUTE_TYPE Location;
GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE GeographicalLocation;
GOPHER_TIMEZONE_ATTRIBUTE_TYPE TimeZone;
GOPHER_PROVIDER_ATTRIBUTE_TYPE Provider;
GOPHER_VERSION_ATTRIBUTE_TYPE Version;
GOPHER_ABSTRACT_ATTRIBUTE_TYPE Abstract;
GOPHER_VIEW_ATTRIBUTE_TYPE View;
GOPHER_VERONICA_ATTRIBUTE_TYPE Veronica;
GOPHER_ASK_ATTRIBUTE_TYPE Ask;
GOPHER_UNKNOWN_ATTRIBUTE_TYPE Unknown;
} /+AttributeType;+/
}
alias GOPHER_ATTRIBUTE_TYPE* LPGOPHER_ATTRIBUTE_TYPE;
extern (Windows)
alias BOOL function(LPGOPHER_ATTRIBUTE_TYPE, DWORD)
GOPHER_ATTRIBUTE_ENUMERATOR;
struct INTERNET_CACHE_ENTRY_INFOA {
DWORD dwStructSize = INTERNET_CACHE_ENTRY_INFOA.sizeof;
LPSTR lpszSourceUrlName;
LPSTR lpszLocalFileName;
DWORD CacheEntryType;
DWORD dwUseCount;
DWORD dwHitRate;
DWORD dwSizeLow;
DWORD dwSizeHigh;
FILETIME LastModifiedTime;
FILETIME ExpireTime;
FILETIME LastAccessTime;
FILETIME LastSyncTime;
PBYTE lpHeaderInfo;
DWORD dwHeaderInfoSize;
LPSTR lpszFileExtension;
DWORD dwReserved;
}
alias INTERNET_CACHE_ENTRY_INFOA* LPINTERNET_CACHE_ENTRY_INFOA;
struct INTERNET_CACHE_ENTRY_INFOW {
DWORD dwStructSize = INTERNET_CACHE_ENTRY_INFOW.sizeof;
LPWSTR lpszSourceUrlName;
LPWSTR lpszLocalFileName;
DWORD CacheEntryType;
DWORD dwUseCount;
DWORD dwHitRate;
DWORD dwSizeLow;
DWORD dwSizeHigh;
FILETIME LastModifiedTime;
FILETIME ExpireTime;
FILETIME LastAccessTime;
FILETIME LastSyncTime;
PBYTE lpHeaderInfo;
DWORD dwHeaderInfoSize;
LPWSTR lpszFileExtension;
DWORD dwReserved;
}
alias INTERNET_CACHE_ENTRY_INFOW* LPINTERNET_CACHE_ENTRY_INFOW;
struct INTERNET_BUFFERSA {
DWORD dwStructSize = INTERNET_BUFFERSA.sizeof;
INTERNET_BUFFERSA* Next;
LPCSTR lpcszHeader;
DWORD dwHeadersLength;
DWORD dwHeadersTotal;
LPVOID lpvBuffer;
DWORD dwBufferLength;
DWORD dwBufferTotal;
DWORD dwOffsetLow;
DWORD dwOffsetHigh;
}
alias INTERNET_BUFFERSA* LPINTERNET_BUFFERSA;
struct INTERNET_BUFFERSW {
DWORD dwStructSize = INTERNET_BUFFERSW.sizeof;
INTERNET_BUFFERSW* Next;
LPCWSTR lpcszHeader;
DWORD dwHeadersLength;
DWORD dwHeadersTotal;
LPVOID lpvBuffer;
DWORD dwBufferLength;
DWORD dwBufferTotal;
DWORD dwOffsetLow;
DWORD dwOffsetHigh;
}
alias INTERNET_BUFFERSW* LPINTERNET_BUFFERSW;
enum size_t
GROUP_OWNER_STORAGE_SIZE = 4,
GROUPNAME_MAX_LENGTH = 120;
struct INTERNET_CACHE_GROUP_INFOA {
DWORD dwGroupSize;
DWORD dwGroupFlags;
DWORD dwGroupType;
DWORD dwDiskUsage;
DWORD dwDiskQuota;
DWORD[GROUP_OWNER_STORAGE_SIZE] dwOwnerStorage;
CHAR[GROUPNAME_MAX_LENGTH] szGroupName = 0;
}
alias INTERNET_CACHE_GROUP_INFOA* LPINTERNET_CACHE_GROUP_INFOA;
struct INTERNET_CACHE_GROUP_INFOW {
DWORD dwGroupSize;
DWORD dwGroupFlags;
DWORD dwGroupType;
DWORD dwDiskUsage;
DWORD dwDiskQuota;
DWORD[GROUP_OWNER_STORAGE_SIZE] dwOwnerStorage;
WCHAR[GROUPNAME_MAX_LENGTH] szGroupName = 0;
}
alias INTERNET_CACHE_GROUP_INFOW* LPINTERNET_CACHE_GROUP_INFOW;
extern (Windows) {
BOOL InternetTimeFromSystemTime(SYSTEMTIME*, DWORD, LPSTR, DWORD);
BOOL InternetTimeToSystemTime(LPCSTR, SYSTEMTIME*, DWORD);
BOOL InternetDebugGetLocalTime(SYSTEMTIME*, PDWORD);
BOOL InternetCrackUrlA(LPCSTR, DWORD, DWORD, LPURL_COMPONENTSA);
BOOL InternetCrackUrlW(LPCWSTR, DWORD, DWORD, LPURL_COMPONENTSW);
BOOL InternetCreateUrlA(LPURL_COMPONENTSA, DWORD, LPSTR, PDWORD);
BOOL InternetCreateUrlW(LPURL_COMPONENTSW, DWORD, LPWSTR, PDWORD);
BOOL InternetCanonicalizeUrlA(LPCSTR, LPSTR, PDWORD, DWORD);
BOOL InternetCanonicalizeUrlW(LPCWSTR, LPWSTR, PDWORD, DWORD);
BOOL InternetCheckConnectionA(LPCSTR, DWORD, DWORD);
BOOL InternetCheckConnectionW(LPCWSTR, DWORD, DWORD);
BOOL InternetCombineUrlA(LPCSTR, LPCSTR, LPSTR, PDWORD, DWORD);
BOOL InternetCombineUrlW(LPCWSTR, LPCWSTR, LPWSTR, PDWORD, DWORD);
HINTERNET InternetOpenA(LPCSTR, DWORD, LPCSTR, LPCSTR, DWORD);
HINTERNET InternetOpenW(LPCWSTR, DWORD, LPCWSTR, LPCWSTR, DWORD);
BOOL InternetCloseHandle(HINTERNET);
HINTERNET InternetConnectA(HINTERNET, LPCSTR, INTERNET_PORT, LPCSTR,
LPCSTR, DWORD, DWORD, DWORD_PTR);
HINTERNET InternetConnectW(HINTERNET, LPCWSTR, INTERNET_PORT, LPCWSTR,
LPCWSTR, DWORD, DWORD, DWORD_PTR);
HINTERNET InternetOpenUrlA(HINTERNET, LPCSTR, LPCSTR, DWORD, DWORD,
DWORD_PTR);
HINTERNET InternetOpenUrlW(HINTERNET, LPCWSTR, LPCWSTR, DWORD, DWORD,
DWORD_PTR);
BOOL InternetReadFile(HINTERNET, PVOID, DWORD, PDWORD);
DWORD InternetSetFilePointer(HINTERNET, LONG, PVOID, DWORD, DWORD_PTR);
BOOL InternetWriteFile(HINTERNET, LPCVOID, DWORD, PDWORD);
BOOL InternetQueryDataAvailable(HINTERNET, PDWORD, DWORD, DWORD_PTR);
BOOL InternetFindNextFileA(HINTERNET, PVOID);
BOOL InternetFindNextFileW(HINTERNET, PVOID);
BOOL InternetQueryOptionA(HINTERNET, DWORD, PVOID, PDWORD);
BOOL InternetQueryOptionW(HINTERNET, DWORD, PVOID, PDWORD);
BOOL InternetSetOptionA(HINTERNET, DWORD, PVOID, DWORD);
BOOL InternetSetOptionW(HINTERNET, DWORD, PVOID, DWORD);
BOOL InternetSetOptionExA(HINTERNET, DWORD, PVOID, DWORD, DWORD);
BOOL InternetSetOptionExW(HINTERNET, DWORD, PVOID, DWORD, DWORD);
BOOL InternetGetLastResponseInfoA(PDWORD, LPSTR, PDWORD);
BOOL InternetGetLastResponseInfoW(PDWORD, LPWSTR, PDWORD);
INTERNET_STATUS_CALLBACK InternetSetStatusCallback(HINTERNET,
INTERNET_STATUS_CALLBACK);
DWORD FtpGetFileSize(HINTERNET, LPDWORD);
HINTERNET FtpFindFirstFileA(HINTERNET, LPCSTR, LPWIN32_FIND_DATAA, DWORD,
DWORD_PTR);
HINTERNET FtpFindFirstFileW(HINTERNET, LPCWSTR, LPWIN32_FIND_DATAW, DWORD,
DWORD_PTR);
BOOL FtpGetFileA(HINTERNET, LPCSTR, LPCSTR, BOOL, DWORD, DWORD, DWORD_PTR);
BOOL FtpGetFileW(HINTERNET, LPCWSTR, LPCWSTR, BOOL, DWORD, DWORD, DWORD_PTR);
BOOL FtpPutFileA(HINTERNET, LPCSTR, LPCSTR, DWORD, DWORD_PTR);
BOOL FtpPutFileW(HINTERNET, LPCWSTR, LPCWSTR, DWORD, DWORD_PTR);
BOOL FtpDeleteFileA(HINTERNET, LPCSTR);
BOOL FtpDeleteFileW(HINTERNET, LPCWSTR);
BOOL FtpRenameFileA(HINTERNET, LPCSTR, LPCSTR);
BOOL FtpRenameFileW(HINTERNET, LPCWSTR, LPCWSTR);
HINTERNET FtpOpenFileA(HINTERNET, LPCSTR, DWORD, DWORD, DWORD_PTR);
HINTERNET FtpOpenFileW(HINTERNET, LPCWSTR, DWORD, DWORD, DWORD_PTR);
BOOL FtpCreateDirectoryA(HINTERNET, LPCSTR);
BOOL FtpCreateDirectoryW(HINTERNET, LPCWSTR);
BOOL FtpRemoveDirectoryA(HINTERNET, LPCSTR);
BOOL FtpRemoveDirectoryW(HINTERNET, LPCWSTR);
BOOL FtpSetCurrentDirectoryA(HINTERNET, LPCSTR);
BOOL FtpSetCurrentDirectoryW(HINTERNET, LPCWSTR);
BOOL FtpGetCurrentDirectoryA(HINTERNET, LPSTR, PDWORD);
BOOL FtpGetCurrentDirectoryW(HINTERNET, LPWSTR, PDWORD);
BOOL FtpCommandA(HINTERNET, BOOL, DWORD, LPCSTR, DWORD_PTR, HINTERNET*);
BOOL FtpCommandW(HINTERNET, BOOL, DWORD, LPCWSTR, DWORD_PTR, HINTERNET*);
BOOL GopherCreateLocatorA(LPCSTR, INTERNET_PORT, LPCSTR, LPCSTR, DWORD,
LPSTR, PDWORD);
BOOL GopherCreateLocatorW(LPCWSTR, INTERNET_PORT, LPCWSTR, LPCWSTR, DWORD,
LPWSTR, PDWORD);
BOOL GopherGetLocatorTypeA(LPCSTR, PDWORD);
BOOL GopherGetLocatorTypeW(LPCWSTR, PDWORD);
HINTERNET GopherFindFirstFileA(HINTERNET, LPCSTR, LPCSTR,
LPGOPHER_FIND_DATAA, DWORD, DWORD_PTR);
HINTERNET GopherFindFirstFileW(HINTERNET, LPCWSTR, LPCWSTR,
LPGOPHER_FIND_DATAW, DWORD, DWORD_PTR);
HINTERNET GopherOpenFileA(HINTERNET, LPCSTR, LPCSTR, DWORD, DWORD_PTR);
HINTERNET GopherOpenFileW(HINTERNET, LPCWSTR, LPCWSTR, DWORD, DWORD_PTR);
BOOL GopherGetAttributeA(HINTERNET, LPCSTR, LPCSTR, LPBYTE, DWORD,
PDWORD, GOPHER_ATTRIBUTE_ENUMERATOR, DWORD_PTR);
BOOL GopherGetAttributeW(HINTERNET, LPCWSTR, LPCWSTR, LPBYTE, DWORD,
PDWORD, GOPHER_ATTRIBUTE_ENUMERATOR, DWORD_PTR);
HINTERNET HttpOpenRequestA(HINTERNET, LPCSTR, LPCSTR, LPCSTR, LPCSTR,
LPCSTR*, DWORD, DWORD_PTR);
HINTERNET HttpOpenRequestW(HINTERNET, LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR,
LPCWSTR*, DWORD, DWORD_PTR);
BOOL HttpAddRequestHeadersA(HINTERNET, LPCSTR, DWORD, DWORD);
BOOL HttpAddRequestHeadersW(HINTERNET, LPCWSTR, DWORD, DWORD);
BOOL HttpSendRequestA(HINTERNET, LPCSTR, DWORD, PVOID, DWORD);
BOOL HttpSendRequestW(HINTERNET, LPCWSTR, DWORD, PVOID, DWORD);
BOOL HttpQueryInfoA(HINTERNET, DWORD, PVOID, PDWORD, PDWORD);
BOOL HttpQueryInfoW(HINTERNET, DWORD, PVOID, PDWORD, PDWORD);
BOOL InternetSetCookieA(LPCSTR, LPCSTR, LPCSTR);
BOOL InternetSetCookieW(LPCWSTR, LPCWSTR, LPCWSTR);
BOOL InternetGetCookieA(LPCSTR, LPCSTR, LPSTR, PDWORD);
BOOL InternetGetCookieW(LPCWSTR, LPCWSTR, LPWSTR, PDWORD);
DWORD InternetAttemptConnect(DWORD);
DWORD InternetErrorDlg(HWND, HINTERNET, DWORD, DWORD, PVOID*);
DWORD InternetConfirmZoneCrossing(HWND, LPSTR, LPSTR, BOOL);
BOOL CreateUrlCacheEntryA(LPCSTR, DWORD, LPCSTR, LPSTR, DWORD);
BOOL CreateUrlCacheEntryW(LPCWSTR, DWORD, LPCWSTR, LPWSTR, DWORD);
BOOL CommitUrlCacheEntryA(LPCSTR, LPCSTR, FILETIME, FILETIME, DWORD,
LPBYTE, DWORD, LPCSTR, DWORD);
BOOL CommitUrlCacheEntryW(LPCWSTR, LPCWSTR, FILETIME, FILETIME, DWORD,
LPBYTE, DWORD, LPCWSTR, DWORD);
BOOL RetrieveUrlCacheEntryFileA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA,
PDWORD, DWORD);
BOOL RetrieveUrlCacheEntryFileW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW,
PDWORD, DWORD);
BOOL UnlockUrlCacheEntryFile(LPCSTR, DWORD);
HANDLE RetrieveUrlCacheEntryStreamA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA,
PDWORD, BOOL, DWORD);
HANDLE RetrieveUrlCacheEntryStreamW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW,
PDWORD, BOOL, DWORD);
BOOL ReadUrlCacheEntryStream(HANDLE, DWORD, PVOID, PDWORD, DWORD);
BOOL UnlockUrlCacheEntryStream(HANDLE, DWORD);
BOOL GetUrlCacheEntryInfoA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA, PDWORD);
BOOL GetUrlCacheEntryInfoW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW, PDWORD);
BOOL SetUrlCacheEntryInfoA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA, DWORD);
BOOL SetUrlCacheEntryInfoW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW, DWORD);
HANDLE FindFirstUrlCacheEntryA(LPCSTR, LPINTERNET_CACHE_ENTRY_INFOA,
PDWORD);
HANDLE FindFirstUrlCacheEntryW(LPCWSTR, LPINTERNET_CACHE_ENTRY_INFOW,
PDWORD);
BOOL FindNextUrlCacheEntryA(HANDLE, LPINTERNET_CACHE_ENTRY_INFOA, PDWORD);
BOOL FindNextUrlCacheEntryW(HANDLE, LPINTERNET_CACHE_ENTRY_INFOW, PDWORD);
BOOL FindCloseUrlCache(HANDLE);
BOOL DeleteUrlCacheEntry(LPCSTR);
DWORD AuthenticateUser(PVOID*, LPSTR, LPSTR, DWORD, LPSTR, DWORD, LPSTR,
LPSTR);
BOOL HttpSendRequestExA(HINTERNET, LPINTERNET_BUFFERSA,
LPINTERNET_BUFFERSA, DWORD, DWORD_PTR);
BOOL HttpSendRequestExW(HINTERNET, LPINTERNET_BUFFERSW,
LPINTERNET_BUFFERSW, DWORD, DWORD_PTR);
BOOL HttpEndRequestA(HINTERNET, LPINTERNET_BUFFERSA, DWORD, DWORD_PTR);
BOOL HttpEndRequestW(HINTERNET, LPINTERNET_BUFFERSW, DWORD, DWORD_PTR);
DWORD InternetDial(HWND, LPTSTR, DWORD, LPDWORD, DWORD);
DWORD InternetHangUp(DWORD_PTR, DWORD);
BOOL InternetGoOnline(LPTSTR, HWND, DWORD);
BOOL InternetAutodial(DWORD, DWORD);
BOOL InternetAutodialHangup(DWORD);
BOOL InternetGetConnectedState(LPDWORD, DWORD);
BOOL InternetSetDialState(LPCTSTR, DWORD, DWORD);
BOOL InternetReadFileExA(HINTERNET, LPINTERNET_BUFFERSA, DWORD, DWORD_PTR);
BOOL InternetReadFileExW(HINTERNET, LPINTERNET_BUFFERSW, DWORD, DWORD_PTR);
GROUPID CreateUrlCacheGroup(DWORD, LPVOID);
BOOL DeleteUrlCacheGroup(GROUPID, DWORD, LPVOID);
HANDLE FindFirstUrlCacheGroup(DWORD, DWORD, LPVOID, DWORD, GROUPID*,
LPVOID);
BOOL FindNextUrlCacheGroup(HANDLE, GROUPID*, LPVOID);
BOOL GetUrlCacheGroupAttributeA(GROUPID, DWORD, DWORD,
LPINTERNET_CACHE_GROUP_INFOA, LPDWORD, LPVOID);
BOOL GetUrlCacheGroupAttributeW(GROUPID, DWORD, DWORD,
LPINTERNET_CACHE_GROUP_INFOW, LPDWORD, LPVOID);
BOOL SetUrlCacheGroupAttributeA(GROUPID, DWORD, DWORD,
LPINTERNET_CACHE_GROUP_INFOA, LPVOID);
BOOL SetUrlCacheGroupAttributeW(GROUPID, DWORD, DWORD,
LPINTERNET_CACHE_GROUP_INFOW, LPVOID);
}
version (Unicode) {
alias INTERNET_PER_CONN_OPTIONW INTERNET_PER_CONN_OPTION;
alias LPINTERNET_PER_CONN_OPTIONW LPINTERNET_PER_CONN_OPTION;
alias INTERNET_PER_CONN_OPTION_LISTW INTERNET_PER_CONN_OPTION_LIST;
alias LPINTERNET_PER_CONN_OPTION_LISTW LPINTERNET_PER_CONN_OPTION_LIST;
alias URL_COMPONENTSW URL_COMPONENTS;
alias LPURL_COMPONENTSW LPURL_COMPONENTS;
alias GOPHER_FIND_DATAW GOPHER_FIND_DATA;
alias LPGOPHER_FIND_DATAW LPGOPHER_FIND_DATA;
alias INTERNET_CACHE_ENTRY_INFOW INTERNET_CACHE_ENTRY_INFO;
alias LPINTERNET_CACHE_ENTRY_INFOW LPINTERNET_CACHE_ENTRY_INFO;
alias INTERNET_BUFFERSW INTERNET_BUFFERS;
alias INTERNET_CACHE_GROUP_INFOW INTERNET_CACHE_GROUP_INFO;
alias LPINTERNET_CACHE_GROUP_INFOW LPINTERNET_CACHE_GROUP_INFO;
alias InternetCrackUrlW InternetCrackUrl;
alias InternetCreateUrlW InternetCreateUrl;
alias InternetCanonicalizeUrlW InternetCanonicalizeUrl;
alias InternetCheckConnectionW InternetCheckConnection;
alias InternetCombineUrlW InternetCombineUrl;
alias InternetOpenW InternetOpen;
alias InternetConnectW InternetConnect;
alias InternetOpenUrlW InternetOpenUrl;
alias InternetFindNextFileW InternetFindNextFile;
alias InternetQueryOptionW InternetQueryOption;
alias InternetSetOptionW InternetSetOption;
alias InternetSetOptionExW InternetSetOptionEx;
alias InternetGetLastResponseInfoW InternetGetLastResponseInfo;
alias InternetReadFileExW InternetReadFileEx;
alias FtpFindFirstFileW FtpFindFirstFile;
alias FtpGetFileW FtpGetFile;
alias FtpPutFileW FtpPutFile;
alias FtpDeleteFileW FtpDeleteFile;
alias FtpRenameFileW FtpRenameFile;
alias FtpOpenFileW FtpOpenFile;
alias FtpCreateDirectoryW FtpCreateDirectory;
alias FtpRemoveDirectoryW FtpRemoveDirectory;
alias FtpSetCurrentDirectoryW FtpSetCurrentDirectory;
alias FtpGetCurrentDirectoryW FtpGetCurrentDirectory;
alias FtpCommandW FtpCommand;
alias GopherGetLocatorTypeW GopherGetLocatorType;
alias GopherCreateLocatorW GopherCreateLocator;
alias GopherFindFirstFileW GopherFindFirstFile;
alias GopherOpenFileW GopherOpenFile;
alias GopherGetAttributeW GopherGetAttribute;
alias HttpSendRequestW HttpSendRequest;
alias HttpOpenRequestW HttpOpenRequest;
alias HttpAddRequestHeadersW HttpAddRequestHeaders;
alias HttpQueryInfoW HttpQueryInfo;
alias InternetSetCookieW InternetSetCookie;
alias InternetGetCookieW InternetGetCookie;
alias CreateUrlCacheEntryW CreateUrlCacheEntry;
alias RetrieveUrlCacheEntryStreamW RetrieveUrlCacheEntryStream;
alias FindNextUrlCacheEntryW FindNextUrlCacheEntry;
alias CommitUrlCacheEntryW CommitUrlCacheEntry;
alias GetUrlCacheEntryInfoW GetUrlCacheEntryInfo;
alias SetUrlCacheEntryInfoW SetUrlCacheEntryInfo;
alias FindFirstUrlCacheEntryW FindFirstUrlCacheEntry;
alias RetrieveUrlCacheEntryFileW RetrieveUrlCacheEntryFile;
alias HttpSendRequestExW HttpSendRequestEx;
alias HttpEndRequestW HttpEndRequest;
alias GetUrlCacheGroupAttributeW GetUrlCacheGroupAttribute;
alias SetUrlCacheGroupAttributeW SetUrlCacheGroupAttribute;
} else {
alias INTERNET_PER_CONN_OPTIONA INTERNET_PER_CONN_OPTION;
alias LPINTERNET_PER_CONN_OPTIONA LPINTERNET_PER_CONN_OPTION;
alias INTERNET_PER_CONN_OPTION_LISTA INTERNET_PER_CONN_OPTION_LIST;
alias LPINTERNET_PER_CONN_OPTION_LISTA LPINTERNET_PER_CONN_OPTION_LIST;
alias URL_COMPONENTSA URL_COMPONENTS;
alias LPURL_COMPONENTSA LPURL_COMPONENTS;
alias GOPHER_FIND_DATAA GOPHER_FIND_DATA;
alias LPGOPHER_FIND_DATAA LPGOPHER_FIND_DATA;
alias INTERNET_CACHE_ENTRY_INFOA INTERNET_CACHE_ENTRY_INFO;
alias LPINTERNET_CACHE_ENTRY_INFOA LPINTERNET_CACHE_ENTRY_INFO;
alias INTERNET_BUFFERSA INTERNET_BUFFERS;
alias INTERNET_CACHE_GROUP_INFOA INTERNET_CACHE_GROUP_INFO;
alias LPINTERNET_CACHE_GROUP_INFOA LPINTERNET_CACHE_GROUP_INFO;
alias GopherGetAttributeA GopherGetAttribute;
alias InternetCrackUrlA InternetCrackUrl;
alias InternetCreateUrlA InternetCreateUrl;
alias InternetCanonicalizeUrlA InternetCanonicalizeUrl;
alias InternetCheckConnectionA InternetCheckConnection;
alias InternetCombineUrlA InternetCombineUrl;
alias InternetOpenA InternetOpen;
alias InternetConnectA InternetConnect;
alias InternetOpenUrlA InternetOpenUrl;
alias InternetFindNextFileA InternetFindNextFile;
alias InternetQueryOptionA InternetQueryOption;
alias InternetSetOptionA InternetSetOption;
alias InternetSetOptionExA InternetSetOptionEx;
alias InternetGetLastResponseInfoA InternetGetLastResponseInfo;
alias InternetReadFileExA InternetReadFileEx;
alias FtpFindFirstFileA FtpFindFirstFile;
alias FtpGetFileA FtpGetFile;
alias FtpPutFileA FtpPutFile;
alias FtpDeleteFileA FtpDeleteFile;
alias FtpRenameFileA FtpRenameFile;
alias FtpOpenFileA FtpOpenFile;
alias FtpCreateDirectoryA FtpCreateDirectory;
alias FtpRemoveDirectoryA FtpRemoveDirectory;
alias FtpSetCurrentDirectoryA FtpSetCurrentDirectory;
alias FtpGetCurrentDirectoryA FtpGetCurrentDirectory;
alias FtpCommandA FtpCommand;
alias GopherGetLocatorTypeA GopherGetLocatorType;
alias GopherCreateLocatorA GopherCreateLocator;
alias GopherFindFirstFileA GopherFindFirstFile;
alias GopherOpenFileA GopherOpenFile;
alias HttpSendRequestA HttpSendRequest;
alias HttpOpenRequestA HttpOpenRequest;
alias HttpAddRequestHeadersA HttpAddRequestHeaders;
alias HttpQueryInfoA HttpQueryInfo;
alias InternetSetCookieA InternetSetCookie;
alias InternetGetCookieA InternetGetCookie;
alias CreateUrlCacheEntryA CreateUrlCacheEntry;
alias RetrieveUrlCacheEntryStreamA RetrieveUrlCacheEntryStream;
alias FindNextUrlCacheEntryA FindNextUrlCacheEntry;
alias CommitUrlCacheEntryA CommitUrlCacheEntry;
alias GetUrlCacheEntryInfoA GetUrlCacheEntryInfo;
alias SetUrlCacheEntryInfoA SetUrlCacheEntryInfo;
alias FindFirstUrlCacheEntryA FindFirstUrlCacheEntry;
alias RetrieveUrlCacheEntryFileA RetrieveUrlCacheEntryFile;
alias HttpSendRequestExA HttpSendRequestEx;
alias HttpEndRequestA HttpEndRequest;
alias GetUrlCacheGroupAttributeA GetUrlCacheGroupAttribute;
alias SetUrlCacheGroupAttributeA SetUrlCacheGroupAttribute;
}
alias INTERNET_BUFFERS* LPINTERNET_BUFFERS;