Phasor 3.3.0
Stack VM based Programming Language
Loading...
Searching...
No Matches
NativeRuntime_com.hpp
Go to the documentation of this file.
1#pragma once
2#include <Windows.h>
3#include <activscp.h>
4
5#include <functional>
6#include <string>
7#include <unordered_map>
8#include <unordered_set>
9
11
12// {c5318f33-2d87-4e95-95b7-2928cd57a5d7}
13static const GUID CLSID_PhasorEngine = { 0xc5318f33, 0x2d87, 0x4e95, { 0x95, 0xb7, 0x29, 0x28, 0xcd, 0x57, 0xa5, 0xd7 } };
14
15class PhasorScriptEngine final :
16 public IActiveScript,
17 public IActiveScriptParse
18{
19 long refCount = 1;
20
22
23 SCRIPTSTATE state = SCRIPTSTATE_UNINITIALIZED;
24 IActiveScriptSite* site = nullptr;
25
26public:
27 virtual ~PhasorScriptEngine() = default;
28
29 HRESULT __stdcall QueryInterface(REFIID riid, void** ppv) override;
30 ULONG __stdcall AddRef() override;
31 ULONG __stdcall Release() override;
32
33 HRESULT __stdcall SetScriptSite(IActiveScriptSite* pSite) override;
34 HRESULT __stdcall GetScriptSite(REFIID riid, void** ppvObject) override;
35 HRESULT __stdcall SetScriptState(SCRIPTSTATE state) override;
36 HRESULT __stdcall GetScriptState(SCRIPTSTATE* pss) override;
37 HRESULT __stdcall Close() override;
38 HRESULT __stdcall AddNamedItem(LPCOLESTR name, DWORD flags) override;
39 HRESULT __stdcall AddTypeLib(REFGUID rguidTypeLib, DWORD dwMajor, DWORD dwMinor, DWORD dwFlags) override;
40 HRESULT __stdcall GetScriptDispatch(LPCOLESTR name, IDispatch** ppdisp) override;
41 HRESULT __stdcall GetCurrentScriptThreadID(SCRIPTTHREADID* pstidThread) override;
42 HRESULT __stdcall GetScriptThreadID(DWORD dwWin32ThreadId, SCRIPTTHREADID* pstidThread) override;
43 HRESULT __stdcall GetScriptThreadState(SCRIPTTHREADID stidThread, SCRIPTTHREADSTATE* pstsState) override;
44 HRESULT __stdcall InterruptScriptThread(SCRIPTTHREADID stidThread, const EXCEPINFO* pexcepinfo, DWORD dwFlags) override;
45 HRESULT __stdcall Clone(IActiveScript** ppscript) override;
46
47 HRESULT __stdcall InitNew() override;
48 HRESULT __stdcall AddScriptlet(LPCOLESTR defaultName, LPCOLESTR code, LPCOLESTR itemName, LPCOLESTR subItemName,
49 LPCOLESTR eventName, LPCOLESTR delimiter,
50#if defined(_WIN64)
51 DWORDLONG sourceContextCookie,
52#else
53 DWORD sourceContextCookie,
54#endif
55 ULONG startingLine, DWORD flags, BSTR* pbstrName, EXCEPINFO* pexcepinfo) override;
56 HRESULT __stdcall ParseScriptText(
57 LPCOLESTR code,
58 LPCOLESTR itemName,
59 IUnknown* context,
60 LPCOLESTR delimiter,
61#if defined(_WIN64)
62 DWORDLONG sourceContextCookie,
63#else
64 DWORD sourceContextCookie,
65#endif
66 ULONG startingLine,
67 DWORD flags,
68 VARIANT* result,
69 EXCEPINFO* ex
70 ) override;
71};
static const GUID CLSID_PhasorEngine
ULONG __stdcall Release() override
HRESULT __stdcall QueryInterface(REFIID riid, void **ppv) override
HRESULT __stdcall AddTypeLib(REFGUID rguidTypeLib, DWORD dwMajor, DWORD dwMinor, DWORD dwFlags) override
HRESULT __stdcall GetScriptThreadState(SCRIPTTHREADID stidThread, SCRIPTTHREADSTATE *pstsState) override
virtual ~PhasorScriptEngine()=default
HRESULT __stdcall InterruptScriptThread(SCRIPTTHREADID stidThread, const EXCEPINFO *pexcepinfo, DWORD dwFlags) override
HRESULT __stdcall GetScriptThreadID(DWORD dwWin32ThreadId, SCRIPTTHREADID *pstidThread) override
HRESULT __stdcall InitNew() override
HRESULT __stdcall AddScriptlet(LPCOLESTR defaultName, LPCOLESTR code, LPCOLESTR itemName, LPCOLESTR subItemName, LPCOLESTR eventName, LPCOLESTR delimiter, DWORD sourceContextCookie, ULONG startingLine, DWORD flags, BSTR *pbstrName, EXCEPINFO *pexcepinfo) override
HRESULT __stdcall GetCurrentScriptThreadID(SCRIPTTHREADID *pstidThread) override
HRESULT __stdcall ParseScriptText(LPCOLESTR code, LPCOLESTR itemName, IUnknown *context, LPCOLESTR delimiter, DWORD sourceContextCookie, ULONG startingLine, DWORD flags, VARIANT *result, EXCEPINFO *ex) override
HRESULT __stdcall SetScriptState(SCRIPTSTATE state) override
HRESULT __stdcall Close() override
HRESULT __stdcall Clone(IActiveScript **ppscript) override
HRESULT __stdcall GetScriptDispatch(LPCOLESTR name, IDispatch **ppdisp) override
HRESULT __stdcall SetScriptSite(IActiveScriptSite *pSite) override
HRESULT __stdcall AddNamedItem(LPCOLESTR name, DWORD flags) override
IActiveScriptSite * site
HRESULT __stdcall GetScriptSite(REFIID riid, void **ppvObject) override
ULONG __stdcall AddRef() override
HRESULT __stdcall GetScriptState(SCRIPTSTATE *pss) override
Virtual Machine.
Definition VM.hpp:33