195 lines
5.4 KiB
C
195 lines
5.4 KiB
C
|
/*****************************************************************************\
|
||
|
* MODULE: inetpp.h
|
||
|
*
|
||
|
* Header file for the INETPP provider routines.
|
||
|
*
|
||
|
*
|
||
|
* Copyright (C) 1996-1997 Microsoft Corporation
|
||
|
* Copyright (C) 1996-1997 Hewlett Packard
|
||
|
*
|
||
|
* History:
|
||
|
* 07-Oct-1996 HWP-Guys Initiated port from win95 to winNT
|
||
|
*
|
||
|
\*****************************************************************************/
|
||
|
|
||
|
#ifndef _INETPP_H
|
||
|
#define _INETPP_H
|
||
|
|
||
|
// Buffer sizes/Constants.
|
||
|
//
|
||
|
#define MAX_INET_BUFFER 256
|
||
|
#define MIN_DISK_SPACE 8192
|
||
|
#define MAX_IPP_BUFFER 1024
|
||
|
#define MAX_INET_RETRY 3 // 3 times for internet-connect.
|
||
|
|
||
|
|
||
|
// Error return codes for Request-Auth-Sends.
|
||
|
//
|
||
|
#define RET_SUCESS 0
|
||
|
#define RET_FAILURE 1
|
||
|
|
||
|
|
||
|
// Return value for the customized authentication dialog
|
||
|
//
|
||
|
#define AUTHDLG_OK 1
|
||
|
#define AUTHDLG_CANCEL 2
|
||
|
#define AUTHDLG_TIMEOUT 3
|
||
|
#define AUTHDLG_ERROR 4
|
||
|
|
||
|
// Flags.
|
||
|
//
|
||
|
#define INETPP_REQ_FLAGS (INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_RELOAD)
|
||
|
|
||
|
|
||
|
// Offsets into structure. Used for the PORT_INFO fields in obtaining
|
||
|
// port-information.
|
||
|
//
|
||
|
#ifdef offsetof
|
||
|
#undef offsetof
|
||
|
#endif
|
||
|
#define offsetof(type, identifier) ((DWORD)(UINT_PTR)(&(((type)0)->identifier)))
|
||
|
|
||
|
// Function types for the HTTP calls in WININET.DLL.
|
||
|
//
|
||
|
typedef BOOL (WINAPI *PFNHTTPQUERYINFO) (HINTERNET, DWORD, LPVOID, LPDWORD, LPDWORD);
|
||
|
typedef HINTERNET (WINAPI *PFNINTERNETOPENURL) (HINTERNET, LPCTSTR, LPCTSTR, DWORD, DWORD, DWORD_PTR);
|
||
|
typedef DWORD (WINAPI *PFNINTERNETERRORDLG) (HWND, HINTERNET, DWORD, DWORD, LPVOID);
|
||
|
typedef BOOL (WINAPI *PFNHTTPSENDREQUEST) (HINTERNET, LPCTSTR, DWORD, LPVOID, DWORD);
|
||
|
#ifdef UNIMPLEMENTED
|
||
|
typedef BOOL (WINAPI *PFNHTTPSENDREQUESTEX) (HINTERNET, LPINTERNET_BUFFERS, LPINTERNET_BUFFERS, DWORD, DWORD_PTR);
|
||
|
#else
|
||
|
typedef BOOL (WINAPI *PFNHTTPSENDREQUESTEX) (HINTERNET, LPINTERNET_BUFFERSA, LPINTERNET_BUFFERS, DWORD, DWORD_PTR);
|
||
|
#endif
|
||
|
typedef BOOL (WINAPI *PFNINTERNETREADFILE) (HINTERNET, LPVOID, DWORD, LPDWORD);
|
||
|
typedef BOOL (WINAPI *PFNINTERNETWRITEFILE) (HINTERNET, LPCVOID, DWORD, LPDWORD);
|
||
|
typedef BOOL (WINAPI *PFNINTERNETCLOSEHANDLE) (HINTERNET);
|
||
|
typedef HINTERNET (WINAPI *PFNINTERNETOPEN) (LPCTSTR, DWORD, LPCTSTR, LPCTSTR, DWORD);
|
||
|
typedef HINTERNET (WINAPI *PFNINTERNETCONNECT) (HINTERNET, LPCTSTR, INTERNET_PORT, LPCTSTR, LPCTSTR, DWORD, DWORD, DWORD_PTR);
|
||
|
typedef HINTERNET (WINAPI *PFNHTTPOPENREQUEST) (HINTERNET, LPCTSTR, LPCTSTR, LPCTSTR, LPCTSTR, LPCTSTR *, DWORD, DWORD_PTR);
|
||
|
typedef BOOL (WINAPI *PFNHTTPADDREQUESTHEADERS) (HINTERNET, LPCTSTR, DWORD, DWORD);
|
||
|
typedef BOOL (WINAPI *PFNHTTPENDREQUEST) (HINTERNET, LPINTERNET_BUFFERS, DWORD, DWORD_PTR);
|
||
|
typedef BOOL (WINAPI *PFNINTERNETSETOPTION) (HINTERNET, DWORD, LPVOID, DWORD);
|
||
|
|
||
|
|
||
|
// InetmonSendReq Response callback.
|
||
|
//
|
||
|
typedef BOOL (CALLBACK *IPPRSPPROC)(CAnyConnection *pConnection,
|
||
|
HINTERNET hReq,
|
||
|
PCINETMONPORT pIniPort,
|
||
|
LPARAM lParam);
|
||
|
|
||
|
|
||
|
class CInetMon {
|
||
|
public:
|
||
|
|
||
|
CInetMon ();
|
||
|
~CInetMon ();
|
||
|
|
||
|
inline BOOL
|
||
|
bValid (VOID) CONST { return m_bValid; }
|
||
|
|
||
|
BOOL
|
||
|
InetmonSendReq(
|
||
|
HANDLE hPort,
|
||
|
LPBYTE lpIpp,
|
||
|
DWORD cbIpp,
|
||
|
IPPRSPPROC pfnRsp,
|
||
|
LPARAM lParam,
|
||
|
BOOL bLeaveCrit);
|
||
|
|
||
|
PCINETMONPORT
|
||
|
InetmonOpenPort(
|
||
|
LPCTSTR lpszPortName,
|
||
|
PBOOL pbXcv);
|
||
|
|
||
|
BOOL
|
||
|
InetmonReleasePort(
|
||
|
PCINETMONPORT pIniPort);
|
||
|
|
||
|
BOOL
|
||
|
InetmonClosePort(
|
||
|
PCINETMONPORT hPort,
|
||
|
HANDLE hPrinter);
|
||
|
|
||
|
BOOL
|
||
|
InetmonEnumPorts(
|
||
|
LPTSTR lpszServerName,
|
||
|
DWORD dwLevel,
|
||
|
LPBYTE pPorts,
|
||
|
DWORD cbBuf,
|
||
|
LPDWORD pcbNeeded,
|
||
|
LPDWORD pcReturned);
|
||
|
|
||
|
BOOL
|
||
|
InetmonDeletePort(
|
||
|
LPCTSTR lpszPortName,
|
||
|
HWND hWnd,
|
||
|
LPCTSTR lpszMonitorName);
|
||
|
|
||
|
BOOL
|
||
|
InetmonAddPort(
|
||
|
LPCTSTR lpszPortName,
|
||
|
LPCTSTR lpszMonitorName);
|
||
|
|
||
|
PCINETMONPORT
|
||
|
InetmonFindPort(
|
||
|
LPCTSTR lpszPortName);
|
||
|
|
||
|
private:
|
||
|
|
||
|
// Port-List Structure. This defines the global-header for the
|
||
|
// print-provider port-list.
|
||
|
//
|
||
|
typedef struct _INIMONPORTLIST {
|
||
|
HINTERNET hSession; // Handle for session connection.
|
||
|
int cRef; // Count of hSession opens.
|
||
|
PCINETMONPORT pIniFirstPort; // List of port-entries.
|
||
|
} INIMONPORTLIST;
|
||
|
|
||
|
typedef INIMONPORTLIST *PINIMONPORTLIST;
|
||
|
|
||
|
inline BOOL
|
||
|
_inet_validate_portname(
|
||
|
LPCTSTR lpszPortName);
|
||
|
|
||
|
PCINETMONPORT
|
||
|
_inet_find_port(
|
||
|
LPCTSTR lpszPortName);
|
||
|
|
||
|
PCINETMONPORT
|
||
|
_inet_create_port(
|
||
|
LPCTSTR lpszPortName,
|
||
|
PCPORTMGR pPortMgr);
|
||
|
|
||
|
BOOL
|
||
|
_inet_delete_port(
|
||
|
LPCTSTR lpszPortName);
|
||
|
|
||
|
DWORD
|
||
|
_inet_size_entry(
|
||
|
PCINETMONPORT pIniPort,
|
||
|
DWORD dwLevel);
|
||
|
|
||
|
LPBYTE
|
||
|
_inet_copy_entry(
|
||
|
PCINETMONPORT pIniPort,
|
||
|
DWORD dwLevel,
|
||
|
LPBYTE pPortInfo,
|
||
|
LPBYTE pEnd);
|
||
|
|
||
|
BOOL
|
||
|
_inet_is_xcv_open (
|
||
|
LPCTSTR lpszPortName,
|
||
|
LPTSTR *ppszServerName,
|
||
|
LPTSTR *ppszRealPortName,
|
||
|
LPBOOL pbXcv);
|
||
|
|
||
|
BOOL m_bValid;
|
||
|
PINIMONPORTLIST m_pPortList;
|
||
|
|
||
|
};
|
||
|
|
||
|
typedef class CInetMon* PCINETMON;
|
||
|
|
||
|
#endif
|