| 1 | #ifndef _WINE_INTERNET_H_ | 
|---|
| 2 | #define _WINE_INTERNET_H_ | 
|---|
| 3 |  | 
|---|
| 4 | #ifdef __WIN32OS2__ | 
|---|
| 5 | #define close closesocket | 
|---|
| 6 | typedef int socklen_t; | 
|---|
| 7 |  | 
|---|
| 8 | #include <time.h> | 
|---|
| 9 |  | 
|---|
| 10 | #endif | 
|---|
| 11 |  | 
|---|
| 12 | typedef enum | 
|---|
| 13 | { | 
|---|
| 14 | WH_HINIT = INTERNET_HANDLE_TYPE_INTERNET, | 
|---|
| 15 | WH_HFTPSESSION = INTERNET_HANDLE_TYPE_CONNECT_FTP, | 
|---|
| 16 | WH_HGOPHERSESSION = INTERNET_HANDLE_TYPE_CONNECT_GOPHER, | 
|---|
| 17 | WH_HHTTPSESSION = INTERNET_HANDLE_TYPE_CONNECT_HTTP, | 
|---|
| 18 | WH_HFILE = INTERNET_HANDLE_TYPE_FTP_FILE, | 
|---|
| 19 | WH_HFINDNEXT = INTERNET_HANDLE_TYPE_FTP_FIND, | 
|---|
| 20 | WH_HHTTPREQ = INTERNET_HANDLE_TYPE_HTTP_REQUEST, | 
|---|
| 21 | } WH_TYPE; | 
|---|
| 22 |  | 
|---|
| 23 | typedef struct _WININETHANDLEHEADER | 
|---|
| 24 | { | 
|---|
| 25 | WH_TYPE htype; | 
|---|
| 26 | DWORD  dwFlags; | 
|---|
| 27 | DWORD  dwContext; | 
|---|
| 28 | DWORD  dwError; | 
|---|
| 29 | struct _WININETHANDLEHEADER *lpwhparent; | 
|---|
| 30 | } WININETHANDLEHEADER, *LPWININETHANDLEHEADER; | 
|---|
| 31 |  | 
|---|
| 32 |  | 
|---|
| 33 | typedef struct | 
|---|
| 34 | { | 
|---|
| 35 | WININETHANDLEHEADER hdr; | 
|---|
| 36 | LPSTR  lpszAgent; | 
|---|
| 37 | LPSTR  lpszProxy; | 
|---|
| 38 | LPSTR  lpszProxyBypass; | 
|---|
| 39 | DWORD   dwAccessType; | 
|---|
| 40 | INTERNET_STATUS_CALLBACK lpfnStatusCB; | 
|---|
| 41 | } WININETAPPINFOA, *LPWININETAPPINFOA; | 
|---|
| 42 |  | 
|---|
| 43 |  | 
|---|
| 44 | typedef struct | 
|---|
| 45 | { | 
|---|
| 46 | WININETHANDLEHEADER hdr; | 
|---|
| 47 | LPSTR  lpszServerName; | 
|---|
| 48 | LPSTR  lpszUserName; | 
|---|
| 49 | INTERNET_PORT nServerPort; | 
|---|
| 50 | struct sockaddr_in socketAddress; | 
|---|
| 51 | struct hostent *phostent; | 
|---|
| 52 | } WININETHTTPSESSIONA, *LPWININETHTTPSESSIONA; | 
|---|
| 53 |  | 
|---|
| 54 | #define HDR_ISREQUEST           0x0001 | 
|---|
| 55 | #define HDR_COMMADELIMITED      0x0002 | 
|---|
| 56 | #define HDR_SEMIDELIMITED       0x0004 | 
|---|
| 57 |  | 
|---|
| 58 | typedef struct | 
|---|
| 59 | { | 
|---|
| 60 | LPSTR lpszField; | 
|---|
| 61 | LPSTR lpszValue; | 
|---|
| 62 | WORD  wFlags; | 
|---|
| 63 | WORD  wCount; | 
|---|
| 64 | } HTTPHEADERA, *LPHTTPHEADERA; | 
|---|
| 65 |  | 
|---|
| 66 | typedef struct | 
|---|
| 67 | { | 
|---|
| 68 | WININETHANDLEHEADER hdr; | 
|---|
| 69 | LPSTR lpszPath; | 
|---|
| 70 | /*        LPSTR lpszReferrer; | 
|---|
| 71 | LPSTR lpszAcceptTypes; */ | 
|---|
| 72 | LPSTR lpszVerb; | 
|---|
| 73 | LPSTR lpszHostName; | 
|---|
| 74 | /*        LPSTR lpszRedirect; */ | 
|---|
| 75 | int     nSocketFD; | 
|---|
| 76 | /*        int     statusCode; | 
|---|
| 77 | int     contentLength; | 
|---|
| 78 | time_t  nSystemTime;*/ | 
|---|
| 79 | HTTPHEADERA StdHeaders[HTTP_QUERY_MAX+1]; | 
|---|
| 80 | HTTPHEADERA *pCustHeaders; | 
|---|
| 81 | int nCustHeaders; | 
|---|
| 82 | } WININETHTTPREQA, *LPWININETHTTPREQA; | 
|---|
| 83 |  | 
|---|
| 84 |  | 
|---|
| 85 | typedef struct | 
|---|
| 86 | { | 
|---|
| 87 | WININETHANDLEHEADER hdr; | 
|---|
| 88 | int sndSocket; | 
|---|
| 89 | int lstnSocket; | 
|---|
| 90 | struct sockaddr_in socketAddress; | 
|---|
| 91 | struct sockaddr_in lstnSocketAddress; | 
|---|
| 92 | struct hostent *phostent; | 
|---|
| 93 | LPSTR  lpszPassword; | 
|---|
| 94 | LPSTR  lpszUserName; | 
|---|
| 95 | /* LONG   lBytesAvailable;          */ | 
|---|
| 96 | /*        LPSTR  lpszResponseBuffer; */ | 
|---|
| 97 | } WININETFTPSESSIONA, *LPWININETFTPSESSIONA; | 
|---|
| 98 |  | 
|---|
| 99 |  | 
|---|
| 100 | typedef struct | 
|---|
| 101 | { | 
|---|
| 102 | WININETHANDLEHEADER hdr; | 
|---|
| 103 | int nDataSocket; | 
|---|
| 104 | LONG lBytesAvailable; | 
|---|
| 105 | } WININETFILE, *LPWININETFILE; | 
|---|
| 106 |  | 
|---|
| 107 |  | 
|---|
| 108 | typedef struct | 
|---|
| 109 | { | 
|---|
| 110 | BOOL      bIsDirectory; | 
|---|
| 111 | LPSTR     lpszName; | 
|---|
| 112 | DWORD     nSize; | 
|---|
| 113 | struct tm tmLastModified; | 
|---|
| 114 | unsigned short permissions; | 
|---|
| 115 | } FILEPROPERTIESA, *LPFILEPROPERTIESA; | 
|---|
| 116 |  | 
|---|
| 117 |  | 
|---|
| 118 | typedef struct | 
|---|
| 119 | { | 
|---|
| 120 | WININETHANDLEHEADER hdr; | 
|---|
| 121 | int index; | 
|---|
| 122 | DWORD size; | 
|---|
| 123 | LPFILEPROPERTIESA lpafp; | 
|---|
| 124 | } WININETFINDNEXTA, *LPWININETFINDNEXTA; | 
|---|
| 125 |  | 
|---|
| 126 | typedef enum | 
|---|
| 127 | { | 
|---|
| 128 | FTPPUTFILEA, | 
|---|
| 129 | FTPSETCURRENTDIRECTORYA, | 
|---|
| 130 | FTPCREATEDIRECTORYA, | 
|---|
| 131 | FTPFINDFIRSTFILEA, | 
|---|
| 132 | FTPGETCURRENTDIRECTORYA, | 
|---|
| 133 | FTPOPENFILEA, | 
|---|
| 134 | FTPGETFILEA, | 
|---|
| 135 | FTPDELETEFILEA, | 
|---|
| 136 | FTPREMOVEDIRECTORYA, | 
|---|
| 137 | FTPRENAMEFILEA, | 
|---|
| 138 | INTERNETFINDNEXTA, | 
|---|
| 139 | HTTPSENDREQUESTA, | 
|---|
| 140 | HTTPOPENREQUESTA, | 
|---|
| 141 | } ASYNC_FUNC; | 
|---|
| 142 |  | 
|---|
| 143 | typedef struct WORKREQ | 
|---|
| 144 | { | 
|---|
| 145 | ASYNC_FUNC asyncall; | 
|---|
| 146 | DWORD param1; | 
|---|
| 147 | #define HFTPSESSION param1 | 
|---|
| 148 |  | 
|---|
| 149 | DWORD param2; | 
|---|
| 150 | #define LPSZLOCALFILE     param2 | 
|---|
| 151 | #define LPSZREMOTEFILE    param2 | 
|---|
| 152 | #define LPSZFILENAME      param2 | 
|---|
| 153 | #define LPSZSRCFILE       param2 | 
|---|
| 154 | #define LPSZDIRECTORY     param2 | 
|---|
| 155 | #define LPSZSEARCHFILE    param2 | 
|---|
| 156 | #define LPSZHEADER        param2 | 
|---|
| 157 | #define LPSZVERB          param2 | 
|---|
| 158 |  | 
|---|
| 159 | DWORD param3; | 
|---|
| 160 | #define LPSZNEWREMOTEFILE param3 | 
|---|
| 161 | #define LPSZNEWFILE       param3 | 
|---|
| 162 | #define LPFINDFILEDATA    param3 | 
|---|
| 163 | #define LPDWDIRECTORY     param3 | 
|---|
| 164 | #define FDWACCESS         param3 | 
|---|
| 165 | #define LPSZDESTFILE      param3 | 
|---|
| 166 | #define DWHEADERLENGTH    param3 | 
|---|
| 167 | #define LPSZOBJECTNAME    param3 | 
|---|
| 168 |  | 
|---|
| 169 | DWORD param4; | 
|---|
| 170 | #define DWFLAGS           param4 | 
|---|
| 171 | #define LPOPTIONAL        param4 | 
|---|
| 172 |  | 
|---|
| 173 | DWORD param5; | 
|---|
| 174 | #define DWCONTEXT         param5 | 
|---|
| 175 | #define DWOPTIONALLENGTH  param5 | 
|---|
| 176 |  | 
|---|
| 177 | DWORD param6; | 
|---|
| 178 | #define FFAILIFEXISTS     param6 | 
|---|
| 179 | #define LPSZVERSION       param6 | 
|---|
| 180 |  | 
|---|
| 181 | DWORD param7; | 
|---|
| 182 | #define DWLOCALFLAGSATTRIBUTE param7 | 
|---|
| 183 | #define LPSZREFERRER          param7 | 
|---|
| 184 |  | 
|---|
| 185 | DWORD param8; | 
|---|
| 186 | #define LPSZACCEPTTYPES   param8 | 
|---|
| 187 |  | 
|---|
| 188 | struct WORKREQ *next; | 
|---|
| 189 | struct WORKREQ *prev; | 
|---|
| 190 |  | 
|---|
| 191 | } WORKREQUEST, *LPWORKREQUEST; | 
|---|
| 192 |  | 
|---|
| 193 | time_t ConvertTimeString(LPCSTR asctime); | 
|---|
| 194 |  | 
|---|
| 195 | HINTERNET FTP_Connect(HINTERNET hInterent, LPCSTR lpszServerName, | 
|---|
| 196 | INTERNET_PORT nServerPort, LPCSTR lpszUserName, | 
|---|
| 197 | LPCSTR lpszPassword, DWORD dwFlags, DWORD dwContext); | 
|---|
| 198 |  | 
|---|
| 199 | HINTERNET HTTP_Connect(HINTERNET hInterent, LPCSTR lpszServerName, | 
|---|
| 200 | INTERNET_PORT nServerPort, LPCSTR lpszUserName, | 
|---|
| 201 | LPCSTR lpszPassword, DWORD dwFlags, DWORD dwContext); | 
|---|
| 202 |  | 
|---|
| 203 | BOOL GetAddress(LPCSTR lpszServerName, INTERNET_PORT nServerPort, | 
|---|
| 204 | struct hostent **phe, struct sockaddr_in *psa); | 
|---|
| 205 |  | 
|---|
| 206 | int  INTERNET_WriteDataToStream(int nDataSocket, LPCVOID Buffer, DWORD BytesToWrite); | 
|---|
| 207 | int  INTERNET_ReadDataFromStream(int nDataSocket, LPVOID Buffer, DWORD BytesToRead); | 
|---|
| 208 | void INTERNET_SetLastError(DWORD dwError); | 
|---|
| 209 | DWORD INTERNET_GetLastError(void); | 
|---|
| 210 | BOOL INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest); | 
|---|
| 211 | LPSTR INTERNET_GetResponseBuffer(void); | 
|---|
| 212 | LPSTR INTERNET_GetNextLine(INT nSocket, LPSTR lpszBuffer, LPDWORD dwBuffer); | 
|---|
| 213 |  | 
|---|
| 214 | BOOL FTP_CloseSessionHandle(LPWININETFTPSESSIONA lpwfs); | 
|---|
| 215 | BOOL FTP_CloseFindNextHandle(LPWININETFINDNEXTA lpwfn); | 
|---|
| 216 | BOOL FTP_FtpPutFileA(HINTERNET hConnect, LPCSTR lpszLocalFile, | 
|---|
| 217 | LPCSTR lpszNewRemoteFile, DWORD dwFlags, DWORD dwContext); | 
|---|
| 218 | BOOL FTP_FtpSetCurrentDirectoryA(HINTERNET hConnect, LPCSTR lpszDirectory); | 
|---|
| 219 | BOOL FTP_FtpCreateDirectoryA(HINTERNET hConnect, LPCSTR lpszDirectory); | 
|---|
| 220 | HINTERNET FTP_FtpFindFirstFileA(HINTERNET hConnect, LPCSTR lpszSearchFile, | 
|---|
| 221 | LPWIN32_FIND_DATAA lpFindFileData, DWORD dwFlags, DWORD dwContext); | 
|---|
| 222 | BOOL FTP_FtpGetCurrentDirectoryA(HINTERNET hFtpSession, LPSTR lpszCurrentDirectory, | 
|---|
| 223 | LPDWORD lpdwCurrentDirectory); | 
|---|
| 224 | BOOL FTP_ConvertFileProp(LPFILEPROPERTIESA lpafp, LPWIN32_FIND_DATAA lpFindFileData); | 
|---|
| 225 | BOOL FTP_FtpRenameFileA(HINTERNET hFtpSession, LPCSTR lpszSrc, LPCSTR lpszDest); | 
|---|
| 226 | BOOL FTP_FtpRemoveDirectoryA(HINTERNET hFtpSession, LPCSTR lpszDirectory); | 
|---|
| 227 | BOOL FTP_FtpDeleteFileA(HINTERNET hFtpSession, LPCSTR lpszFileName); | 
|---|
| 228 | HINTERNET FTP_FtpOpenFileA(HINTERNET hFtpSession, LPCSTR lpszFileName, | 
|---|
| 229 | DWORD dwAccess, DWORD dwFlags, DWORD dwContext); | 
|---|
| 230 | BOOL FTP_FtpGetFileA(HINTERNET hInternet, LPCSTR lpszRemoteFile, LPCSTR lpszNewFile, | 
|---|
| 231 | BOOL fFailIfExists, DWORD dwLocalFlagsAttribute, DWORD dwInternetFlags, | 
|---|
| 232 | DWORD dwContext); | 
|---|
| 233 |  | 
|---|
| 234 | BOOL HTTP_HttpSendRequestA(HINTERNET hHttpRequest, LPCSTR lpszHeaders, | 
|---|
| 235 | DWORD dwHeaderLength, LPVOID lpOptional, DWORD dwOptionalLength); | 
|---|
| 236 | HINTERNET HTTP_HttpOpenRequestA(HINTERNET hHttpSession, LPCSTR lpszVerb, | 
|---|
| 237 | LPCSTR lpszObjectName, LPCSTR lpszVersion, LPCSTR lpszReferrer, | 
|---|
| 238 | LPCSTR *lpszAcceptTypes, DWORD dwFlags, DWORD dwContext); | 
|---|
| 239 | void HTTP_CloseHTTPSessionHandle(LPWININETHTTPSESSIONA lpwhs); | 
|---|
| 240 | void HTTP_CloseHTTPRequestHandle(LPWININETHTTPREQA lpwhr); | 
|---|
| 241 |  | 
|---|
| 242 | #define MAX_REPLY_LEN 0x5B4 | 
|---|
| 243 |  | 
|---|
| 244 | #endif /* _WINE_INTERNET_H_ */ | 
|---|