📄 scriptengine.h
字号:
#if !defined(AFX_SCRIPTENGINE_H__7AE78559_3603_4A94_828F_867399AE3CEF__INCLUDED_)
#define AFX_SCRIPTENGINE_H__7AE78559_3603_4A94_828F_867399AE3CEF__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <activscp.h>
class CScriptEngine : public CCmdTarget
{
DECLARE_DYNCREATE(CScriptEngine)
CScriptEngine();
virtual ~CScriptEngine();
BOOL Create(REFCLSID rclsid);
SCRIPTSTATE GetScriptState();
BOOL AddNamedItem(LPCOLESTR pstrName, DWORD dwFlags = SCRIPTITEM_ISSOURCE | SCRIPTITEM_ISVISIBLE);
BOOL AddTypeLib(REFGUID guidTypeLib, DWORD dwMaj, DWORD dwMin, DWORD dwFlags);
IDispatch* GetScriptDispatch(LPCOLESTR pstrItemName);
BOOL ParseScriptText(LPCOLESTR pstrCode,
LPCOLESTR pstrItemName = NULL,
IUnknown* punkContext = NULL,
LPCOLESTR pstrEndDelimiter = NULL,
DWORD dwSourceContextCookie = 0,
ULONG ulStartingLineNumber = 0,
DWORD dwFlags = 0,
VARIANT* pvarResult = NULL,
EXCEPINFO* pExcepInfo = NULL);
BOOL Connect();
BOOL Disconnect();
BOOL Close();
public:
CString GetLastError() { return m_strLastError; }
virtual void CleanUp();
// IActiveScriptSite overridables
virtual HRESULT OnGetLCID(LCID* pLCID);
virtual HRESULT OnGetItemInfo(LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown** ppUnknownItem, ITypeInfo** ppTypeInfo);
virtual BSTR OnGetDocVersionString();
virtual void OnScriptTerminate(const VARIANT* pVarResult, const EXCEPINFO* pExcepInfo);
virtual void OnStateChange(SCRIPTSTATE ssScriptState);
virtual void OnScriptError(IActiveScriptError* pActiveScriptError);
virtual void OnEnterScript();
virtual void OnLeaveScript();
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CScriptEngine)
//}}AFX_VIRTUAL
protected:
CString m_strLastError;
DECLARE_INTERFACE_MAP()
// IActiveScriptSite
BEGIN_INTERFACE_PART(ActiveScriptSite, IActiveScriptSite)
INIT_INTERFACE_PART(CActiveScriptSite, ActiveScriptSite)
STDMETHOD (GetLCID)(LCID *plcid);
STDMETHOD (GetItemInfo)(LPCOLESTR pstwrName, DWORD dwReturnMask, IUnknown** ppunkItem, ITypeInfo** ppTypeInfo);
STDMETHOD (GetDocVersionString)(BSTR *pstrVersionString);
STDMETHOD (OnScriptTerminate) (const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo);
STDMETHOD (OnStateChange)(SCRIPTSTATE ssScriptState);
STDMETHOD (OnScriptError)(IActiveScriptError *pase);
STDMETHOD (OnEnterScript)();
STDMETHOD (OnLeaveScript)();
END_INTERFACE_PART(ActiveScriptSite)
private:
HRESULT m_hrScriptError;
IActiveScript* m_pActiveScript;
IActiveScriptParse* m_pActiveScriptParse;
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_SCRIPTENGINE_H__7AE78559_3603_4A94_828F_867399AE3CEF__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -