Handle WM_CHARs and pass them to TREEVIEW_ProcessLetterKeys. See also
[wine] / dlls / wininet / internet.h
1 #ifndef _WINE_INTERNET_H_
2 #define _WINE_INTERNET_H_
3
4 typedef enum
5 {
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,
13 } WH_TYPE;
14
15 typedef struct _WININETHANDLEHEADER
16 {
17     WH_TYPE htype;
18     DWORD  dwFlags;
19     DWORD  dwContext;
20     DWORD  dwError;
21     struct _WININETHANDLEHEADER *lpwhparent;
22 } WININETHANDLEHEADER, *LPWININETHANDLEHEADER;
23
24
25 typedef struct
26 {
27     WININETHANDLEHEADER hdr;
28     LPSTR  lpszAgent;
29     LPSTR  lpszProxy;
30     LPSTR  lpszProxyBypass;
31     DWORD   dwAccessType;
32     INTERNET_STATUS_CALLBACK lpfnStatusCB;
33 } WININETAPPINFOA, *LPWININETAPPINFOA;
34
35
36 typedef struct
37 {
38     WININETHANDLEHEADER hdr;
39     LPSTR  lpszServerName;
40     LPSTR  lpszUserName;
41     INTERNET_PORT nServerPort;
42     struct sockaddr_in socketAddress;
43     struct hostent *phostent;
44 } WININETHTTPSESSIONA, *LPWININETHTTPSESSIONA;
45
46 #define HDR_ISREQUEST           0x0001
47 #define HDR_COMMADELIMITED      0x0002
48 #define HDR_SEMIDELIMITED       0x0004
49
50 typedef struct
51 {
52     LPSTR lpszField;
53     LPSTR lpszValue;
54     WORD wFlags;
55     WORD wCount;
56 } HTTPHEADERA, *LPHTTPHEADERA;
57
58
59 typedef struct
60 {
61     WININETHANDLEHEADER hdr;
62     LPSTR lpszPath;
63     LPSTR lpszVerb;
64     LPSTR lpszHostName;
65     INT nSocketFD;
66     HTTPHEADERA StdHeaders[HTTP_QUERY_MAX+1];
67     HTTPHEADERA *pCustHeaders;
68     INT nCustHeaders;
69 } WININETHTTPREQA, *LPWININETHTTPREQA;
70
71
72 typedef struct
73 {
74     WININETHANDLEHEADER hdr;
75     int sndSocket;
76     int lstnSocket;
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;
81     LPSTR  lpszPassword;
82     LPSTR  lpszUserName;
83 } WININETFTPSESSIONA, *LPWININETFTPSESSIONA;
84
85
86 typedef struct
87 {
88     WININETHANDLEHEADER hdr;
89     int nDataSocket;
90 } WININETFILE, *LPWININETFILE;
91
92
93 typedef struct
94 {
95     BOOL bIsDirectory;
96     LPSTR lpszName;
97     DWORD nSize;
98     struct tm tmLastModified;
99     unsigned short permissions;
100 } FILEPROPERTIESA, *LPFILEPROPERTIESA;
101
102
103 typedef struct
104 {
105     WININETHANDLEHEADER hdr;
106     int index;
107     DWORD size;
108     LPFILEPROPERTIESA lpafp;
109 } WININETFINDNEXTA, *LPWININETFINDNEXTA;
110
111 typedef enum
112 {
113     FTPPUTFILEA,
114     FTPSETCURRENTDIRECTORYA,
115     FTPCREATEDIRECTORYA,
116     FTPFINDFIRSTFILEA,
117     FTPGETCURRENTDIRECTORYA,
118     FTPOPENFILEA,
119     FTPGETFILEA,
120     FTPDELETEFILEA,
121     FTPREMOVEDIRECTORYA,
122     FTPRENAMEFILEA,
123     INTERNETFINDNEXTA,
124     HTTPSENDREQUESTA,
125     HTTPOPENREQUESTA,
126 } ASYNC_FUNC;
127
128 typedef struct WORKREQ
129 {
130     ASYNC_FUNC asyncall;
131     DWORD param1;
132 #define HFTPSESSION       param1
133
134     DWORD param2;
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
143
144     DWORD param3;
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
153
154     DWORD param4;
155 #define DWFLAGS           param4
156 #define LPOPTIONAL        param4
157
158     DWORD param5;
159 #define DWCONTEXT         param5
160 #define DWOPTIONALLENGTH  param5
161
162     DWORD param6;
163 #define FFAILIFEXISTS     param6
164 #define LPSZVERSION       param6
165
166     DWORD param7;
167 #define DWLOCALFLAGSATTRIBUTE param7
168 #define LPSZREFERRER          param7
169
170     DWORD param8;
171 #define LPSZACCEPTTYPES       param8
172
173     struct WORKREQ *next;
174     struct WORKREQ *prev;
175
176 } WORKREQUEST, *LPWORKREQUEST;
177
178
179 time_t ConvertTimeString(LPCSTR asctime);
180
181 HINTERNET FTP_Connect(HINTERNET hInterent, LPCSTR lpszServerName, 
182         INTERNET_PORT nServerPort, LPCSTR lpszUserName,
183         LPCSTR lpszPassword, DWORD dwFlags, DWORD dwContext);
184
185 HINTERNET HTTP_Connect(HINTERNET hInterent, LPCSTR lpszServerName, 
186         INTERNET_PORT nServerPort, LPCSTR lpszUserName,
187         LPCSTR lpszPassword, DWORD dwFlags, DWORD dwContext);
188
189 BOOL GetAddress(LPCSTR lpszServerName, INTERNET_PORT nServerPort,
190         struct hostent **phe, struct sockaddr_in *psa);
191
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);
199
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,
218         DWORD dwContext);
219
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);
228
229
230 #define MAX_REPLY_LEN           0x5B4
231
232
233 #endif /* _WINE_INTERNET_H_ */