|
|
//
// MODULE: LocalECB.H
//
// PURPOSE: Interface of CLocalECB class, which implements CAbstractECB by emulating Win32's
// EXTENSION_CONTROL_BLOCK.
//
// PROJECT: Generic Troubleshooter DLL for Microsoft AnswerPoint - Local TS only
//
// COMPANY: Saltmine Creative, Inc. (206)-284-7511 [email protected]
//
// AUTHOR: Joe Mabel
//
// ORIGINAL DATE: 01-07-99
//
// NOTES:
//
// Version Date By Comments
//--------------------------------------------------------------------
// V3.1 01-07-99 JM Original
//
#if !defined(_AFX_LOCAL_INCLUDED_)
#define _AFX_LOCAL_INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
#include "apgtsECB.h"
#include "TSNameValueMgr.h"
#include "apgtsstr.h"
class CRenderConnector;
class CLocalECB : public CAbstractECB, public CTSNameValueMgr { // emulating EXTENSION_CONTROL_BLOCK data members
DWORD m_dwHttpStatusCode; // only of relevance for debugging.
CString& m_strWriteClient; HANDLE m_hEvent; // handler of event, main thread is waiting for;
// if NULL, main thread is not waiting for anything.
CRenderConnector* m_pRenderConnector; // pointer to ATL control connector;
// if NULL, write result page to m_strWriteClient,
// otherwise call CRenderConnector::Render function.
public: CLocalECB( const VARIANT& name, const VARIANT& value, int count, HANDLE hEvent, CString* pstrWriteClient, CRenderConnector* pRenderConnector, bool bSetLocale, CString& strLocaleSetting ); CLocalECB( const CArrNameValue& arr, HANDLE hEvent, CString* pstrWriteClient, CRenderConnector* pRenderConnector, bool bSetLocale, CString& strLocaleSetting ); CLocalECB(CString* pstrWriteClient); ~CLocalECB();
// ======= inherited pure virtuals must be redefined =======
virtual HCONN GetConnID() const; virtual DWORD SetHttpStatusCode(DWORD dwHttpStatusCode); virtual LPSTR GetMethod() const; virtual LPSTR GetQueryString() const; virtual DWORD GetBytesAvailable() const; virtual LPBYTE GetData() const; virtual LPSTR GetContentType() const;
virtual BOOL GetServerVariable ( /*HCONN hConn,*/ LPCSTR lpszVariableName, // note, more const-ness than EXTENSION_CONTROL_BLOCK
LPVOID lpvBuffer, LPDWORD lpdwSize );
virtual BOOL WriteClient ( /*HCONN ConnID,*/ LPCSTR Buffer, // EXTENSION_CONTROL_BLOCK::WriteClient uses LPVOID, but it should
// only be legit to pass SBCS text, so we're enforcing that.
// Also, we're adding const-ness.
LPDWORD lpdwBytes /* , DWORD dwReserved */ );
virtual BOOL ServerSupportFunction ( /*HCONN hConn,*/ // we always use the HCONN for this same COnlineECB
DWORD dwHSERRequest, LPVOID lpvBuffer, LPDWORD lpdwSize, LPDWORD lpdwDataType );
// specific for CLocalECB class
public: const CString& GetWriteClient() const; // get data written by WriteClient()
private: // Specific for setting locales.
bool m_bSetLocale; CString m_strLocaleSetting; };
#endif // !defined(_AFX_LOCAL_INCLUDED_)
|