133 lines
3.3 KiB
C
133 lines
3.3 KiB
C
/**********************************************************************/
|
||
/** Microsoft Windows NT **/
|
||
/** Copyright(c) Microsoft Corp., 1995 **/
|
||
/**********************************************************************/
|
||
|
||
/*
|
||
smalprox.h
|
||
|
||
This module contains the small proxy common code
|
||
|
||
FILE HISTORY:
|
||
Johnl 04-Apr-1995 Created
|
||
|
||
*/
|
||
|
||
#ifndef _SMALPROX_H_
|
||
#define _SMALPROX_H_
|
||
|
||
#include <urlutil.h>
|
||
#include <dirlist.h>
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
typedef BOOL (*PFN_INTERNET_PROTOCOL)(
|
||
IN struct _INET_DATA_CONTEXT * pIC,
|
||
OUT VOID * pBuffer,
|
||
IN DWORD cbBuffer,
|
||
OUT DWORD * pcbWritten
|
||
);
|
||
|
||
#define INET_STATE_UNINITIALIZED 0
|
||
#define INET_STATE_OPENNED 1
|
||
#define INET_STATE_DONE 2
|
||
|
||
typedef struct _INET_DATA_CONTEXT
|
||
{
|
||
HINTERNET hServer; // InternetConnect handle
|
||
HINTERNET hRequest; // Protocol request handle
|
||
PFN_INTERNET_PROTOCOL pfnProtocol;
|
||
DWORD dwServiceType; // Protocol Type
|
||
DWORD dwState;
|
||
|
||
URL_DESCRIPTOR UrlDesc; // Various URL bits and pieces
|
||
CHAR * pszUrlData; // Allocated buffer for UrlDesc
|
||
|
||
//
|
||
// If an error occurred on open, dwLastError records the error
|
||
// so we can feed back a nice error during InternetReadFile
|
||
//
|
||
// pszErrAPI will point to the API which generated the error
|
||
//
|
||
|
||
DWORD dwLastError;
|
||
|
||
//
|
||
// When ftp or gopher return extended errors, we store the text here.
|
||
// It's inline because we're not guaranteed a CloseInternetData will
|
||
// happen after an error
|
||
//
|
||
|
||
CHAR achExtError[1024];
|
||
DWORD dwErrorTextLength;
|
||
DWORD dwErrorTextLeft;
|
||
DWORD dwErrorCategory;
|
||
|
||
#if DBG
|
||
CHAR * pszErrAPI;
|
||
#endif
|
||
|
||
} INET_DATA_CONTEXT, *LPINET_DATA_CONTEXT;
|
||
|
||
//
|
||
// Macro for conditionally setting the error API string
|
||
//
|
||
|
||
#if DBG
|
||
#define RECORD_ERROR_API( pIC, API ) (pIC)->pszErrAPI = (#API)
|
||
#else
|
||
#define RECORD_ERROR_API( pIC, API )
|
||
#endif
|
||
|
||
BOOL
|
||
OpenInternetData(
|
||
IN HINTERNET hInternet,
|
||
IN OUT CHAR * pszHttpProxyReq,
|
||
IN DWORD cbHttpProxyReq,
|
||
IN VOID * pvOptionalData,
|
||
IN DWORD cbOptionalData,
|
||
IN OUT INET_DATA_CONTEXT * pIC,
|
||
IN BOOL fCheckHeaders
|
||
);
|
||
|
||
BOOL
|
||
ReadInternetData(
|
||
IN INET_DATA_CONTEXT * pInetContext,
|
||
OUT VOID * pBuffer,
|
||
IN DWORD cbBuffer,
|
||
OUT DWORD * pcbRead
|
||
);
|
||
|
||
#if 0
|
||
BOOL
|
||
WriteInternetData(
|
||
IN INET_DATA_CONTEXT * pInetContext,
|
||
IN VOID * pBuffer,
|
||
IN DWORD cbBuffer,
|
||
OUT DWORD * pcbWritten
|
||
);
|
||
#endif
|
||
|
||
BOOL
|
||
CloseInternetData(
|
||
IN INET_DATA_CONTEXT * pInetContext
|
||
);
|
||
|
||
BOOL
|
||
FormatInternetError(
|
||
IN DWORD dwWin32Error,
|
||
IN CHAR * pszErrorAPI OPTIONAL,
|
||
OUT VOID * pBuffer,
|
||
IN DWORD cbBuffer,
|
||
OUT DWORD * pcbRead,
|
||
IN const CHAR * pszErrorMessage OPTIONAL
|
||
);
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
#endif //_SMALPROX_H_
|
||
|