minor corrections to match the behavior of wine's implementation

svn path=/trunk/; revision=15037
This commit is contained in:
Thomas Bluemel 2005-05-06 11:02:47 +00:00
parent 6687b53ab8
commit 5ff8364d66

View file

@ -28,15 +28,14 @@ _hread(
{
DWORD NumberOfBytesRead;
if (ReadFile(
if ( !ReadFile(
(HANDLE) hFile,
(LPVOID) lpBuffer,
(DWORD) lBytes,
& NumberOfBytesRead,
NULL
) == FALSE)
NULL) )
{
return -1;
return HFILE_ERROR;
}
return NumberOfBytesRead;
}
@ -57,21 +56,20 @@ _hwrite (
if (lBytes == 0)
{
if ( SetEndOfFile((HANDLE) hFile ) == FALSE )
if ( !SetEndOfFile((HANDLE) hFile ) )
{
return -1;
return HFILE_ERROR;
}
return 0;
}
if ( WriteFile(
if ( !WriteFile(
(HANDLE) hFile,
(LPVOID) lpBuffer,
(DWORD) lBytes,
& NumberOfBytesWritten,
NULL
) == FALSE )
NULL) )
{
return -1;
return HFILE_ERROR;
}
return NumberOfBytesWritten;
}
@ -97,16 +95,15 @@ _lopen (
else if ( (iReadWrite & OF_WRITE ) == OF_WRITE )
dwAccessMask = GENERIC_WRITE;
if ((iReadWrite & OF_SHARE_COMPAT) == OF_SHARE_COMPAT )
dwShareMode = FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE;
else if ((iReadWrite & OF_SHARE_DENY_NONE) == OF_SHARE_DENY_NONE)
dwShareMode = FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE;
else if ((iReadWrite & OF_SHARE_DENY_READ) == OF_SHARE_DENY_READ)
dwShareMode = FILE_SHARE_WRITE | FILE_SHARE_DELETE;
if ((iReadWrite & OF_SHARE_DENY_READ) == OF_SHARE_DENY_READ)
dwShareMode = FILE_SHARE_WRITE;
else if ((iReadWrite & OF_SHARE_DENY_WRITE) == OF_SHARE_DENY_WRITE )
dwShareMode = FILE_SHARE_READ | FILE_SHARE_DELETE;
dwShareMode = FILE_SHARE_READ;
else if ((iReadWrite & OF_SHARE_EXCLUSIVE) == OF_SHARE_EXCLUSIVE)
dwShareMode = 0;
else
/* OF_SHARE_DENY_NONE, OF_SHARE_COMPAT and everything else */
dwShareMode = FILE_SHARE_READ | FILE_SHARE_WRITE;
return (HFILE) CreateFileA(
lpPathName,
@ -129,13 +126,14 @@ _lcreat (
int iAttribute
)
{
iAttribute &= FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM;
return (HFILE) CreateFileA(
lpPathName,
GENERIC_ALL,
GENERIC_READ | GENERIC_WRITE,
(FILE_SHARE_READ | FILE_SHARE_WRITE),
NULL,
CREATE_ALWAYS,
iAttribute & FILE_ATTRIBUTE_VALID_FLAGS,
iAttribute,
NULL);
}
@ -153,7 +151,7 @@ _lclose (
{
return 0;
}
return -1;
return HFILE_ERROR;
}