Hans Leidekker : taskschd: Implement ITaskDefinition_put_Actions.
Module: wine Branch: master Commit: 759ef6a4fa8be8b9696552d5b89cf46f0f3950ad URL: http://source.winehq.org/git/wine.git/?a=commit;h=759ef6a4fa8be8b9696552d5b8... Author: Hans Leidekker <hans(a)codeweavers.com> Date: Thu Nov 30 09:37:08 2017 +0100 taskschd: Implement ITaskDefinition_put_Actions. Signed-off-by: Hans Leidekker <hans(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)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 166e587..1c20f83 100644 --- a/dlls/taskschd/task.c +++ b/dlls/taskschd/task.c @@ -2093,8 +2093,19 @@ static HRESULT WINAPI TaskDefinition_get_Actions(ITaskDefinition *iface, IAction static HRESULT WINAPI TaskDefinition_put_Actions(ITaskDefinition *iface, IActionCollection *actions) { - FIXME("%p,%p: stub\n", iface, actions); - return E_NOTIMPL; + TaskDefinition *taskdef = impl_from_ITaskDefinition(iface); + + TRACE("%p,%p\n", iface, actions); + + if (!actions) return E_POINTER; + + if (taskdef->actions) + IActionCollection_Release(taskdef->actions); + + IActionCollection_AddRef(actions); + taskdef->actions = actions; + + return S_OK; } static const WCHAR Task[] = {'T','a','s','k',0}; diff --git a/dlls/taskschd/tests/scheduler.c b/dlls/taskschd/tests/scheduler.c index 3d1d18e..1df79d5 100644 --- a/dlls/taskschd/tests/scheduler.c +++ b/dlls/taskschd/tests/scheduler.c @@ -1096,6 +1096,7 @@ static void change_settings(ITaskDefinition *taskdef, struct settings *test) ITaskSettings *set; ITriggerCollection *triggers; IPrincipal *principal; + IActionCollection *actions; hr = ITaskDefinition_get_Settings(taskdef, &set); ok(hr == S_OK, "get_Settings error %#x\n", hr); @@ -1178,6 +1179,15 @@ static void change_settings(ITaskDefinition *taskdef, struct settings *test) ok(hr == S_OK, "expected S_OK, got %#x\n", hr); if (principal) IPrincipal_Release(principal); + actions = NULL; + hr = ITaskDefinition_get_Actions(taskdef, &actions); + ok(hr == S_OK, "expected S_OK, got %#x\n", hr); + ok(actions != NULL, "actions not set\n"); + + hr = ITaskDefinition_put_Actions(taskdef, actions); + ok(hr == S_OK, "expected S_OK, got %#x\n", hr); + if (actions) IActionCollection_Release(actions); + /* FIXME: set IIdleSettings and INetworkSettings */ ITaskSettings_Release(set);
participants (1)
-
Alexandre Julliard