windows-nt/Source/XPSP1/NT/inetsrv/iis/svcs/cmp/asp/context.h
2020-09-26 16:20:57 +08:00

87 lines
2.1 KiB
C++

/*===================================================================
Microsoft Denali
Microsoft Confidential.
Copyright 1996 Microsoft Corporation. All Rights Reserved.
Component: ScriptingContext object
File: Context.h
Owner: SteveBr
This file contains the header info for defining the Context object.
Note: This was largely stolen from Kraig Brocjschmidt's Inside OLE2
second edition, chapter 14 Beeper v5.
===================================================================*/
#ifndef SCRIPTING_CONTEXT_H
#define SCRIPTING_CONTEXT_H
#include "debug.h"
#include "util.h"
#include "request.h"
#include "response.h"
#include "server.h"
#include "asptlb.h"
#include "memcls.h"
/*===================================================================
C S c r i p t i n g C o n t e x t
===================================================================*/
class CScriptingContext : public IScriptingContextImpl
{
private:
// Ref count
ULONG m_cRef;
// Intrinsics
IApplicationObject *m_pAppln;
ISessionObject *m_pSession;
IRequest *m_pRequest;
IResponse *m_pResponse;
IServer *m_pServer;
// Interface to indicate that we support ErrorInfo reporting
CSupportErrorInfo m_ImpISuppErr;
public:
CScriptingContext()
{
Assert(FALSE); // Default constructor should not be used
}
CScriptingContext
(
IApplicationObject *pAppln,
ISessionObject *pSession,
IRequest *pRequest,
IResponse *pResponse,
IServer *pServer
);
~CScriptingContext();
// Non-delegating object IUnknown
STDMETHODIMP QueryInterface(REFIID, PPVOID);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
// IScriptingContext implementation
STDMETHODIMP get_Request(IRequest **ppRequest);
STDMETHODIMP get_Response(IResponse **ppResponse);
STDMETHODIMP get_Server(IServer **ppServer);
STDMETHODIMP get_Session(ISessionObject **ppSession);
STDMETHODIMP get_Application(IApplicationObject **ppApplication);
// Cache on per-class basis
ACACHE_INCLASS_DEFINITIONS()
};
#endif // SCRIPTING_CONTEXT_H