123 lines
2.9 KiB
C
123 lines
2.9 KiB
C
|
/*-----------------------------------------------------------------------------
|
||
|
Microsoft Denali
|
||
|
|
||
|
Microsoft Confidential
|
||
|
Copyright 1996 Microsoft Corporation. All Rights Reserved.
|
||
|
|
||
|
Component: Executive
|
||
|
|
||
|
File: Executor.h
|
||
|
|
||
|
Owner: DGottner
|
||
|
|
||
|
Executor API definition
|
||
|
-----------------------------------------------------------------------------*/
|
||
|
|
||
|
#ifndef _EXECUTOR_H
|
||
|
#define _EXECUTOR_H
|
||
|
|
||
|
// Includes -------------------------------------------------------------------
|
||
|
|
||
|
#include "HitObj.h"
|
||
|
|
||
|
|
||
|
// Forward References ---------------------------------------------------------
|
||
|
|
||
|
class CResponse;
|
||
|
class CRequest;
|
||
|
class CServer;
|
||
|
class CScriptingNamespace;
|
||
|
|
||
|
|
||
|
// Error codes ----------------------------------------------------------------
|
||
|
|
||
|
#define E_PAGE_HAS_SESSAPP_OBJECTS 0x8000E001L
|
||
|
|
||
|
|
||
|
// Types and Constants --------------------------------------------------------
|
||
|
|
||
|
class CIntrinsicObjects
|
||
|
{
|
||
|
private:
|
||
|
BOOL m_fIsChild;
|
||
|
CResponse * m_pResponse;
|
||
|
CRequest * m_pRequest;
|
||
|
CServer * m_pServer;
|
||
|
CScriptingNamespace * m_pScriptingNamespace;
|
||
|
|
||
|
public:
|
||
|
inline CResponse * PResponse() const { return m_pResponse; }
|
||
|
inline CRequest * PRequest() const { return m_pRequest; }
|
||
|
inline CServer * PServer() const { return m_pServer; }
|
||
|
inline CScriptingNamespace *PScriptingNamespace() const { return m_pScriptingNamespace; }
|
||
|
|
||
|
CIntrinsicObjects()
|
||
|
{
|
||
|
m_fIsChild = FALSE;
|
||
|
m_pResponse = NULL;
|
||
|
m_pRequest = NULL;
|
||
|
m_pServer = NULL;
|
||
|
m_pScriptingNamespace = NULL;
|
||
|
}
|
||
|
|
||
|
~CIntrinsicObjects()
|
||
|
{
|
||
|
Cleanup();
|
||
|
}
|
||
|
|
||
|
HRESULT Prepare(CSession *pSession);
|
||
|
HRESULT PrepareChild(CResponse *pResponse, CRequest *pRequest, CServer *pServer);
|
||
|
HRESULT Cleanup();
|
||
|
};
|
||
|
|
||
|
struct TemplateGoodies
|
||
|
{
|
||
|
int iScriptBlock;
|
||
|
CTemplate * pTemplate;
|
||
|
};
|
||
|
|
||
|
// CONSIDER: declare pScriptEngine to be a CActiveScriptEngine, because that's its
|
||
|
// actual type.
|
||
|
//
|
||
|
struct ScriptingInfo
|
||
|
{
|
||
|
CHAR * szScriptEngine; // name of this scripting engine
|
||
|
PROGLANG_ID * pProgLangId; // ptr to prog lang id of the script engine
|
||
|
CScriptEngine * pScriptEngine; // pointer to scripting engine
|
||
|
TemplateGoodies LineMapInfo; // used to map lines back to VBScript
|
||
|
};
|
||
|
|
||
|
struct ActiveEngineInfo
|
||
|
{
|
||
|
int cEngines; // required engines
|
||
|
int cActiveEngines; // successfully instantiated engines
|
||
|
|
||
|
ScriptingInfo *rgActiveEngines; // pointer to array of engines
|
||
|
|
||
|
// when only one engine rgActiveEngines points to here
|
||
|
ScriptingInfo siOneActiveEngine;
|
||
|
};
|
||
|
|
||
|
|
||
|
// Prototypes -----------------------------------------------------------------
|
||
|
|
||
|
HRESULT Execute
|
||
|
(
|
||
|
CTemplate *pTemplate,
|
||
|
CHitObj *pHitObj,
|
||
|
const CIntrinsicObjects &intrinsics,
|
||
|
BOOL fChild = FALSE
|
||
|
);
|
||
|
|
||
|
HRESULT LoadTemplate
|
||
|
(
|
||
|
const TCHAR *szFile,
|
||
|
CHitObj *pHitObj,
|
||
|
CTemplate **ppTemplate,
|
||
|
const CIntrinsicObjects &intrinsics,
|
||
|
BOOL fGlobalAsa,
|
||
|
BOOL *pfTemplateInCache
|
||
|
);
|
||
|
|
||
|
#endif // _EXECUTOR_H
|