Module: wine Branch: master Commit: 96452fc81008fac90f59779641a8c874157eabb2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=96452fc81008fac90f59779641...
Author: Dmitry Timoshkov dmitry@baikal.ru Date: Wed Apr 9 18:50:42 2014 +0900
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 aa99b03..a0daab2 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 5e5d303..3f8ba3e 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]));