/*++ Copyright (c) 1994 Microsoft Corporation Module Name: inetp.h Abstract: Contains the Internet Gateway Service private functions proto type definitions. Author: Madan Appiah (madana) 11-Nov-1994 Environment: User Mode - Win32 - MIDL */ #ifndef _INETP_ #define _INETP_ #if defined(__cplusplus) extern "C" { #endif // manifests // flags for close functions #define CF_EXPEDITED_CLOSE 0x00000001 // define used to expire entries #define ONE_HOUR_DELTA (60 * 60 * (LONGLONG)10000000) // define signature for LockRequestInfo structure #define LOCK_REQUEST_SIGNATURE 0xAA55AA55 // types typedef enum { TypeGenericHandle = 'HneG', TypeInternetHandle = 'tenI', TypeFtpConnectHandle = 'noCF', TypeFtpFindHandle = 'dnFF', TypeFtpFindHandleHtml = 'HnFF', TypeFtpFileHandle = 'liFF', TypeFtpFileHandleHtml = 'HlFF', TypeGopherConnectHandle = 'noCG', TypeGopherFindHandle = 'dnFG', TypeGopherFindHandleHtml = 'HnFG', TypeGopherFileHandle = 'liFG', TypeGopherFileHandleHtml = 'HlFG', TypeHttpConnectHandle = 'noCH', TypeHttpRequestHandle = 'qeRH', TypeFileRequestHandle = 'flRH', TypeWildHandle = 'dliW' } HINTERNET_HANDLE_TYPE, *LPHINTERNET_HANDLE_TYPE; typedef enum { HTML_STATE_INVALID, HTML_STATE_START, HTML_STATE_HEADER, HTML_STATE_WELCOME, HTML_STATE_DIR_HEADER, HTML_STATE_BODY, HTML_STATE_DIR_FOOTER, HTML_STATE_FOOTER, #ifdef EXTENDED_ERROR_HTML HTML_STATE_END, HTML_STATE_ERROR_BODY #else HTML_STATE_END #endif } HTML_STATE, *LPHTML_STATE; typedef enum { READ_BUFFER_SIZE_INDEX, WRITE_BUFFER_SIZE_INDEX } BUFFER_SIZE_INDEX; typedef struct { DWORD dwSignature; DWORD dwSize; DWORD dwCount; BOOL fNoCacheLookup; BOOL fNoDelete; HANDLE hFile; LPSTR UrlName; LPSTR FileName; char rgBuff[1]; } LOCK_REQUEST_INFO, *LPLOCK_REQUEST_INFO; // typedef virtual close function. typedef BOOL ( *CLOSE_HANDLE_FUNC ) ( HINTERNET ); typedef BOOL ( *CONNECT_CLOSE_HANDLE_FUNC ) ( HINTERNET, DWORD ); // prototypes BOOL _InternetCloseHandle(IN HINTERNET hInternet); DWORD _InternetCloseHandleNoContext(IN HINTERNET hInternet); // remote/RPC/object functions DWORD RIsHandleLocal(HINTERNET Handle, BOOL * IsLocalHandle, BOOL * IsAsyncHandle, HINTERNET_HANDLE_TYPE ExpectedHandleType); DWORD RGetHandleType(HINTERNET Handle, LPHINTERNET_HANDLE_TYPE HandleType); DWORD RSetHtmlHandleType(HINTERNET Handle); DWORD RSetHtmlState(HINTERNET Handle, HTML_STATE State); DWORD RGetHtmlState(HINTERNET Handle, LPHTML_STATE lpState); DWORD RSetUrl(HINTERNET Handle, LPSTR lpszUrl); DWORD RGetUrl(HINTERNET Handle, LPSTR* lpszUrl); DWORD RSetDirEntry(HINTERNET Handle, LPSTR lpszDirEntry); DWORD RGetDirEntry(HINTERNET Handle, LPSTR* lpszDirEntry); DWORD RSetParentHandle(HINTERNET hChild, HINTERNET hParent, BOOL DeleteWithChild); DWORD RGetParentHandle(HINTERNET hChild, LPHINTERNET lphParent); DWORD RGetContext(HINTERNET hInternet, DWORD_PTR *lpdwContext); DWORD RSetContext(HINTERNET hInternet, DWORD_PTR dwContext); DWORD RGetTimeout(HINTERNET hInternet, DWORD dwTimeoutOption, LPDWORD lpdwTimeoutValue); DWORD RSetTimeout(HINTERNET hInternet, DWORD dwTimeoutOption, DWORD dwTimeoutValue); DWORD RGetBufferSize(HINTERNET hInternet, DWORD dwBufferSizeOption, LPDWORD lpdwBufferSize); DWORD RSetBufferSize(HINTERNET hInternet, DWORD dwBufferSizeOption, DWORD dwBufferSize); DWORD RGetStatusCallback(IN HINTERNET Handle, OUT LPINTERNET_STATUS_CALLBACK lpStatusCallback); DWORD RExchangeStatusCallback(IN HINTERNET Handle, IN OUT LPINTERNET_STATUS_CALLBACK lpStatusCallback, IN BOOL fType); DWORD RAddAsyncRequest(IN HINTERNET Handle, BOOL fNoCallbackOK); DWORD RRemoveAsyncRequest(IN HINTERNET Handle); DWORD RMakeInternetConnectObjectHandle( HINTERNET ParentHandle, HINTERNET *ChildHandle, CONNECT_CLOSE_HANDLE_FUNC wCloseFunc, LPSTR lpszServerName, INTERNET_PORT nServerPort, LPSTR lpszUserName, LPSTR lpszPassword, DWORD ServiceType, DWORD dwFlags, DWORD_PTR dwContext ); HINTERNET FindExistingConnectObject( IN HINTERNET hInternet, IN LPSTR lpHostName, IN INTERNET_PORT nPort, IN LPSTR lpszUserName, IN LPSTR lpszPassword, IN DWORD dwServiceType, IN DWORD dwFlags, IN DWORD_PTR dwContext ); INT FlushExistingConnectObjects(IN HINTERNET hInternet); DWORD RMakeGfrFindObjectHandle(HINTERNET ParentHandle, HINTERNET *ChildHandle, CLOSE_HANDLE_FUNC wCloseFunc, DWORD_PTR dwContext); DWORD RMakeGfrFixedObjectHandle(HINTERNET ParentHandle, HINTERNET *ChildHandle, DWORD dwFixedType); DWORD RMakeGfrFileObjectHandle(HINTERNET ParentHandle, HINTERNET *ChildHandle, CLOSE_HANDLE_FUNC wCloseFunc, DWORD_PTR dwContext); DWORD RGetLocalHandle(HINTERNET Handle, HINTERNET *LocalHandle); DWORD RMakeHttpReqObjectHandle(HINTERNET ParentHandle, HINTERNET *ChildHandle, CLOSE_HANDLE_FUNC wCloseFunc, DWORD dwFlags, DWORD_PTR dwContext); // FTP remote functions DWORD RMakeFtpFindObjectHandle(HINTERNET ParentHandle, HINTERNET *ChildHandle, CLOSE_HANDLE_FUNC wCloseFunc, DWORD_PTR dwContext); DWORD RMakeFtpFileObjectHandle(HINTERNET ParentHandle, HINTERNET *ChildHandle, CLOSE_HANDLE_FUNC wCloseFunc, DWORD_PTR dwContext); // non-exported Internet subordinate functions BOOL FtpFindNextFileA(IN HINTERNET hFtpSession, OUT LPWIN32_FIND_DATA lpFindFileData); BOOL FtpReadFile(IN HINTERNET hFtpSession, IN LPVOID lpBuffer, IN DWORD dwNumberOfBytesToRead, OUT LPDWORD lpdwNumberOfBytesRead); BOOL FtpWriteFile(IN HINTERNET hFtpSession, IN LPVOID lpBuffer, IN DWORD dwNumberOfBytesToWrite, OUT LPDWORD lpdwNumberOfBytesWritten); BOOL FtpCloseFile(IN HINTERNET hFtpSession); BOOL GopherFindNextA(IN HINTERNET hGopherFind, OUT LPGOPHER_FIND_DATA lpFindFileData); BOOL GopherReadFile(IN HINTERNET hGopherFile, IN LPVOID lpBuffer, IN DWORD dwNumberOfBytesToRead, OUT LPDWORD lpdwNumberOfBytesRead); DWORD HttpWriteData(IN HINTERNET hRequest, OUT LPVOID lpBuffer, IN DWORD dwNumberOfBytesToWrite, OUT LPDWORD lpdwNumberOfBytesWritten, IN DWORD dwSocketFlags); DWORD HttpReadData(IN HINTERNET hHttpRequest, OUT LPVOID lpBuffer, IN DWORD dwNumberOfBytesToRead, OUT LPDWORD lpdwNumberOfBytesRead, IN DWORD dwSocketFlags); PUBLIC DWORD wHttpAddRequestHeaders(IN HINTERNET hRequest, IN LPCSTR lpszHeaders, IN DWORD dwHeadersLength, IN DWORD dwModifiers); DWORD wFtpConnect(IN LPCSTR pszFtpSite, IN INTERNET_PORT nServerPort, IN LPCSTR pszUsername, IN LPCSTR pszPassword, IN DWORD dwService, IN DWORD dwFlags, OUT LPHINTERNET lphInternet); DWORD wFtpMakeConnection(IN HINTERNET hFtpSession, IN LPCSTR pszUsername, IN LPCSTR pszPassword); DWORD wFtpDisconnect(IN HINTERNET hFtpSession, IN DWORD dwFlags); DWORD wFtpQueryDataAvailable(IN HINTERNET hFtpSession, OUT LPDWORD lpdwNumberOfBytesAvailable); DWORD wGopherQueryDataAvailable(IN HINTERNET hFile, OUT LPDWORD lpdwNumberOfBytesAvailable); DWORD pHttpGetUrlInfo( IN HANDLE RequestHandle, IN LPBYTE Headers, IN DWORD HeadersLength, IN LPBYTE UrlBuf, IN OUT DWORD *UrlBufLen, IN BOOL ReloadFlagCheck ); DWORD pFtpGetUrlString( IN LPSTR lpszTargetName, IN LPSTR lpszCWD, IN LPSTR lpszObjectName, IN LPSTR lpszExtension, IN DWORD dwPort, OUT LPSTR *lplpUrlName, OUT LPDWORD lpdwUrlLen ); DWORD pFtpGetUrlInfo( IN HANDLE InternetConnectHandle, OUT LPSTR Url ); DWORD pGopherGetUrlString( IN LPSTR lpszTargetName, IN LPSTR lpszCWD, IN LPSTR lpszObjectName, IN LPSTR lpszExtension, IN DWORD dwPort, OUT LPSTR *lplpUrlName, OUT LPDWORD lpdwUrlLen ); DWORD pGfrGetUrlInfo(IN HANDLE InternetConnectHandle, OUT LPSTR Url); DWORD InbLocalEndCacheWrite(IN HINTERNET hFtpFile, IN LPSTR lpszFileExtension, IN BOOL fNormal); DWORD InbGopherLocalEndCacheWrite(IN HINTERNET hGopherFile, IN LPSTR lpszFileExtension, IN BOOL fNormal); BOOL GetCurrentSettingsVersion(LPDWORD lpdwVer); BOOL IncrementCurrentSettingsVersion(LPDWORD lpdwVer); extern DWORD GlobalSettingsVersion; extern BOOL GlobalSettingsLoaded; extern const char vszSyncMode[]; extern const char vszInvalidFilenameChars[]; #if defined(__cplusplus) } #endif #endif // _INETP_