#ifndef _GENERALHANDLER_HXX_ #define _GENERALHANDLER_HXX_ class W3_GENERAL_HANDLER : public W3_HANDLER { public: W3_GENERAL_HANDLER( W3_CONTEXT * pW3Context, HTTP_STATUS httpStatus, HTTP_SUB_ERROR httpSubError = HttpNoSubError ) : W3_HANDLER( pW3Context ) { _httpStatus = httpStatus; _httpSubError = httpSubError; } ~W3_GENERAL_HANDLER() { } WCHAR * QueryName( VOID ) { return L"GeneralHandler"; } CONTEXT_STATUS DoWork( VOID ); CONTEXT_STATUS OnCompletion( DWORD cbCompletion, DWORD dwCompletionStatus ) { return CONTEXT_STATUS_CONTINUE; } static HRESULT Initialize( VOID ); static VOID Terminate( VOID ); VOID * operator new( size_t size ) { DBG_ASSERT( size == sizeof( W3_GENERAL_HANDLER ) ); DBG_ASSERT( sm_pachGeneralHandlers != NULL ); return sm_pachGeneralHandlers->Alloc(); } VOID operator delete( VOID * pGeneralHandler ) { DBG_ASSERT( pGeneralHandler != NULL ); DBG_ASSERT( sm_pachGeneralHandlers != NULL ); DBG_REQUIRE( sm_pachGeneralHandlers->Free( pGeneralHandler ) ); } private: HTTP_STATUS _httpStatus; HTTP_SUB_ERROR _httpSubError; static ALLOC_CACHE_HANDLER* sm_pachGeneralHandlers; }; #endif