www.pudn.com > mod_rssim6.zip > ActiveScriptHost.h


/************************************************************ 
* FILENAME : ActiveScriptHost.h 
* INITIAL CODING : Ernest Laurentin (EL) 
*************************************************************/ 
 
#ifndef ACTIVESCRIPT_HOST 
#define ACTIVESCRIPT_HOST 
#include  
 
#define LANG_ENGLISH_NEUTRAL	(MAKELANGID(LANG_ENGLISH, SUBLANG_NEUTRAL)) 
#define LOCALE_SCRIPT_DEFAULT	(MAKELCID(LANG_ENGLISH_NEUTRAL, SORT_DEFAULT)) 
 
#define ACTIVS_HOST		L"ScriptHost" 
#define SCRIPTITEM_NAMEDITEM		(SCRIPTITEM_ISSOURCE | \ 
									 SCRIPTITEM_ISVISIBLE | \ 
									 SCRIPTITEM_GLOBALMEMBERS) 
 
#ifdef _AFXDLL 
class CActiveScriptHost : public CCmdTarget 
#else 
class AFX_NOVTABLE CActiveScriptHost : public CCmdTarget 
#endif 
{ 
	DECLARE_DYNAMIC(CActiveScriptHost) 
 
public: 
// Constructors 
	CActiveScriptHost(); 
	virtual ~CActiveScriptHost(); 
 
// Operations 
	BOOL SetHostWindow(HWND hWnd); 
	BOOL CreateEngine(LPCOLESTR pstrProgID); 
	BOOL AddScriptItem(LPCOLESTR pstrNamedItem, LPUNKNOWN lpUnknown, DWORD dwFlags = SCRIPTITEM_NAMEDITEM); 
	BOOL AddScriptCode(LPCOLESTR pstrScriptCode); 
	BOOL AddScriptlet(LPCOLESTR pstrDefaultName, LPCOLESTR pstrCode, 
						LPCOLESTR pstrItemName, LPCOLESTR pstrEventName); 
	// Helper functions 
	LPDISPATCH CreateObjectHelper(LPCOLESTR bstrProgID); 
	WCHAR*	ReadTextFileHelper(LPCOLESTR strFileName); 
	void	DestroyDataHelper(LPVOID lpvData); 
	HRESULT InvokeFuncHelper(LPCOLESTR lpszName, VARIANT* pvarParams, int nParams, VARIANT* pvarRet = NULL); 
 
   BOOL IsRunning() { return(m_xActiveScriptSite.m_running);}; 
 
protected: 
	void CommonConstruct(); 
	void ReleaseObjects(); 
	CMapStringToPtr		mapNamedItems;	// Named items 
	IActiveScriptParse* m_pAxsParse;	// Active Script parse object 
	IActiveScript*		m_pAxsScript;	// Active Script 
	HWND				m_hHostWnd;		// Host Window 
 
// Interface Maps 
public: 
	DECLARE_INTERFACE_MAP() 
 
	BEGIN_INTERFACE_PART(ActiveScriptSite, IActiveScriptSite) 
		STDMETHOD(GetLCID)(LCID*); 
		STDMETHOD(GetItemInfo)(LPCOLESTR, DWORD, LPUNKNOWN*, LPTYPEINFO*); 
        STDMETHOD(GetDocVersionString)(BSTR*); 
        STDMETHOD(OnScriptTerminate)(const VARIANT*, const EXCEPINFO*); 
        STDMETHOD(OnStateChange)(SCRIPTSTATE); 
        STDMETHOD(OnScriptError)(IActiveScriptError*); 
        STDMETHOD(OnEnterScript)(); 
        STDMETHOD(OnLeaveScript)(); 
 
        BOOL m_running; 
	END_INTERFACE_PART(ActiveScriptSite) 
 
	BEGIN_INTERFACE_PART(ActiveScriptSiteWindow, IActiveScriptSiteWindow) 
		STDMETHOD(EnableModeless)(BOOL); 
		STDMETHOD(GetWindow)(HWND*); 
	END_INTERFACE_PART(ActiveScriptSiteWindow) 
 
	//DECLARE_DISPATCH_MAP() 
}; 
 
#endif // ACTIVESCRIPT_HOST