| /* | |
| * 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_ */ |