source: trunk/src/wininet/internet.h@ 10367

Last change on this file since 10367 was 4842, checked in by sandervl, 25 years ago

JH: Resync with latest Wine + fixes/additions

File size: 7.0 KB
Line 
1#ifndef _WINE_INTERNET_H_
2#define _WINE_INTERNET_H_
3
4#ifdef __WIN32OS2__
5#define close closesocket
6typedef int socklen_t;
7
8#include <time.h>
9
10#endif
11
12typedef 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
23typedef 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
33typedef 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
44typedef 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
58typedef struct
59{
60 LPSTR lpszField;
61 LPSTR lpszValue;
62 WORD wFlags;
63 WORD wCount;
64} HTTPHEADERA, *LPHTTPHEADERA;
65
66typedef 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
85typedef 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
100typedef struct
101{
102 WININETHANDLEHEADER hdr;
103 int nDataSocket;
104 LONG lBytesAvailable;
105} WININETFILE, *LPWININETFILE;
106
107
108typedef struct
109{
110 BOOL bIsDirectory;
111 LPSTR lpszName;
112 DWORD nSize;
113 struct tm tmLastModified;
114 unsigned short permissions;
115} FILEPROPERTIESA, *LPFILEPROPERTIESA;
116
117
118typedef struct
119{
120 WININETHANDLEHEADER hdr;
121 int index;
122 DWORD size;
123 LPFILEPROPERTIESA lpafp;
124} WININETFINDNEXTA, *LPWININETFINDNEXTA;
125
126typedef 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
143typedef 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
193time_t ConvertTimeString(LPCSTR asctime);
194
195HINTERNET FTP_Connect(HINTERNET hInterent, LPCSTR lpszServerName,
196 INTERNET_PORT nServerPort, LPCSTR lpszUserName,
197 LPCSTR lpszPassword, DWORD dwFlags, DWORD dwContext);
198
199HINTERNET HTTP_Connect(HINTERNET hInterent, LPCSTR lpszServerName,
200 INTERNET_PORT nServerPort, LPCSTR lpszUserName,
201 LPCSTR lpszPassword, DWORD dwFlags, DWORD dwContext);
202
203BOOL GetAddress(LPCSTR lpszServerName, INTERNET_PORT nServerPort,
204 struct hostent **phe, struct sockaddr_in *psa);
205
206int INTERNET_WriteDataToStream(int nDataSocket, LPCVOID Buffer, DWORD BytesToWrite);
207int INTERNET_ReadDataFromStream(int nDataSocket, LPVOID Buffer, DWORD BytesToRead);
208void INTERNET_SetLastError(DWORD dwError);
209DWORD INTERNET_GetLastError(void);
210BOOL INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest);
211LPSTR INTERNET_GetResponseBuffer(void);
212LPSTR INTERNET_GetNextLine(INT nSocket, LPSTR lpszBuffer, LPDWORD dwBuffer);
213
214BOOL FTP_CloseSessionHandle(LPWININETFTPSESSIONA lpwfs);
215BOOL FTP_CloseFindNextHandle(LPWININETFINDNEXTA lpwfn);
216BOOL FTP_FtpPutFileA(HINTERNET hConnect, LPCSTR lpszLocalFile,
217 LPCSTR lpszNewRemoteFile, DWORD dwFlags, DWORD dwContext);
218BOOL FTP_FtpSetCurrentDirectoryA(HINTERNET hConnect, LPCSTR lpszDirectory);
219BOOL FTP_FtpCreateDirectoryA(HINTERNET hConnect, LPCSTR lpszDirectory);
220HINTERNET FTP_FtpFindFirstFileA(HINTERNET hConnect, LPCSTR lpszSearchFile,
221 LPWIN32_FIND_DATAA lpFindFileData, DWORD dwFlags, DWORD dwContext);
222BOOL FTP_FtpGetCurrentDirectoryA(HINTERNET hFtpSession, LPSTR lpszCurrentDirectory,
223 LPDWORD lpdwCurrentDirectory);
224BOOL FTP_ConvertFileProp(LPFILEPROPERTIESA lpafp, LPWIN32_FIND_DATAA lpFindFileData);
225BOOL FTP_FtpRenameFileA(HINTERNET hFtpSession, LPCSTR lpszSrc, LPCSTR lpszDest);
226BOOL FTP_FtpRemoveDirectoryA(HINTERNET hFtpSession, LPCSTR lpszDirectory);
227BOOL FTP_FtpDeleteFileA(HINTERNET hFtpSession, LPCSTR lpszFileName);
228HINTERNET FTP_FtpOpenFileA(HINTERNET hFtpSession, LPCSTR lpszFileName,
229 DWORD dwAccess, DWORD dwFlags, DWORD dwContext);
230BOOL FTP_FtpGetFileA(HINTERNET hInternet, LPCSTR lpszRemoteFile, LPCSTR lpszNewFile,
231 BOOL fFailIfExists, DWORD dwLocalFlagsAttribute, DWORD dwInternetFlags,
232 DWORD dwContext);
233
234BOOL HTTP_HttpSendRequestA(HINTERNET hHttpRequest, LPCSTR lpszHeaders,
235 DWORD dwHeaderLength, LPVOID lpOptional, DWORD dwOptionalLength);
236HINTERNET HTTP_HttpOpenRequestA(HINTERNET hHttpSession, LPCSTR lpszVerb,
237 LPCSTR lpszObjectName, LPCSTR lpszVersion, LPCSTR lpszReferrer,
238 LPCSTR *lpszAcceptTypes, DWORD dwFlags, DWORD dwContext);
239void HTTP_CloseHTTPSessionHandle(LPWININETHTTPSESSIONA lpwhs);
240void HTTP_CloseHTTPRequestHandle(LPWININETHTTPREQA lpwhr);
241
242#define MAX_REPLY_LEN 0x5B4
243
244#endif /* _WINE_INTERNET_H_ */
Note: See TracBrowser for help on using the repository browser.