[1/5] taskschd: ITaskService::GetFolder should fail if not connected to the server.

Dmitry Timoshkov dmitry at baikal.ru
Wed Feb 5 00:07:44 CST 2014


---
 dlls/taskschd/task.c            | 5 +++++
 dlls/taskschd/tests/scheduler.c | 3 +++
 2 files changed, 8 insertions(+)

diff --git a/dlls/taskschd/task.c b/dlls/taskschd/task.c
index c424700..09fe32a 100644
--- a/dlls/taskschd/task.c
+++ b/dlls/taskschd/task.c
@@ -113,10 +113,15 @@ static HRESULT WINAPI TaskService_Invoke(ITaskService *iface, DISPID dispid, REF
 
 static HRESULT WINAPI TaskService_GetFolder(ITaskService *iface, BSTR path, ITaskFolder **folder)
 {
+    TaskService *task_svc = impl_from_ITaskService(iface);
+
     TRACE("%p,%s,%p\n", iface, debugstr_w(path), folder);
 
     if (!folder) return E_POINTER;
 
+    if (!task_svc->connected)
+        return HRESULT_FROM_WIN32(ERROR_ONLY_IF_CONNECTED);
+
     return TaskFolder_create(path, NULL, folder, FALSE);
 }
 
diff --git a/dlls/taskschd/tests/scheduler.c b/dlls/taskschd/tests/scheduler.c
index 3499d5e..be36069 100644
--- a/dlls/taskschd/tests/scheduler.c
+++ b/dlls/taskschd/tests/scheduler.c
@@ -142,6 +142,9 @@ static void test_GetFolder(void)
         return;
     }
 
+    hr = ITaskService_GetFolder(service, NULL, &folder);
+    ok(hr == HRESULT_FROM_WIN32(ERROR_ONLY_IF_CONNECTED), "expected ERROR_ONLY_IF_CONNECTED, got %#x\n", hr);
+
     V_VT(&v_null) = VT_NULL;
 
     hr = ITaskService_Connect(service, v_null, v_null, v_null, v_null);
-- 
1.8.5.3




More information about the wine-patches mailing list