[ros-diffs] [weiden] 14702: import wininet.h from wine to solve conflicts with the w32api headers

weiden at svn.reactos.com weiden at svn.reactos.com
Tue Apr 19 17:06:20 CEST 2005


import wininet.h from wine to solve conflicts with the w32api headers
Added: trunk/reactos/include/wine/wininet.h
Added: trunk/reactos/w32api/include/wininet.h
Deleted: trunk/reactos/w32api/include/wininet.h.w32
  _____  

Added: trunk/reactos/include/wine/wininet.h
--- trunk/reactos/include/wine/wininet.h	2005-04-19 10:40:37 UTC
(rev 14701)
+++ trunk/reactos/include/wine/wininet.h	2005-04-19 15:06:18 UTC
(rev 14702)
@@ -0,0 +1,1552 @@

+/*
+ * Copyright (C) 2000 Ulrich Czekalla
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
USA
+ */
+
+#ifndef _WINE_WININET_H_
+#define _WINE_WININET_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define INTERNETAPI
+#define BOOLAPI INTERNETAPI BOOL WINAPI
+
+typedef LPVOID HINTERNET;
+typedef HINTERNET * LPHINTERNET;
+
+typedef WORD INTERNET_PORT;
+typedef INTERNET_PORT * LPINTERNET_PORT;
+
+
+#define INTERNET_INVALID_PORT_NUMBER    0
+
+#define INTERNET_DEFAULT_FTP_PORT       21
+#define INTERNET_DEFAULT_GOPHER_PORT    70
+#define INTERNET_DEFAULT_HTTP_PORT      80
+#define INTERNET_DEFAULT_HTTPS_PORT     443
+#define INTERNET_DEFAULT_SOCKS_PORT     1080
+
+#define INTERNET_MAX_HOST_NAME_LENGTH   256
+#define INTERNET_MAX_USER_NAME_LENGTH   128
+#define INTERNET_MAX_PASSWORD_LENGTH    128
+#define INTERNET_MAX_PORT_NUMBER_LENGTH 5
+#define INTERNET_MAX_PORT_NUMBER_VALUE  65535
+#define INTERNET_MAX_PATH_LENGTH        2048
+#define INTERNET_MAX_SCHEME_LENGTH      32
+#define INTERNET_MAX_URL_LENGTH         (INTERNET_MAX_SCHEME_LENGTH +
sizeof("://")+ INTERNET_MAX_PATH_LENGTH)
+#define INTERNET_KEEP_ALIVE_UNKNOWN     ((DWORD)-1)
+#define INTERNET_KEEP_ALIVE_ENABLED     1
+#define INTERNET_KEEP_ALIVE_DISABLED    0
+#define INTERNET_REQFLAG_FROM_CACHE     0x00000001
+#define INTERNET_REQFLAG_ASYNC          0x00000002
+#define INTERNET_REQFLAG_VIA_PROXY      0x00000004
+#define INTERNET_REQFLAG_NO_HEADERS     0x00000008
+#define INTERNET_REQFLAG_PASSIVE        0x00000010
+#define INTERNET_REQFLAG_CACHE_WRITE_DISABLED 0x00000040
+#define INTERNET_FLAG_RELOAD            0x80000000
+#define INTERNET_FLAG_RAW_DATA          0x40000000
+#define INTERNET_FLAG_EXISTING_CONNECT  0x20000000
+#define INTERNET_FLAG_ASYNC             0x10000000
+#define INTERNET_FLAG_PASSIVE           0x08000000
+#define INTERNET_FLAG_NO_CACHE_WRITE    0x04000000
+#define INTERNET_FLAG_DONT_CACHE        INTERNET_FLAG_NO_CACHE_WRITE
+#define INTERNET_FLAG_MAKE_PERSISTENT   0x02000000
+#define INTERNET_FLAG_FROM_CACHE        0x01000000
+#define INTERNET_FLAG_OFFLINE           INTERNET_FLAG_FROM_CACHE
+#define INTERNET_FLAG_SECURE            0x00800000
+#define INTERNET_FLAG_KEEP_CONNECTION   0x00400000
+#define INTERNET_FLAG_NO_AUTO_REDIRECT  0x00200000
+#define INTERNET_FLAG_READ_PREFETCH     0x00100000
+#define INTERNET_FLAG_NO_COOKIES        0x00080000
+#define INTERNET_FLAG_NO_AUTH           0x00040000
+#define INTERNET_FLAG_CACHE_IF_NET_FAIL 0x00010000
+#define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP   0x00008000
+#define INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS  0x00004000
+#define INTERNET_FLAG_IGNORE_CERT_DATE_INVALID  0x00002000
+#define INTERNET_FLAG_IGNORE_CERT_CN_INVALID    0x00001000
+#define INTERNET_FLAG_RESYNCHRONIZE     0x00000800
+#define INTERNET_FLAG_HYPERLINK         0x00000400
+#define INTERNET_FLAG_NO_UI             0x00000200
+#define INTERNET_FLAG_PRAGMA_NOCACHE    0x00000100
+#define INTERNET_FLAG_CACHE_ASYNC       0x00000080
+#define INTERNET_FLAG_FORMS_SUBMIT      0x00000040
+#define INTERNET_FLAG_NEED_FILE         0x00000010
+#define INTERNET_FLAG_MUST_CACHE_REQUEST INTERNET_FLAG_NEED_FILE
+#define INTERNET_FLAG_TRANSFER_ASCII    FTP_TRANSFER_TYPE_ASCII
+#define INTERNET_FLAG_TRANSFER_BINARY   FTP_TRANSFER_TYPE_BINARY
+#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)
+
+#define INTERNET_FLAGS_MASK     (INTERNET_FLAG_RELOAD \
+                                | INTERNET_FLAG_RAW_DATA            \
+                                | INTERNET_FLAG_EXISTING_CONNECT    \
+                                | INTERNET_FLAG_ASYNC               \
+                                | INTERNET_FLAG_PASSIVE             \
+                                | INTERNET_FLAG_NO_CACHE_WRITE      \
+                                | INTERNET_FLAG_MAKE_PERSISTENT     \
+                                | INTERNET_FLAG_FROM_CACHE          \
+                                | INTERNET_FLAG_SECURE              \
+                                | INTERNET_FLAG_KEEP_CONNECTION     \
+                                | INTERNET_FLAG_NO_AUTO_REDIRECT    \
+                                | INTERNET_FLAG_READ_PREFETCH       \
+                                | INTERNET_FLAG_NO_COOKIES          \
+                                | INTERNET_FLAG_NO_AUTH             \
+                                | INTERNET_FLAG_CACHE_IF_NET_FAIL   \
+                                | SECURITY_INTERNET_MASK            \
+                                | INTERNET_FLAG_RESYNCHRONIZE       \
+                                | INTERNET_FLAG_HYPERLINK           \
+                                | INTERNET_FLAG_NO_UI               \
+                                | INTERNET_FLAG_PRAGMA_NOCACHE      \
+                                | INTERNET_FLAG_CACHE_ASYNC         \
+                                | INTERNET_FLAG_FORMS_SUBMIT        \
+                                | INTERNET_FLAG_NEED_FILE           \
+                                | INTERNET_FLAG_TRANSFER_BINARY     \
+                                | INTERNET_FLAG_TRANSFER_ASCII      \
+                                )
+
+#define INTERNET_ERROR_MASK_INSERT_CDROM                    0x1
+
+#define INTERNET_OPTIONS_MASK   (~INTERNET_FLAGS_MASK)
+#define WININET_API_FLAG_ASYNC          0x00000001
+#define WININET_API_FLAG_SYNC           0x00000004
+#define WININET_API_FLAG_USE_CONTEXT    0x00000008
+#define INTERNET_NO_CALLBACK            0
+
+typedef enum {
+    INTERNET_SCHEME_PARTIAL = -2,
+    INTERNET_SCHEME_UNKNOWN = -1,
+    INTERNET_SCHEME_DEFAULT = 0,
+    INTERNET_SCHEME_FTP,
+    INTERNET_SCHEME_GOPHER,
+    INTERNET_SCHEME_HTTP,
+    INTERNET_SCHEME_HTTPS,
+    INTERNET_SCHEME_FILE,
+    INTERNET_SCHEME_NEWS,
+    INTERNET_SCHEME_MAILTO,
+    INTERNET_SCHEME_SOCKS,
+    INTERNET_SCHEME_JAVASCRIPT,
+    INTERNET_SCHEME_VBSCRIPT,
+    INTERNET_SCHEME_RES,
+    INTERNET_SCHEME_FIRST = INTERNET_SCHEME_FTP,
+    INTERNET_SCHEME_LAST = INTERNET_SCHEME_RES
+} INTERNET_SCHEME,* LPINTERNET_SCHEME;
+
+typedef struct {
+    DWORD dwResult;
+    DWORD dwError;
+} INTERNET_ASYNC_RESULT,* LPINTERNET_ASYNC_RESULT;
+
+typedef struct {
+    DWORD dwAccessType;
+    LPCSTR lpszProxy;
+    LPCSTR lpszProxyBypass;
+} INTERNET_PROXY_INFOA,* LPINTERNET_PROXY_INFOA;
+
+typedef struct {
+    DWORD dwAccessType;
+    LPCWSTR lpszProxy;
+    LPCWSTR lpszProxyBypass;
+} INTERNET_PROXY_INFOW,* LPINTERNET_PROXY_INFOW;
+
+
+DECL_WINELIB_TYPE_AW(INTERNET_PROXY_INFO)
+DECL_WINELIB_TYPE_AW(LPINTERNET_PROXY_INFO)
+
+typedef struct {
+    DWORD dwMajorVersion;
+    DWORD dwMinorVersion;
+} INTERNET_VERSION_INFO,* LPINTERNET_VERSION_INFO;
+
+typedef struct {
+    DWORD dwMajorVersion;
+    DWORD dwMinorVersion;
+} HTTP_VERSION_INFO,* LPHTTP_VERSION_INFO;
+
+typedef struct {
+    DWORD dwConnectedState;
+    DWORD dwFlags;
+} INTERNET_CONNECTED_INFO,* LPINTERNET_CONNECTED_INFO;
+
+#define ISO_FORCE_DISCONNECTED  0x00000001
+
+typedef struct {
+    DWORD   dwStructSize;
+    LPSTR   lpszScheme;
+    DWORD   dwSchemeLength;
+    INTERNET_SCHEME nScheme;
+    LPSTR   lpszHostName;
+    DWORD   dwHostNameLength;
+    INTERNET_PORT nPort;
+    LPSTR   lpszUserName;
+    DWORD   dwUserNameLength;
+    LPSTR   lpszPassword;
+    DWORD   dwPasswordLength;
+    LPSTR   lpszUrlPath;
+    DWORD   dwUrlPathLength;
+    LPSTR   lpszExtraInfo;
+    DWORD   dwExtraInfoLength;
+} URL_COMPONENTSA,* LPURL_COMPONENTSA;
+
+typedef struct {
+    DWORD   dwStructSize;
+    LPWSTR  lpszScheme;
+    DWORD   dwSchemeLength;
+    INTERNET_SCHEME nScheme;
+    LPWSTR  lpszHostName;
+    DWORD   dwHostNameLength;
+    INTERNET_PORT nPort;
+    LPWSTR  lpszUserName;
+    DWORD   dwUserNameLength;
+    LPWSTR  lpszPassword;
+    DWORD   dwPasswordLength;
+    LPWSTR  lpszUrlPath;
+    DWORD   dwUrlPathLength;
+    LPWSTR  lpszExtraInfo;
+    DWORD   dwExtraInfoLength;
+} URL_COMPONENTSW,* LPURL_COMPONENTSW;
+
+DECL_WINELIB_TYPE_AW(URL_COMPONENTS)
+DECL_WINELIB_TYPE_AW(LPURL_COMPONENTS)
+
+typedef struct {
+    FILETIME ftExpiry;
+    FILETIME ftStart;
+    LPSTR lpszSubjectInfo;
+    LPSTR lpszIssuerInfo;
+    LPSTR lpszProtocolName;
+    LPSTR lpszSignatureAlgName;
+    LPSTR lpszEncryptionAlgName;
+    DWORD dwKeySize;
+
+} INTERNET_CERTIFICATE_INFOA,* LPINTERNET_CERTIFICATE_INFOA;
+
+typedef struct {
+    FILETIME ftExpiry;
+    FILETIME ftStart;
+    LPWSTR lpszSubjectInfo;
+    LPWSTR lpszIssuerInfo;
+    LPWSTR lpszProtocolName;
+    LPWSTR lpszSignatureAlgName;
+    LPWSTR lpszEncryptionAlgName;
+    DWORD dwKeySize;
+
+} INTERNET_CERTIFICATE_INFOW,* LPINTERNET_CERTIFICATE_INFOW;
+
+DECL_WINELIB_TYPE_AW(INTERNET_CERTIFICATE_INFO)
+DECL_WINELIB_TYPE_AW(LPINTERNET_CERTIFICATE_INFO)
+
+typedef struct _INTERNET_BUFFERSA {
+    DWORD dwStructSize;
+    struct _INTERNET_BUFFERSA * Next;
+    LPCSTR   lpcszHeader;
+    DWORD dwHeadersLength;
+    DWORD dwHeadersTotal;
+    LPVOID lpvBuffer;
+    DWORD dwBufferLength;
+    DWORD dwBufferTotal;
+    DWORD dwOffsetLow;
+    DWORD dwOffsetHigh;
+} INTERNET_BUFFERSA,* LPINTERNET_BUFFERSA;
+
+typedef struct _INTERNET_BUFFERSW {
+    DWORD dwStructSize;
+    struct _INTERNET_BUFFERSW * Next;
+    LPCWSTR  lpcszHeader;
+    DWORD dwHeadersLength;
+    DWORD dwHeadersTotal;
+    LPVOID lpvBuffer;
+    DWORD dwBufferLength;
+    DWORD dwBufferTotal;
+    DWORD dwOffsetLow;
+    DWORD dwOffsetHigh;
+} INTERNET_BUFFERSW,* LPINTERNET_BUFFERSW;
+
+DECL_WINELIB_TYPE_AW(INTERNET_BUFFERS)
+DECL_WINELIB_TYPE_AW(LPINTERNET_BUFFERS)
+
+#define GROUP_OWNER_STORAGE_SIZE 4
+#define GROUPNAME_MAX_LENGTH 120
+
+typedef struct _INTERNET_CACHE_GROUP_INFOA {
+    DWORD dwGroupSize;
+    DWORD dwGroupFlags;
+    DWORD dwGroupType;
+    DWORD dwDiskUsage;
+    DWORD dwDiskQuota;
+    DWORD dwOwnerStorage[GROUP_OWNER_STORAGE_SIZE];
+    CHAR  szGroupName[GROUPNAME_MAX_LENGTH];
+} INTERNET_CACHE_GROUP_INFOA, * LPINTERNET_CACHE_GROUP_INFOA;
+
+typedef struct _INTERNET_CACHE_GROUP_INFOW {
+    DWORD dwGroupSize;
+    DWORD dwGroupFlags;
+    DWORD dwGroupType;
+    DWORD dwDiskUsage;
+    DWORD dwDiskQuota;
+    DWORD dwOwnerStorage[GROUP_OWNER_STORAGE_SIZE];
+    WCHAR szGroupName[GROUPNAME_MAX_LENGTH];
+} INTERNET_CACHE_GROUP_INFOW, *LPINTERNET_CACHE_GROUP_INFOW;
+
+DECL_WINELIB_TYPE_AW(INTERNET_CACHE_GROUP_INFO)
+DECL_WINELIB_TYPE_AW(LPINTERNET_CACHE_GROUP_INFO)
+
+BOOLAPI InternetTimeFromSystemTimeA(CONST SYSTEMTIME *,DWORD ,LPSTR
,DWORD);
+BOOLAPI InternetTimeFromSystemTimeW(CONST SYSTEMTIME *,DWORD ,LPWSTR
,DWORD);
+#define InternetTimeFromSystemTime
WINELIB_NAME_AW(InternetTimeFromSystemTime)
+
+#define INTERNET_RFC1123_FORMAT    0
+#define INTERNET_RFC1123_BUFSIZE   30
+
+BOOLAPI InternetTimeToSystemTimeA(LPCSTR ,SYSTEMTIME *,DWORD);
+BOOLAPI InternetTimeToSystemTimeW(LPCWSTR ,SYSTEMTIME *,DWORD);
+#define InternetTimeToSystemTime
WINELIB_NAME_AW(InternetTimeToSystemTime)
+
+BOOLAPI InternetCrackUrlA(LPCSTR ,DWORD ,DWORD ,LPURL_COMPONENTSA);
+BOOLAPI InternetCrackUrlW(LPCWSTR ,DWORD ,DWORD ,LPURL_COMPONENTSW);
+#define InternetCrackUrl  WINELIB_NAME_AW(InternetCrackUrl)
+
+BOOLAPI InternetCreateUrlA(LPURL_COMPONENTSA ,DWORD ,LPSTR ,LPDWORD);
+BOOLAPI InternetCreateUrlW(LPURL_COMPONENTSW ,DWORD ,LPWSTR ,LPDWORD);
+#define InternetCreateUrl WINELIB_NAME_AW(InternetCreateUrl)
+
+BOOLAPI InternetCanonicalizeUrlA(LPCSTR ,LPSTR ,LPDWORD ,DWORD);
+BOOLAPI InternetCanonicalizeUrlW(LPCWSTR ,LPWSTR ,LPDWORD ,DWORD);
+#define InternetCanonicalizeUrl
WINELIB_NAME_AW(InternetCanonicalizeUrl)
+
+BOOLAPI InternetCombineUrlA(LPCSTR ,LPCSTR ,LPSTR ,LPDWORD ,DWORD);
+BOOLAPI InternetCombineUrlW(LPCWSTR ,LPCWSTR ,LPWSTR ,LPDWORD ,DWORD);
+#define InternetCombineUrl  WINELIB_NAME_AW(InternetCombineUrl)
+
+#define ICU_ESCAPE      0x80000000
+#define ICU_USERNAME    0x40000000
+#define ICU_NO_ENCODE   0x20000000
+#define ICU_DECODE      0x10000000
+#define ICU_NO_META     0x08000000
+#define ICU_ENCODE_SPACES_ONLY 0x04000000
+#define ICU_BROWSER_MODE 0x02000000
+
+INTERNETAPI HINTERNET WINAPI InternetOpenA(LPCSTR ,DWORD ,LPCSTR
lpszProxy ,LPCSTR lpszProxyBypass ,DWORD);
+INTERNETAPI HINTERNET WINAPI InternetOpenW(LPCWSTR ,DWORD ,LPCWSTR
lpszProxy ,LPCWSTR lpszProxyBypass ,DWORD);
+#define InternetOpen  WINELIB_NAME_AW(InternetOpen)
+
+#define INTERNET_OPEN_TYPE_PRECONFIG                    0
+#define INTERNET_OPEN_TYPE_DIRECT                       1
+#define INTERNET_OPEN_TYPE_PROXY                        3
+#define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY  4
+#define PRE_CONFIG_INTERNET_ACCESS  INTERNET_OPEN_TYPE_PRECONFIG
+#define LOCAL_INTERNET_ACCESS       INTERNET_OPEN_TYPE_DIRECT
+#define CERN_PROXY_INTERNET_ACCESS  INTERNET_OPEN_TYPE_PROXY
+
+BOOLAPI InternetCloseHandle(HINTERNET);
+
+INTERNETAPI HINTERNET WINAPI InternetConnectA(HINTERNET ,LPCSTR
,INTERNET_PORT ,
+	LPCSTR lpszUserName ,LPCSTR lpszPassword ,DWORD ,DWORD ,DWORD );
+INTERNETAPI HINTERNET WINAPI InternetConnectW(HINTERNET ,LPCWSTR
,INTERNET_PORT ,
+	LPCWSTR lpszUserName ,LPCWSTR lpszPassword ,DWORD ,DWORD ,DWORD
);
+#define InternetConnect  WINELIB_NAME_AW(InternetConnect)
+
+#define INTERNET_SERVICE_URL    0
+#define INTERNET_SERVICE_FTP    1
+#define INTERNET_SERVICE_GOPHER 2
+#define INTERNET_SERVICE_HTTP   3
+
+#define InternetConnectUrl(hInternet,lpszUrl,dwFlags,dwContext) \
+    InternetConnect(hInternet,\
+                    lpszUrl,\
+                    INTERNET_INVALID_PORT_NUMBER,\
+                    NULL,\
+                    NULL,\
+                    INTERNET_SERVICE_URL,\
+                    dwFlags,\
+                    dwContext                       \
+                    )
+
+INTERNETAPI HINTERNET WINAPI InternetOpenUrlA(HINTERNET ,LPCSTR ,LPCSTR
lpszHeaders ,DWORD ,DWORD ,DWORD);
+INTERNETAPI HINTERNET WINAPI InternetOpenUrlW(HINTERNET ,LPCWSTR
,LPCWSTR lpszHeaders ,DWORD ,DWORD ,DWORD);
+#define InternetOpenUrl  WINELIB_NAME_AW(InternetOpenUrl)
+
+BOOLAPI InternetReadFile( HINTERNET ,LPVOID ,DWORD ,LPDWORD );
+INTERNETAPI BOOL WINAPI InternetReadFileExA( HINTERNET
,LPINTERNET_BUFFERSA ,DWORD ,DWORD );
+INTERNETAPI BOOL WINAPI InternetReadFileExW( HINTERNET
,LPINTERNET_BUFFERSW ,DWORD ,DWORD );
+#define InternetReadFileEx  WINELIB_NAME_AW(InternetReadFileEx)
+
+#define IRF_ASYNC       WININET_API_FLAG_ASYNC
+#define IRF_SYNC        WININET_API_FLAG_SYNC
+#define IRF_USE_CONTEXT WININET_API_FLAG_USE_CONTEXT
+#define IRF_NO_WAIT     0x00000008
+
+INTERNETAPI DWORD WINAPI InternetSetFilePointer(HINTERNET ,LONG ,PVOID
,DWORD ,DWORD);
+BOOLAPI InternetWriteFile(HINTERNET ,LPCVOID ,DWORD ,LPDWORD);
+BOOLAPI InternetQueryDataAvailable(HINTERNET ,LPDWORD
lpdwNumberOfBytesAvailable ,DWORD ,DWORD);
+BOOLAPI InternetFindNextFileA(HINTERNET ,LPVOID);
+BOOLAPI InternetFindNextFileW(HINTERNET ,LPVOID);
+#define InternetFindNextFile  WINELIB_NAME_AW(InternetFindNextFile)
+
+BOOLAPI InternetQueryOptionA(HINTERNET hInternet ,DWORD ,LPVOID
lpBuffer ,LPDWORD);
+BOOLAPI InternetQueryOptionW(HINTERNET hInternet ,DWORD ,LPVOID
lpBuffer ,LPDWORD);
+#define InternetQueryOption  WINELIB_NAME_AW(InternetQueryOption)
+
+BOOLAPI InternetSetOptionA(HINTERNET hInternet ,DWORD ,LPVOID ,DWORD);
+BOOLAPI InternetSetOptionW(HINTERNET hInternet ,DWORD ,LPVOID ,DWORD);
+#define InternetSetOption  WINELIB_NAME_AW(InternetSetOption)
+
+BOOLAPI InternetSetOptionExA(HINTERNET hInternet ,DWORD ,LPVOID ,DWORD
,DWORD);
+BOOLAPI InternetSetOptionExW(HINTERNET hInternet ,DWORD ,LPVOID ,DWORD
,DWORD);
+#define InternetSetOptionEx  WINELIB_NAME_AW(InternetSetOptionEx)
+
+BOOLAPI InternetLockRequestFile(HINTERNET ,HANDLE *);
+BOOLAPI InternetUnlockRequestFile(HANDLE);
+
+#define ISO_GLOBAL      0x00000001
+#define ISO_REGISTRY    0x00000002
+
+#define ISO_VALID_FLAGS (ISO_GLOBAL | ISO_REGISTRY)
+#define INTERNET_OPTION_CALLBACK                1
+#define INTERNET_OPTION_CONNECT_TIMEOUT         2
+#define INTERNET_OPTION_CONNECT_RETRIES         3
+#define INTERNET_OPTION_CONNECT_BACKOFF         4
+#define INTERNET_OPTION_SEND_TIMEOUT            5
+#define INTERNET_OPTION_CONTROL_SEND_TIMEOUT
INTERNET_OPTION_SEND_TIMEOUT
+#define INTERNET_OPTION_RECEIVE_TIMEOUT         6
+#define INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT
INTERNET_OPTION_RECEIVE_TIMEOUT
+#define INTERNET_OPTION_DATA_SEND_TIMEOUT       7
+#define INTERNET_OPTION_DATA_RECEIVE_TIMEOUT    8
+#define INTERNET_OPTION_HANDLE_TYPE             9
+#define INTERNET_OPTION_LISTEN_TIMEOUT          11
+#define INTERNET_OPTION_READ_BUFFER_SIZE        12
+#define INTERNET_OPTION_WRITE_BUFFER_SIZE       13
+#define INTERNET_OPTION_ASYNC_ID                15
+#define INTERNET_OPTION_ASYNC_PRIORITY          16
+#define INTERNET_OPTION_PARENT_HANDLE           21
+#define INTERNET_OPTION_KEEP_CONNECTION         22
+#define INTERNET_OPTION_REQUEST_FLAGS           23
+#define INTERNET_OPTION_EXTENDED_ERROR          24
+#define INTERNET_OPTION_OFFLINE_MODE            26
+#define INTERNET_OPTION_CACHE_STREAM_HANDLE     27
+#define INTERNET_OPTION_USERNAME                28
+#define INTERNET_OPTION_PASSWORD                29
+#define INTERNET_OPTION_ASYNC                   30
+#define INTERNET_OPTION_SECURITY_FLAGS          31
+#define INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT 32
+#define INTERNET_OPTION_DATAFILE_NAME           33
+#define INTERNET_OPTION_URL                     34
+#define INTERNET_OPTION_SECURITY_CERTIFICATE    35
+#define INTERNET_OPTION_SECURITY_KEY_BITNESS    36
+#define INTERNET_OPTION_REFRESH                 37
+#define INTERNET_OPTION_PROXY                   38
+#define INTERNET_OPTION_SETTINGS_CHANGED        39
+#define INTERNET_OPTION_VERSION                 40
+#define INTERNET_OPTION_USER_AGENT              41
+#define INTERNET_OPTION_END_BROWSER_SESSION     42
+#define INTERNET_OPTION_PROXY_USERNAME          43
+#define INTERNET_OPTION_PROXY_PASSWORD          44
+#define INTERNET_OPTION_CONTEXT_VALUE           45
+#define INTERNET_OPTION_CONNECT_LIMIT           46
+#define INTERNET_OPTION_SECURITY_SELECT_CLIENT_CERT 47
+#define INTERNET_OPTION_POLICY                  48
+#define INTERNET_OPTION_DISCONNECTED_TIMEOUT    49
+#define INTERNET_OPTION_CONNECTED_STATE         50
+#define INTERNET_OPTION_IDLE_STATE              51
+#define INTERNET_OPTION_OFFLINE_SEMANTICS       52
+#define INTERNET_OPTION_SECONDARY_CACHE_KEY     53
+#define INTERNET_OPTION_CALLBACK_FILTER         54
+#define INTERNET_OPTION_CONNECT_TIME            55
+#define INTERNET_OPTION_SEND_THROUGHPUT         56
+#define INTERNET_OPTION_RECEIVE_THROUGHPUT      57
+#define INTERNET_OPTION_REQUEST_PRIORITY        58
+#define INTERNET_OPTION_HTTP_VERSION            59
+#define INTERNET_OPTION_RESET_URLCACHE_SESSION  60
+#define INTERNET_OPTION_ERROR_MASK              62
+#define INTERNET_OPTION_CODEPAGE                68
+#define INTERNET_OPTION_COOKIES_3RD_PARTY       86
+#define INTERNET_OPTION_PROXY_SETTINGS_CHANGED  95
+#define INTERNET_FIRST_OPTION
INTERNET_OPTION_CALLBACK
+#define INTERNET_LAST_OPTION
INTERNET_OPTION_PROXY_SETTINGS_CHANGED
+
+#define INTERNET_PRIORITY_FOREGROUND            1000
+#define INTERNET_HANDLE_TYPE_INTERNET           1
+#define INTERNET_HANDLE_TYPE_CONNECT_FTP        2
+#define INTERNET_HANDLE_TYPE_CONNECT_GOPHER     3
+#define INTERNET_HANDLE_TYPE_CONNECT_HTTP       4
+#define INTERNET_HANDLE_TYPE_FTP_FIND           5
+#define INTERNET_HANDLE_TYPE_FTP_FIND_HTML      6
+#define INTERNET_HANDLE_TYPE_FTP_FILE           7
+#define INTERNET_HANDLE_TYPE_FTP_FILE_HTML      8
+#define INTERNET_HANDLE_TYPE_GOPHER_FIND        9
+#define INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML   10
+#define INTERNET_HANDLE_TYPE_GOPHER_FILE        11
+#define INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML   12
+#define INTERNET_HANDLE_TYPE_HTTP_REQUEST       13
+#define SECURITY_FLAG_SECURE                    0x00000001
+#define SECURITY_FLAG_STRENGTH_WEAK             0x10000000
+#define SECURITY_FLAG_STRENGTH_MEDIUM           0x40000000
+#define SECURITY_FLAG_STRENGTH_STRONG           0x20000000
+#define SECURITY_FLAG_UNKNOWNBIT                0x80000000
+#define SECURITY_FLAG_NORMALBITNESS
SECURITY_FLAG_STRENGTH_WEAK
+#define SECURITY_FLAG_SSL                       0x00000002
+#define SECURITY_FLAG_SSL3                      0x00000004
+#define SECURITY_FLAG_PCT                       0x00000008
+#define SECURITY_FLAG_PCT4                      0x00000010
+#define SECURITY_FLAG_IETFSSL4                  0x00000020
+#define SECURITY_FLAG_40BIT
SECURITY_FLAG_STRENGTH_WEAK
+#define SECURITY_FLAG_128BIT
SECURITY_FLAG_STRENGTH_STRONG
+#define SECURITY_FLAG_56BIT
SECURITY_FLAG_STRENGTH_MEDIUM
+#define SECURITY_FLAG_IGNORE_REVOCATION         0x00000080
+#define SECURITY_FLAG_IGNORE_UNKNOWN_CA         0x00000100
+#define SECURITY_FLAG_IGNORE_WRONG_USAGE        0x00000200
+#define SECURITY_FLAG_IGNORE_CERT_CN_INVALID
INTERNET_FLAG_IGNORE_CERT_CN_INVALID
+#define SECURITY_FLAG_IGNORE_CERT_DATE_INVALID
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
+#define SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
+#define SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
+#define SECURITY_SET_MASK       (SECURITY_FLAG_IGNORE_REVOCATION |\
+                                 SECURITY_FLAG_IGNORE_UNKNOWN_CA |\
+                                 SECURITY_FLAG_IGNORE_CERT_CN_INVALID
|\
+                                 SECURITY_FLAG_IGNORE_CERT_DATE_INVALID
|\
+                                 SECURITY_FLAG_IGNORE_WRONG_USAGE)
+
+
+
+BOOLAPI InternetGetLastResponseInfoA(LPDWORD ,LPSTR lpszBuffer
,LPDWORD);
+BOOLAPI InternetGetLastResponseInfoW(LPDWORD ,LPWSTR lpszBuffer
,LPDWORD);
+#define InternetGetLastResponseInfo
WINELIB_NAME_AW(InternetGetLastResponseInfo)
+
+typedef VOID (CALLBACK *INTERNET_STATUS_CALLBACK)(HINTERNET ,DWORD
,DWORD ,
+	LPVOID lpvStatusInformation ,DWORD);
+
+typedef INTERNET_STATUS_CALLBACK * LPINTERNET_STATUS_CALLBACK;
+
+INTERNETAPI INTERNET_STATUS_CALLBACK WINAPI
InternetSetStatusCallbackA(HINTERNET ,INTERNET_STATUS_CALLBACK);
+INTERNETAPI INTERNET_STATUS_CALLBACK WINAPI
InternetSetStatusCallbackW(HINTERNET ,INTERNET_STATUS_CALLBACK);
+#define InternetSetStatusCallback
WINELIB_NAME_AW(InternetSetStatusCallback)
+
+#define INTERNET_STATUS_RESOLVING_NAME          10
+#define INTERNET_STATUS_NAME_RESOLVED           11
+#define INTERNET_STATUS_CONNECTING_TO_SERVER    20
+#define INTERNET_STATUS_CONNECTED_TO_SERVER     21
+#define INTERNET_STATUS_SENDING_REQUEST         30
+#define INTERNET_STATUS_REQUEST_SENT            31
+#define INTERNET_STATUS_RECEIVING_RESPONSE      40
+#define INTERNET_STATUS_RESPONSE_RECEIVED       41
+#define INTERNET_STATUS_CTL_RESPONSE_RECEIVED   42
+#define INTERNET_STATUS_PREFETCH                43
+#define INTERNET_STATUS_CLOSING_CONNECTION      50
+#define INTERNET_STATUS_CONNECTION_CLOSED       51
+#define INTERNET_STATUS_HANDLE_CREATED          60
+#define INTERNET_STATUS_HANDLE_CLOSING          70
+#define INTERNET_STATUS_REQUEST_COMPLETE        100
+#define INTERNET_STATUS_REDIRECT                110
+#define INTERNET_STATUS_INTERMEDIATE_RESPONSE   120
+#define INTERNET_STATUS_USER_INPUT_REQUIRED     140
+#define INTERNET_STATUS_STATE_CHANGE            200
+#define INTERNET_STATUS_COOKIE_SENT             320
+#define INTERNET_STATUS_COOKIE_RECEIVED         321
+#define INTERNET_STATUS_PRIVACY_IMPACTED        324
+#define INTERNET_STATUS_P3P_HEADER              325
+#define INTERNET_STATUS_P3P_POLICYREF           326
+#define INTERNET_STATUS_COOKIE_HISTORY          327
+#define INTERNET_STATE_CONNECTED                0x00000001
+#define INTERNET_STATE_DISCONNECTED             0x00000002
+#define INTERNET_STATE_DISCONNECTED_BY_USER     0x00000010
+#define INTERNET_STATE_IDLE                     0x00000100
+#define INTERNET_STATE_BUSY                     0x00000200
+
+#define INTERNET_INVALID_STATUS_CALLBACK
((INTERNET_STATUS_CALLBACK)(-1L))
+
+#define FTP_TRANSFER_TYPE_UNKNOWN   0x00000000
+#define FTP_TRANSFER_TYPE_ASCII     0x00000001
+#define FTP_TRANSFER_TYPE_BINARY    0x00000002
+#define FTP_TRANSFER_TYPE_MASK      (FTP_TRANSFER_TYPE_ASCII |
FTP_TRANSFER_TYPE_BINARY)
+
+
+INTERNETAPI HINTERNET WINAPI FtpFindFirstFileA(HINTERNET ,LPCSTR
lpszSearchFile ,
+	LPWIN32_FIND_DATAA lpFindFileData ,DWORD ,DWORD);
+INTERNETAPI HINTERNET WINAPI FtpFindFirstFileW(HINTERNET ,LPCWSTR
lpszSearchFile ,
+	LPWIN32_FIND_DATAW lpFindFileData ,DWORD ,DWORD);
+#define FtpFindFirstFile  WINELIB_NAME_AW(FtpFindFirstFile)
+
+BOOLAPI FtpGetFileA(HINTERNET ,LPCSTR ,LPCSTR ,BOOL ,DWORD ,DWORD
,DWORD);
+BOOLAPI FtpGetFileW(HINTERNET ,LPCWSTR ,LPCWSTR ,BOOL ,DWORD ,DWORD
,DWORD);
+#define FtpGetFile  WINELIB_NAME_AW(FtpGetFile)
+
+BOOLAPI FtpPutFileA(HINTERNET ,LPCSTR ,LPCSTR ,DWORD ,DWORD);
+BOOLAPI FtpPutFileW(HINTERNET ,LPCWSTR ,LPCWSTR ,DWORD ,DWORD);
+#define FtpPutFile  WINELIB_NAME_AW(FtpPutFile)
+
+BOOLAPI FtpDeleteFileA(HINTERNET ,LPCSTR);
+BOOLAPI FtpDeleteFileW(HINTERNET ,LPCWSTR);
+#define FtpDeleteFile  WINELIB_NAME_AW(FtpDeleteFile)
+
+BOOLAPI FtpRenameFileA(HINTERNET ,LPCSTR ,LPCSTR);
+BOOLAPI FtpRenameFileW(HINTERNET ,LPCWSTR ,LPCWSTR);
+#define FtpRenameFile  WINELIB_NAME_AW(FtpRenameFile)
+
+INTERNETAPI HINTERNET WINAPI FtpOpenFileA(HINTERNET ,LPCSTR ,DWORD
,DWORD ,DWORD);
+INTERNETAPI HINTERNET WINAPI FtpOpenFileW(HINTERNET ,LPCWSTR ,DWORD
,DWORD ,DWORD);
+#define FtpOpenFile  WINELIB_NAME_AW(FtpOpenFile)
+
+BOOLAPI FtpCreateDirectoryA(HINTERNET ,LPCSTR);
+BOOLAPI FtpCreateDirectoryW(HINTERNET ,LPCWSTR);
+#define FtpCreateDirectory  WINELIB_NAME_AW(FtpCreateDirectory)
+
+BOOLAPI FtpRemoveDirectoryA(HINTERNET ,LPCSTR);
+BOOLAPI FtpRemoveDirectoryW(HINTERNET ,LPCWSTR);
+#define FtpRemoveDirectory  WINELIB_NAME_AW(FtpRemoveDirectory)
+
+BOOLAPI FtpSetCurrentDirectoryA(HINTERNET ,LPCSTR);
+BOOLAPI FtpSetCurrentDirectoryW(HINTERNET ,LPCWSTR);
+#define FtpSetCurrentDirectory  WINELIB_NAME_AW(FtpSetCurrentDirectory)
+
+BOOLAPI FtpGetCurrentDirectoryA(HINTERNET ,LPSTR ,LPDWORD);
+BOOLAPI FtpGetCurrentDirectoryW(HINTERNET ,LPWSTR ,LPDWORD);
+#define FtpGetCurrentDirectory  WINELIB_NAME_AW(FtpGetCurrentDirectory)
+
+#define MAX_GOPHER_DISPLAY_TEXT     128
+#define MAX_GOPHER_SELECTOR_TEXT    256
+#define MAX_GOPHER_HOST_NAME        INTERNET_MAX_HOST_NAME_LENGTH
+#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
\
+                                    )
+
+
+typedef struct {
+    CHAR   DisplayString[MAX_GOPHER_DISPLAY_TEXT + 1];
+    DWORD GopherType;
+    DWORD SizeLow;
+    DWORD SizeHigh;
+    FILETIME LastModificationTime;
+    CHAR   Locator[MAX_GOPHER_LOCATOR_LENGTH + 1];
+} GOPHER_FIND_DATAA,* LPGOPHER_FIND_DATAA;
+
+typedef struct {
+    WCHAR  DisplayString[MAX_GOPHER_DISPLAY_TEXT + 1];
+    DWORD GopherType;
+    DWORD SizeLow;
+    DWORD SizeHigh;
+    FILETIME LastModificationTime;
+    WCHAR  Locator[MAX_GOPHER_LOCATOR_LENGTH + 1];
+} GOPHER_FIND_DATAW,* LPGOPHER_FIND_DATAW;
+
+DECL_WINELIB_TYPE_AW(GOPHER_FIND_DATA)
+DECL_WINELIB_TYPE_AW(LPGOPHER_FIND_DATA)
+
+#define GOPHER_TYPE_TEXT_FILE       0x00000001
+#define GOPHER_TYPE_DIRECTORY       0x00000002
+#define GOPHER_TYPE_CSO             0x00000004
+#define GOPHER_TYPE_ERROR           0x00000008
+#define GOPHER_TYPE_MAC_BINHEX      0x00000010
+#define GOPHER_TYPE_DOS_ARCHIVE     0x00000020
+#define GOPHER_TYPE_UNIX_UUENCODED  0x00000040
+#define GOPHER_TYPE_INDEX_SERVER    0x00000080
+#define GOPHER_TYPE_TELNET          0x00000100
+#define GOPHER_TYPE_BINARY          0x00000200
+#define GOPHER_TYPE_REDUNDANT       0x00000400
+#define GOPHER_TYPE_TN3270          0x00000800
+#define GOPHER_TYPE_GIF             0x00001000
+#define GOPHER_TYPE_IMAGE           0x00002000
+#define GOPHER_TYPE_BITMAP          0x00004000
+#define GOPHER_TYPE_MOVIE           0x00008000
+#define GOPHER_TYPE_SOUND           0x00010000
+#define GOPHER_TYPE_HTML            0x00020000
+#define GOPHER_TYPE_PDF             0x00040000
+#define GOPHER_TYPE_CALENDAR        0x00080000
+#define GOPHER_TYPE_INLINE          0x00100000
+#define GOPHER_TYPE_UNKNOWN         0x20000000
+#define GOPHER_TYPE_ASK             0x40000000
+#define GOPHER_TYPE_GOPHER_PLUS     0x80000000
+
+#define IS_GOPHER_FILE(type)            (BOOL)(((type) &
GOPHER_TYPE_FILE_MASK) ? TRUE : FALSE)
+#define IS_GOPHER_DIRECTORY(type)       (BOOL)(((type) &
GOPHER_TYPE_DIRECTORY) ? TRUE : FALSE)
+#define IS_GOPHER_PHONE_SERVER(type)    (BOOL)(((type) &
GOPHER_TYPE_CSO) ? TRUE : FALSE)
+#define IS_GOPHER_ERROR(type)           (BOOL)(((type) &
GOPHER_TYPE_ERROR) ? TRUE : FALSE)
+#define IS_GOPHER_INDEX_SERVER(type)    (BOOL)(((type) &
GOPHER_TYPE_INDEX_SERVER) ? TRUE : FALSE)
+#define IS_GOPHER_TELNET_SESSION(type)  (BOOL)(((type) &
GOPHER_TYPE_TELNET) ? TRUE : FALSE)
+#define IS_GOPHER_BACKUP_SERVER(type)   (BOOL)(((type) &
GOPHER_TYPE_REDUNDANT) ? TRUE : FALSE)
+#define IS_GOPHER_TN3270_SESSION(type)  (BOOL)(((type) &
GOPHER_TYPE_TN3270) ? TRUE : FALSE)
+#define IS_GOPHER_ASK(type)             (BOOL)(((type) &
GOPHER_TYPE_ASK) ? TRUE : FALSE)
+#define IS_GOPHER_PLUS(type)            (BOOL)(((type) &
GOPHER_TYPE_GOPHER_PLUS) ? TRUE : FALSE)
+#define IS_GOPHER_TYPE_KNOWN(type)      (BOOL)(((type) &
GOPHER_TYPE_UNKNOWN) ? FALSE : TRUE)
+#define GOPHER_TYPE_FILE_MASK       (GOPHER_TYPE_TEXT_FILE \
+                                    | GOPHER_TYPE_MAC_BINHEX        \
+                                    | GOPHER_TYPE_DOS_ARCHIVE       \
+                                    | GOPHER_TYPE_UNIX_UUENCODED    \
+                                    | GOPHER_TYPE_BINARY            \
+                                    | GOPHER_TYPE_GIF               \
+                                    | GOPHER_TYPE_IMAGE             \
+                                    | GOPHER_TYPE_BITMAP            \
+                                    | GOPHER_TYPE_MOVIE             \
+                                    | GOPHER_TYPE_SOUND             \
+                                    | GOPHER_TYPE_HTML              \
+                                    | GOPHER_TYPE_PDF               \
+                                    | GOPHER_TYPE_CALENDAR          \
+                                    | GOPHER_TYPE_INLINE            \
+                                    )
+
+
+typedef struct {
+    LPCSTR Comment;
+    LPCSTR EmailAddress;
+} GOPHER_ADMIN_ATTRIBUTE_TYPEA,* LPGOPHER_ADMIN_ATTRIBUTE_TYPEA;
+
+typedef struct {
+    LPCWSTR Comment;
+    LPCWSTR EmailAddress;
+} GOPHER_ADMIN_ATTRIBUTE_TYPEW,* LPGOPHER_ADMIN_ATTRIBUTE_TYPEW;
+
+DECL_WINELIB_TYPE_AW(GOPHER_ADMIN_ATTRIBUTE_TYPE)
+DECL_WINELIB_TYPE_AW(LPGOPHER_ADMIN_ATTRIBUTE_TYPE)
+
+typedef struct {
+    FILETIME DateAndTime;
+} GOPHER_MOD_DATE_ATTRIBUTE_TYPE,* LPGOPHER_MOD_DATE_ATTRIBUTE_TYPE;
+
+typedef struct {
+    DWORD Ttl;
+} GOPHER_TTL_ATTRIBUTE_TYPE,* LPGOPHER_TTL_ATTRIBUTE_TYPE;
+
+typedef struct {
+    INT Score;
+} GOPHER_SCORE_ATTRIBUTE_TYPE,* LPGOPHER_SCORE_ATTRIBUTE_TYPE;
+
+typedef struct {
+    INT LowerBound;
+    INT UpperBound;
+} GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE,*
LPGOPHER_SCORE_RANGE_ATTRIBUTE_TYPE;
+
+typedef struct {
+    LPCSTR Site;
+} GOPHER_SITE_ATTRIBUTE_TYPEA,* LPGOPHER_SITE_ATTRIBUTE_TYPEA;
+
+typedef struct {
+    LPCWSTR Site;
+} GOPHER_SITE_ATTRIBUTE_TYPEW,* LPGOPHER_SITE_ATTRIBUTE_TYPEW;
+
+DECL_WINELIB_TYPE_AW(GOPHER_SITE_ATTRIBUTE_TYPE)
+DECL_WINELIB_TYPE_AW(LPGOPHER_SITE_ATTRIBUTE_TYPE)
+
+typedef struct {
+    LPCSTR Organization;
+} GOPHER_ORGANIZATION_ATTRIBUTE_TYPEA,*
LPGOPHER_ORGANIZATION_ATTRIBUTE_TYPEA;
+
+typedef struct {
+    LPCWSTR Organization;
+} GOPHER_ORGANIZATION_ATTRIBUTE_TYPEW,*
LPGOPHER_ORGANIZATION_ATTRIBUTE_TYPEW;
+
+DECL_WINELIB_TYPE_AW(GOPHER_ORGANIZATION_ATTRIBUTE_TYPE)
+DECL_WINELIB_TYPE_AW(LPGOPHER_ORGANIZATION_ATTRIBUTE_TYPE)
+
+typedef struct {
+    LPCSTR Location;
+} GOPHER_LOCATION_ATTRIBUTE_TYPEA,* LPGOPHER_LOCATION_ATTRIBUTE_TYPEA;
+
+typedef struct {
+    LPCWSTR Location;
+} GOPHER_LOCATION_ATTRIBUTE_TYPEW,* LPGOPHER_LOCATION_ATTRIBUTE_TYPEW;
+
+DECL_WINELIB_TYPE_AW(GOPHER_LOCATION_ATTRIBUTE_TYPE)
+DECL_WINELIB_TYPE_AW(LPGOPHER_LOCATION_ATTRIBUTE_TYPE)
+
+typedef struct {
+    INT DegreesNorth;
+    INT MinutesNorth;
+    INT SecondsNorth;
+    INT DegreesEast;
+    INT MinutesEast;
+    INT SecondsEast;
+} GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE,*
LPGOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE;
+
+typedef struct {
+    INT Zone;
+} GOPHER_TIMEZONE_ATTRIBUTE_TYPE,* LPGOPHER_TIMEZONE_ATTRIBUTE_TYPE;
+
+typedef struct {
+    LPCSTR Provider;
+} GOPHER_PROVIDER_ATTRIBUTE_TYPEA,* LPGOPHER_PROVIDER_ATTRIBUTE_TYPEA;
+
+typedef struct {
+    LPCWSTR Provider;
+} GOPHER_PROVIDER_ATTRIBUTE_TYPEW,* LPGOPHER_PROVIDER_ATTRIBUTE_TYPEW;
+
+DECL_WINELIB_TYPE_AW(GOPHER_PROVIDER_ATTRIBUTE_TYPE)
+DECL_WINELIB_TYPE_AW(LPGOPHER_PROVIDER_ATTRIBUTE_TYPE)
+
+typedef struct {
+    LPCSTR Version;
+} GOPHER_VERSION_ATTRIBUTE_TYPEA,* LPGOPHER_VERSION_ATTRIBUTE_TYPEA;
+
+typedef struct {
+    LPCWSTR Version;
+} GOPHER_VERSION_ATTRIBUTE_TYPEW,* LPGOPHER_VERSION_ATTRIBUTE_TYPEW;
+
+DECL_WINELIB_TYPE_AW(GOPHER_VERSION_ATTRIBUTE_TYPE)
+DECL_WINELIB_TYPE_AW(LPGOPHER_VERSION_ATTRIBUTE_TYPE)
+
+typedef struct {
+    LPCSTR ShortAbstract;
+    LPCSTR AbstractFile;
+} GOPHER_ABSTRACT_ATTRIBUTE_TYPEA,* LPGOPHER_ABSTRACT_ATTRIBUTE_TYPEA;
+
+typedef struct {
+    LPCWSTR ShortAbstract;
+    LPCWSTR AbstractFile;
+} GOPHER_ABSTRACT_ATTRIBUTE_TYPEW,* LPGOPHER_ABSTRACT_ATTRIBUTE_TYPEW;
+
+DECL_WINELIB_TYPE_AW(GOPHER_ABSTRACT_ATTRIBUTE_TYPE)
+DECL_WINELIB_TYPE_AW(LPGOPHER_ABSTRACT_ATTRIBUTE_TYPE)
+
+typedef struct {
+    LPCSTR ContentType;
+    LPCSTR Language;
+    DWORD Size;
+} GOPHER_VIEW_ATTRIBUTE_TYPEA,* LPGOPHER_VIEW_ATTRIBUTE_TYPEA;
+
+typedef struct {
+    LPCWSTR ContentType;
+    LPCWSTR Language;
+    DWORD Size;
+} GOPHER_VIEW_ATTRIBUTE_TYPEW,* LPGOPHER_VIEW_ATTRIBUTE_TYPEW;
+
+DECL_WINELIB_TYPE_AW(GOPHER_VIEW_ATTRIBUTE_TYPE)
+DECL_WINELIB_TYPE_AW(LPGOPHER_VIEW_ATTRIBUTE_TYPE)
+
+typedef struct {
+    BOOL TreeWalk;
+} GOPHER_VERONICA_ATTRIBUTE_TYPE,* LPGOPHER_VERONICA_ATTRIBUTE_TYPE;
+
+typedef struct {
+    LPCSTR QuestionType;
+    LPCSTR QuestionText;
+} GOPHER_ASK_ATTRIBUTE_TYPEA,* LPGOPHER_ASK_ATTRIBUTE_TYPEA;
+
+typedef struct {
+    LPCWSTR QuestionType;
+    LPCWSTR QuestionText;
+} GOPHER_ASK_ATTRIBUTE_TYPEW,* LPGOPHER_ASK_ATTRIBUTE_TYPEW;
+
+DECL_WINELIB_TYPE_AW(GOPHER_ASK_ATTRIBUTE_TYPE)
+DECL_WINELIB_TYPE_AW(LPGOPHER_ASK_ATTRIBUTE_TYPE)
+
+typedef struct {
+    LPCSTR Text;
+} GOPHER_UNKNOWN_ATTRIBUTE_TYPEA,* LPGOPHER_UNKNOWN_ATTRIBUTE_TYPEA;
+
+typedef struct {
+    LPCWSTR Text;
+} GOPHER_UNKNOWN_ATTRIBUTE_TYPEW,* LPGOPHER_UNKNOWN_ATTRIBUTE_TYPEW;
+
+DECL_WINELIB_TYPE_AW(GOPHER_UNKNOWN_ATTRIBUTE_TYPE)
+DECL_WINELIB_TYPE_AW(LPGOPHER_UNKNOWN_ATTRIBUTE_TYPE)
+
+typedef struct {
+    DWORD CategoryId;
+    DWORD AttributeId;
+    union {
+        GOPHER_ADMIN_ATTRIBUTE_TYPEA Admin;
+        GOPHER_MOD_DATE_ATTRIBUTE_TYPE ModDate;
+        GOPHER_TTL_ATTRIBUTE_TYPE Ttl;
+        GOPHER_SCORE_ATTRIBUTE_TYPE Score;
+        GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE ScoreRange;
+        GOPHER_SITE_ATTRIBUTE_TYPEA Site;
+        GOPHER_ORGANIZATION_ATTRIBUTE_TYPEA Organization;
+        GOPHER_LOCATION_ATTRIBUTE_TYPEA Location;
+        GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE
GeographicalLocation;
+        GOPHER_TIMEZONE_ATTRIBUTE_TYPE TimeZone;
+        GOPHER_PROVIDER_ATTRIBUTE_TYPEA Provider;
+        GOPHER_VERSION_ATTRIBUTE_TYPEA Version;
+        GOPHER_ABSTRACT_ATTRIBUTE_TYPEA Abstract;
+        GOPHER_VIEW_ATTRIBUTE_TYPEA View;
+        GOPHER_VERONICA_ATTRIBUTE_TYPE Veronica;
+        GOPHER_ASK_ATTRIBUTE_TYPEA Ask;
+        GOPHER_UNKNOWN_ATTRIBUTE_TYPEA Unknown;
+    } AttributeType;
+} GOPHER_ATTRIBUTE_TYPEA, *LPGOPHER_ATTRIBUTE_TYPEA;
+
+typedef struct {
+    DWORD CategoryId;
+    DWORD AttributeId;
+    union {
+        GOPHER_ADMIN_ATTRIBUTE_TYPEW Admin;
+        GOPHER_MOD_DATE_ATTRIBUTE_TYPE ModDate;
+        GOPHER_TTL_ATTRIBUTE_TYPE Ttl;
+        GOPHER_SCORE_ATTRIBUTE_TYPE Score;
+        GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE ScoreRange;
+        GOPHER_SITE_ATTRIBUTE_TYPEW Site;
+        GOPHER_ORGANIZATION_ATTRIBUTE_TYPEW Organization;
+        GOPHER_LOCATION_ATTRIBUTE_TYPEW Location;
+        GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE
GeographicalLocation;
+        GOPHER_TIMEZONE_ATTRIBUTE_TYPE TimeZone;
+        GOPHER_PROVIDER_ATTRIBUTE_TYPEW Provider;
+        GOPHER_VERSION_ATTRIBUTE_TYPEW Version;
+        GOPHER_ABSTRACT_ATTRIBUTE_TYPEW Abstract;
+        GOPHER_VIEW_ATTRIBUTE_TYPEW View;
+        GOPHER_VERONICA_ATTRIBUTE_TYPE Veronica;
+        GOPHER_ASK_ATTRIBUTE_TYPEW Ask;
+        GOPHER_UNKNOWN_ATTRIBUTE_TYPEW Unknown;
+    } AttributeType;
+} GOPHER_ATTRIBUTE_TYPEW, *LPGOPHER_ATTRIBUTE_TYPEW;
+
+DECL_WINELIB_TYPE_AW(GOPHER_ATTRIBUTE_TYPE)
+DECL_WINELIB_TYPE_AW(LPGOPHER_ATTRIBUTE_TYPE)
+
+#define MAX_GOPHER_CATEGORY_NAME    128
+#define MAX_GOPHER_ATTRIBUTE_NAME   128
+#define MIN_GOPHER_ATTRIBUTE_LENGTH 256
+
+#define GOPHER_INFO_CATEGORY        TEXT("+INFO")
+#define GOPHER_ADMIN_CATEGORY       TEXT("+ADMIN")
+#define GOPHER_VIEWS_CATEGORY       TEXT("+VIEWS")
+#define GOPHER_ABSTRACT_CATEGORY    TEXT("+ABSTRACT")
+#define GOPHER_VERONICA_CATEGORY    TEXT("+VERONICA")
+#define GOPHER_ADMIN_ATTRIBUTE      TEXT("Admin")
+#define GOPHER_MOD_DATE_ATTRIBUTE   TEXT("Mod-Date")
+#define GOPHER_TTL_ATTRIBUTE        TEXT("TTL")
+#define GOPHER_SCORE_ATTRIBUTE      TEXT("Score")
+#define GOPHER_RANGE_ATTRIBUTE      TEXT("Score-range")
+#define GOPHER_SITE_ATTRIBUTE       TEXT("Site")
+#define GOPHER_ORG_ATTRIBUTE        TEXT("Org")
+#define GOPHER_LOCATION_ATTRIBUTE   TEXT("Loc")
+#define GOPHER_GEOG_ATTRIBUTE       TEXT("Geog")
+#define GOPHER_TIMEZONE_ATTRIBUTE   TEXT("TZ")
+#define GOPHER_PROVIDER_ATTRIBUTE   TEXT("Provider")
+#define GOPHER_VERSION_ATTRIBUTE    TEXT("Version")
+#define GOPHER_ABSTRACT_ATTRIBUTE   TEXT("Abstract")
+#define GOPHER_VIEW_ATTRIBUTE       TEXT("View")
+#define GOPHER_TREEWALK_ATTRIBUTE   TEXT("treewalk")
+
+#define GOPHER_ATTRIBUTE_ID_BASE        0xabcccc00
+
+#define GOPHER_CATEGORY_ID_ALL          (GOPHER_ATTRIBUTE_ID_BASE + 1)
+#define GOPHER_CATEGORY_ID_INFO         (GOPHER_ATTRIBUTE_ID_BASE + 2)
+#define GOPHER_CATEGORY_ID_ADMIN        (GOPHER_ATTRIBUTE_ID_BASE + 3)
+#define GOPHER_CATEGORY_ID_VIEWS        (GOPHER_ATTRIBUTE_ID_BASE + 4)
+#define GOPHER_CATEGORY_ID_ABSTRACT     (GOPHER_ATTRIBUTE_ID_BASE + 5)
+#define GOPHER_CATEGORY_ID_VERONICA     (GOPHER_ATTRIBUTE_ID_BASE + 6)
+#define GOPHER_CATEGORY_ID_ASK          (GOPHER_ATTRIBUTE_ID_BASE + 7)
+#define GOPHER_CATEGORY_ID_UNKNOWN      (GOPHER_ATTRIBUTE_ID_BASE + 8)
+
+#define GOPHER_ATTRIBUTE_ID_ALL         (GOPHER_ATTRIBUTE_ID_BASE + 9)
+#define GOPHER_ATTRIBUTE_ID_ADMIN       (GOPHER_ATTRIBUTE_ID_BASE + 10)
+#define GOPHER_ATTRIBUTE_ID_MOD_DATE    (GOPHER_ATTRIBUTE_ID_BASE + 11)
+#define GOPHER_ATTRIBUTE_ID_TTL         (GOPHER_ATTRIBUTE_ID_BASE + 12)
+#define GOPHER_ATTRIBUTE_ID_SCORE       (GOPHER_ATTRIBUTE_ID_BASE + 13)
+#define GOPHER_ATTRIBUTE_ID_RANGE       (GOPHER_ATTRIBUTE_ID_BASE + 14)
+#define GOPHER_ATTRIBUTE_ID_SITE        (GOPHER_ATTRIBUTE_ID_BASE + 15)
+#define GOPHER_ATTRIBUTE_ID_ORG         (GOPHER_ATTRIBUTE_ID_BASE + 16)
+#define GOPHER_ATTRIBUTE_ID_LOCATION    (GOPHER_ATTRIBUTE_ID_BASE + 17)
+#define GOPHER_ATTRIBUTE_ID_GEOG        (GOPHER_ATTRIBUTE_ID_BASE + 18)
+#define GOPHER_ATTRIBUTE_ID_TIMEZONE    (GOPHER_ATTRIBUTE_ID_BASE + 19)
+#define GOPHER_ATTRIBUTE_ID_PROVIDER    (GOPHER_ATTRIBUTE_ID_BASE + 20)
+#define GOPHER_ATTRIBUTE_ID_VERSION     (GOPHER_ATTRIBUTE_ID_BASE + 21)
+#define GOPHER_ATTRIBUTE_ID_ABSTRACT    (GOPHER_ATTRIBUTE_ID_BASE + 22)
+#define GOPHER_ATTRIBUTE_ID_VIEW        (GOPHER_ATTRIBUTE_ID_BASE + 23)
+#define GOPHER_ATTRIBUTE_ID_TREEWALK    (GOPHER_ATTRIBUTE_ID_BASE + 24)
+#define GOPHER_ATTRIBUTE_ID_UNKNOWN     (GOPHER_ATTRIBUTE_ID_BASE + 25)
+
+BOOLAPI GopherCreateLocatorA(LPCSTR ,INTERNET_PORT ,LPCSTR
lpszDisplayString ,
+	LPCSTR lpszSelectorString ,DWORD ,LPSTR lpszLocator ,LPDWORD);
+BOOLAPI GopherCreateLocatorW(LPCWSTR ,INTERNET_PORT ,LPCWSTR
lpszDisplayString ,
+	LPCWSTR lpszSelectorString ,DWORD ,LPWSTR lpszLocator ,LPDWORD);
+#define GopherCreateLocator  WINELIB_NAME_AW(GopherCreateLocator)
+
+BOOLAPI GopherGetLocatorTypeA(LPCSTR ,LPDWORD);
+BOOLAPI GopherGetLocatorTypeW(LPCWSTR ,LPDWORD);
+#define GopherGetLocatorType  WINELIB_NAME_AW(GopherGetLocatorType)
+
+INTERNETAPI HINTERNET WINAPI GopherFindFirstFileA(HINTERNET ,LPCSTR
lpszLocator ,
+	LPCSTR lpszSearchString ,LPGOPHER_FIND_DATAA lpFindData ,DWORD
,DWORD);
+INTERNETAPI HINTERNET WINAPI GopherFindFirstFileW(HINTERNET ,LPCWSTR
lpszLocator ,
+	LPCWSTR lpszSearchString ,LPGOPHER_FIND_DATAW lpFindData ,DWORD
,DWORD);
+#define GopherFindFirstFile  WINELIB_NAME_AW(GopherFindFirstFile)
+
+INTERNETAPI HINTERNET WINAPI GopherOpenFileA(HINTERNET ,LPCSTR ,LPCSTR
lpszView ,DWORD ,DWORD);
+INTERNETAPI HINTERNET WINAPI GopherOpenFileW(HINTERNET ,LPCWSTR
,LPCWSTR lpszView ,DWORD ,DWORD);
+#define GopherOpenFile  WINELIB_NAME_AW(GopherOpenFile)
+
+typedef BOOL (CALLBACK
*GOPHER_ATTRIBUTE_ENUMERATORA)(LPGOPHER_ATTRIBUTE_TYPEA ,DWORD);
+typedef BOOL (CALLBACK
*GOPHER_ATTRIBUTE_ENUMERATORW)(LPGOPHER_ATTRIBUTE_TYPEW ,DWORD);
+
+DECL_WINELIB_TYPE_AW(GOPHER_ATTRIBUTE_ENUMERATOR)
+
+BOOLAPI GopherGetAttributeA(HINTERNET ,LPCSTR ,LPCSTR lpszAttributeName
,LPBYTE ,
[truncated at 1000 lines; 1508 more skipped] 



More information about the Ros-diffs mailing list