Alistair Leslie-Hughes : msscript: Implement IScriptControl get/ set AllowUI.

Alexandre Julliard julliard at winehq.org
Mon May 14 06:54:25 CDT 2018


Module: wine
Branch: stable
Commit: 1e6d94b10d8da6aac6a76e2788ebcea0c162f808
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=1e6d94b10d8da6aac6a76e2788ebcea0c162f808

Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date:   Mon Mar 12 22:08:09 2018 +0000

msscript: Implement IScriptControl get/set AllowUI.

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit c21c8525f9e69cfd48906ecc33b909490bd82783)
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>

---

 dlls/msscript.ocx/msscript.c       | 17 +++++++++++++----
 dlls/msscript.ocx/tests/msscript.c | 28 ++++++++++++++++++++++++++++
 2 files changed, 41 insertions(+), 4 deletions(-)

diff --git a/dlls/msscript.ocx/msscript.c b/dlls/msscript.ocx/msscript.c
index b0ea1e5..78b73c4 100644
--- a/dlls/msscript.ocx/msscript.c
+++ b/dlls/msscript.ocx/msscript.c
@@ -88,6 +88,7 @@ struct ScriptControl {
     IOleClientSite *site;
     SIZEL extent;
     LONG timeout;
+    VARIANT_BOOL allow_ui;
 
     /* connection points */
     ConnectionPoint *cp_list;
@@ -825,15 +826,22 @@ static HRESULT WINAPI ScriptControl_put_Timeout(IScriptControl *iface, LONG time
 static HRESULT WINAPI ScriptControl_get_AllowUI(IScriptControl *iface, VARIANT_BOOL *p)
 {
     ScriptControl *This = impl_from_IScriptControl(iface);
-    FIXME("(%p)->(%p)\n", This, p);
-    return E_NOTIMPL;
+    TRACE("(%p)->(%p)\n", This, p);
+
+    if(!p)
+        return E_POINTER;
+
+    *p = This->allow_ui;
+    return S_OK;
 }
 
 static HRESULT WINAPI ScriptControl_put_AllowUI(IScriptControl *iface, VARIANT_BOOL allow_ui)
 {
     ScriptControl *This = impl_from_IScriptControl(iface);
-    FIXME("(%p)->(%x)\n", This, allow_ui);
-    return E_NOTIMPL;
+    TRACE("(%p)->(%x)\n", This, allow_ui);
+
+    This->allow_ui = allow_ui;
+    return S_OK;
 }
 
 static HRESULT WINAPI ScriptControl_get_UseSafeSubset(IScriptControl *iface, VARIANT_BOOL *p)
@@ -1891,6 +1899,7 @@ static HRESULT WINAPI ScriptControl_CreateInstance(IClassFactory *iface, IUnknow
     script_control->timeout = 10000;
     script_control->view_sink_flags = 0;
     script_control->view_sink = NULL;
+    script_control->allow_ui = VARIANT_TRUE;
 
     ConnectionPoint_Init(&script_control->cp_scsource, script_control, &DIID_DScriptControlSource);
     ConnectionPoint_Init(&script_control->cp_propnotif, script_control, &IID_IPropertyNotifySink);
diff --git a/dlls/msscript.ocx/tests/msscript.c b/dlls/msscript.ocx/tests/msscript.c
index 66e2611..576a6b1 100644
--- a/dlls/msscript.ocx/tests/msscript.c
+++ b/dlls/msscript.ocx/tests/msscript.c
@@ -1227,6 +1227,33 @@ static void test_AddObject(void)
     SysFreeString(objname);
 }
 
+static void test_AllowUI(void)
+{
+    IScriptControl *sc;
+    VARIANT_BOOL allow;
+    HRESULT hr;
+
+    hr = CoCreateInstance(&CLSID_ScriptControl, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
+            &IID_IScriptControl, (void**)&sc);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+
+    hr = IScriptControl_get_AllowUI(sc, NULL);
+    ok(hr == E_POINTER, "got 0x%08x\n", hr);
+
+    hr = IScriptControl_get_AllowUI(sc, &allow);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    ok(allow == VARIANT_TRUE, "got %d\n", allow);
+
+    hr = IScriptControl_put_AllowUI(sc, VARIANT_FALSE);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+
+    hr = IScriptControl_get_AllowUI(sc, &allow);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    ok(allow == VARIANT_FALSE, "got %d\n", allow);
+
+    IScriptControl_Release(sc);
+}
+
 START_TEST(msscript)
 {
     IUnknown *unk;
@@ -1253,6 +1280,7 @@ START_TEST(msscript)
     test_timeout();
     test_Reset();
     test_AddObject();
+    test_AllowUI();
 
     CoUninitialize();
 }




More information about the wine-cvs mailing list