-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathRubyize.h
112 lines (89 loc) · 3.15 KB
/
Rubyize.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*
* Copyright(c) 2009 arton
*
* You may distribute under the terms of either the GNU General Public
* License
*
* $Date$
*/
#ifndef __RUBYIZE_H_
#define __RUBYIZE_H_
#include "resource.h"
#ifndef __IRubyWrapper_INTERFACE_DEFINED__
#include "GlobalRubyScript.h"
#else
#include "rubyscript.h"
#endif
/////////////////////////////////////////////////////////////////////////////
// CRubyize
class ATL_NO_VTABLE CRubyize :
public CComObjectRootEx<CComSingleThreadModel>,
#ifndef __IRubyWrapper_INTERFACE_DEFINED__
public CComCoClass<CRubyize, &CLSID_SimpleRubyize>,
#else
public CComCoClass<CRubyize, &CLSID_Rubyize>,
#endif
public ISupportErrorInfo,
public IActiveScriptSite,
#ifndef __IRubyWrapper_INTERFACE_DEFINED__
public IDispatchImpl<IRubyize, &IID_IRubyize, &LIBID_GRSCRIPTLib>
#else
public IDispatchImpl<IRubyize, &IID_IRubyize, &LIBID_RSCRIPTLib>
#endif
{
public:
CRubyize()
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_RUBYIZE)
DECLARE_PROTECT_FINAL_CONSTRUCT()
BEGIN_COM_MAP(CRubyize)
COM_INTERFACE_ENTRY(IRubyize)
COM_INTERFACE_ENTRY(IDispatch)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
COM_INTERFACE_ENTRY(IActiveScriptSite)
END_COM_MAP()
HRESULT FinalConstruct();
void FinalRelease();
// ISupportsErrorInfo
STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);
// IActiveScriptSite
HRESULT STDMETHODCALLTYPE GetLCID(
/* [out] */ LCID __RPC_FAR *plcid);
HRESULT STDMETHODCALLTYPE GetItemInfo(
/* [in] */ LPCOLESTR pstrName,
/* [in] */ DWORD dwReturnMask,
/* [out] */ IUnknown __RPC_FAR *__RPC_FAR *ppiunkItem,
/* [out] */ ITypeInfo __RPC_FAR *__RPC_FAR *ppti);
HRESULT STDMETHODCALLTYPE GetDocVersionString(
/* [out] */ BSTR __RPC_FAR *pbstrVersion);
HRESULT STDMETHODCALLTYPE OnScriptTerminate(
/* [in] */ const VARIANT __RPC_FAR *pvarResult,
/* [in] */ const EXCEPINFO __RPC_FAR *pexcepinfo);
HRESULT STDMETHODCALLTYPE OnStateChange(
/* [in] */ SCRIPTSTATE ssScriptState);
HRESULT STDMETHODCALLTYPE OnScriptError(
/* [in] */ IActiveScriptError __RPC_FAR *pscripterror);
HRESULT STDMETHODCALLTYPE OnEnterScript( void);
HRESULT STDMETHODCALLTYPE OnLeaveScript( void);
// IRubyize
public:
HRESULT STDMETHODCALLTYPE get_Version(
/* [retval][out] */ BSTR __RPC_FAR *pVersion);
HRESULT STDMETHODCALLTYPE get_RubyVersion(
/* [retval][out] */ BSTR __RPC_FAR *pVersion);
HRESULT STDMETHODCALLTYPE rubyize(
/* [in] */ VARIANT val,
/* [retval][out] */ VARIANT __RPC_FAR *pObj);
HRESULT STDMETHODCALLTYPE erubyize(
/* [in] */ BSTR script,
/* [retval][out] */ VARIANT __RPC_FAR *pObj);
private:
#ifndef __IRubyWrapper_INTERFACE_DEFINED__
CComObject<CGlobalRubyScript>* m_pRubyScript;
#else
CComObject<CRubyScript>* m_pRubyScript;
#endif
HRESULT Call(LPCOLESTR method, int cargs, VARIANT* args, VARIANT* pResult);
};
#endif //__RUBYIZE_H_