1 #ifndef _WINE_INTERNET_H_
2 #define _WINE_INTERNET_H_
8 WH_HINIT = INTERNET_HANDLE_TYPE_INTERNET,
9 WH_HFTPSESSION = INTERNET_HANDLE_TYPE_CONNECT_FTP,
10 WH_HGOPHERSESSION = INTERNET_HANDLE_TYPE_CONNECT_GOPHER,
11 WH_HHTTPSESSION = INTERNET_HANDLE_TYPE_CONNECT_HTTP,
12 WH_HFILE = INTERNET_HANDLE_TYPE_FTP_FILE,
13 WH_HFINDNEXT = INTERNET_HANDLE_TYPE_FTP_FIND,
14 WH_HHTTPREQ = INTERNET_HANDLE_TYPE_HTTP_REQUEST,
17 typedef struct _WININETHANDLEHEADER
23 struct _WININETHANDLEHEADER *lpwhparent;
24 } WININETHANDLEHEADER, *LPWININETHANDLEHEADER;
29 WININETHANDLEHEADER hdr;
32 LPSTR lpszProxyBypass;
34 INTERNET_STATUS_CALLBACK lpfnStatusCB;
35 } WININETAPPINFOA, *LPWININETAPPINFOA;
40 WININETHANDLEHEADER hdr;
43 INTERNET_PORT nServerPort;
44 struct sockaddr_in socketAddress;
45 struct hostent *phostent;
46 } WININETHTTPSESSIONA, *LPWININETHTTPSESSIONA;
48 #define HDR_ISREQUEST 0x0001
49 #define HDR_COMMADELIMITED 0x0002
50 #define HDR_SEMIDELIMITED 0x0004
58 } HTTPHEADERA, *LPHTTPHEADERA;
63 WININETHANDLEHEADER hdr;
68 HTTPHEADERA StdHeaders[HTTP_QUERY_MAX+1];
69 HTTPHEADERA *pCustHeaders;
71 } WININETHTTPREQA, *LPWININETHTTPREQA;
76 WININETHANDLEHEADER hdr;
79 int pasvSocket; /* data socket connected by us in case of passive FTP */
80 struct sockaddr_in socketAddress;
81 struct sockaddr_in lstnSocketAddress;
82 struct hostent *phostent;
85 } WININETFTPSESSIONA, *LPWININETFTPSESSIONA;
90 WININETHANDLEHEADER hdr;
92 } WININETFILE, *LPWININETFILE;
100 struct tm tmLastModified;
101 unsigned short permissions;
102 } FILEPROPERTIESA, *LPFILEPROPERTIESA;
107 WININETHANDLEHEADER hdr;
110 LPFILEPROPERTIESA lpafp;
111 } WININETFINDNEXTA, *LPWININETFINDNEXTA;
116 FTPSETCURRENTDIRECTORYA,
119 FTPGETCURRENTDIRECTORYA,
130 typedef struct WORKREQ
134 #define HFTPSESSION param1
137 #define LPSZLOCALFILE param2
138 #define LPSZREMOTEFILE param2
139 #define LPSZFILENAME param2
140 #define LPSZSRCFILE param2
141 #define LPSZDIRECTORY param2
142 #define LPSZSEARCHFILE param2
143 #define LPSZHEADER param2
144 #define LPSZVERB param2
147 #define LPSZNEWREMOTEFILE param3
148 #define LPSZNEWFILE param3
149 #define LPFINDFILEDATA param3
150 #define LPDWDIRECTORY param3
151 #define FDWACCESS param3
152 #define LPSZDESTFILE param3
153 #define DWHEADERLENGTH param3
154 #define LPSZOBJECTNAME param3
157 #define DWFLAGS param4
158 #define LPOPTIONAL param4
161 #define DWCONTEXT param5
162 #define DWOPTIONALLENGTH param5
165 #define FFAILIFEXISTS param6
166 #define LPSZVERSION param6
169 #define DWLOCALFLAGSATTRIBUTE param7
170 #define LPSZREFERRER param7
173 #define LPSZACCEPTTYPES param8
175 struct WORKREQ *next;
176 struct WORKREQ *prev;
178 } WORKREQUEST, *LPWORKREQUEST;
181 time_t ConvertTimeString(LPCSTR asctime);
183 HINTERNET FTP_Connect(HINTERNET hInterent, LPCSTR lpszServerName,
184 INTERNET_PORT nServerPort, LPCSTR lpszUserName,
185 LPCSTR lpszPassword, DWORD dwFlags, DWORD dwContext);
187 HINTERNET HTTP_Connect(HINTERNET hInterent, LPCSTR lpszServerName,
188 INTERNET_PORT nServerPort, LPCSTR lpszUserName,
189 LPCSTR lpszPassword, DWORD dwFlags, DWORD dwContext);
191 BOOL GetAddress(LPCSTR lpszServerName, INTERNET_PORT nServerPort,
192 struct hostent **phe, struct sockaddr_in *psa);
194 int INTERNET_WriteDataToStream(int nDataSocket, LPCVOID Buffer, DWORD BytesToWrite);
195 int INTERNET_ReadDataFromStream(int nDataSocket, LPVOID Buffer, DWORD BytesToRead);
196 void INTERNET_SetLastError(DWORD dwError);
197 DWORD INTERNET_GetLastError();
198 BOOL INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest);
199 LPSTR INTERNET_GetResponseBuffer();
200 LPSTR INTERNET_GetNextLine(INT nSocket, LPSTR lpszBuffer, LPDWORD dwBuffer);
202 BOOL FTP_CloseSessionHandle(LPWININETFTPSESSIONA lpwfs);
203 BOOL FTP_CloseFindNextHandle(LPWININETFINDNEXTA lpwfn);
204 BOOLAPI FTP_FtpPutFileA(HINTERNET hConnect, LPCSTR lpszLocalFile,
205 LPCSTR lpszNewRemoteFile, DWORD dwFlags, DWORD dwContext);
206 BOOLAPI FTP_FtpSetCurrentDirectoryA(HINTERNET hConnect, LPCSTR lpszDirectory);
207 BOOLAPI FTP_FtpCreateDirectoryA(HINTERNET hConnect, LPCSTR lpszDirectory);
208 INTERNETAPI HINTERNET WINAPI FTP_FtpFindFirstFileA(HINTERNET hConnect,
209 LPCSTR lpszSearchFile, LPWIN32_FIND_DATAA lpFindFileData, DWORD dwFlags, DWORD dwContext);
210 BOOLAPI FTP_FtpGetCurrentDirectoryA(HINTERNET hFtpSession, LPSTR lpszCurrentDirectory,
211 LPDWORD lpdwCurrentDirectory);
212 BOOL FTP_ConvertFileProp(LPFILEPROPERTIESA lpafp, LPWIN32_FIND_DATAA lpFindFileData);
213 BOOL FTP_FtpRenameFileA(HINTERNET hFtpSession, LPCSTR lpszSrc, LPCSTR lpszDest);
214 BOOL FTP_FtpRemoveDirectoryA(HINTERNET hFtpSession, LPCSTR lpszDirectory);
215 BOOL FTP_FtpDeleteFileA(HINTERNET hFtpSession, LPCSTR lpszFileName);
216 HINTERNET FTP_FtpOpenFileA(HINTERNET hFtpSession, LPCSTR lpszFileName,
217 DWORD fdwAccess, DWORD dwFlags, DWORD dwContext);
218 BOOLAPI FTP_FtpGetFileA(HINTERNET hInternet, LPCSTR lpszRemoteFile, LPCSTR lpszNewFile,
219 BOOL fFailIfExists, DWORD dwLocalFlagsAttribute, DWORD dwInternetFlags,
222 BOOLAPI HTTP_HttpSendRequestA(HINTERNET hHttpRequest, LPCSTR lpszHeaders,
223 DWORD dwHeaderLength, LPVOID lpOptional ,DWORD dwOptionalLength);
224 INTERNETAPI HINTERNET WINAPI HTTP_HttpOpenRequestA(HINTERNET hHttpSession,
225 LPCSTR lpszVerb, LPCSTR lpszObjectName, LPCSTR lpszVersion,
226 LPCSTR lpszReferrer , LPCSTR *lpszAcceptTypes,
227 DWORD dwFlags, DWORD dwContext);
228 void HTTP_CloseHTTPSessionHandle(LPWININETHTTPSESSIONA lpwhs);
229 void HTTP_CloseHTTPRequestHandle(LPWININETHTTPREQA lpwhr);
232 #define MAX_REPLY_LEN 0x5B4
235 #endif /* _WINE_INTERNET_H_ */