[3/4] taskschd: Implement ITaskService::get_TargetServer.

Dmitry Timoshkov dmitry at baikal.ru
Tue Jan 14 02:18:11 CST 2014


---
 dlls/taskschd/Makefile.in       |  1 +
 dlls/taskschd/task.c            | 15 +++++++++++++--
 dlls/taskschd/tests/scheduler.c |  2 --
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/dlls/taskschd/Makefile.in b/dlls/taskschd/Makefile.in
index 2436289..2b49585 100644
--- a/dlls/taskschd/Makefile.in
+++ b/dlls/taskschd/Makefile.in
@@ -1,4 +1,5 @@
 MODULE    = taskschd.dll
+IMPORTS   = oleaut32
 
 C_SRCS = \
 	task.c \
diff --git a/dlls/taskschd/task.c b/dlls/taskschd/task.c
index fd64bf9..5ff3761 100644
--- a/dlls/taskschd/task.c
+++ b/dlls/taskschd/task.c
@@ -193,8 +193,19 @@ static HRESULT WINAPI TaskService_get_Connected(ITaskService *iface, VARIANT_BOO
 
 static HRESULT WINAPI TaskService_get_TargetServer(ITaskService *iface, BSTR *server)
 {
-    FIXME("%p,%p: stub\n", iface, server);
-    return E_NOTIMPL;
+    TaskService *task_svc = impl_from_ITaskService(iface);
+
+    TRACE("%p,%p\n", iface, server);
+
+    if (!server) return E_POINTER;
+
+    if (!task_svc->connected)
+        return HRESULT_FROM_WIN32(ERROR_ONLY_IF_CONNECTED);
+
+    *server = SysAllocString(task_svc->comp_name);
+    if (!*server) return E_OUTOFMEMORY;
+
+    return S_OK;
 }
 
 static HRESULT WINAPI TaskService_get_ConnectedUser(ITaskService *iface, BSTR *user)
diff --git a/dlls/taskschd/tests/scheduler.c b/dlls/taskschd/tests/scheduler.c
index bf84c0d..02382c5 100644
--- a/dlls/taskschd/tests/scheduler.c
+++ b/dlls/taskschd/tests/scheduler.c
@@ -52,7 +52,6 @@ static void test_Connect(void)
     ok(vbool == VARIANT_FALSE, "expected VARIANT_FALSE, got %d\n", vbool);
 
     hr = ITaskService_get_TargetServer(service, &bstr);
-todo_wine
     ok(hr == HRESULT_FROM_WIN32(ERROR_ONLY_IF_CONNECTED), "expected ERROR_ONLY_IF_CONNECTED, got %#x\n", hr);
 
     /* Win7 doesn't support UNC \\ prefix, but according to a user
@@ -89,7 +88,6 @@ todo_wine
     ok(vbool == VARIANT_TRUE, "expected VARIANT_TRUE, got %d\n", vbool);
 
     hr = ITaskService_get_TargetServer(service, &bstr);
-todo_wine
     ok(hr == S_OK, "get_TargetServer error %#x\n", hr);
     if (hr == S_OK)
     {
-- 
1.8.5.2




More information about the wine-patches mailing list