Hans Leidekker : taskschd: Implement IExecAction_put_Path.

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


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

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

taskschd: Implement IExecAction_put_Path.

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

---

 dlls/taskschd/task.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/dlls/taskschd/task.c b/dlls/taskschd/task.c
index f32d3d2..01e7c2d 100644
--- a/dlls/taskschd/task.c
+++ b/dlls/taskschd/task.c
@@ -1638,6 +1638,7 @@ typedef struct
 {
     IExecAction IExecAction_iface;
     LONG ref;
+    WCHAR *path;
 } ExecAction;
 
 static inline ExecAction *impl_from_IExecAction(IExecAction *iface)
@@ -1659,6 +1660,7 @@ static ULONG WINAPI ExecAction_Release(IExecAction *iface)
     if (!ref)
     {
         TRACE("destroying %p\n", iface);
+        heap_free(action->path);
         heap_free(action);
     }
 
@@ -1744,7 +1746,15 @@ static HRESULT WINAPI ExecAction_get_Path(IExecAction *iface, BSTR *path)
 
 static HRESULT WINAPI ExecAction_put_Path(IExecAction *iface, BSTR path)
 {
-    FIXME("%p,%s: stub\n", iface, debugstr_w(path));
+    ExecAction *action = impl_from_IExecAction(iface);
+    WCHAR *str = NULL;
+
+    TRACE("%p,%s\n", iface, debugstr_w(path));
+
+    if (path && !(str = heap_strdupW((path)))) return E_OUTOFMEMORY;
+    heap_free(action->path);
+    action->path = str;
+
     return S_OK;
 }
 
@@ -1801,6 +1811,7 @@ static HRESULT ExecAction_create(IExecAction **obj)
 
     action->IExecAction_iface.lpVtbl = &Action_vtbl;
     action->ref = 1;
+    action->path = NULL;
 
     *obj = &action->IExecAction_iface;
 




More information about the wine-cvs mailing list