mingw-5.1.4/win32/include/wininet.h
changeset 0 76b1f169d9fe
equal deleted inserted replaced
-1:000000000000 0:76b1f169d9fe
       
     1 #ifndef _WININET_H
       
     2 #define _WININET_H
       
     3 #if __GNUC__ >=3
       
     4 #pragma GCC system_header
       
     5 #endif
       
     6 
       
     7 #include <windows.h>
       
     8 #ifdef __cplusplus
       
     9 extern "C" {
       
    10 #endif
       
    11 #define INTERNET_INVALID_PORT_NUMBER 0
       
    12 #define INTERNET_DEFAULT_FTP_PORT 21
       
    13 #define INTERNET_DEFAULT_GOPHER_PORT 70
       
    14 #define INTERNET_DEFAULT_HTTP_PORT 80
       
    15 #define INTERNET_DEFAULT_HTTPS_PORT 443
       
    16 #define INTERNET_DEFAULT_SOCKS_PORT 1080
       
    17 #define MAX_CACHE_ENTRY_INFO_SIZE 4096
       
    18 #define INTERNET_MAX_HOST_NAME_LENGTH 256
       
    19 #define INTERNET_MAX_USER_NAME_LENGTH 128
       
    20 #define INTERNET_MAX_PASSWORD_LENGTH 128
       
    21 #define INTERNET_MAX_PORT_NUMBER_LENGTH 5
       
    22 #define INTERNET_MAX_PORT_NUMBER_VALUE 65535
       
    23 #define INTERNET_MAX_PATH_LENGTH 2048
       
    24 #define INTERNET_MAX_SCHEME_LENGTH 32
       
    25 #define INTERNET_MAX_URL_LENGTH (INTERNET_MAX_SCHEME_LENGTH+sizeof("://")+INTERNET_MAX_PATH_LENGTH)
       
    26 #define INTERNET_KEEP_ALIVE_UNKNOWN ((DWORD)-1)
       
    27 #define INTERNET_KEEP_ALIVE_ENABLED 1
       
    28 #define INTERNET_KEEP_ALIVE_DISABLED 0
       
    29 #define INTERNET_REQFLAG_FROM_CACHE 1
       
    30 #define INTERNET_REQFLAG_ASYNC 2
       
    31 #define INTERNET_FLAG_RELOAD 0x80000000
       
    32 #define INTERNET_FLAG_RAW_DATA 0x40000000
       
    33 #define INTERNET_FLAG_EXISTING_CONNECT 0x20000000
       
    34 #define INTERNET_FLAG_ASYNC 0x10000000
       
    35 #define INTERNET_FLAG_PASSIVE 0x08000000
       
    36 #define INTERNET_FLAG_NO_CACHE_WRITE 0x04000000
       
    37 #define INTERNET_FLAG_DONT_CACHE INTERNET_FLAG_NO_CACHE_WRITE
       
    38 #define INTERNET_FLAG_MAKE_PERSISTENT 0x02000000
       
    39 #define INTERNET_FLAG_OFFLINE 0x1000000
       
    40 #define INTERNET_FLAG_SECURE 0x800000
       
    41 #define INTERNET_FLAG_KEEP_CONNECTION 0x400000
       
    42 #define INTERNET_FLAG_NO_AUTO_REDIRECT 0x200000
       
    43 #define INTERNET_FLAG_READ_PREFETCH 0x100000
       
    44 #define INTERNET_FLAG_NO_COOKIES 0x80000
       
    45 #define INTERNET_FLAG_NO_AUTH 0x40000
       
    46 #define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP 0x8000
       
    47 #define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS 0x4000
       
    48 #define INTERNET_FLAG_IGNORE_CERT_DATE_INVALID 0x2000
       
    49 #define INTERNET_FLAG_IGNORE_CERT_CN_INVALID 0x1000
       
    50 #define INTERNET_FLAG_MUST_CACHE_REQUEST 16
       
    51 #define INTERNET_FLAG_RESYNCHRONIZE 0x800
       
    52 #define INTERNET_FLAG_HYPERLINK 0x400
       
    53 #define INTERNET_FLAG_NO_UI 0x200
       
    54 #define INTERNET_FLAG_PRAGMA_NOCACHE 0x100
       
    55 #define INTERNET_FLAG_TRANSFER_ASCII FTP_TRANSFER_TYPE_ASCII
       
    56 #define INTERNET_FLAG_TRANSFER_BINARY FTP_TRANSFER_TYPE_BINARY
       
    57 #define 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)
       
    58 #define SECURITY_SET_MASK SECURITY_INTERNET_MASK
       
    59 #define INTERNET_FLAGS_MASK (INTERNET_FLAG_RELOAD|INTERNET_FLAG_RAW_DATA|INTERNET_FLAG_EXISTING_CONNECT|\
       
    60 INTERNET_FLAG_ASYNC|INTERNET_FLAG_PASSIVE|INTERNET_FLAG_NO_CACHE_WRITE|INTERNET_FLAG_MAKE_PERSISTENT|INTERNET_FLAG_OFFLINE|\
       
    61 INTERNET_FLAG_SECURE|INTERNET_FLAG_KEEP_CONNECTION|INTERNET_FLAG_NO_AUTO_REDIRECT|INTERNET_FLAG_READ_PREFETCH |\
       
    62 INTERNET_FLAG_NO_COOKIES|INTERNET_FLAG_NO_AUTH|SECURITY_INTERNET_MASK|INTERNET_FLAG_TRANSFER_ASCII|INTERNET_FLAG_TRANSFER_BINARY\
       
    63 |INTERNET_FLAG_RESYNCHRONIZE|INTERNET_FLAG_MUST_CACHE_REQUEST|INTERNET_FLAG_HYPERLINK|INTERNET_FLAG_NO_UI)
       
    64 #define INTERNET_OPTIONS_MASK (~INTERNET_FLAGS_MASK)
       
    65 #define INTERNET_NO_CALLBACK 0
       
    66 #define INTERNET_RFC1123_FORMAT 0
       
    67 #define INTERNET_RFC1123_BUFSIZE 30
       
    68 #define ICU_ESCAPE 0x80000000
       
    69 #define ICU_USERNAME 0x40000000
       
    70 #define ICU_NO_ENCODE 0x20000000
       
    71 #define ICU_DECODE 0x10000000
       
    72 #define ICU_NO_META 0x08000000
       
    73 #define ICU_ENCODE_SPACES_ONLY 0x04000000
       
    74 #define ICU_BROWSER_MODE 0x02000000
       
    75 #define INTERNET_OPEN_TYPE_PRECONFIG 0
       
    76 #define INTERNET_OPEN_TYPE_DIRECT 1
       
    77 #define INTERNET_OPEN_TYPE_PROXY 3
       
    78 #define PRE_CONFIG_INTERNET_ACCESS INTERNET_OPEN_TYPE_PRECONFIG
       
    79 #define LOCAL_INTERNET_ACCESS INTERNET_OPEN_TYPE_DIRECT
       
    80 #define GATEWAY_INTERNET_ACCESS 2
       
    81 #define CERN_PROXY_INTERNET_ACCESS INTERNET_OPEN_TYPE_PROXY
       
    82 #define ISO_GLOBAL 1
       
    83 #define ISO_REGISTRY 2
       
    84 #define ISO_VALID_FLAGS (ISO_GLOBAL | ISO_REGISTRY)
       
    85 #define INTERNET_OPTION_CALLBACK 1
       
    86 #define INTERNET_OPTION_CONNECT_TIMEOUT 2
       
    87 #define INTERNET_OPTION_CONNECT_RETRIES 3
       
    88 #define INTERNET_OPTION_CONNECT_BACKOFF 4
       
    89 #define INTERNET_OPTION_SEND_TIMEOUT 5
       
    90 #define INTERNET_OPTION_CONTROL_SEND_TIMEOUT INTERNET_OPTION_SEND_TIMEOUT
       
    91 #define INTERNET_OPTION_RECEIVE_TIMEOUT 6
       
    92 #define INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT INTERNET_OPTION_RECEIVE_TIMEOUT
       
    93 #define INTERNET_OPTION_DATA_SEND_TIMEOUT 7
       
    94 #define INTERNET_OPTION_DATA_RECEIVE_TIMEOUT 8
       
    95 #define INTERNET_OPTION_HANDLE_TYPE 9
       
    96 #define INTERNET_OPTION_CONTEXT_VALUE 10
       
    97 #define INTERNET_OPTION_LISTEN_TIMEOUT 11
       
    98 #define INTERNET_OPTION_READ_BUFFER_SIZE 12
       
    99 #define INTERNET_OPTION_WRITE_BUFFER_SIZE 13
       
   100 #define INTERNET_OPTION_ASYNC_ID 15
       
   101 #define INTERNET_OPTION_ASYNC_PRIORITY 16
       
   102 #define INTERNET_OPTION_PARENT_HANDLE 21
       
   103 #define INTERNET_OPTION_KEEP_CONNECTION 22
       
   104 #define INTERNET_OPTION_REQUEST_FLAGS 23
       
   105 #define INTERNET_OPTION_EXTENDED_ERROR 24
       
   106 #define INTERNET_OPTION_OFFLINE_MODE 26
       
   107 #define INTERNET_OPTION_CACHE_STREAM_HANDLE 27
       
   108 #define INTERNET_OPTION_USERNAME 28
       
   109 #define INTERNET_OPTION_PASSWORD 29
       
   110 #define INTERNET_OPTION_ASYNC 30
       
   111 #define INTERNET_OPTION_SECURITY_FLAGS 31
       
   112 #define INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT 32
       
   113 #define INTERNET_OPTION_DATAFILE_NAME 33
       
   114 #define INTERNET_OPTION_URL 34
       
   115 #define INTERNET_OPTION_SECURITY_CERTIFICATE 35
       
   116 #define INTERNET_OPTION_SECURITY_KEY_BITNESS 36
       
   117 #define INTERNET_OPTION_REFRESH 37
       
   118 #define INTERNET_OPTION_PROXY 38
       
   119 #define INTERNET_OPTION_SETTINGS_CHANGED 39
       
   120 #define INTERNET_OPTION_VERSION 40
       
   121 #define INTERNET_OPTION_USER_AGENT 41
       
   122 #define INTERNET_OPTION_END_BROWSER_SESSION 42
       
   123 #define INTERNET_OPTION_PROXY_USERNAME 43
       
   124 #define INTERNET_OPTION_PROXY_PASSWORD 44
       
   125 #define INTERNET_OPTION_CONNECTED_STATE 50
       
   126 #define INTERNET_FIRST_OPTION INTERNET_OPTION_CALLBACK
       
   127 /* FIXME: missing INTERNET_OPTION_*?   */
       
   128 #define INTERNET_LAST_OPTION INTERNET_OPTION_CONNECTED_STATE
       
   129 #define INTERNET_PRIORITY_FOREGROUND 1000
       
   130 #define INTERNET_HANDLE_TYPE_INTERNET 1
       
   131 #define INTERNET_HANDLE_TYPE_CONNECT_FTP 2
       
   132 #define INTERNET_HANDLE_TYPE_CONNECT_GOPHER 3
       
   133 #define INTERNET_HANDLE_TYPE_CONNECT_HTTP 4
       
   134 #define INTERNET_HANDLE_TYPE_FTP_FIND 5
       
   135 #define INTERNET_HANDLE_TYPE_FTP_FIND_HTML 6
       
   136 #define INTERNET_HANDLE_TYPE_FTP_FILE 7
       
   137 #define INTERNET_HANDLE_TYPE_FTP_FILE_HTML 8
       
   138 #define INTERNET_HANDLE_TYPE_GOPHER_FIND 9
       
   139 #define INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML 10
       
   140 #define INTERNET_HANDLE_TYPE_GOPHER_FILE 11
       
   141 #define INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML 12
       
   142 #define INTERNET_HANDLE_TYPE_HTTP_REQUEST 13
       
   143 #define SECURITY_FLAG_SECURE 1
       
   144 #define SECURITY_FLAG_SSL 2
       
   145 #define SECURITY_FLAG_SSL3 4
       
   146 #define SECURITY_FLAG_PCT 8
       
   147 #define SECURITY_FLAG_PCT4 16
       
   148 #define SECURITY_FLAG_IETFSSL4 0x20
       
   149 #define SECURITY_FLAG_IGNORE_REVOCATION 0x00000080
       
   150 #define SECURITY_FLAG_IGNORE_UNKNOWN_CA 0x00000100
       
   151 #define SECURITY_FLAG_IGNORE_WRONG_USAGE 0x00000200
       
   152 #define SECURITY_FLAG_40BIT 0x10000000
       
   153 #define SECURITY_FLAG_128BIT 0x20000000
       
   154 #define SECURITY_FLAG_56BIT 0x40000000
       
   155 #define SECURITY_FLAG_UNKNOWNBIT 0x80000000
       
   156 #define SECURITY_FLAG_NORMALBITNESS SECURITY_FLAG_40BIT
       
   157 #define SECURITY_FLAG_IGNORE_CERT_CN_INVALID INTERNET_FLAG_IGNORE_CERT_CN_INVALID
       
   158 #define SECURITY_FLAG_IGNORE_CERT_DATE_INVALID INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
       
   159 #define SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
       
   160 #define SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
       
   161 #define INTERNET_SERVICE_FTP 1
       
   162 #define INTERNET_SERVICE_GOPHER 2
       
   163 #define INTERNET_SERVICE_HTTP 3
       
   164 #define INTERNET_STATUS_RESOLVING_NAME 10
       
   165 #define INTERNET_STATUS_NAME_RESOLVED 11
       
   166 #define INTERNET_STATUS_CONNECTING_TO_SERVER 20
       
   167 #define INTERNET_STATUS_CONNECTED_TO_SERVER 21
       
   168 #define INTERNET_STATUS_SENDING_REQUEST 30
       
   169 #define INTERNET_STATUS_REQUEST_SENT 31
       
   170 #define INTERNET_STATUS_RECEIVING_RESPONSE 40
       
   171 #define INTERNET_STATUS_RESPONSE_RECEIVED 41
       
   172 #define INTERNET_STATUS_CTL_RESPONSE_RECEIVED 42
       
   173 #define INTERNET_STATUS_PREFETCH 43
       
   174 #define INTERNET_STATUS_CLOSING_CONNECTION 50
       
   175 #define INTERNET_STATUS_CONNECTION_CLOSED 51
       
   176 #define INTERNET_STATUS_HANDLE_CREATED 60
       
   177 #define INTERNET_STATUS_HANDLE_CLOSING 70
       
   178 #define INTERNET_STATUS_REQUEST_COMPLETE 100
       
   179 #define INTERNET_STATUS_REDIRECT 110
       
   180 #define INTERNET_INVALID_STATUS_CALLBACK ((INTERNET_STATUS_CALLBACK)(-1L))
       
   181 #define FTP_TRANSFER_TYPE_UNKNOWN 0
       
   182 #define FTP_TRANSFER_TYPE_ASCII 1
       
   183 #define FTP_TRANSFER_TYPE_BINARY 2
       
   184 #define FTP_TRANSFER_TYPE_MASK (FTP_TRANSFER_TYPE_ASCII | FTP_TRANSFER_TYPE_BINARY)
       
   185 #define MAX_GOPHER_DISPLAY_TEXT 128
       
   186 #define MAX_GOPHER_SELECTOR_TEXT 256
       
   187 #define MAX_GOPHER_HOST_NAME INTERNET_MAX_HOST_NAME_LENGTH
       
   188 #define 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)
       
   189 #define GOPHER_TYPE_TEXT_FILE 1
       
   190 #define GOPHER_TYPE_DIRECTORY 2
       
   191 #define GOPHER_TYPE_CSO 4
       
   192 #define GOPHER_TYPE_ERROR 8
       
   193 #define GOPHER_TYPE_MAC_BINHEX 16
       
   194 #define GOPHER_TYPE_DOS_ARCHIVE 32
       
   195 #define GOPHER_TYPE_UNIX_UUENCODED 64
       
   196 #define GOPHER_TYPE_INDEX_SERVER 128
       
   197 #define GOPHER_TYPE_TELNET 256
       
   198 #define GOPHER_TYPE_BINARY 512
       
   199 #define GOPHER_TYPE_REDUNDANT 1024
       
   200 #define GOPHER_TYPE_TN3270 0x800
       
   201 #define GOPHER_TYPE_GIF 0x1000
       
   202 #define GOPHER_TYPE_IMAGE 0x2000
       
   203 #define GOPHER_TYPE_BITMAP 0x4000
       
   204 #define GOPHER_TYPE_MOVIE 0x8000
       
   205 #define GOPHER_TYPE_SOUND 0x10000
       
   206 #define GOPHER_TYPE_HTML 0x20000
       
   207 #define GOPHER_TYPE_PDF 0x40000
       
   208 #define GOPHER_TYPE_CALENDAR 0x80000
       
   209 #define GOPHER_TYPE_INLINE 0x100000
       
   210 #define GOPHER_TYPE_UNKNOWN 0x20000000
       
   211 #define GOPHER_TYPE_ASK 0x40000000
       
   212 #define GOPHER_TYPE_GOPHER_PLUS 0x80000000
       
   213 #define IS_GOPHER_FILE(t) (BOOL)(((t)&GOPHER_TYPE_FILE_MASK)?TRUE:FALSE)
       
   214 #define IS_GOPHER_DIRECTORY(t) (BOOL)(((t)&GOPHER_TYPE_DIRECTORY)?TRUE:FALSE)
       
   215 #define IS_GOPHER_PHONE_SERVER(t) (BOOL)(((t)&GOPHER_TYPE_CSO)?TRUE:FALSE)
       
   216 #define IS_GOPHER_ERROR(t) (BOOL)(((t)&GOPHER_TYPE_ERROR)?TRUE:FALSE)
       
   217 #define IS_GOPHER_INDEX_SERVER(t) (BOOL)(((t)&GOPHER_TYPE_INDEX_SERVER)?TRUE:FALSE)
       
   218 #define IS_GOPHER_TELNET_SESSION(t) (BOOL)(((t)&GOPHER_TYPE_TELNET)?TRUE:FALSE)
       
   219 #define IS_GOPHER_BACKUP_SERVER(t) (BOOL)(((t)&GOPHER_TYPE_REDUNDANT)?TRUE:FALSE)
       
   220 #define IS_GOPHER_TN3270_SESSION(t) (BOOL)(((t)&GOPHER_TYPE_TN3270)?TRUE:FALSE)
       
   221 #define IS_GOPHER_ASK(t) (BOOL)(((t)&GOPHER_TYPE_ASK)?TRUE:FALSE)
       
   222 #define IS_GOPHER_PLUS(t) (BOOL)(((t)&GOPHER_TYPE_GOPHER_PLUS)?TRUE:FALSE)
       
   223 #define IS_GOPHER_TYPE_KNOWN(t) (BOOL)(((t)&GOPHER_TYPE_UNKNOWN)?FALSE:TRUE)
       
   224 #define GOPHER_TYPE_FILE_MASK (GOPHER_TYPE_TEXT_FILE|GOPHER_TYPE_MAC_BINHEX|GOPHER_TYPE_DOS_ARCHIVE|\
       
   225 GOPHER_TYPE_UNIX_UUENCODED|GOPHER_TYPE_BINARY|GOPHER_TYPE_GIF|GOPHER_TYPE_IMAGE|GOPHER_TYPE_BITMAP\
       
   226 |GOPHER_TYPE_MOVIE|GOPHER_TYPE_SOUND|GOPHER_TYPE_HTML|GOPHER_TYPE_PDF|GOPHER_TYPE_CALENDAR|GOPHER_TYPE_INLINE)
       
   227 #define MAX_GOPHER_CATEGORY_NAME 128
       
   228 #define MAX_GOPHER_ATTRIBUTE_NAME 128
       
   229 #define MIN_GOPHER_ATTRIBUTE_LENGTH 256
       
   230 #define GOPHER_INFO_CATEGORY TEXT("+INFO")
       
   231 #define GOPHER_ADMIN_CATEGORY TEXT("+ADMIN")
       
   232 #define GOPHER_VIEWS_CATEGORY TEXT("+VIEWS")
       
   233 #define GOPHER_ABSTRACT_CATEGORY TEXT("+ABSTRACT")
       
   234 #define GOPHER_VERONICA_CATEGORY TEXT("+VERONICA")
       
   235 #define GOPHER_ADMIN_ATTRIBUTE TEXT("Admin")
       
   236 #define GOPHER_MOD_DATE_ATTRIBUTE TEXT("Mod-Date")
       
   237 #define GOPHER_TTL_ATTRIBUTE TEXT("TTL")
       
   238 #define GOPHER_SCORE_ATTRIBUTE TEXT("Score")
       
   239 #define GOPHER_RANGE_ATTRIBUTE TEXT("Score-range")
       
   240 #define GOPHER_SITE_ATTRIBUTE TEXT("Site")
       
   241 #define GOPHER_ORG_ATTRIBUTE TEXT("Org")
       
   242 #define GOPHER_LOCATION_ATTRIBUTE TEXT("Loc")
       
   243 #define GOPHER_GEOG_ATTRIBUTE TEXT("Geog")
       
   244 #define GOPHER_TIMEZONE_ATTRIBUTE TEXT("TZ")
       
   245 #define GOPHER_PROVIDER_ATTRIBUTE TEXT("Provider")
       
   246 #define GOPHER_VERSION_ATTRIBUTE TEXT("Version")
       
   247 #define GOPHER_ABSTRACT_ATTRIBUTE TEXT("Abstract")
       
   248 #define GOPHER_VIEW_ATTRIBUTE TEXT("View")
       
   249 #define GOPHER_TREEWALK_ATTRIBUTE TEXT("treewalk")
       
   250 #define GOPHER_ATTRIBUTE_ID_BASE 0xabcccc00
       
   251 #define GOPHER_CATEGORY_ID_ALL (GOPHER_ATTRIBUTE_ID_BASE+1)
       
   252 #define GOPHER_CATEGORY_ID_INFO (GOPHER_ATTRIBUTE_ID_BASE+2)
       
   253 #define GOPHER_CATEGORY_ID_ADMIN (GOPHER_ATTRIBUTE_ID_BASE+3)
       
   254 #define GOPHER_CATEGORY_ID_VIEWS (GOPHER_ATTRIBUTE_ID_BASE+4)
       
   255 #define GOPHER_CATEGORY_ID_ABSTRACT (GOPHER_ATTRIBUTE_ID_BASE+5)
       
   256 #define GOPHER_CATEGORY_ID_VERONICA (GOPHER_ATTRIBUTE_ID_BASE+6)
       
   257 #define GOPHER_CATEGORY_ID_ASK (GOPHER_ATTRIBUTE_ID_BASE+7)
       
   258 #define GOPHER_CATEGORY_ID_UNKNOWN (GOPHER_ATTRIBUTE_ID_BASE+8)
       
   259 #define GOPHER_ATTRIBUTE_ID_ALL (GOPHER_ATTRIBUTE_ID_BASE+9)
       
   260 #define GOPHER_ATTRIBUTE_ID_ADMIN (GOPHER_ATTRIBUTE_ID_BASE+10)
       
   261 #define GOPHER_ATTRIBUTE_ID_MOD_DATE (GOPHER_ATTRIBUTE_ID_BASE+11)
       
   262 #define GOPHER_ATTRIBUTE_ID_TTL (GOPHER_ATTRIBUTE_ID_BASE+12)
       
   263 #define GOPHER_ATTRIBUTE_ID_SCORE (GOPHER_ATTRIBUTE_ID_BASE+13)
       
   264 #define GOPHER_ATTRIBUTE_ID_RANGE (GOPHER_ATTRIBUTE_ID_BASE+14)
       
   265 #define GOPHER_ATTRIBUTE_ID_SITE (GOPHER_ATTRIBUTE_ID_BASE+15)
       
   266 #define GOPHER_ATTRIBUTE_ID_ORG (GOPHER_ATTRIBUTE_ID_BASE+16)
       
   267 #define GOPHER_ATTRIBUTE_ID_LOCATION (GOPHER_ATTRIBUTE_ID_BASE+17)
       
   268 #define GOPHER_ATTRIBUTE_ID_GEOG (GOPHER_ATTRIBUTE_ID_BASE+18)
       
   269 #define GOPHER_ATTRIBUTE_ID_TIMEZONE (GOPHER_ATTRIBUTE_ID_BASE+19)
       
   270 #define GOPHER_ATTRIBUTE_ID_PROVIDER (GOPHER_ATTRIBUTE_ID_BASE+20)
       
   271 #define GOPHER_ATTRIBUTE_ID_VERSION (GOPHER_ATTRIBUTE_ID_BASE+21)
       
   272 #define GOPHER_ATTRIBUTE_ID_ABSTRACT (GOPHER_ATTRIBUTE_ID_BASE+22)
       
   273 #define GOPHER_ATTRIBUTE_ID_VIEW (GOPHER_ATTRIBUTE_ID_BASE+23)
       
   274 #define GOPHER_ATTRIBUTE_ID_TREEWALK (GOPHER_ATTRIBUTE_ID_BASE+24)
       
   275 #define GOPHER_ATTRIBUTE_ID_UNKNOWN (GOPHER_ATTRIBUTE_ID_BASE+25)
       
   276 #define HTTP_MAJOR_VERSION 1
       
   277 #define HTTP_MINOR_VERSION 0
       
   278 #define HTTP_VERSION TEXT("HTTP/1.0")
       
   279 #define HTTP_QUERY_MIME_VERSION 0
       
   280 #define HTTP_QUERY_CONTENT_TYPE 1
       
   281 #define HTTP_QUERY_CONTENT_TRANSFER_ENCODING 2
       
   282 #define HTTP_QUERY_CONTENT_ID 3
       
   283 #define HTTP_QUERY_CONTENT_DESCRIPTION 4
       
   284 #define HTTP_QUERY_CONTENT_LENGTH 5
       
   285 #define HTTP_QUERY_CONTENT_LANGUAGE 6
       
   286 #define HTTP_QUERY_ALLOW 7
       
   287 #define HTTP_QUERY_PUBLIC 8
       
   288 #define HTTP_QUERY_DATE 9
       
   289 #define HTTP_QUERY_EXPIRES 10
       
   290 #define HTTP_QUERY_LAST_MODIFIED 11
       
   291 #define HTTP_QUERY_MESSAGE_ID 12
       
   292 #define HTTP_QUERY_URI 13
       
   293 #define HTTP_QUERY_DERIVED_FROM 14
       
   294 #define HTTP_QUERY_COST 15
       
   295 #define HTTP_QUERY_LINK 16
       
   296 #define HTTP_QUERY_PRAGMA 17
       
   297 #define HTTP_QUERY_VERSION 18
       
   298 #define HTTP_QUERY_STATUS_CODE 19
       
   299 #define HTTP_QUERY_STATUS_TEXT 20
       
   300 #define HTTP_QUERY_RAW_HEADERS 21
       
   301 #define HTTP_QUERY_RAW_HEADERS_CRLF 22
       
   302 #define HTTP_QUERY_CONNECTION 23
       
   303 #define HTTP_QUERY_ACCEPT 24
       
   304 #define HTTP_QUERY_ACCEPT_CHARSET 25
       
   305 #define HTTP_QUERY_ACCEPT_ENCODING 26
       
   306 #define HTTP_QUERY_ACCEPT_LANGUAGE 27
       
   307 #define HTTP_QUERY_AUTHORIZATION 28
       
   308 #define HTTP_QUERY_CONTENT_ENCODING 29
       
   309 #define HTTP_QUERY_FORWARDED 30
       
   310 #define HTTP_QUERY_FROM 31
       
   311 #define HTTP_QUERY_IF_MODIFIED_SINCE 32
       
   312 #define HTTP_QUERY_LOCATION 33
       
   313 #define HTTP_QUERY_ORIG_URI 34
       
   314 #define HTTP_QUERY_REFERER 35
       
   315 #define HTTP_QUERY_RETRY_AFTER 36
       
   316 #define HTTP_QUERY_SERVER 37
       
   317 #define HTTP_QUERY_TITLE 38
       
   318 #define HTTP_QUERY_USER_AGENT 39
       
   319 #define HTTP_QUERY_WWW_AUTHENTICATE 40
       
   320 #define HTTP_QUERY_PROXY_AUTHENTICATE 41
       
   321 #define HTTP_QUERY_ACCEPT_RANGES 42
       
   322 #define HTTP_QUERY_SET_COOKIE 43
       
   323 #define HTTP_QUERY_COOKIE 44
       
   324 #define HTTP_QUERY_REQUEST_METHOD 45
       
   325 #define HTTP_QUERY_MAX 45
       
   326 #define HTTP_QUERY_CUSTOM 65535
       
   327 #define HTTP_QUERY_FLAG_REQUEST_HEADERS 0x80000000
       
   328 #define HTTP_QUERY_FLAG_SYSTEMTIME 0x40000000
       
   329 #define HTTP_QUERY_FLAG_NUMBER 0x20000000
       
   330 #define HTTP_QUERY_FLAG_COALESCE 0x10000000
       
   331 #define HTTP_QUERY_MODIFIER_FLAGS_MASK (HTTP_QUERY_FLAG_REQUEST_HEADERS|HTTP_QUERY_FLAG_SYSTEMTIME|HTTP_QUERY_FLAG_NUMBER|HTTP_QUERY_FLAG_COALESCE)
       
   332 #define HTTP_QUERY_HEADER_MASK (~HTTP_QUERY_MODIFIER_FLAGS_MASK)
       
   333 #define HTTP_STATUS_OK 200
       
   334 #define HTTP_STATUS_CREATED 201
       
   335 #define HTTP_STATUS_ACCEPTED 202
       
   336 #define HTTP_STATUS_PARTIAL 203
       
   337 #define HTTP_STATUS_NO_CONTENT 204
       
   338 #define HTTP_STATUS_AMBIGUOUS 300
       
   339 #define HTTP_STATUS_MOVED 301
       
   340 #define HTTP_STATUS_REDIRECT 302
       
   341 #define HTTP_STATUS_REDIRECT_METHOD 303
       
   342 #define HTTP_STATUS_NOT_MODIFIED 304
       
   343 #define HTTP_STATUS_BAD_REQUEST 400
       
   344 #define HTTP_STATUS_DENIED 401
       
   345 #define HTTP_STATUS_PAYMENT_REQ 402
       
   346 #define HTTP_STATUS_FORBIDDEN 403
       
   347 #define HTTP_STATUS_NOT_FOUND 404
       
   348 #define HTTP_STATUS_BAD_METHOD 405
       
   349 #define HTTP_STATUS_NONE_ACCEPTABLE 406
       
   350 #define HTTP_STATUS_PROXY_AUTH_REQ 407
       
   351 #define HTTP_STATUS_REQUEST_TIMEOUT 408
       
   352 #define HTTP_STATUS_CONFLICT 409
       
   353 #define HTTP_STATUS_GONE 410
       
   354 #define HTTP_STATUS_AUTH_REFUSED 411
       
   355 #define HTTP_STATUS_SERVER_ERROR 500
       
   356 #define HTTP_STATUS_NOT_SUPPORTED 501
       
   357 #define HTTP_STATUS_BAD_GATEWAY 502
       
   358 #define HTTP_STATUS_SERVICE_UNAVAIL 503
       
   359 #define HTTP_STATUS_GATEWAY_TIMEOUT 504
       
   360 #define INTERNET_PREFETCH_PROGRESS 0
       
   361 #define INTERNET_PREFETCH_COMPLETE 1
       
   362 #define INTERNET_PREFETCH_ABORTED 2
       
   363 #define FLAGS_ERROR_UI_FILTER_FOR_ERRORS 0x01
       
   364 #define FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS 0x02
       
   365 #define FLAGS_ERROR_UI_FLAGS_GENERATE_DATA 0x04
       
   366 #define FLAGS_ERROR_UI_FLAGS_NO_UI 0x08
       
   367 #define HTTP_ADDREQ_INDEX_MASK 0x0000FFFF
       
   368 #define HTTP_ADDREQ_FLAGS_MASK 0xFFFF0000
       
   369 #define HTTP_ADDREQ_FLAG_ADD_IF_NEW 0x10000000
       
   370 #define HTTP_ADDREQ_FLAG_ADD 0x20000000
       
   371 #define HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA 0x40000000
       
   372 #define HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON 0x01000000
       
   373 #define HTTP_ADDREQ_FLAG_COALESCE HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA
       
   374 #define HTTP_ADDREQ_FLAG_REPLACE 0x80000000
       
   375 #define INTERNET_ERROR_BASE 12000
       
   376 #define ERROR_INTERNET_OUT_OF_HANDLES (INTERNET_ERROR_BASE+1)
       
   377 #define ERROR_INTERNET_TIMEOUT (INTERNET_ERROR_BASE+2)
       
   378 #define ERROR_INTERNET_EXTENDED_ERROR (INTERNET_ERROR_BASE+3)
       
   379 #define ERROR_INTERNET_INTERNAL_ERROR (INTERNET_ERROR_BASE+4)
       
   380 #define ERROR_INTERNET_INVALID_URL (INTERNET_ERROR_BASE+5)
       
   381 #define ERROR_INTERNET_UNRECOGNIZED_SCHEME (INTERNET_ERROR_BASE+6)
       
   382 #define ERROR_INTERNET_NAME_NOT_RESOLVED (INTERNET_ERROR_BASE+7)
       
   383 #define ERROR_INTERNET_PROTOCOL_NOT_FOUND (INTERNET_ERROR_BASE+8)
       
   384 #define ERROR_INTERNET_INVALID_OPTION (INTERNET_ERROR_BASE+9)
       
   385 #define ERROR_INTERNET_BAD_OPTION_LENGTH (INTERNET_ERROR_BASE+10)
       
   386 #define ERROR_INTERNET_OPTION_NOT_SETTABLE (INTERNET_ERROR_BASE+11)
       
   387 #define ERROR_INTERNET_SHUTDOWN (INTERNET_ERROR_BASE+12)
       
   388 #define ERROR_INTERNET_INCORRECT_USER_NAME (INTERNET_ERROR_BASE+13)
       
   389 #define ERROR_INTERNET_INCORRECT_PASSWORD (INTERNET_ERROR_BASE+14)
       
   390 #define ERROR_INTERNET_LOGIN_FAILURE (INTERNET_ERROR_BASE+15)
       
   391 #define ERROR_INTERNET_INVALID_OPERATION (INTERNET_ERROR_BASE+16)
       
   392 #define ERROR_INTERNET_OPERATION_CANCELLED (INTERNET_ERROR_BASE+17)
       
   393 #define ERROR_INTERNET_INCORRECT_HANDLE_TYPE (INTERNET_ERROR_BASE+18)
       
   394 #define ERROR_INTERNET_INCORRECT_HANDLE_STATE (INTERNET_ERROR_BASE+19)
       
   395 #define ERROR_INTERNET_NOT_PROXY_REQUEST (INTERNET_ERROR_BASE+20)
       
   396 #define ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND (INTERNET_ERROR_BASE+21)
       
   397 #define ERROR_INTERNET_BAD_REGISTRY_PARAMETER (INTERNET_ERROR_BASE+22)
       
   398 #define ERROR_INTERNET_NO_DIRECT_ACCESS (INTERNET_ERROR_BASE+23)
       
   399 #define ERROR_INTERNET_NO_CONTEXT (INTERNET_ERROR_BASE+24)
       
   400 #define ERROR_INTERNET_NO_CALLBACK (INTERNET_ERROR_BASE+25)
       
   401 #define ERROR_INTERNET_REQUEST_PENDING (INTERNET_ERROR_BASE+26)
       
   402 #define ERROR_INTERNET_INCORRECT_FORMAT (INTERNET_ERROR_BASE+27)
       
   403 #define ERROR_INTERNET_ITEM_NOT_FOUND (INTERNET_ERROR_BASE+28)
       
   404 #define ERROR_INTERNET_CANNOT_CONNECT (INTERNET_ERROR_BASE+29)
       
   405 #define ERROR_INTERNET_CONNECTION_ABORTED (INTERNET_ERROR_BASE+30)
       
   406 #define ERROR_INTERNET_CONNECTION_RESET (INTERNET_ERROR_BASE+31)
       
   407 #define ERROR_INTERNET_FORCE_RETRY (INTERNET_ERROR_BASE+32)
       
   408 #define ERROR_INTERNET_INVALID_PROXY_REQUEST (INTERNET_ERROR_BASE+33)
       
   409 #define ERROR_INTERNET_NEED_UI (INTERNET_ERROR_BASE+34)
       
   410 #define ERROR_INTERNET_HANDLE_EXISTS (INTERNET_ERROR_BASE+36)
       
   411 #define ERROR_INTERNET_SEC_CERT_DATE_INVALID (INTERNET_ERROR_BASE+37)
       
   412 #define ERROR_INTERNET_SEC_CERT_CN_INVALID (INTERNET_ERROR_BASE+38)
       
   413 #define ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR (INTERNET_ERROR_BASE+39)
       
   414 #define ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR (INTERNET_ERROR_BASE+40)
       
   415 #define ERROR_INTERNET_MIXED_SECURITY (INTERNET_ERROR_BASE+41)
       
   416 #define ERROR_INTERNET_CHG_POST_IS_NON_SECURE (INTERNET_ERROR_BASE+42)
       
   417 #define ERROR_INTERNET_POST_IS_NON_SECURE (INTERNET_ERROR_BASE+43)
       
   418 #define ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED (INTERNET_ERROR_BASE+44)
       
   419 #define ERROR_INTERNET_INVALID_CA (INTERNET_ERROR_BASE+45)
       
   420 #define ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP (INTERNET_ERROR_BASE+46)
       
   421 #define ERROR_INTERNET_ASYNC_THREAD_FAILED (INTERNET_ERROR_BASE+47)
       
   422 #define ERROR_INTERNET_REDIRECT_SCHEME_CHANGE (INTERNET_ERROR_BASE+48)
       
   423 #define ERROR_FTP_TRANSFER_IN_PROGRESS (INTERNET_ERROR_BASE+110)
       
   424 #define ERROR_FTP_DROPPED (INTERNET_ERROR_BASE+111)
       
   425 #define ERROR_GOPHER_PROTOCOL_ERROR (INTERNET_ERROR_BASE+130)
       
   426 #define ERROR_GOPHER_NOT_FILE (INTERNET_ERROR_BASE+131)
       
   427 #define ERROR_GOPHER_DATA_ERROR (INTERNET_ERROR_BASE+132)
       
   428 #define ERROR_GOPHER_END_OF_DATA (INTERNET_ERROR_BASE+133)
       
   429 #define ERROR_GOPHER_INVALID_LOCATOR (INTERNET_ERROR_BASE+134)
       
   430 #define ERROR_GOPHER_INCORRECT_LOCATOR_TYPE (INTERNET_ERROR_BASE+135)
       
   431 #define ERROR_GOPHER_NOT_GOPHER_PLUS (INTERNET_ERROR_BASE+136)
       
   432 #define ERROR_GOPHER_ATTRIBUTE_NOT_FOUND (INTERNET_ERROR_BASE+137)
       
   433 #define ERROR_GOPHER_UNKNOWN_LOCATOR (INTERNET_ERROR_BASE+138)
       
   434 #define ERROR_HTTP_HEADER_NOT_FOUND (INTERNET_ERROR_BASE+150)
       
   435 #define ERROR_HTTP_DOWNLEVEL_SERVER (INTERNET_ERROR_BASE+151)
       
   436 #define ERROR_HTTP_INVALID_SERVER_RESPONSE (INTERNET_ERROR_BASE+152)
       
   437 #define ERROR_HTTP_INVALID_HEADER (INTERNET_ERROR_BASE+153)
       
   438 #define ERROR_HTTP_INVALID_QUERY_REQUEST (INTERNET_ERROR_BASE+154)
       
   439 #define ERROR_HTTP_HEADER_ALREADY_EXISTS (INTERNET_ERROR_BASE+155)
       
   440 #define ERROR_HTTP_REDIRECT_FAILED (INTERNET_ERROR_BASE+156)
       
   441 #define ERROR_HTTP_NOT_REDIRECTED (INTERNET_ERROR_BASE+160)
       
   442 #define ERROR_INTERNET_SECURITY_CHANNEL_ERROR (INTERNET_ERROR_BASE+157)
       
   443 #define ERROR_INTERNET_UNABLE_TO_CACHE_FILE (INTERNET_ERROR_BASE+158)
       
   444 #define ERROR_INTERNET_TCPIP_NOT_INSTALLED (INTERNET_ERROR_BASE+159)
       
   445 #define INTERNET_ERROR_LAST ERROR_INTERNET_TCPIP_NOT_INSTALLED
       
   446 #define URLCACHEAPI DECLSPEC_IMPORT
       
   447 #define NORMAL_CACHE_ENTRY 1
       
   448 #define STABLE_CACHE_ENTRY 2
       
   449 #define STICKY_CACHE_ENTRY 4
       
   450 #define SPARSE_CACHE_ENTRY 0x10000
       
   451 #define OCX_CACHE_ENTRY 0x20000
       
   452 #define COOKIE_CACHE_ENTRY 0x100000
       
   453 #define URLHISTORY_CACHE_ENTRY 0x200000
       
   454 #define CACHE_ENTRY_ATTRIBUTE_FC 4
       
   455 #define CACHE_ENTRY_HITRATE_FC 0x10
       
   456 #define CACHE_ENTRY_MODTIME_FC 0x40
       
   457 #define CACHE_ENTRY_EXPTIME_FC 0x80
       
   458 #define CACHE_ENTRY_ACCTIME_FC 0x100
       
   459 #define CACHE_ENTRY_SYNCTIME_FC 0x200
       
   460 #define CACHE_ENTRY_HEADERINFO_FC 0x400
       
   461 #define IRF_ASYNC WININET_API_FLAG_ASYNC
       
   462 #define IRF_SYNC WININET_API_FLAG_SYNC
       
   463 #define IRF_USE_CONTEXT WININET_API_FLAG_USE_CONTEXT
       
   464 #define IRF_NO_WAIT 8
       
   465 #define HSR_ASYNC	WININET_API_FLAG_ASYNC
       
   466 #define HSR_SYNC	WININET_API_FLAG_SYNC
       
   467 #define HSR_USE_CONTEXT WININET_API_FLAG_USE_CONTEXT
       
   468 #define HSR_INITIATE	8
       
   469 #define HSR_DOWNLOAD	16
       
   470 #define HSR_CHUNKED	32
       
   471 #define INTERNET_DIAL_UNATTENDED	0x8000
       
   472 #define INTERNET_DIALSTATE_DISCONNECTED	1
       
   473 #define INTERENT_GOONLINE_REFRESH	1
       
   474 #define INTERENT_GOONLINE_MASK	1
       
   475 #define INTERNET_AUTODIAL_FORCE_ONLINE	1
       
   476 #define INTERNET_AUTODIAL_FORCE_UNATTENDED	2
       
   477 #define INTERNET_AUTODIAL_FAILIFSECURITYCHECK	4
       
   478 #define INTERNET_CONNECTION_MODEM	0x01
       
   479 #define INTERNET_CONNECTION_LAN		0x02
       
   480 #define INTERNET_CONNECTION_PROXY	0x04
       
   481 #define INTERNET_CONNECTION_MODEM_BUSY	0x08
       
   482 #define INTERNET_RAS_INSTALLED		0x10
       
   483 #define INTERNET_CONNECTION_OFFLINE	0x20
       
   484 #define INTERNET_CONNECTION_CONFIGURED	0x40
       
   485 #define CACHEGROUP_SEARCH_ALL	0
       
   486 #define CACHEGROUP_SEARCH_BYURL	1
       
   487 #define INTERNET_CACHE_GROUP_ADD	0
       
   488 #define INTERNET_CACHE_GROUP_REMOVE	1
       
   489 #define WININET_API_FLAG_ASYNC 0x00000001	/* Force asynchronous operations.  */
       
   490 #define WININET_API_FLAG_SYNC 0x00000004	/* Force synchronous operations.  */
       
   491 #define WININET_API_FLAG_USE_CONTEXT 0x00000008	/* Force the API to use the context value, even if it is set to zero.  */
       
   492 
       
   493 #define INTERNET_STATE_CONNECTED		0x0001
       
   494 #define INTERNET_STATE_DISCONNECTED		0x0002
       
   495 #define INTERNET_STATE_DISCONNECTED_BY_USER	0x0010
       
   496 #define INTERNET_STATE_IDLE			0x0100
       
   497 #define INTERNET_STATE_BUSY			0x0200
       
   498 
       
   499 #ifndef RC_INVOKED
       
   500 typedef PVOID HINTERNET;
       
   501 typedef HINTERNET *LPHINTERNET;
       
   502 typedef LONGLONG GROUPID;
       
   503 typedef WORD INTERNET_PORT,*LPINTERNET_PORT;
       
   504 typedef enum {
       
   505 	INTERNET_SCHEME_PARTIAL = -2, INTERNET_SCHEME_UNKNOWN = -1,
       
   506 	INTERNET_SCHEME_DEFAULT = 0, INTERNET_SCHEME_FTP, INTERNET_SCHEME_GOPHER,
       
   507 	INTERNET_SCHEME_HTTP, INTERNET_SCHEME_HTTPS, INTERNET_SCHEME_FILE,
       
   508 	INTERNET_SCHEME_NEWS, INTERNET_SCHEME_MAILTO, INTERNET_SCHEME_SOCKS,
       
   509 	INTERNET_SCHEME_FIRST = INTERNET_SCHEME_FTP, INTERNET_SCHEME_LAST = INTERNET_SCHEME_SOCKS
       
   510 } INTERNET_SCHEME,*LPINTERNET_SCHEME;
       
   511 typedef struct { DWORD dwResult; DWORD dwError; } INTERNET_ASYNC_RESULT,*LPINTERNET_ASYNC_RESULT;
       
   512 typedef struct { DWORD dwStatus; DWORD dwSize; } INTERNET_PREFETCH_STATUS,*LPINTERNET_PREFETCH_STATUS;
       
   513 typedef struct {
       
   514 	DWORD dwAccessType;
       
   515 	LPCTSTR lpszProxy;
       
   516 	LPCTSTR lpszProxyBypass;
       
   517 } INTERNET_PROXY_INFO,*LPINTERNET_PROXY_INFO;
       
   518 typedef struct {
       
   519 	DWORD dwMajorVersion;
       
   520 	DWORD dwMinorVersion;
       
   521 } INTERNET_VERSION_INFO,*LPINTERNET_VERSION_INFO;
       
   522 typedef struct {
       
   523 	DWORD dwStructSize;
       
   524 	LPSTR lpszScheme;
       
   525 	DWORD dwSchemeLength;
       
   526 	INTERNET_SCHEME nScheme;
       
   527 	LPSTR lpszHostName;
       
   528 	DWORD dwHostNameLength;
       
   529 	INTERNET_PORT nPort;
       
   530 	LPSTR lpszUserName;
       
   531 	DWORD dwUserNameLength;
       
   532 	LPSTR lpszPassword;
       
   533 	DWORD dwPasswordLength;
       
   534 	LPSTR lpszUrlPath;
       
   535 	DWORD dwUrlPathLength;
       
   536 	LPSTR lpszExtraInfo;
       
   537 	DWORD dwExtraInfoLength;
       
   538 } URL_COMPONENTSA,*LPURL_COMPONENTSA;
       
   539 typedef struct {
       
   540 	DWORD dwStructSize;
       
   541 	LPWSTR lpszScheme;
       
   542 	DWORD dwSchemeLength;
       
   543 	INTERNET_SCHEME nScheme;
       
   544 	LPWSTR lpszHostName;
       
   545 	DWORD dwHostNameLength;
       
   546 	INTERNET_PORT nPort;
       
   547 	LPWSTR lpszUserName;
       
   548 	DWORD dwUserNameLength;
       
   549 	LPWSTR lpszPassword;
       
   550 	DWORD dwPasswordLength;
       
   551 	LPWSTR lpszUrlPath;
       
   552 	DWORD dwUrlPathLength;
       
   553 	LPWSTR lpszExtraInfo;
       
   554 	DWORD dwExtraInfoLength;
       
   555 } URL_COMPONENTSW,*LPURL_COMPONENTSW;
       
   556 typedef struct {
       
   557 	FILETIME ftExpiry;
       
   558 	FILETIME ftStart;
       
   559 	LPTSTR lpszSubjectInfo;
       
   560 	LPTSTR lpszIssuerInfo;
       
   561 	LPTSTR lpszProtocolName;
       
   562 	LPTSTR lpszSignatureAlgName;
       
   563 	LPTSTR lpszEncryptionAlgName;
       
   564 	DWORD dwKeySize;
       
   565 } INTERNET_CERTIFICATE_INFO,*LPINTERNET_CERTIFICATE_INFO;
       
   566 typedef VOID (CALLBACK * INTERNET_STATUS_CALLBACK)(HINTERNET,DWORD,DWORD,PVOID,DWORD);
       
   567 typedef INTERNET_STATUS_CALLBACK * LPINTERNET_STATUS_CALLBACK;
       
   568 typedef struct {
       
   569 	CHAR DisplayString[MAX_GOPHER_DISPLAY_TEXT+1];
       
   570 	DWORD GopherType;
       
   571 	DWORD SizeLow;
       
   572 	DWORD SizeHigh;
       
   573 	FILETIME LastModificationTime;
       
   574 	CHAR Locator[MAX_GOPHER_LOCATOR_LENGTH+1];
       
   575 } GOPHER_FIND_DATAA,*LPGOPHER_FIND_DATAA;
       
   576 typedef struct {
       
   577 	WCHAR DisplayString[MAX_GOPHER_DISPLAY_TEXT+1];
       
   578 	DWORD GopherType;
       
   579 	DWORD SizeLow;
       
   580 	DWORD SizeHigh;
       
   581 	FILETIME LastModificationTime;
       
   582 	WCHAR Locator[MAX_GOPHER_LOCATOR_LENGTH+1];
       
   583 } GOPHER_FIND_DATAW,*LPGOPHER_FIND_DATAW;
       
   584 typedef struct {
       
   585 	LPCTSTR Comment;
       
   586 	LPCTSTR EmailAddress;
       
   587 } GOPHER_ADMIN_ATTRIBUTE_TYPE,*LPGOPHER_ADMIN_ATTRIBUTE_TYPE;
       
   588 typedef struct {FILETIME DateAndTime;} GOPHER_MOD_DATE_ATTRIBUTE_TYPE,*LPGOPHER_MOD_DATE_ATTRIBUTE_TYPE;
       
   589 typedef struct {DWORD Ttl;} GOPHER_TTL_ATTRIBUTE_TYPE,*LPGOPHER_TTL_ATTRIBUTE_TYPE;
       
   590 typedef struct {INT Score;} GOPHER_SCORE_ATTRIBUTE_TYPE,*LPGOPHER_SCORE_ATTRIBUTE_TYPE;
       
   591 typedef struct {
       
   592 	INT LowerBound;
       
   593 	INT UpperBound;
       
   594 } GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE,*LPGOPHER_SCORE_RANGE_ATTRIBUTE_TYPE;
       
   595 typedef struct {LPCTSTR Site;} GOPHER_SITE_ATTRIBUTE_TYPE,*LPGOPHER_SITE_ATTRIBUTE_TYPE;
       
   596 typedef struct {LPCTSTR Organization;} GOPHER_ORGANIZATION_ATTRIBUTE_TYPE,*LPGOPHER_ORGANIZATION_ATTRIBUTE_TYPE;
       
   597 typedef struct {LPCTSTR Location;} GOPHER_LOCATION_ATTRIBUTE_TYPE,*LPGOPHER_LOCATION_ATTRIBUTE_TYPE;
       
   598 typedef struct {
       
   599 	INT DegreesNorth;
       
   600 	INT MinutesNorth;
       
   601 	INT SecondsNorth;
       
   602 	INT DegreesEast;
       
   603 	INT MinutesEast;
       
   604 	INT SecondsEast;
       
   605 } GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE,*LPGOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE;
       
   606 typedef struct {INT Zone;} GOPHER_TIMEZONE_ATTRIBUTE_TYPE,*LPGOPHER_TIMEZONE_ATTRIBUTE_TYPE;
       
   607 typedef struct {LPCTSTR Provider;} GOPHER_PROVIDER_ATTRIBUTE_TYPE,*LPGOPHER_PROVIDER_ATTRIBUTE_TYPE;
       
   608 typedef struct {LPCTSTR Version;} GOPHER_VERSION_ATTRIBUTE_TYPE,*LPGOPHER_VERSION_ATTRIBUTE_TYPE;
       
   609 typedef struct {
       
   610 	LPCTSTR ShortAbstract;
       
   611 	LPCTSTR AbstractFile;
       
   612 } GOPHER_ABSTRACT_ATTRIBUTE_TYPE,*LPGOPHER_ABSTRACT_ATTRIBUTE_TYPE;
       
   613 typedef struct {
       
   614 	LPCTSTR ContentType;
       
   615 	LPCTSTR Language;
       
   616 	DWORD Size;
       
   617 } GOPHER_VIEW_ATTRIBUTE_TYPE,*LPGOPHER_VIEW_ATTRIBUTE_TYPE;
       
   618 typedef struct {BOOL TreeWalk;} GOPHER_VERONICA_ATTRIBUTE_TYPE,*LPGOPHER_VERONICA_ATTRIBUTE_TYPE;
       
   619 typedef struct {
       
   620 	LPCTSTR QuestionType;
       
   621 	LPCTSTR QuestionText;
       
   622 } GOPHER_ASK_ATTRIBUTE_TYPE,*LPGOPHER_ASK_ATTRIBUTE_TYPE;
       
   623 typedef struct {LPCTSTR Text;} GOPHER_UNKNOWN_ATTRIBUTE_TYPE,*LPGOPHER_UNKNOWN_ATTRIBUTE_TYPE;
       
   624 typedef struct {
       
   625 	DWORD CategoryId;
       
   626 	DWORD AttributeId;
       
   627 	union {
       
   628 		GOPHER_ADMIN_ATTRIBUTE_TYPE Admin;
       
   629 		GOPHER_MOD_DATE_ATTRIBUTE_TYPE ModDate;
       
   630 		GOPHER_TTL_ATTRIBUTE_TYPE Ttl;
       
   631 		GOPHER_SCORE_ATTRIBUTE_TYPE Score;
       
   632 		GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE ScoreRange;
       
   633 		GOPHER_SITE_ATTRIBUTE_TYPE Site;
       
   634 		GOPHER_ORGANIZATION_ATTRIBUTE_TYPE Organization;
       
   635 		GOPHER_LOCATION_ATTRIBUTE_TYPE Location;
       
   636 		GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE GeographicalLocation;
       
   637 		GOPHER_TIMEZONE_ATTRIBUTE_TYPE TimeZone;
       
   638 		GOPHER_PROVIDER_ATTRIBUTE_TYPE Provider;
       
   639 		GOPHER_VERSION_ATTRIBUTE_TYPE Version;
       
   640 		GOPHER_ABSTRACT_ATTRIBUTE_TYPE Abstract;
       
   641 		GOPHER_VIEW_ATTRIBUTE_TYPE View;
       
   642 		GOPHER_VERONICA_ATTRIBUTE_TYPE Veronica;
       
   643 		GOPHER_ASK_ATTRIBUTE_TYPE Ask;
       
   644 		GOPHER_UNKNOWN_ATTRIBUTE_TYPE Unknown;
       
   645 	} AttributeType;
       
   646 } GOPHER_ATTRIBUTE_TYPE,*LPGOPHER_ATTRIBUTE_TYPE;
       
   647 typedef BOOL(CALLBACK *GOPHER_ATTRIBUTE_ENUMERATOR)(LPGOPHER_ATTRIBUTE_TYPE,DWORD);
       
   648 typedef struct _INTERNET_CACHE_ENTRY_INFOA {
       
   649 	DWORD dwStructSize;
       
   650 	LPSTR lpszSourceUrlName;
       
   651 	LPSTR lpszLocalFileName;
       
   652 	DWORD CacheEntryType;
       
   653 	DWORD dwUseCount;
       
   654 	DWORD dwHitRate;
       
   655 	DWORD dwSizeLow;
       
   656 	DWORD dwSizeHigh;
       
   657 	FILETIME LastModifiedTime;
       
   658 	FILETIME ExpireTime;
       
   659 	FILETIME LastAccessTime;
       
   660 	FILETIME LastSyncTime;
       
   661 	PBYTE lpHeaderInfo;
       
   662 	DWORD dwHeaderInfoSize;
       
   663 	LPSTR lpszFileExtension;
       
   664 	DWORD dwReserved;
       
   665 } INTERNET_CACHE_ENTRY_INFOA,*LPINTERNET_CACHE_ENTRY_INFOA;
       
   666 typedef struct _INTERNET_CACHE_ENTRY_INFOW {
       
   667 	DWORD dwStructSize;
       
   668 	LPSTR lpszSourceUrlName;
       
   669 	LPWSTR lpszLocalFileName;
       
   670 	DWORD CacheEntryType;
       
   671 	DWORD dwUseCount;
       
   672 	DWORD dwHitRate;
       
   673 	DWORD dwSizeLow;
       
   674 	DWORD dwSizeHigh;
       
   675 	FILETIME LastModifiedTime;
       
   676 	FILETIME ExpireTime;
       
   677 	FILETIME LastAccessTime;
       
   678 	FILETIME LastSyncTime;
       
   679 	PBYTE lpHeaderInfo;
       
   680 	DWORD dwHeaderInfoSize;
       
   681 	LPWSTR lpszFileExtension;
       
   682 	DWORD dwReserved;
       
   683 } INTERNET_CACHE_ENTRY_INFOW,*LPINTERNET_CACHE_ENTRY_INFOW;
       
   684 typedef struct _INTERNET_BUFFERSA {
       
   685 	DWORD dwStructSize;
       
   686 	struct _INTERNET_BUFFERSA *Next;
       
   687 	LPCSTR lpcszHeader;
       
   688 	DWORD dwHeadersLength;
       
   689 	DWORD dwHeadersTotal;
       
   690 	LPVOID lpvBuffer;
       
   691 	DWORD dwBufferLength;
       
   692 	DWORD dwBufferTotal;
       
   693 	DWORD dwOffsetLow;
       
   694 	DWORD dwOffsetHigh;
       
   695 } INTERNET_BUFFERSA,*LPINTERNET_BUFFERSA;
       
   696 typedef struct _INTERNET_BUFFERSW {
       
   697 	DWORD dwStructSize;
       
   698 	struct _INTERNET_BUFFERS *Next;
       
   699 	LPCWSTR  lpcszHeader;
       
   700 	DWORD dwHeadersLength;
       
   701 	DWORD dwHeadersTotal;
       
   702 	LPVOID lpvBuffer;
       
   703 	DWORD dwBufferLength;
       
   704 	DWORD dwBufferTotal;
       
   705 	DWORD dwOffsetLow;
       
   706 	DWORD dwOffsetHigh;
       
   707 } INTERNET_BUFFERSW,*LPINTERNET_BUFFERSW;
       
   708 
       
   709 #define GROUP_OWNER_STORAGE_SIZE 4
       
   710 #define GROUPNAME_MAX_LENGTH 120
       
   711 typedef struct _INTERNET_CACHE_GROUP_INFOA {
       
   712 	DWORD dwGroupSize;
       
   713 	DWORD dwGroupFlags;
       
   714 	DWORD dwGroupType;
       
   715 	DWORD dwDiskUsage;
       
   716 	DWORD dwDiskQuota;
       
   717 	DWORD dwOwnerStorage[GROUP_OWNER_STORAGE_SIZE];
       
   718 	CHAR  szGroupName[GROUPNAME_MAX_LENGTH];
       
   719 } INTERNET_CACHE_GROUP_INFOA, * LPINTERNET_CACHE_GROUP_INFOA;
       
   720 typedef struct _INTERNET_CACHE_GROUP_INFOW {
       
   721 	DWORD dwGroupSize;
       
   722 	DWORD dwGroupFlags;
       
   723 	DWORD dwGroupType;
       
   724 	DWORD dwDiskUsage;
       
   725 	DWORD dwDiskQuota;
       
   726 	DWORD dwOwnerStorage[GROUP_OWNER_STORAGE_SIZE];
       
   727 	WCHAR szGroupName[GROUPNAME_MAX_LENGTH];
       
   728 } INTERNET_CACHE_GROUP_INFOW, * LPINTERNET_CACHE_GROUP_INFOW;
       
   729 typedef struct {
       
   730  	DWORD dwConnectedState;
       
   731 	DWORD dwFlags;
       
   732 } INTERNET_CONNECTED_INFO, * LPINTERNET_CONNECTED_INFO;
       
   733 
       
   734 #ifdef UNICODE
       
   735 typedef URL_COMPONENTSW URL_COMPONENTS;
       
   736 typedef LPURL_COMPONENTSW LPURL_COMPONENTS;
       
   737 typedef GOPHER_FIND_DATAW GOPHER_FIND_DATA;
       
   738 typedef LPGOPHER_FIND_DATAW LPGOPHER_FIND_DATA;
       
   739 typedef INTERNET_CACHE_ENTRY_INFOW INTERNET_CACHE_ENTRY_INFO;
       
   740 typedef LPINTERNET_CACHE_ENTRY_INFOW LPINTERNET_CACHE_ENTRY_INFO;
       
   741 typedef INTERNET_BUFFERSW INTERNET_BUFFERS,*LPINTERNET_BUFFERS;
       
   742 typedef INTERNET_CACHE_GROUP_INFOW INTERNET_CACHE_GROUP_INFO;
       
   743 typedef LPINTERNET_CACHE_GROUP_INFOW LPINTERNET_CACHE_GROUP_INFO;
       
   744 #else
       
   745 typedef URL_COMPONENTSA URL_COMPONENTS;
       
   746 typedef LPURL_COMPONENTSA LPURL_COMPONENTS;
       
   747 typedef GOPHER_FIND_DATAA GOPHER_FIND_DATA;
       
   748 typedef LPGOPHER_FIND_DATAA LPGOPHER_FIND_DATA;
       
   749 typedef INTERNET_CACHE_ENTRY_INFOA INTERNET_CACHE_ENTRY_INFO;
       
   750 typedef LPINTERNET_CACHE_ENTRY_INFOA LPINTERNET_CACHE_ENTRY_INFO;
       
   751 typedef INTERNET_BUFFERSA INTERNET_BUFFERS,*LPINTERNET_BUFFERS;
       
   752 typedef INTERNET_CACHE_GROUP_INFOA INTERNET_CACHE_GROUP_INFO;
       
   753 typedef LPINTERNET_CACHE_GROUP_INFOA LPINTERNET_CACHE_GROUP_INFO;
       
   754 #endif
       
   755 BOOL WINAPI InternetTimeFromSystemTime(SYSTEMTIME*,DWORD,LPSTR,DWORD);
       
   756 BOOL WINAPI InternetTimeToSystemTime(LPCSTR,SYSTEMTIME*,DWORD);
       
   757 BOOL WINAPI InternetDebugGetLocalTime(SYSTEMTIME*,PDWORD);
       
   758 BOOL WINAPI InternetCrackUrlA(LPCSTR,DWORD,DWORD,LPURL_COMPONENTSA);
       
   759 BOOL WINAPI InternetCrackUrlW(LPCWSTR,DWORD,DWORD,LPURL_COMPONENTSW);
       
   760 BOOL WINAPI InternetCreateUrlA(LPURL_COMPONENTSA,DWORD,LPSTR,PDWORD);
       
   761 BOOL WINAPI InternetCreateUrlW(LPURL_COMPONENTSW,DWORD,LPWSTR,PDWORD);
       
   762 BOOL WINAPI InternetCanonicalizeUrlA(LPCSTR,LPSTR,PDWORD,DWORD);
       
   763 BOOL WINAPI InternetCanonicalizeUrlW(LPCWSTR,LPWSTR,PDWORD,DWORD);
       
   764 BOOL WINAPI InternetCheckConnectionA(LPCSTR,DWORD,DWORD);
       
   765 BOOL WINAPI InternetCheckConnectionW(LPCWSTR,DWORD,DWORD);
       
   766 BOOL WINAPI InternetCombineUrlA(LPCSTR,LPCSTR,LPSTR,PDWORD,DWORD);
       
   767 BOOL WINAPI InternetCombineUrlW(LPCWSTR,LPCWSTR,LPWSTR,PDWORD,DWORD);
       
   768 HINTERNET WINAPI InternetOpenA(LPCSTR,DWORD,LPCSTR,LPCSTR,DWORD);
       
   769 HINTERNET WINAPI InternetOpenW(LPCWSTR,DWORD,LPCWSTR,LPCWSTR,DWORD);
       
   770 BOOL WINAPI InternetCloseHandle(HINTERNET);
       
   771 HINTERNET WINAPI InternetConnectA(HINTERNET,LPCSTR,INTERNET_PORT,LPCSTR,LPCSTR,DWORD,DWORD,DWORD);
       
   772 HINTERNET WINAPI InternetConnectW(HINTERNET,LPCWSTR,INTERNET_PORT,LPCWSTR,LPCWSTR,DWORD,DWORD,DWORD);
       
   773 HINTERNET WINAPI InternetOpenUrlA(HINTERNET,LPCSTR,LPCSTR,DWORD,DWORD,DWORD);
       
   774 HINTERNET WINAPI InternetOpenUrlW(HINTERNET,LPCWSTR,LPCWSTR,DWORD,DWORD,DWORD);
       
   775 BOOL WINAPI InternetReadFile(HINTERNET,PVOID,DWORD,PDWORD);
       
   776 DWORD WINAPI InternetSetFilePointer( HINTERNET,LONG,PVOID,DWORD,DWORD);
       
   777 BOOL WINAPI InternetWriteFile(HINTERNET,LPCVOID,DWORD,PDWORD);
       
   778 BOOL WINAPI InternetQueryDataAvailable( HINTERNET,PDWORD,DWORD,DWORD);
       
   779 BOOL WINAPI InternetFindNextFileA(HINTERNET,PVOID);
       
   780 BOOL WINAPI InternetFindNextFileW(HINTERNET,PVOID);
       
   781 BOOL WINAPI InternetQueryOptionA(HINTERNET,DWORD,PVOID,PDWORD);
       
   782 BOOL WINAPI InternetQueryOptionW(HINTERNET,DWORD,PVOID,PDWORD);
       
   783 BOOL WINAPI InternetSetOptionA(HINTERNET,DWORD,PVOID,DWORD);
       
   784 BOOL WINAPI InternetSetOptionW(HINTERNET,DWORD,PVOID,DWORD);
       
   785 BOOL WINAPI InternetSetOptionExA(HINTERNET,DWORD,PVOID,DWORD,DWORD);
       
   786 BOOL WINAPI InternetSetOptionExW(HINTERNET,DWORD,PVOID,DWORD,DWORD);
       
   787 BOOL WINAPI InternetGetLastResponseInfoA(PDWORD,LPSTR,PDWORD);
       
   788 BOOL WINAPI InternetGetLastResponseInfoW(PDWORD,LPWSTR,PDWORD);
       
   789 INTERNET_STATUS_CALLBACK WINAPI InternetSetStatusCallback(HINTERNET,INTERNET_STATUS_CALLBACK);
       
   790 DWORD WINAPI FtpGetFileSize(HINTERNET,LPDWORD);
       
   791 HINTERNET WINAPI FtpFindFirstFileA(HINTERNET,LPCSTR,LPWIN32_FIND_DATA,DWORD,DWORD);
       
   792 HINTERNET WINAPI FtpFindFirstFileW(HINTERNET,LPCWSTR,LPWIN32_FIND_DATA,DWORD,DWORD);
       
   793 BOOL WINAPI FtpGetFileA(HINTERNET,LPCSTR,LPCSTR,BOOL,DWORD,DWORD,DWORD);
       
   794 BOOL WINAPI FtpGetFileW( HINTERNET,LPCWSTR,LPCWSTR,BOOL,DWORD,DWORD,DWORD);
       
   795 BOOL WINAPI FtpPutFileA(HINTERNET,LPCSTR,LPCSTR,DWORD,DWORD);
       
   796 BOOL WINAPI FtpPutFileW(HINTERNET,LPCWSTR,LPCWSTR,DWORD,DWORD);
       
   797 BOOL WINAPI FtpDeleteFileA(HINTERNET,LPCSTR);
       
   798 BOOL WINAPI FtpDeleteFileW(HINTERNET,LPCWSTR);
       
   799 BOOL WINAPI FtpRenameFileA(HINTERNET, LPCSTR,LPCSTR);
       
   800 BOOL WINAPI FtpRenameFileW(HINTERNET,LPCWSTR,LPCWSTR);
       
   801 HINTERNET WINAPI FtpOpenFileA(HINTERNET,LPCSTR,DWORD,DWORD,DWORD);
       
   802 HINTERNET WINAPI FtpOpenFileW(HINTERNET,LPCWSTR,DWORD,DWORD,DWORD);
       
   803 BOOL WINAPI FtpCreateDirectoryA(HINTERNET,LPCSTR);
       
   804 BOOL WINAPI FtpCreateDirectoryW(HINTERNET,LPCWSTR);
       
   805 BOOL WINAPI FtpRemoveDirectoryA(HINTERNET,LPCSTR);
       
   806 BOOL WINAPI FtpRemoveDirectoryW(HINTERNET,LPCWSTR);
       
   807 BOOL WINAPI FtpSetCurrentDirectoryA(HINTERNET,LPCSTR);
       
   808 BOOL WINAPI FtpSetCurrentDirectoryW(HINTERNET,LPCWSTR);
       
   809 BOOL WINAPI FtpGetCurrentDirectoryA(HINTERNET,LPSTR,PDWORD);
       
   810 BOOL WINAPI FtpGetCurrentDirectoryW(HINTERNET,LPWSTR,PDWORD);
       
   811 BOOL WINAPI FtpCommandA(HINTERNET,BOOL,DWORD,LPCSTR,DWORD_PTR,HINTERNET*);
       
   812 BOOL WINAPI FtpCommandW(HINTERNET,BOOL,DWORD,LPCWSTR,DWORD_PTR,HINTERNET*);
       
   813 BOOL WINAPI GopherCreateLocatorA(LPCSTR,INTERNET_PORT,LPCSTR,LPCSTR,DWORD,LPSTR,PDWORD);
       
   814 BOOL WINAPI GopherCreateLocatorW(LPCWSTR,INTERNET_PORT,LPCWSTR,LPCWSTR,DWORD,LPWSTR,PDWORD);
       
   815 BOOL WINAPI GopherGetLocatorTypeA(LPCSTR,PDWORD);
       
   816 BOOL WINAPI GopherGetLocatorTypeW(LPCWSTR,PDWORD);
       
   817 HINTERNET WINAPI GopherFindFirstFileA(HINTERNET,LPCSTR,LPCSTR,LPGOPHER_FIND_DATAA,DWORD,DWORD);
       
   818 HINTERNET WINAPI GopherFindFirstFileW(HINTERNET,LPCWSTR,LPCWSTR,LPGOPHER_FIND_DATAW,DWORD,DWORD);
       
   819 HINTERNET WINAPI GopherOpenFileA(HINTERNET,LPCSTR,LPCSTR,DWORD,DWORD);
       
   820 HINTERNET WINAPI GopherOpenFileW(HINTERNET,LPCWSTR,LPCWSTR,DWORD,DWORD);
       
   821 BOOL WINAPI GopherGetAttributeA(HINTERNET,LPCSTR,LPCSTR,LPBYTE,DWORD,PDWORD,GOPHER_ATTRIBUTE_ENUMERATOR,DWORD);
       
   822 BOOL WINAPI GopherGetAttributeW(HINTERNET,LPCWSTR,
       
   823 LPCWSTR, LPBYTE, DWORD, PDWORD, GOPHER_ATTRIBUTE_ENUMERATOR, DWORD);
       
   824 HINTERNET WINAPI HttpOpenRequestA(HINTERNET,LPCSTR,LPCSTR,LPCSTR,LPCSTR,LPCSTR *,DWORD,DWORD);
       
   825 HINTERNET WINAPI HttpOpenRequestW(HINTERNET,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR FAR * lplpszAcceptTypes , DWORD dwFlags, DWORD dwContext);
       
   826 BOOL WINAPI HttpAddRequestHeadersA(HINTERNET,LPCSTR,DWORD,DWORD);
       
   827 BOOL WINAPI HttpAddRequestHeadersW(HINTERNET,LPCWSTR,DWORD,DWORD);
       
   828 BOOL WINAPI HttpSendRequestA(HINTERNET,LPCSTR,DWORD,PVOID,DWORD);
       
   829 BOOL WINAPI HttpSendRequestW(HINTERNET,LPCWSTR,DWORD,PVOID,DWORD);
       
   830 BOOL WINAPI HttpQueryInfoA(HINTERNET,DWORD,PVOID,PDWORD,PDWORD);
       
   831 BOOL WINAPI HttpQueryInfoW(HINTERNET,DWORD,PVOID,PDWORD,PDWORD);
       
   832 BOOL WINAPI InternetSetCookieA(LPCSTR,LPCSTR,LPCSTR);
       
   833 BOOL WINAPI InternetSetCookieW(LPCSTR,LPCWSTR,LPCWSTR);
       
   834 BOOL WINAPI InternetGetCookieA(LPCSTR,LPCSTR,LPSTR,PDWORD);
       
   835 BOOL WINAPI InternetGetCookieW(LPCSTR,LPCWSTR,LPWSTR,PDWORD);
       
   836 DWORD WINAPI InternetAttemptConnect(DWORD);
       
   837 DWORD WINAPI InternetErrorDlg(HWND,HINTERNET,DWORD,DWORD,PVOID *);
       
   838 DWORD WINAPI InternetConfirmZoneCrossing(HWND,LPSTR,LPSTR,BOOL);
       
   839 BOOL WINAPI CreateUrlCacheEntryA(LPCSTR,DWORD,LPCSTR,LPSTR,DWORD);
       
   840 BOOL WINAPI CreateUrlCacheEntryW(LPCSTR,DWORD,LPCSTR,LPWSTR,DWORD);
       
   841 BOOL WINAPI CommitUrlCacheEntryA(LPCSTR,LPCSTR,FILETIME,FILETIME,DWORD,LPBYTE,DWORD,LPCSTR,DWORD);
       
   842 BOOL WINAPI CommitUrlCacheEntryW(LPCSTR,LPCWSTR,FILETIME,FILETIME,DWORD,LPBYTE,DWORD,LPCWSTR,DWORD);
       
   843 BOOL WINAPI RetrieveUrlCacheEntryFileA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD,DWORD);
       
   844 BOOL WINAPI RetrieveUrlCacheEntryFileW(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD,DWORD);
       
   845 BOOL WINAPI UnlockUrlCacheEntryFile(LPCSTR,DWORD);
       
   846 HANDLE WINAPI RetrieveUrlCacheEntryStreamA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD,BOOL,DWORD);
       
   847 HANDLE WINAPI RetrieveUrlCacheEntryStreamW( LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD,BOOL,DWORD);
       
   848 BOOL WINAPI ReadUrlCacheEntryStream(HANDLE,DWORD,PVOID,PDWORD,DWORD);
       
   849 BOOL WINAPI UnlockUrlCacheEntryStream( HANDLE,DWORD);
       
   850 BOOL WINAPI GetUrlCacheEntryInfoA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD);
       
   851 BOOL WINAPI GetUrlCacheEntryInfoW(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD);
       
   852 BOOL WINAPI SetUrlCacheEntryInfoA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,DWORD);
       
   853 BOOL WINAPI SetUrlCacheEntryInfoW(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,DWORD);
       
   854 HANDLE WINAPI FindFirstUrlCacheEntryA(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD);
       
   855 HANDLE WINAPI FindFirstUrlCacheEntryW(LPCSTR,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD);
       
   856 BOOL WINAPI FindNextUrlCacheEntryA(HANDLE,LPINTERNET_CACHE_ENTRY_INFOA,PDWORD);
       
   857 BOOL WINAPI FindNextUrlCacheEntryW(HANDLE,LPINTERNET_CACHE_ENTRY_INFOW,PDWORD);
       
   858 BOOL WINAPI FindCloseUrlCache(HANDLE);
       
   859 BOOL WINAPI DeleteUrlCacheEntry(LPCSTR);
       
   860 DWORD AuthenticateUser(PVOID*,LPSTR,LPSTR,DWORD,LPSTR,DWORD,LPSTR,LPSTR);
       
   861 BOOL WINAPI HttpSendRequestExA(HINTERNET,LPINTERNET_BUFFERSA,LPINTERNET_BUFFERSA,DWORD,DWORD);
       
   862 BOOL WINAPI HttpSendRequestExW(HINTERNET,LPINTERNET_BUFFERSW,LPINTERNET_BUFFERSW,DWORD,DWORD);
       
   863 BOOL WINAPI HttpEndRequestA(HINTERNET,LPINTERNET_BUFFERSA,DWORD,DWORD);
       
   864 BOOL WINAPI HttpEndRequestW(HINTERNET,LPINTERNET_BUFFERSW,DWORD,DWORD);
       
   865 DWORD WINAPI InternetDial(HWND,LPTSTR,DWORD,LPDWORD,DWORD);
       
   866 DWORD WINAPI InternetHangUp(DWORD,DWORD);
       
   867 BOOL WINAPI InternetGoOnline(LPTSTR,HWND,DWORD);
       
   868 BOOL WINAPI InternetAutodial(DWORD,DWORD);
       
   869 BOOL WINAPI InternetAutodialHangup(DWORD);
       
   870 BOOL WINAPI InternetGetConnectedState(LPDWORD,DWORD);
       
   871 BOOL WINAPI InternetSetDialState(LPCTSTR,DWORD,DWORD);
       
   872 BOOL WINAPI InternetReadFileExA(HINTERNET,LPINTERNET_BUFFERSA,DWORD,DWORD_PTR);
       
   873 BOOL WINAPI InternetReadFileExW(HINTERNET,LPINTERNET_BUFFERSW,DWORD,DWORD_PTR);
       
   874 GROUPID WINAPI CreateUrlCacheGroup(DWORD,LPVOID);
       
   875 BOOL WINAPI DeleteUrlCacheGroup(GROUPID,DWORD,LPVOID);
       
   876 HANDLE WINAPI FindFirstUrlCacheGroup(DWORD,DWORD,LPVOID,DWORD,GROUPID*,LPVOID);
       
   877 BOOL WINAPI FindNextUrlCacheGroup(HANDLE,GROUPID*,LPVOID);
       
   878 BOOL WINAPI GetUrlCacheGroupAttributeA(GROUPID,DWORD,DWORD,LPINTERNET_CACHE_GROUP_INFOA,LPDWORD,LPVOID);
       
   879 BOOL WINAPI GetUrlCacheGroupAttributeW(GROUPID,DWORD,DWORD,LPINTERNET_CACHE_GROUP_INFOW,LPDWORD,LPVOID);
       
   880 BOOL WINAPI SetUrlCacheGroupAttributeA(GROUPID,DWORD,DWORD,LPINTERNET_CACHE_GROUP_INFOA,LPVOID);
       
   881 BOOL WINAPI SetUrlCacheGroupAttributeW(GROUPID,DWORD,DWORD,LPINTERNET_CACHE_GROUP_INFOW,LPVOID);
       
   882 
       
   883 #ifdef UNICODE
       
   884 #define InternetCrackUrl InternetCrackUrlW
       
   885 #define InternetCreateUrl InternetCreateUrlW
       
   886 #define InternetCanonicalizeUrl InternetCanonicalizeUrlW
       
   887 #define InternetCheckConnection InternetCheckConnectionW
       
   888 #define InternetCombineUrl InternetCombineUrlW
       
   889 #define InternetOpen InternetOpenW
       
   890 #define InternetConnect InternetConnectW
       
   891 #define InternetOpenUrl InternetOpenUrlW
       
   892 #define InternetFindNextFile InternetFindNextFileW
       
   893 #define InternetQueryOption InternetQueryOptionW
       
   894 #define InternetSetOption InternetSetOptionW
       
   895 #define InternetSetOptionEx InternetSetOptionExW
       
   896 #define InternetGetLastResponseInfo InternetGetLastResponseInfoW
       
   897 #define InternetReadFileEx  InternetReadFileExW
       
   898 #define FtpFindFirstFile FtpFindFirstFileW
       
   899 #define FtpGetFile FtpGetFileW
       
   900 #define FtpPutFile FtpPutFileW
       
   901 #define FtpDeleteFile FtpDeleteFileW
       
   902 #define FtpRenameFile FtpRenameFileW
       
   903 #define FtpOpenFile FtpOpenFileW
       
   904 #define FtpCreateDirectory FtpCreateDirectoryW
       
   905 #define FtpRemoveDirectory FtpRemoveDirectoryW
       
   906 #define FtpSetCurrentDirectory FtpSetCurrentDirectoryW
       
   907 #define FtpGetCurrentDirectory FtpGetCurrentDirectoryW
       
   908 #define FtpCommand FtpCommandW
       
   909 #define GopherGetLocatorType GopherGetLocatorTypeW
       
   910 #define GopherCreateLocator GopherCreateLocatorW
       
   911 #define GopherFindFirstFile GopherFindFirstFileW
       
   912 #define GopherOpenFile GopherOpenFileW
       
   913 #define GopherGetAttribute GopherGetAttributeW
       
   914 #define HttpSendRequest HttpSendRequestW
       
   915 #define HttpOpenRequest HttpOpenRequestW
       
   916 #define HttpAddRequestHeaders HttpAddRequestHeadersW
       
   917 #define HttpQueryInfo HttpQueryInfoW
       
   918 #define InternetSetCookie InternetSetCookieW
       
   919 #define InternetGetCookie InternetGetCookieW
       
   920 #define CreateUrlCacheEntry CreateUrlCacheEntryW
       
   921 #define RetrieveUrlCacheEntryStream RetrieveUrlCacheEntryStreamW
       
   922 #define FindNextUrlCacheEntry FindNextUrlCacheEntryW
       
   923 #define CommitUrlCacheEntry CommitUrlCacheEntryW
       
   924 #define GetUrlCacheEntryInfo GetUrlCacheEntryInfoW
       
   925 #define SetUrlCacheEntryInfo SetUrlCacheEntryInfoW
       
   926 #define FindFirstUrlCacheEntry FindFirstUrlCacheEntryW
       
   927 #define RetrieveUrlCacheEntryFile RetrieveUrlCacheEntryFileW
       
   928 #define HttpSendRequestEx	 HttpSendRequestExW
       
   929 #define HttpEndRequest		 HttpEndRequestW
       
   930 #define GetUrlCacheGroupAttribute  GetUrlCacheGroupAttributeW
       
   931 #define SetUrlCacheGroupAttribute  SetUrlCacheGroupAttributeW
       
   932 #else
       
   933 #define GopherGetAttribute GopherGetAttributeA
       
   934 #define InternetCrackUrl InternetCrackUrlA
       
   935 #define InternetCreateUrl InternetCreateUrlA
       
   936 #define InternetCanonicalizeUrl InternetCanonicalizeUrlA
       
   937 #define InternetCheckConnection InternetCheckConnectionA
       
   938 #define InternetCombineUrl InternetCombineUrlA
       
   939 #define InternetOpen InternetOpenA
       
   940 #define InternetConnect InternetConnectA
       
   941 #define InternetOpenUrl InternetOpenUrlA
       
   942 #define InternetFindNextFile InternetFindNextFileA
       
   943 #define InternetQueryOption InternetQueryOptionA
       
   944 #define InternetSetOption InternetSetOptionA
       
   945 #define InternetSetOptionEx InternetSetOptionExA
       
   946 #define InternetGetLastResponseInfo InternetGetLastResponseInfoA
       
   947 #define InternetReadFileEx  InternetReadFileExA
       
   948 #define FtpFindFirstFile FtpFindFirstFileA
       
   949 #define FtpGetFile FtpGetFileA
       
   950 #define FtpPutFile FtpPutFileA
       
   951 #define FtpDeleteFile FtpDeleteFileA
       
   952 #define FtpRenameFile FtpRenameFileA
       
   953 #define FtpOpenFile FtpOpenFileA
       
   954 #define FtpCreateDirectory FtpCreateDirectoryA
       
   955 #define FtpRemoveDirectory FtpRemoveDirectoryA
       
   956 #define FtpSetCurrentDirectory FtpSetCurrentDirectoryA
       
   957 #define FtpGetCurrentDirectory FtpGetCurrentDirectoryA
       
   958 #define FtpCommand FtpCommandA
       
   959 #define GopherGetLocatorType GopherGetLocatorTypeA
       
   960 #define GopherCreateLocator GopherCreateLocatorA
       
   961 #define GopherFindFirstFile GopherFindFirstFileA
       
   962 #define GopherOpenFile GopherOpenFileA
       
   963 #define HttpSendRequest HttpSendRequestA
       
   964 #define HttpOpenRequest HttpOpenRequestA
       
   965 #define HttpAddRequestHeaders HttpAddRequestHeadersA
       
   966 #define HttpQueryInfo HttpQueryInfoA
       
   967 #define InternetSetCookie InternetSetCookieA
       
   968 #define InternetGetCookie InternetGetCookieA
       
   969 #define CreateUrlCacheEntry CreateUrlCacheEntryA
       
   970 #define RetrieveUrlCacheEntryStream RetrieveUrlCacheEntryStreamA
       
   971 #define FindNextUrlCacheEntry FindNextUrlCacheEntryA
       
   972 #define CommitUrlCacheEntry CommitUrlCacheEntryA
       
   973 #define GetUrlCacheEntryInfo GetUrlCacheEntryInfoA
       
   974 #define SetUrlCacheEntryInfo SetUrlCacheEntryInfoA
       
   975 #define FindFirstUrlCacheEntry FindFirstUrlCacheEntryA
       
   976 #define RetrieveUrlCacheEntryFile RetrieveUrlCacheEntryFileA
       
   977 #define HttpSendRequestEx	 HttpSendRequestExA
       
   978 #define HttpEndRequest		 HttpEndRequestA
       
   979 #define GetUrlCacheGroupAttribute  GetUrlCacheGroupAttributeA
       
   980 #define SetUrlCacheGroupAttribute  SetUrlCacheGroupAttributeA
       
   981 #endif /* UNICODE */
       
   982 #endif /* RC_INVOKED */
       
   983 #ifdef __cplusplus
       
   984 }
       
   985 #endif
       
   986 #endif