From 5d038be948c39c3203a4082af4e131cbd5add68a Mon Sep 17 00:00:00 2001 From: Dmitry Chapyshev Date: Sat, 10 Jan 2009 12:33:22 +0000 Subject: [PATCH] - Fix 3 wine tests for OpenFile function svn path=/trunk/; revision=38678 --- reactos/dll/win32/kernel32/file/file.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/reactos/dll/win32/kernel32/file/file.c b/reactos/dll/win32/kernel32/file/file.c index 111601a6738..24b730001d5 100644 --- a/reactos/dll/win32/kernel32/file/file.c +++ b/reactos/dll/win32/kernel32/file/file.c @@ -265,6 +265,27 @@ OpenFile(LPCSTR lpFileName, return 0; } + if ((uStyle & OF_EXIST) && !(uStyle & OF_CREATE)) + { + DWORD dwAttributes = GetFileAttributesA(lpReOpenBuff->szPathName); + + switch (dwAttributes) + { + case 0xFFFFFFFF: /* File does not exist */ + SetLastError(ERROR_FILE_NOT_FOUND); + lpReOpenBuff->nErrCode = (WORD) ERROR_FILE_NOT_FOUND; + return -1; + + case FILE_ATTRIBUTE_DIRECTORY: + SetLastError(ERROR_ACCESS_DENIED); + lpReOpenBuff->nErrCode = (WORD) ERROR_ACCESS_DENIED; + return -1; + + default: + return 1; + } + } + if ((uStyle & OF_CREATE) == OF_CREATE) { DWORD Sharing; @@ -371,7 +392,7 @@ OpenFile(LPCSTR lpFileName, if (uStyle & OF_EXIST) { NtClose(FileHandle); - return TRUE; + return (HFILE)1; } return (HFILE)FileHandle;