- Fix 2 winetests

svn path=/trunk/; revision=38191
This commit is contained in:
Dmitry Chapyshev 2008-12-20 08:02:25 +00:00
parent b412cbd236
commit 6fadfd9daf

View file

@ -28,8 +28,8 @@ _hread(
DWORD NumberOfBytesRead;
if ( !ReadFile(
(HANDLE) hFile,
(LPVOID) lpBuffer,
LongToHandle(hFile),
lpBuffer,
(DWORD) lBytes,
& NumberOfBytesRead,
NULL) )
@ -84,34 +84,42 @@ _lopen (
int iReadWrite
)
{
DWORD dwAccessMask = 0;
DWORD dwShareMode = 0;
DWORD dwAccess, dwSharing, dwCreation;
if ( (iReadWrite & OF_READWRITE ) == OF_READWRITE )
dwAccessMask = GENERIC_READ | GENERIC_WRITE;
else if ( (iReadWrite & OF_READ ) == OF_READ )
dwAccessMask = GENERIC_READ;
else if ( (iReadWrite & OF_WRITE ) == OF_WRITE )
dwAccessMask = GENERIC_WRITE;
if (iReadWrite & OF_CREATE)
{
dwCreation = CREATE_ALWAYS;
dwAccess = GENERIC_READ | GENERIC_WRITE;
}
else
{
dwCreation = OPEN_EXISTING;
switch(iReadWrite & 0x03)
{
case OF_READ: dwAccess = GENERIC_READ; break;
case OF_WRITE: dwAccess = GENERIC_WRITE; break;
case OF_READWRITE: dwAccess = GENERIC_READ | GENERIC_WRITE; break;
default: dwAccess = 0; break;
}
}
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;
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;
switch(iReadWrite & 0x70)
{
case OF_SHARE_EXCLUSIVE: dwSharing = 0; break;
case OF_SHARE_DENY_WRITE: dwSharing = FILE_SHARE_READ; break;
case OF_SHARE_DENY_READ: dwSharing = FILE_SHARE_WRITE; break;
case OF_SHARE_DENY_NONE:
case OF_SHARE_COMPAT:
default: dwSharing = FILE_SHARE_READ | FILE_SHARE_WRITE; break;
}
return (HFILE) CreateFileA(
lpPathName,
dwAccessMask,
dwShareMode,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
return (HFILE) CreateFileA(lpPathName,
dwAccess,
dwSharing,
NULL,
dwCreation,
FILE_ATTRIBUTE_NORMAL,
NULL);
}
@ -125,15 +133,18 @@ _lcreat (
int iAttribute
)
{
iAttribute &= FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM;
return (HFILE) CreateFileA(
lpPathName,
GENERIC_READ | GENERIC_WRITE,
(FILE_SHARE_READ | FILE_SHARE_WRITE),
NULL,
CREATE_ALWAYS,
iAttribute,
NULL);
HANDLE hFile;
iAttribute &= FILE_ATTRIBUTE_READONLY | FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM;
hFile = CreateFileA(lpPathName,
GENERIC_READ | GENERIC_WRITE,
(FILE_SHARE_READ | FILE_SHARE_WRITE),
NULL,
CREATE_ALWAYS,
iAttribute,
NULL);
return HandleToLong(hFile);
}
@ -146,11 +157,7 @@ _lclose (
HFILE hFile
)
{
if (CloseHandle ((HANDLE)hFile))
{
return 0;
}
return HFILE_ERROR;
return CloseHandle(LongToHandle(hFile)) ? 0 : HFILE_ERROR;
}
@ -165,11 +172,10 @@ _llseek(
int iOrigin
)
{
return SetFilePointer (
(HANDLE) hFile,
lOffset,
NULL,
(DWORD) iOrigin);
return SetFilePointer(LongToHandle(hFile),
lOffset,
NULL,
(DWORD) iOrigin);
}
/* EOF */