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.
157 lines
3.4 KiB
157 lines
3.4 KiB
/*++
|
|
|
|
Copyright (c) 1995-1997 Microsoft Corporation
|
|
|
|
Module Name :
|
|
wamobj.hxx
|
|
|
|
Abstract:
|
|
Header file for the WAM (web application manager) object
|
|
|
|
Author:
|
|
David Kaplan ( DaveK ) 11-Mar-1997
|
|
Wade Hilmo ( WadeH ) 08-Sep-2000
|
|
|
|
Environment:
|
|
User Mode - Win32
|
|
|
|
Project:
|
|
Wam DLL
|
|
|
|
--*/
|
|
|
|
# ifndef _WAMOBJ_HXX_
|
|
# define _WAMOBJ_HXX_
|
|
|
|
|
|
# define WAM_SIGNATURE (DWORD )' MAW' // will become "WAM " on debug
|
|
# define WAM_SIGNATURE_FREE (DWORD )'fMAW' // will become "WAMf" on debug
|
|
|
|
|
|
/************************************************************
|
|
* Include Headers
|
|
************************************************************/
|
|
# include "iwam.h"
|
|
# include "resource.h"
|
|
# include <atlbase.h>
|
|
# include <w3isapi.h>
|
|
|
|
class CWamModule: public CComModule
|
|
{
|
|
public:
|
|
// LONG Lock();
|
|
// LONG Unlock();
|
|
};
|
|
|
|
extern CWamModule _Module;
|
|
# include <atlcom.h>
|
|
|
|
|
|
/************************************************************
|
|
* Type Definitions
|
|
************************************************************/
|
|
|
|
/*++
|
|
class WAM
|
|
|
|
Class definition for the WAM object.
|
|
|
|
--*/
|
|
class ATL_NO_VTABLE WAM :
|
|
public CComObjectRootEx<CComMultiThreadModel>,
|
|
public CComCoClass<WAM, &CLSID_Wam>,
|
|
public IWam
|
|
{
|
|
public:
|
|
WAM()
|
|
: m_dwSignature( WAM_SIGNATURE),
|
|
m_fShuttingDown( FALSE )
|
|
{
|
|
}
|
|
|
|
~WAM()
|
|
{
|
|
// check for memory corruption and dangling pointers
|
|
m_dwSignature = WAM_SIGNATURE_FREE;
|
|
}
|
|
|
|
DECLARE_GET_CONTROLLING_UNKNOWN()
|
|
DECLARE_REGISTRY_RESOURCEID(IDR_WAM)
|
|
|
|
BEGIN_COM_MAP(WAM)
|
|
COM_INTERFACE_ENTRY(IWam)
|
|
END_COM_MAP()
|
|
|
|
HRESULT FinalConstruct()
|
|
{
|
|
return CallerHasAccess();
|
|
}
|
|
|
|
void FinalRelease()
|
|
{
|
|
}
|
|
|
|
|
|
public:
|
|
|
|
HRESULT STDMETHODCALLTYPE
|
|
WamProcessIsapiRequest(
|
|
BYTE *pCoreData,
|
|
DWORD cbCoreData,
|
|
IIsapiCore *pIsapiCore,
|
|
DWORD *pdwHseResult
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE
|
|
WamProcessIsapiCompletion(
|
|
DWORD64 IsapiContext,
|
|
DWORD cbCompletion,
|
|
DWORD cbCompletionStatus
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE
|
|
WamInitProcess(
|
|
BYTE *szIsapiModule,
|
|
DWORD cbIsapiModule,
|
|
DWORD *pdwProcessId,
|
|
LPSTR szClsid,
|
|
LPSTR szIsapiHandlerInstance,
|
|
DWORD dwCallingProcess
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE
|
|
WamUninitProcess(
|
|
VOID
|
|
);
|
|
|
|
HRESULT STDMETHODCALLTYPE
|
|
WamMarshalAsyncReadBuffer(
|
|
DWORD64 IsapiContext,
|
|
BYTE *pBuffer,
|
|
DWORD cbBuffer
|
|
);
|
|
|
|
private:
|
|
|
|
HRESULT
|
|
CallerHasAccess();
|
|
|
|
private:
|
|
|
|
DWORD m_dwSignature;
|
|
BOOL m_fInProcess; // inproc or oop?
|
|
BOOL m_fInPool; // can have multiple WAMs
|
|
BOOL m_fShuttingDown; // shutting down?
|
|
|
|
static HMODULE sm_hIsapiModule;
|
|
static PFN_ISAPI_TERM_MODULE sm_pfnTermIsapiModule;
|
|
static PFN_ISAPI_PROCESS_REQUEST sm_pfnProcessIsapiRequest;
|
|
static PFN_ISAPI_PROCESS_COMPLETION sm_pfnProcessIsapiCompletion;
|
|
|
|
}; // class WAM
|
|
|
|
typedef WAM * PWAM;
|
|
|
|
# endif // _WAMOBJ_HXX_
|
|
|
|
/************************ End of File ***********************/
|