Hans Leidekker : taskschd: Implement ITaskDefinition_put_Triggers.

Alexandre Julliard julliard at winehq.org
Thu Nov 30 14:19:34 CST 2017


Module: wine
Branch: master
Commit: 96cf60ecac7afc789e5e85b58655f79bf64cde6f
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=96cf60ecac7afc789e5e85b58655f79bf64cde6f

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Thu Nov 30 09:37:04 2017 +0100

taskschd: Implement ITaskDefinition_put_Triggers.

Signed-off-by: Hans Leidekker <hans at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/taskschd/task.c            | 15 +++++++++++++--
 dlls/taskschd/tests/scheduler.c | 10 ++++++++++
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/dlls/taskschd/task.c b/dlls/taskschd/task.c
index 731c22d..d4e0d56 100644
--- a/dlls/taskschd/task.c
+++ b/dlls/taskschd/task.c
@@ -1601,8 +1601,19 @@ static HRESULT WINAPI TaskDefinition_get_Triggers(ITaskDefinition *iface, ITrigg
 
 static HRESULT WINAPI TaskDefinition_put_Triggers(ITaskDefinition *iface, ITriggerCollection *triggers)
 {
-    FIXME("%p,%p: stub\n", iface, triggers);
-    return E_NOTIMPL;
+    TaskDefinition *taskdef = impl_from_ITaskDefinition(iface);
+
+    TRACE("%p,%p\n", iface, triggers);
+
+    if (!triggers) return E_POINTER;
+
+    if (taskdef->triggers)
+        ITriggerCollection_Release(taskdef->triggers);
+
+    ITriggerCollection_AddRef(triggers);
+    taskdef->triggers = triggers;
+
+    return S_OK;
 }
 
 static HRESULT WINAPI TaskDefinition_get_Settings(ITaskDefinition *iface, ITaskSettings **settings)
diff --git a/dlls/taskschd/tests/scheduler.c b/dlls/taskschd/tests/scheduler.c
index 07083af..c58a507 100644
--- a/dlls/taskschd/tests/scheduler.c
+++ b/dlls/taskschd/tests/scheduler.c
@@ -1094,6 +1094,7 @@ static void change_settings(ITaskDefinition *taskdef, struct settings *test)
 {
     HRESULT hr;
     ITaskSettings *set;
+    ITriggerCollection *triggers;
 
     hr = ITaskDefinition_get_Settings(taskdef, &set);
     ok(hr == S_OK, "get_Settings error %#x\n", hr);
@@ -1158,6 +1159,15 @@ static void change_settings(ITaskDefinition *taskdef, struct settings *test)
     hr = ITaskSettings_put_AllowDemandStart(set, test->allow_on_demand_start);
     ok(hr == S_OK, "expected S_OK, got %#x\n", hr);
 
+    triggers = NULL;
+    hr = ITaskDefinition_get_Triggers(taskdef, &triggers);
+    ok(hr == S_OK, "expected S_OK, got %#x\n", hr);
+    ok(triggers != NULL, "triggers not set\n");
+
+    hr = ITaskDefinition_put_Triggers(taskdef, triggers);
+    ok(hr == S_OK, "expected S_OK, got %#x\n", hr);
+    if (triggers) ITriggerCollection_Release(triggers);
+
     /* FIXME: set IIdleSettings and INetworkSettings */
 
     ITaskSettings_Release(set);




More information about the wine-cvs mailing list