247 lines
8.1 KiB
C
247 lines
8.1 KiB
C
/*++
|
|
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_
|