⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 activescripthost.h

📁 mod_RSsim
💻 H
字号:
/************************************************************
* FILENAME : ActiveScriptHost.h
* INITIAL CODING : Ernest Laurentin (EL)
*************************************************************/

#ifndef ACTIVESCRIPT_HOST
#define ACTIVESCRIPT_HOST
#include <activscp.h>

#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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -