1 #ifndef _WINE_INTERNET_H_
2 #define _WINE_INTERNET_H_
6 WH_HINIT
= INTERNET_HANDLE_TYPE_INTERNET
,
7 WH_HFTPSESSION
= INTERNET_HANDLE_TYPE_CONNECT_FTP
,
8 WH_HGOPHERSESSION
= INTERNET_HANDLE_TYPE_CONNECT_GOPHER
,
9 WH_HHTTPSESSION
= INTERNET_HANDLE_TYPE_CONNECT_HTTP
,
10 WH_HFILE
= INTERNET_HANDLE_TYPE_FTP_FILE
,
11 WH_HFINDNEXT
= INTERNET_HANDLE_TYPE_FTP_FIND
,
12 WH_HHTTPREQ
= INTERNET_HANDLE_TYPE_HTTP_REQUEST
,
15 typedef struct _WININETHANDLEHEADER
21 struct _WININETHANDLEHEADER
*lpwhparent
;
22 } WININETHANDLEHEADER
, *LPWININETHANDLEHEADER
;
27 WININETHANDLEHEADER hdr
;
30 LPSTR lpszProxyBypass
;
32 INTERNET_STATUS_CALLBACK lpfnStatusCB
;
33 } WININETAPPINFOA
, *LPWININETAPPINFOA
;
38 WININETHANDLEHEADER hdr
;
41 INTERNET_PORT nServerPort
;
42 struct sockaddr_in socketAddress
;
43 struct hostent
*phostent
;
44 } WININETHTTPSESSIONA
, *LPWININETHTTPSESSIONA
;
46 #define HDR_ISREQUEST 0x0001
47 #define HDR_COMMADELIMITED 0x0002
48 #define HDR_SEMIDELIMITED 0x0004
56 } HTTPHEADERA
, *LPHTTPHEADERA
;
61 WININETHANDLEHEADER hdr
;
66 HTTPHEADERA StdHeaders
[HTTP_QUERY_MAX
+1];
67 HTTPHEADERA
*pCustHeaders
;
69 } WININETHTTPREQA
, *LPWININETHTTPREQA
;
74 WININETHANDLEHEADER hdr
;
77 int pasvSocket
; /* data socket connected by us in case of passive FTP */
78 struct sockaddr_in socketAddress
;
79 struct sockaddr_in lstnSocketAddress
;
80 struct hostent
*phostent
;
83 } WININETFTPSESSIONA
, *LPWININETFTPSESSIONA
;
88 WININETHANDLEHEADER hdr
;
90 } WININETFILE
, *LPWININETFILE
;
98 struct tm tmLastModified
;
99 unsigned short permissions
;
100 } FILEPROPERTIESA
, *LPFILEPROPERTIESA
;
105 WININETHANDLEHEADER hdr
;
108 LPFILEPROPERTIESA lpafp
;
109 } WININETFINDNEXTA
, *LPWININETFINDNEXTA
;
114 FTPSETCURRENTDIRECTORYA
,
117 FTPGETCURRENTDIRECTORYA
,
128 typedef struct WORKREQ
132 #define HFTPSESSION param1
135 #define LPSZLOCALFILE param2
136 #define LPSZREMOTEFILE param2
137 #define LPSZFILENAME param2
138 #define LPSZSRCFILE param2
139 #define LPSZDIRECTORY param2
140 #define LPSZSEARCHFILE param2
141 #define LPSZHEADER param2
142 #define LPSZVERB param2
145 #define LPSZNEWREMOTEFILE param3
146 #define LPSZNEWFILE param3
147 #define LPFINDFILEDATA param3
148 #define LPDWDIRECTORY param3
149 #define FDWACCESS param3
150 #define LPSZDESTFILE param3
151 #define DWHEADERLENGTH param3
152 #define LPSZOBJECTNAME param3
155 #define DWFLAGS param4
156 #define LPOPTIONAL param4
159 #define DWCONTEXT param5
160 #define DWOPTIONALLENGTH param5
163 #define FFAILIFEXISTS param6
164 #define LPSZVERSION param6
167 #define DWLOCALFLAGSATTRIBUTE param7
168 #define LPSZREFERRER param7
171 #define LPSZACCEPTTYPES param8
173 struct WORKREQ
*next
;
174 struct WORKREQ
*prev
;
176 } WORKREQUEST
, *LPWORKREQUEST
;
179 time_t ConvertTimeString(LPCSTR asctime
);
181 HINTERNET
FTP_Connect(HINTERNET hInterent
, LPCSTR lpszServerName
,
182 INTERNET_PORT nServerPort
, LPCSTR lpszUserName
,
183 LPCSTR lpszPassword
, DWORD dwFlags
, DWORD dwContext
);
185 HINTERNET
HTTP_Connect(HINTERNET hInterent
, LPCSTR lpszServerName
,
186 INTERNET_PORT nServerPort
, LPCSTR lpszUserName
,
187 LPCSTR lpszPassword
, DWORD dwFlags
, DWORD dwContext
);
189 BOOL
GetAddress(LPCSTR lpszServerName
, INTERNET_PORT nServerPort
,
190 struct hostent
**phe
, struct sockaddr_in
*psa
);
192 int INTERNET_WriteDataToStream(int nDataSocket
, LPCVOID Buffer
, DWORD BytesToWrite
);
193 int INTERNET_ReadDataFromStream(int nDataSocket
, LPVOID Buffer
, DWORD BytesToRead
);
194 void INTERNET_SetLastError(DWORD dwError
);
195 DWORD
INTERNET_GetLastError();
196 BOOL
INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest
);
197 LPSTR
INTERNET_GetResponseBuffer();
198 LPSTR
INTERNET_GetNextLine(INT nSocket
, LPSTR lpszBuffer
, LPDWORD dwBuffer
);
200 BOOL
FTP_CloseSessionHandle(LPWININETFTPSESSIONA lpwfs
);
201 BOOL
FTP_CloseFindNextHandle(LPWININETFINDNEXTA lpwfn
);
202 BOOLAPI
FTP_FtpPutFileA(HINTERNET hConnect
, LPCSTR lpszLocalFile
,
203 LPCSTR lpszNewRemoteFile
, DWORD dwFlags
, DWORD dwContext
);
204 BOOLAPI
FTP_FtpSetCurrentDirectoryA(HINTERNET hConnect
, LPCSTR lpszDirectory
);
205 BOOLAPI
FTP_FtpCreateDirectoryA(HINTERNET hConnect
, LPCSTR lpszDirectory
);
206 INTERNETAPI HINTERNET WINAPI
FTP_FtpFindFirstFileA(HINTERNET hConnect
,
207 LPCSTR lpszSearchFile
, LPWIN32_FIND_DATAA lpFindFileData
, DWORD dwFlags
, DWORD dwContext
);
208 BOOLAPI
FTP_FtpGetCurrentDirectoryA(HINTERNET hFtpSession
, LPSTR lpszCurrentDirectory
,
209 LPDWORD lpdwCurrentDirectory
);
210 BOOL
FTP_ConvertFileProp(LPFILEPROPERTIESA lpafp
, LPWIN32_FIND_DATAA lpFindFileData
);
211 BOOL
FTP_FtpRenameFileA(HINTERNET hFtpSession
, LPCSTR lpszSrc
, LPCSTR lpszDest
);
212 BOOL
FTP_FtpRemoveDirectoryA(HINTERNET hFtpSession
, LPCSTR lpszDirectory
);
213 BOOL
FTP_FtpDeleteFileA(HINTERNET hFtpSession
, LPCSTR lpszFileName
);
214 HINTERNET
FTP_FtpOpenFileA(HINTERNET hFtpSession
, LPCSTR lpszFileName
,
215 DWORD fdwAccess
, DWORD dwFlags
, DWORD dwContext
);
216 BOOLAPI
FTP_FtpGetFileA(HINTERNET hInternet
, LPCSTR lpszRemoteFile
, LPCSTR lpszNewFile
,
217 BOOL fFailIfExists
, DWORD dwLocalFlagsAttribute
, DWORD dwInternetFlags
,
220 BOOLAPI
HTTP_HttpSendRequestA(HINTERNET hHttpRequest
, LPCSTR lpszHeaders
,
221 DWORD dwHeaderLength
, LPVOID lpOptional
,DWORD dwOptionalLength
);
222 INTERNETAPI HINTERNET WINAPI
HTTP_HttpOpenRequestA(HINTERNET hHttpSession
,
223 LPCSTR lpszVerb
, LPCSTR lpszObjectName
, LPCSTR lpszVersion
,
224 LPCSTR lpszReferrer
, LPCSTR
*lpszAcceptTypes
,
225 DWORD dwFlags
, DWORD dwContext
);
226 void HTTP_CloseHTTPSessionHandle(LPWININETHTTPSESSIONA lpwhs
);
227 void HTTP_CloseHTTPRequestHandle(LPWININETHTTPREQA lpwhr
);
230 #define MAX_REPLY_LEN 0x5B4
233 #endif /* _WINE_INTERNET_H_ */