From b3a79114e032520e9f3969bfed992ea2e820b5e5 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Wed, 5 Feb 2014 15:07:44 +0900 Subject: [PATCH] taskschd: ITaskService::GetFolder should fail if not connected to the server. --- 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 c4247000127..09fe32ac5ea 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 3499d5ee88e..be36069ec69 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);