3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS system libraries
5 * FILE: lib/kernel32/file/lfile.c
6 * PURPOSE: Find functions
7 * PROGRAMMER: Ariadne ( ariadne@xs4all.nl)
13 #include <wine/debug.h>
15 WINE_DEFAULT_DEBUG_CHANNEL(kernel32file
);
22 _hread(HFILE hFile
, LPVOID lpBuffer
, long lBytes
)
24 DWORD NumberOfBytesRead
;
26 if (!ReadFile(LongToHandle(hFile
),
34 return NumberOfBytesRead
;
43 _hwrite(HFILE hFile
, LPCSTR lpBuffer
, long lBytes
)
45 DWORD NumberOfBytesWritten
;
49 if (!SetEndOfFile((HANDLE
) hFile
))
55 if (!WriteFile(LongToHandle(hFile
),
58 &NumberOfBytesWritten
,
63 return NumberOfBytesWritten
;
72 _lopen(LPCSTR lpPathName
, int iReadWrite
)
74 DWORD dwAccess
, dwSharing
, dwCreation
;
76 if (iReadWrite
& OF_CREATE
)
78 dwCreation
= CREATE_ALWAYS
;
79 dwAccess
= GENERIC_READ
| GENERIC_WRITE
;
83 dwCreation
= OPEN_EXISTING
;
84 switch(iReadWrite
& 0x03)
86 case OF_READ
: dwAccess
= GENERIC_READ
; break;
87 case OF_WRITE
: dwAccess
= GENERIC_WRITE
; break;
88 case OF_READWRITE
: dwAccess
= GENERIC_READ
| GENERIC_WRITE
; break;
89 default: dwAccess
= 0; break;
93 switch(iReadWrite
& 0x70)
95 case OF_SHARE_EXCLUSIVE
: dwSharing
= 0; break;
96 case OF_SHARE_DENY_WRITE
: dwSharing
= FILE_SHARE_READ
; break;
97 case OF_SHARE_DENY_READ
: dwSharing
= FILE_SHARE_WRITE
; break;
98 case OF_SHARE_DENY_NONE
:
100 default: dwSharing
= FILE_SHARE_READ
| FILE_SHARE_WRITE
; break;
103 return (HFILE
) CreateFileA(lpPathName
,
108 FILE_ATTRIBUTE_NORMAL
,
118 _lcreat(LPCSTR lpPathName
, int iAttribute
)
122 iAttribute
&= FILE_ATTRIBUTE_READONLY
| FILE_ATTRIBUTE_HIDDEN
| FILE_ATTRIBUTE_SYSTEM
;
123 hFile
= CreateFileA(lpPathName
,
124 GENERIC_READ
| GENERIC_WRITE
,
125 (FILE_SHARE_READ
| FILE_SHARE_WRITE
),
131 return HandleToLong(hFile
);
142 return CloseHandle(LongToHandle(hFile
)) ? 0 : HFILE_ERROR
;
151 _llseek(HFILE hFile
, LONG lOffset
, int iOrigin
)
153 return SetFilePointer(LongToHandle(hFile
),