| /* |
| * Wininet |
| * |
| * Copyright 1999 Corel Corporation |
| * |
| * Ulrich Czekalla |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| */ |
| |
| #ifndef _WINE_INTERNET_H_ |
| #define _WINE_INTERNET_H_ |
| |
| #include <time.h> |
| #ifdef HAVE_NETDB_H |
| # include <netdb.h> |
| #endif |
| #ifdef HAVE_NETINET_IN_H |
| # include <sys/types.h> |
| # include <netinet/in.h> |
| #endif |
| |
| typedef enum |
| { |
| WH_HINIT = INTERNET_HANDLE_TYPE_INTERNET, |
| WH_HFTPSESSION = INTERNET_HANDLE_TYPE_CONNECT_FTP, |
| WH_HGOPHERSESSION = INTERNET_HANDLE_TYPE_CONNECT_GOPHER, |
| WH_HHTTPSESSION = INTERNET_HANDLE_TYPE_CONNECT_HTTP, |
| WH_HFILE = INTERNET_HANDLE_TYPE_FTP_FILE, |
| WH_HFINDNEXT = INTERNET_HANDLE_TYPE_FTP_FIND, |
| WH_HHTTPREQ = INTERNET_HANDLE_TYPE_HTTP_REQUEST, |
| } WH_TYPE; |
| |
| typedef struct _WININETHANDLEHEADER |
| { |
| WH_TYPE htype; |
| DWORD dwFlags; |
| DWORD dwContext; |
| DWORD dwError; |
| struct _WININETHANDLEHEADER *lpwhparent; |
| } WININETHANDLEHEADER, *LPWININETHANDLEHEADER; |
| |
| |
| typedef struct |
| { |
| WININETHANDLEHEADER hdr; |
| LPSTR lpszAgent; |
| LPSTR lpszProxy; |
| LPSTR lpszProxyBypass; |
| DWORD dwAccessType; |
| INTERNET_STATUS_CALLBACK lpfnStatusCB; |
| } WININETAPPINFOA, *LPWININETAPPINFOA; |
| |
| |
| typedef struct |
| { |
| WININETHANDLEHEADER hdr; |
| LPSTR lpszServerName; |
| LPSTR lpszUserName; |
| INTERNET_PORT nServerPort; |
| struct sockaddr_in socketAddress; |
| struct hostent *phostent; |
| } WININETHTTPSESSIONA, *LPWININETHTTPSESSIONA; |
| |
| #define HDR_ISREQUEST 0x0001 |
| #define HDR_COMMADELIMITED 0x0002 |
| #define HDR_SEMIDELIMITED 0x0004 |
| |
| typedef struct |
| { |
| LPSTR lpszField; |
| LPSTR lpszValue; |
| WORD wFlags; |
| WORD wCount; |
| } HTTPHEADERA, *LPHTTPHEADERA; |
| |
| |
| typedef struct |
| { |
| WININETHANDLEHEADER hdr; |
| LPSTR lpszPath; |
| LPSTR lpszVerb; |
| LPSTR lpszHostName; |
| INT nSocketFD; |
| HTTPHEADERA StdHeaders[HTTP_QUERY_MAX+1]; |
| HTTPHEADERA *pCustHeaders; |
| INT nCustHeaders; |
| } WININETHTTPREQA, *LPWININETHTTPREQA; |
| |
| |
| typedef struct |
| { |
| WININETHANDLEHEADER hdr; |
| int sndSocket; |
| int lstnSocket; |
| int pasvSocket; /* data socket connected by us in case of passive FTP */ |
| struct sockaddr_in socketAddress; |
| struct sockaddr_in lstnSocketAddress; |
| struct hostent *phostent; |
| LPSTR lpszPassword; |
| LPSTR lpszUserName; |
| } WININETFTPSESSIONA, *LPWININETFTPSESSIONA; |
| |
| |
| typedef struct |
| { |
| WININETHANDLEHEADER hdr; |
| int nDataSocket; |
| } WININETFILE, *LPWININETFILE; |
| |
| |
| typedef struct |
| { |
| BOOL bIsDirectory; |
| LPSTR lpszName; |
| DWORD nSize; |
| struct tm tmLastModified; |
| unsigned short permissions; |
| } FILEPROPERTIESA, *LPFILEPROPERTIESA; |
| |
| |
| typedef struct |
| { |
| WININETHANDLEHEADER hdr; |
| int index; |
| DWORD size; |
| LPFILEPROPERTIESA lpafp; |
| } WININETFINDNEXTA, *LPWININETFINDNEXTA; |
| |
| typedef enum |
| { |
| FTPPUTFILEA, |
| FTPSETCURRENTDIRECTORYA, |
| FTPCREATEDIRECTORYA, |
| FTPFINDFIRSTFILEA, |
| FTPGETCURRENTDIRECTORYA, |
| FTPOPENFILEA, |
| FTPGETFILEA, |
| FTPDELETEFILEA, |
| FTPREMOVEDIRECTORYA, |
| FTPRENAMEFILEA, |
| INTERNETFINDNEXTA, |
| HTTPSENDREQUESTA, |
| HTTPOPENREQUESTA, |
| SENDCALLBACK, |
| } ASYNC_FUNC; |
| |
| typedef struct WORKREQ |
| { |
| ASYNC_FUNC asyncall; |
| DWORD param1; |
| #define HFTPSESSION param1 |
| |
| DWORD param2; |
| #define LPSZLOCALFILE param2 |
| #define LPSZREMOTEFILE param2 |
| #define LPSZFILENAME param2 |
| #define LPSZSRCFILE param2 |
| #define LPSZDIRECTORY param2 |
| #define LPSZSEARCHFILE param2 |
| #define LPSZHEADER param2 |
| #define LPSZVERB param2 |
| |
| DWORD param3; |
| #define LPSZNEWREMOTEFILE param3 |
| #define LPSZNEWFILE param3 |
| #define LPFINDFILEDATA param3 |
| #define LPDWDIRECTORY param3 |
| #define FDWACCESS param3 |
| #define LPSZDESTFILE param3 |
| #define DWHEADERLENGTH param3 |
| #define LPSZOBJECTNAME param3 |
| |
| DWORD param4; |
| #define DWFLAGS param4 |
| #define LPOPTIONAL param4 |
| |
| DWORD param5; |
| #define DWCONTEXT param5 |
| #define DWOPTIONALLENGTH param5 |
| |
| DWORD param6; |
| #define FFAILIFEXISTS param6 |
| #define LPSZVERSION param6 |
| |
| DWORD param7; |
| #define DWLOCALFLAGSATTRIBUTE param7 |
| #define LPSZREFERRER param7 |
| |
| DWORD param8; |
| #define LPSZACCEPTTYPES param8 |
| |
| struct WORKREQ *next; |
| struct WORKREQ *prev; |
| |
| } WORKREQUEST, *LPWORKREQUEST; |
| |
| |
| time_t ConvertTimeString(LPCSTR asctime); |
| |
| HINTERNET FTP_Connect(HINTERNET hInterent, LPCSTR lpszServerName, |
| INTERNET_PORT nServerPort, LPCSTR lpszUserName, |
| LPCSTR lpszPassword, DWORD dwFlags, DWORD dwContext); |
| |
| HINTERNET HTTP_Connect(HINTERNET hInterent, LPCSTR lpszServerName, |
| INTERNET_PORT nServerPort, LPCSTR lpszUserName, |
| LPCSTR lpszPassword, DWORD dwFlags, DWORD dwContext); |
| |
| BOOL GetAddress(LPCSTR lpszServerName, INTERNET_PORT nServerPort, |
| struct hostent **phe, struct sockaddr_in *psa); |
| |
| void INTERNET_SetLastError(DWORD dwError); |
| DWORD INTERNET_GetLastError(); |
| BOOL INTERNET_AsyncCall(LPWORKREQUEST lpWorkRequest); |
| LPSTR INTERNET_GetResponseBuffer(); |
| LPSTR INTERNET_GetNextLine(INT nSocket, LPSTR lpszBuffer, LPDWORD dwBuffer); |
| |
| BOOL FTP_CloseSessionHandle(LPWININETFTPSESSIONA lpwfs); |
| BOOL FTP_CloseFindNextHandle(LPWININETFINDNEXTA lpwfn); |
| BOOLAPI FTP_FtpPutFileA(HINTERNET hConnect, LPCSTR lpszLocalFile, |
| LPCSTR lpszNewRemoteFile, DWORD dwFlags, DWORD dwContext); |
| BOOLAPI FTP_FtpSetCurrentDirectoryA(HINTERNET hConnect, LPCSTR lpszDirectory); |
| BOOLAPI FTP_FtpCreateDirectoryA(HINTERNET hConnect, LPCSTR lpszDirectory); |
| INTERNETAPI HINTERNET WINAPI FTP_FtpFindFirstFileA(HINTERNET hConnect, |
| LPCSTR lpszSearchFile, LPWIN32_FIND_DATAA lpFindFileData, DWORD dwFlags, DWORD dwContext); |
| BOOLAPI FTP_FtpGetCurrentDirectoryA(HINTERNET hFtpSession, LPSTR lpszCurrentDirectory, |
| LPDWORD lpdwCurrentDirectory); |
| BOOL FTP_ConvertFileProp(LPFILEPROPERTIESA lpafp, LPWIN32_FIND_DATAA lpFindFileData); |
| BOOL FTP_FtpRenameFileA(HINTERNET hFtpSession, LPCSTR lpszSrc, LPCSTR lpszDest); |
| BOOL FTP_FtpRemoveDirectoryA(HINTERNET hFtpSession, LPCSTR lpszDirectory); |
| BOOL FTP_FtpDeleteFileA(HINTERNET hFtpSession, LPCSTR lpszFileName); |
| HINTERNET FTP_FtpOpenFileA(HINTERNET hFtpSession, LPCSTR lpszFileName, |
| DWORD fdwAccess, DWORD dwFlags, DWORD dwContext); |
| BOOLAPI FTP_FtpGetFileA(HINTERNET hInternet, LPCSTR lpszRemoteFile, LPCSTR lpszNewFile, |
| BOOL fFailIfExists, DWORD dwLocalFlagsAttribute, DWORD dwInternetFlags, |
| DWORD dwContext); |
| |
| BOOLAPI HTTP_HttpSendRequestA(HINTERNET hHttpRequest, LPCSTR lpszHeaders, |
| DWORD dwHeaderLength, LPVOID lpOptional ,DWORD dwOptionalLength); |
| INTERNETAPI HINTERNET WINAPI HTTP_HttpOpenRequestA(HINTERNET hHttpSession, |
| LPCSTR lpszVerb, LPCSTR lpszObjectName, LPCSTR lpszVersion, |
| LPCSTR lpszReferrer , LPCSTR *lpszAcceptTypes, |
| DWORD dwFlags, DWORD dwContext); |
| void HTTP_CloseHTTPSessionHandle(LPWININETHTTPSESSIONA lpwhs); |
| void HTTP_CloseHTTPRequestHandle(LPWININETHTTPREQA lpwhr); |
| |
| VOID SendAsyncCallback(LPWININETAPPINFOA hIC, HINTERNET hHttpSession, |
| DWORD dwContext, DWORD dwInternetStatus, LPVOID |
| lpvStatusInfo , DWORD dwStatusInfoLength); |
| |
| VOID SendAsyncCallbackInt(LPWININETAPPINFOA hIC, HINTERNET hHttpSession, |
| DWORD dwContext, DWORD dwInternetStatus, LPVOID |
| lpvStatusInfo , DWORD dwStatusInfoLength); |
| |
| |
| #define MAX_REPLY_LEN 0x5B4 |
| |
| |
| #endif /* _WINE_INTERNET_H_ */ |