Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

549 lines
9.6 KiB

/*++
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
Revision History:
--*/
#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_