Windows2000/private/inet/wininet/inc/inetp.h
2020-09-30 17:12:32 +02:00

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_