From 96452fc81008fac90f59779641a8c874157eabb2 Mon Sep 17 00:00:00 2001 From: Dmitry Timoshkov Date: Wed, 9 Apr 2014 18:50:42 +0900 Subject: [PATCH] schedsvc: Return correct error code when a being loaded xml doesn't exist. --- dlls/schedsvc/schedsvc.c | 8 +++++++- dlls/taskschd/tests/scheduler.c | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/dlls/schedsvc/schedsvc.c b/dlls/schedsvc/schedsvc.c index aa99b032602..a0daab2bc95 100644 --- a/dlls/schedsvc/schedsvc.c +++ b/dlls/schedsvc/schedsvc.c @@ -245,10 +245,16 @@ static int detect_encoding(const void *buffer, DWORD size) static HRESULT read_xml(const WCHAR *name, WCHAR **xml) { HANDLE hfile; - DWORD size; + DWORD size, attrs; char *src; int cp; + attrs = GetFileAttributesW(name); + if (attrs == INVALID_FILE_ATTRIBUTES) + return HRESULT_FROM_WIN32(GetLastError()); + if (attrs & FILE_ATTRIBUTE_DIRECTORY) + return HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND); + hfile = CreateFileW(name, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0); if (hfile == INVALID_HANDLE_VALUE) return HRESULT_FROM_WIN32(GetLastError()); diff --git a/dlls/taskschd/tests/scheduler.c b/dlls/taskschd/tests/scheduler.c index 5e5d3035b3c..3f8ba3e72dd 100644 --- a/dlls/taskschd/tests/scheduler.c +++ b/dlls/taskschd/tests/scheduler.c @@ -760,7 +760,6 @@ static void test_GetTask(void) ok(hr == S_OK, "CreateFolder error %#x\n", hr); hr = ITaskFolder_GetTask(root, Wine, &task1); -todo_wine ok(hr == HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND), "expected ERROR_PATH_NOT_FOUND, got %#x\n", hr); MultiByteToWideChar(CP_ACP, 0, xml1, -1, xmlW, sizeof(xmlW)/sizeof(xmlW[0])); -- 2.11.4.GIT