[1/5] schedsvc: Return correct error code when a being loaded xml doesn't exist.
Dmitry Timoshkov
dmitry at baikal.ru
Wed Apr 9 04:50:42 CDT 2014
---
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]));
--
1.9.1
More information about the wine-patches
mailing list