home *** CD-ROM | disk | FTP | other *** search
/ Total Destruction / Total_Destruction.iso / addons / Lccwin32.exe / Lccwin32 / lccpub / include / wininet.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-05-18  |  40.5 KB  |  830 lines

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