📄 wininet.h
字号:
typedef struct {
DWORD CategoryId; // e.g. GOPHER_CATEGORY_ID_ADMIN
DWORD AttributeId; // e.g. GOPHER_ATTRIBUTE_ID_ADMIN
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;
} GOPHER_ATTRIBUTE_TYPE, * LPGOPHER_ATTRIBUTE_TYPE;
#define MAX_GOPHER_CATEGORY_NAME 128 // arbitrary
#define MAX_GOPHER_ATTRIBUTE_NAME 128 // "
#define MIN_GOPHER_ATTRIBUTE_LENGTH 256 // "
//
// known gopher attribute categories. See below for ordinals
//
#define GOPHER_INFO_CATEGORY TEXT("+INFO")
#define GOPHER_ADMIN_CATEGORY TEXT("+ADMIN")
#define GOPHER_VIEWS_CATEGORY TEXT("+VIEWS")
#define GOPHER_ABSTRACT_CATEGORY TEXT("+ABSTRACT")
#define GOPHER_VERONICA_CATEGORY TEXT("+VERONICA")
//
// known gopher attributes. These are the attribute names as defined in the
// gopher+ protocol document
//
#define GOPHER_ADMIN_ATTRIBUTE TEXT("Admin")
#define GOPHER_MOD_DATE_ATTRIBUTE TEXT("Mod-Date")
#define GOPHER_TTL_ATTRIBUTE TEXT("TTL")
#define GOPHER_SCORE_ATTRIBUTE TEXT("Score")
#define GOPHER_RANGE_ATTRIBUTE TEXT("Score-range")
#define GOPHER_SITE_ATTRIBUTE TEXT("Site")
#define GOPHER_ORG_ATTRIBUTE TEXT("Org")
#define GOPHER_LOCATION_ATTRIBUTE TEXT("Loc")
#define GOPHER_GEOG_ATTRIBUTE TEXT("Geog")
#define GOPHER_TIMEZONE_ATTRIBUTE TEXT("TZ")
#define GOPHER_PROVIDER_ATTRIBUTE TEXT("Provider")
#define GOPHER_VERSION_ATTRIBUTE TEXT("Version")
#define GOPHER_ABSTRACT_ATTRIBUTE TEXT("Abstract")
#define GOPHER_VIEW_ATTRIBUTE TEXT("View")
#define GOPHER_TREEWALK_ATTRIBUTE TEXT("treewalk")
//
// identifiers for attribute strings
//
#define GOPHER_ATTRIBUTE_ID_BASE 0xabcccc00
#define GOPHER_CATEGORY_ID_ALL (GOPHER_ATTRIBUTE_ID_BASE + 1)
#define GOPHER_CATEGORY_ID_INFO (GOPHER_ATTRIBUTE_ID_BASE + 2)
#define GOPHER_CATEGORY_ID_ADMIN (GOPHER_ATTRIBUTE_ID_BASE + 3)
#define GOPHER_CATEGORY_ID_VIEWS (GOPHER_ATTRIBUTE_ID_BASE + 4)
#define GOPHER_CATEGORY_ID_ABSTRACT (GOPHER_ATTRIBUTE_ID_BASE + 5)
#define GOPHER_CATEGORY_ID_VERONICA (GOPHER_ATTRIBUTE_ID_BASE + 6)
#define GOPHER_CATEGORY_ID_ASK (GOPHER_ATTRIBUTE_ID_BASE + 7)
#define GOPHER_CATEGORY_ID_UNKNOWN (GOPHER_ATTRIBUTE_ID_BASE + 8)
#define GOPHER_ATTRIBUTE_ID_ALL (GOPHER_ATTRIBUTE_ID_BASE + 9)
#define GOPHER_ATTRIBUTE_ID_ADMIN (GOPHER_ATTRIBUTE_ID_BASE + 10)
#define GOPHER_ATTRIBUTE_ID_MOD_DATE (GOPHER_ATTRIBUTE_ID_BASE + 11)
#define GOPHER_ATTRIBUTE_ID_TTL (GOPHER_ATTRIBUTE_ID_BASE + 12)
#define GOPHER_ATTRIBUTE_ID_SCORE (GOPHER_ATTRIBUTE_ID_BASE + 13)
#define GOPHER_ATTRIBUTE_ID_RANGE (GOPHER_ATTRIBUTE_ID_BASE + 14)
#define GOPHER_ATTRIBUTE_ID_SITE (GOPHER_ATTRIBUTE_ID_BASE + 15)
#define GOPHER_ATTRIBUTE_ID_ORG (GOPHER_ATTRIBUTE_ID_BASE + 16)
#define GOPHER_ATTRIBUTE_ID_LOCATION (GOPHER_ATTRIBUTE_ID_BASE + 17)
#define GOPHER_ATTRIBUTE_ID_GEOG (GOPHER_ATTRIBUTE_ID_BASE + 18)
#define GOPHER_ATTRIBUTE_ID_TIMEZONE (GOPHER_ATTRIBUTE_ID_BASE + 19)
#define GOPHER_ATTRIBUTE_ID_PROVIDER (GOPHER_ATTRIBUTE_ID_BASE + 20)
#define GOPHER_ATTRIBUTE_ID_VERSION (GOPHER_ATTRIBUTE_ID_BASE + 21)
#define GOPHER_ATTRIBUTE_ID_ABSTRACT (GOPHER_ATTRIBUTE_ID_BASE + 22)
#define GOPHER_ATTRIBUTE_ID_VIEW (GOPHER_ATTRIBUTE_ID_BASE + 23)
#define GOPHER_ATTRIBUTE_ID_TREEWALK (GOPHER_ATTRIBUTE_ID_BASE + 24)
#define GOPHER_ATTRIBUTE_ID_UNKNOWN (GOPHER_ATTRIBUTE_ID_BASE + 25)
//
// prototypes
//
BOOLAPI
GopherCreateLocatorA(
IN LPCSTR lpszHost,
IN INTERNET_PORT nServerPort,
IN LPCSTR lpszDisplayString OPTIONAL,
IN LPCSTR lpszSelectorString OPTIONAL,
IN DWORD dwGopherType,
OUT LPSTR lpszLocator OPTIONAL,
IN OUT LPDWORD lpdwBufferLength
);
BOOLAPI
GopherCreateLocatorW(
IN LPCWSTR lpszHost,
IN INTERNET_PORT nServerPort,
IN LPCWSTR lpszDisplayString OPTIONAL,
IN LPCWSTR lpszSelectorString OPTIONAL,
IN DWORD dwGopherType,
OUT LPWSTR lpszLocator OPTIONAL,
IN OUT LPDWORD lpdwBufferLength
);
#ifdef UNICODE
#define GopherCreateLocator GopherCreateLocatorW
#else
#define GopherCreateLocator GopherCreateLocatorA
#endif // !UNICODE
BOOLAPI
GopherGetLocatorTypeA(
IN LPCSTR lpszLocator,
OUT LPDWORD lpdwGopherType
);
BOOLAPI
GopherGetLocatorTypeW(
IN LPCWSTR lpszLocator,
OUT LPDWORD lpdwGopherType
);
#ifdef UNICODE
#define GopherGetLocatorType GopherGetLocatorTypeW
#else
#define GopherGetLocatorType GopherGetLocatorTypeA
#endif // !UNICODE
INTERNETAPI
HINTERNET
WINAPI
GopherFindFirstFileA(
IN HINTERNET hConnect,
IN LPCSTR lpszLocator OPTIONAL,
IN LPCSTR lpszSearchString OPTIONAL,
OUT LPGOPHER_FIND_DATAA lpFindData OPTIONAL,
IN DWORD dwFlags,
IN DWORD dwContext
);
INTERNETAPI
HINTERNET
WINAPI
GopherFindFirstFileW(
IN HINTERNET hConnect,
IN LPCWSTR lpszLocator OPTIONAL,
IN LPCWSTR lpszSearchString OPTIONAL,
OUT LPGOPHER_FIND_DATAW lpFindData OPTIONAL,
IN DWORD dwFlags,
IN DWORD dwContext
);
#ifdef UNICODE
#define GopherFindFirstFile GopherFindFirstFileW
#else
#define GopherFindFirstFile GopherFindFirstFileA
#endif // !UNICODE
INTERNETAPI
HINTERNET
WINAPI
GopherOpenFileA(
IN HINTERNET hConnect,
IN LPCSTR lpszLocator,
IN LPCSTR lpszView OPTIONAL,
IN DWORD dwFlags,
IN DWORD dwContext
);
INTERNETAPI
HINTERNET
WINAPI
GopherOpenFileW(
IN HINTERNET hConnect,
IN LPCWSTR lpszLocator,
IN LPCWSTR lpszView OPTIONAL,
IN DWORD dwFlags,
IN DWORD dwContext
);
#ifdef UNICODE
#define GopherOpenFile GopherOpenFileW
#else
#define GopherOpenFile GopherOpenFileA
#endif // !UNICODE
typedef
BOOL
(CALLBACK * GOPHER_ATTRIBUTE_ENUMERATOR)(
LPGOPHER_ATTRIBUTE_TYPE lpAttributeInfo,
DWORD dwError
);
BOOLAPI
GopherGetAttributeA(
IN HINTERNET hConnect,
IN LPCSTR lpszLocator,
IN LPCSTR lpszAttributeName OPTIONAL,
OUT LPBYTE lpBuffer,
IN DWORD dwBufferLength,
OUT LPDWORD lpdwCharactersReturned,
IN GOPHER_ATTRIBUTE_ENUMERATOR lpfnEnumerator OPTIONAL,
IN DWORD dwContext
);
BOOLAPI
GopherGetAttributeW(
IN HINTERNET hConnect,
IN LPCWSTR lpszLocator,
IN LPCWSTR lpszAttributeName OPTIONAL,
OUT LPBYTE lpBuffer,
IN DWORD dwBufferLength,
OUT LPDWORD lpdwCharactersReturned,
IN GOPHER_ATTRIBUTE_ENUMERATOR lpfnEnumerator OPTIONAL,
IN DWORD dwContext
);
#ifdef UNICODE
#define GopherGetAttribute GopherGetAttributeW
#else
#define GopherGetAttribute GopherGetAttributeA
#endif // !UNICODE
//
// HTTP
//
//
// manifests
//
//
// the default major/minor HTTP version numbers
//
#define HTTP_MAJOR_VERSION 1
#define HTTP_MINOR_VERSION 0
#define HTTP_VERSION TEXT("HTTP/1.0")
//
// 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.
//
#define HTTP_QUERY_MIME_VERSION 0
#define HTTP_QUERY_CONTENT_TYPE 1
#define HTTP_QUERY_CONTENT_TRANSFER_ENCODING 2
#define HTTP_QUERY_CONTENT_ID 3
#define HTTP_QUERY_CONTENT_DESCRIPTION 4
#define HTTP_QUERY_CONTENT_LENGTH 5
#define HTTP_QUERY_CONTENT_LANGUAGE 6
#define HTTP_QUERY_ALLOW 7
#define HTTP_QUERY_PUBLIC 8
#define HTTP_QUERY_DATE 9
#define HTTP_QUERY_EXPIRES 10
#define HTTP_QUERY_LAST_MODIFIED 11
#define HTTP_QUERY_MESSAGE_ID 12
#define HTTP_QUERY_URI 13
#define HTTP_QUERY_DERIVED_FROM 14
#define HTTP_QUERY_COST 15
#define HTTP_QUERY_LINK 16
#define HTTP_QUERY_PRAGMA 17
#define HTTP_QUERY_VERSION 18 // special: part of status line
#define HTTP_QUERY_STATUS_CODE 19 // special: part of status line
#define HTTP_QUERY_STATUS_TEXT 20 // special: part of status line
#define HTTP_QUERY_RAW_HEADERS 21 // special: all headers as ASCIIZ
#define HTTP_QUERY_RAW_HEADERS_CRLF 22 // special: all headers
#define HTTP_QUERY_CONNECTION 23
#define HTTP_QUERY_ACCEPT 24
#define HTTP_QUERY_ACCEPT_CHARSET 25
#define HTTP_QUERY_ACCEPT_ENCODING 26
#define HTTP_QUERY_ACCEPT_LANGUAGE 27
#define HTTP_QUERY_AUTHORIZATION 28
#define HTTP_QUERY_CONTENT_ENCODING 29
#define HTTP_QUERY_FORWARDED 30
#define HTTP_QUERY_FROM 31
#define HTTP_QUERY_IF_MODIFIED_SINCE 32
#define HTTP_QUERY_LOCATION 33
#define HTTP_QUERY_ORIG_URI 34
#define HTTP_QUERY_REFERER 35
#define HTTP_QUERY_RETRY_AFTER 36
#define HTTP_QUERY_SERVER 37
#define HTTP_QUERY_TITLE 38
#define HTTP_QUERY_USER_AGENT 39
#define HTTP_QUERY_WWW_AUTHENTICATE 40
#define HTTP_QUERY_PROXY_AUTHENTICATE 41
#define HTTP_QUERY_ACCEPT_RANGES 42
#define HTTP_QUERY_SET_COOKIE 43
#define HTTP_QUERY_COOKIE 44
#define HTTP_QUERY_REQUEST_METHOD 45 // special: GET/POST etc.
#define HTTP_QUERY_REFRESH 46
#define HTTP_QUERY_CONTENT_DISPOSITION 47
//
// HTTP 1.1 defined headers
//
#define HTTP_QUERY_AGE 48
#define HTTP_QUERY_CACHE_CONTROL 49
#define HTTP_QUERY_CONTENT_BASE 50
#define HTTP_QUERY_CONTENT_LOCATION 51
#define HTTP_QUERY_CONTENT_MD5 52
#define HTTP_QUERY_CONTENT_RANGE 53
#define HTTP_QUERY_ETAG 54
#define HTTP_QUERY_HOST 55
#define HTTP_QUERY_IF_MATCH 56
#define HTTP_QUERY_IF_NONE_MATCH 57
#define HTTP_QUERY_IF_RANGE 58
#define HTTP_QUERY_IF_UNMODIFIED_SINCE 59
#define HTTP_QUERY_MAX_FORWARDS 60
#define HTTP_QUERY_PROXY_AUTHORIZATION 61
#define HTTP_QUERY_RANGE 62
#define HTTP_QUERY_TRANSFER_ENCODING 63
#define HTTP_QUERY_UPGRADE 64
#define HTTP_QUERY_VARY 65
#define HTTP_QUERY_VIA 66
#define HTTP_QUERY_WARNING 67
#define HTTP_QUERY_MAX 67
//
// 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
//
#define 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
//
#define HTTP_QUERY_FLAG_REQUEST_HEADERS 0x80000000
//
// 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
//
#define HTTP_QUERY_FLAG_SYSTEMTIME 0x40000000
//
// 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
//
#define HTTP_QUERY_FLAG_NUMBER 0x20000000
//
// HTTP_QUERY_FLAG_COALESCE - combine the values from several headers of the
// same name into the output buffer
//
#define HTTP_QUERY_FLAG_COALESCE 0x10000000
#define HTTP_QUERY_MODIFIER_FLAGS_MASK (HTTP_QUERY_FLAG_REQUEST_HEADERS \
| HTTP_QUERY_FLAG_SYSTEMTIME \
| HTTP_QUERY_FLAG_NUMBER \
| HTTP_QUERY_FLAG_COALESCE \
)
#define HTTP_QUERY_HEADER_MASK (~HTTP_QUERY_MODIFIER_FLAGS_MASK)
//
// HTTP Response Status Codes:
//
#define HTTP_STATUS_CONTINUE 100 // OK to continue with request
#define HTTP_STATUS_SWITCH_PROTOCOLS 101 // server has switched protocols in upgrade header
#define HTTP_STATUS_OK 200 // request completed
#define HTTP_STATUS_CREATED 201 // object created, reason = new URI
#define HTTP_STATUS_ACCEPTED 202 // async completion (TBS)
#define HTTP_STATUS_PARTIAL 203 // partial completion
#define HTTP_STATUS_NO_CONTENT 204 // no info to return
#define HTTP_STATUS_RESET_CONTENT 205 // request completed, but clear form
#define HTTP_STATUS_PARTIAL_CONTENT 206 // partial GET furfilled
#define HTTP_STATUS_AMBIGUOUS 300 // server couldn't decide what to return
#define HTTP_STATUS_MOVED 301 // object permanently moved
#define HTTP_STATUS_REDIRECT 302 // object temporarily moved
#define HTTP_STATUS_REDIRECT_METHOD 303 // redirection w/ new access method
#define HTTP_STATUS_NOT_MODIFIED 304 // if-modified-since was not modified
#define HTTP_STATUS_USE_PROXY 305 // redirection to proxy, location header specifies p
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -