/*****************************************************************************\ * MODULE: portmgr.cxx * * The module contains routines for handling the http port connection * for internet priting * * Copyright (C) 1996-1998 Microsoft Corporation * Copyright (C) 1996-1997 Hewlett Packard * * History: * 22-Jul-1996 WeihaiC Created * \*****************************************************************************/ #ifndef _PORTMGR_H #define _PORTMGR_H #include "anycon.hxx" #include "lusrdata.hxx" #include "config.h" typedef class CInetMonPort* PCINETMONPORT; typedef BOOL (CALLBACK *IPPRSPPROC)(CAnyConnection *pConnection, HINTERNET hReq, PCINETMONPORT pIniPort, LPARAM lParam); class CStream; class CPortMgr : public CCriticalSection { public: CPortMgr (); ~CPortMgr (); BOOL ReadFile ( CAnyConnection *pConnection, HINTERNET hReq, LPVOID lpvBuffer, DWORD cbBuffer, LPDWORD lpcbRd); BOOL CheckConnection ( void); BOOL Create ( LPCTSTR lpszPortName); BOOL Init ( LPCTSTR lpszPortName); BOOL SendRequest( PCINETMONPORT pIniPort, LPBYTE lpIpp, DWORD cbIpp, IPPRSPPROC pfnRsp, LPARAM lParam); BOOL SendRequest( PCINETMONPORT pIniPort, CStream *pStream, IPPRSPPROC pfnRsp, LPARAM lParam); BOOL Remove (void); CLogonUserData *GetUserIfLastDecRef(CLogonUserData *); DWORD IncreaseUserRefCount(CLogonUserData *); BOOL ConfigurePort ( PINET_XCV_CONFIGURATION pXcvConfigurePortReqData, PINET_CONFIGUREPORT_RESPDATA pXcvAddPortRespData, DWORD cbSize, PDWORD cbSizeNeeded); BOOL GetCurrentConfiguration ( PINET_XCV_CONFIGURATION pXcvConfiguration); private: HINTERNET _OpenRequest ( CAnyConnection *pConnection); BOOL _CloseRequest ( CAnyConnection *pConnection, HINTERNET hReq); BOOL GetProxyInformation (VOID); BOOL _SendRequest ( CAnyConnection *pConnection, HINTERNET hJobReq, CStream *pStream); BOOL _IppValRsp( CAnyConnection *pConnection, HINTERNET hReq, LPARAM lParam); BOOL _IppValidate ( CAnyConnection *pConnection, HINTERNET hReq, LPCTSTR lpszPortName); BOOL _CheckConnection ( CAnyConnection *pConnection, LPCTSTR lpszPortName, LPTSTR lpszHost, LPTSTR lpszUri); CAnyConnection * _GetCurrentConnection (); BOOL _ForceAuth ( CAnyConnection *pConnection, LPCTSTR lpszPortName, LPTSTR lpszHost, LPTSTR lpszUri, PDWORD pdwAuthMethod); BOOL _IppForceAuth ( CAnyConnection *pConnection, HINTERNET hReq, LPCTSTR lpszPortName, PDWORD pdwAuthMethod); BOOL _IppForceAuthRsp( CAnyConnection *pConnection, HINTERNET hReq, LPARAM lParam); private: HINTERNET m_hSession; // Handle for session connection. HINTERNET m_hConnect; LPTSTR m_lpszPassword; LPTSTR m_lpszUserName; LPTSTR m_lpszHostName; LPTSTR m_lpszUri; LPTSTR m_lpszPortName; LPTSTR m_lpszShare; BOOL m_bPortCreate; BOOL m_bValid; BOOL m_bForceAuthSupported; CLogonUserList m_UserList; // List of users used for ref-counting. CPortConfigDataMgr *m_pPortSettingMgr; BOOL m_bSecure; INTERNET_PORT m_nPort; }; typedef class CPortMgr* PCPORTMGR; #endif // #ifndef _PORTMGR_H