Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1995-1996 Microsoft Corporation
Module Name :
isapi.hxx
Abstract:
This module declares the class for the HTTP Extension objects.
Author:
Murali R. Krishnan ( MuraliK ) 17-July-1996
Environment: User Mode - Win32
Project:
W3 Services DLL
Revision History:
--*/
# ifndef _ISAPI_HXX_
# define _ISAPI_HXX_
/************************************************************
* Include Headers ************************************************************/
#if 0
extern "C" { # include <nt.h>
# include <ntrtl.h>
# include <nturtl.h>
# include <windows.h>
# include <string.h>
};
# endif // 0
# include "buffer.hxx"
# include <iisextp.h>
//
// SE_EXIT_PERIOD is the time to wait for all extensions to get out during
// shutdown (in seconds). Note the service controller will blow away the
// service before this timeout period expires
//
#define SE_EXIT_PERIOD (900) // seconds
/************************************************************
* Forward References ************************************************************/ class WAM_EXEC_INFO;
/************************************************************
* Type Definitions ************************************************************/
struct EXEC_DESCRIPTOR;
/*++
class HSE_BASE: o Defines the class which will be the base class for legacy ISAPI apps and the TAAL-based apps
--*/ class HSE_BASE {
public: HSE_BASE( IN const CHAR * pszModuleName, IN BOOL fCache ) : m_nRefs ( 1), m_strModuleName( pszModuleName ), m_fValid ( TRUE), m_fCache ( fCache ) { if ( !m_strModuleName.IsValid()) { SetValid( FALSE); } }
virtual ~HSE_BASE( VOID) {};
virtual BOOL IsValid( VOID) const { return ( m_fValid && (m_nRefs > 0)); } #if DBG
virtual BOOL IsKindaValid( VOID) const { return ( m_fValid ); } #endif
virtual BOOL IsMatch( IN const char * pchModuleName, IN DWORD cchModuleName) const = 0; virtual DWORD ExecuteRequest( IN WAM_EXEC_INFO * pWamExecInfo ) = 0;
virtual BOOL AccessCheck( HANDLE hImpersonation, BOOL fCacheImpersonation) = 0; virtual BOOL LoadAcl( VOID ) = 0; virtual BOOL Cleanup(VOID) = 0; virtual DWORD GetDirMonitorId(void) const { return (0); }
BOOL IsCached( VOID ) const { return m_fCache; }
VOID SetValid( BOOL fVal) { m_fValid = fVal; } LONG Reference( VOID) { return ( InterlockedIncrement( &m_nRefs)); } LONG Dereference( VOID) { return ( InterlockedDecrement( &m_nRefs)); } LONG RefCount(VOID) const { return ( m_nRefs); }
const CHAR * QueryModuleName( VOID ) const { return m_strModuleName.QueryStr(); }
LIST_ENTRY m_ListEntry;
private: LONG m_nRefs; BOOL m_fValid; BOOL m_fCache;
protected: STR m_strModuleName;
}; // class HSE_BASE
typedef HSE_BASE * PHSE;
# endif // _ISAPI_HXX_
/************************ End of File ***********************/
|