[PATCH 3/8] taskschd: Implement ITaskDefinition_put_Principal.

Hans Leidekker hans at codeweavers.com
Thu Nov 30 02:37:06 CST 2017


Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
 dlls/taskschd/task.c            | 15 +++++++++++++--
 dlls/taskschd/tests/scheduler.c |  3 +++
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/dlls/taskschd/task.c b/dlls/taskschd/task.c
index 185f5c2123..6828c987c0 100644
--- a/dlls/taskschd/task.c
+++ b/dlls/taskschd/task.c
@@ -1879,8 +1879,19 @@ static HRESULT WINAPI TaskDefinition_get_Principal(ITaskDefinition *iface, IPrin
 
 static HRESULT WINAPI TaskDefinition_put_Principal(ITaskDefinition *iface, IPrincipal *principal)
 {
-    FIXME("%p,%p: stub\n", iface, principal);
-    return E_NOTIMPL;
+    TaskDefinition *taskdef = impl_from_ITaskDefinition(iface);
+
+    TRACE("%p,%p\n", iface, principal);
+
+    if (!principal) return E_POINTER;
+
+    if (taskdef->principal)
+        IPrincipal_Release(taskdef->principal);
+
+    IPrincipal_AddRef(principal);
+    taskdef->principal = principal;
+
+    return S_OK;
 }
 
 static HRESULT WINAPI TaskDefinition_get_Actions(ITaskDefinition *iface, IActionCollection **actions)
diff --git a/dlls/taskschd/tests/scheduler.c b/dlls/taskschd/tests/scheduler.c
index ad0755650e..244c28df01 100644
--- a/dlls/taskschd/tests/scheduler.c
+++ b/dlls/taskschd/tests/scheduler.c
@@ -1173,6 +1173,9 @@ static void change_settings(ITaskDefinition *taskdef, struct settings *test)
     hr = ITaskDefinition_get_Principal(taskdef, &principal);
     ok(hr == S_OK, "expected S_OK, got %#x\n", hr);
     ok(principal != NULL, "principal not set\n");
+
+    hr = ITaskDefinition_put_Principal(taskdef, principal);
+    ok(hr == S_OK, "expected S_OK, got %#x\n", hr);
     if (principal) IPrincipal_Release(principal);
 
     /* FIXME: set IIdleSettings and INetworkSettings */
-- 
2.11.0




More information about the wine-devel mailing list