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.
|
|
/*-----------------------------------------------------------------------------
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
|