home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 August / Chip_2000-08_cd1.bin / sharewar / dvcpp / _SETUP.5 / Group3 / wininet.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-03-08  |  39.6 KB  |  834 lines

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