Hi Jactry, On 9/16/19 4:19 PM, Jactry Zeng wrote:
@@ -952,6 +954,20 @@ static HRESULT WINAPI ScriptControl_AddObject(IScriptControl *iface, BSTR name, return hr; }
+static HRESULT set_script_state(ScriptHost *host, SCRIPTSTATE state, BOOL check_state) +{ + HRESULT hr; + + if (check_state && (host->script_state == SCRIPTSTATE_STARTED)) + return S_OK; + + hr = IActiveScript_SetScriptState(host->script, state); + if (SUCCEEDED(hr)) + host->script_state = state; + + return hr; +}
I think that the previous version was better. Nikolay's comment was a question. The answer seems to be that only some set_script_state callers call the engine repeatedly.
@@ -147,8 +149,8 @@ static HRESULT WINAPI ActiveScriptParse_ParseScriptText(IActiveScriptParse *ifac LPCOLESTR pstrDelimiter, CTXARG_T dwSourceContextCookie, ULONG ulStartingLine, DWORD dwFlags, VARIANT *pvarResult, EXCEPINFO *pexcepinfo) { - ok(0, "unexpected call\n"); - return E_NOTIMPL; + CHECK_EXPECT(ParseScriptText); + return S_OK; }
It would be interesting to test some arguments. Especially flags will be useful.
+ /* custom script engine */ + if (register_script_engine()) + {
It seems to be done in quite a few places already. Maybe we should move the call to START_TEST and have have_custom_engine global variable? Thanks, Jacek