[PATCH 1/8] taskschd: Implement ITaskDefinition_put_Triggers.
Hans Leidekker
hans at codeweavers.com
Thu Nov 30 02:37:04 CST 2017
Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
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 731c22d86b..d4e0d5688d 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 07083afcd3..c58a5076bf 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);
--
2.11.0
More information about the wine-devel
mailing list