2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS system libraries
4 * FILE: lib/kernel32/file/lfile.c
5 * PURPOSE: Find functions
6 * PROGRAMMER: Ariadne ( ariadne@xs4all.nl)
20 _hread(HFILE hFile
, LPVOID lpBuffer
, long lBytes
)
22 DWORD NumberOfBytesRead
;
24 if (!ReadFile(LongToHandle(hFile
),
32 return NumberOfBytesRead
;
41 _hwrite(HFILE hFile
, LPCSTR lpBuffer
, long lBytes
)
43 DWORD NumberOfBytesWritten
;
47 if (!SetEndOfFile((HANDLE
) hFile
))
53 if (!WriteFile(LongToHandle(hFile
),
56 &NumberOfBytesWritten
,
61 return NumberOfBytesWritten
;
70 _lopen(LPCSTR lpPathName
, int iReadWrite
)
72 DWORD dwAccess
, dwSharing
, dwCreation
;
74 if (iReadWrite
& OF_CREATE
)
76 dwCreation
= CREATE_ALWAYS
;
77 dwAccess
= GENERIC_READ
| GENERIC_WRITE
;
81 dwCreation
= OPEN_EXISTING
;
82 switch(iReadWrite
& 0x03)
84 case OF_READ
: dwAccess
= GENERIC_READ
; break;
85 case OF_WRITE
: dwAccess
= GENERIC_WRITE
; break;
86 case OF_READWRITE
: dwAccess
= GENERIC_READ
| GENERIC_WRITE
; break;
87 default: dwAccess
= 0; break;
91 switch(iReadWrite
& 0x70)
93 case OF_SHARE_EXCLUSIVE
: dwSharing
= 0; break;
94 case OF_SHARE_DENY_WRITE
: dwSharing
= FILE_SHARE_READ
; break;
95 case OF_SHARE_DENY_READ
: dwSharing
= FILE_SHARE_WRITE
; break;
96 case OF_SHARE_DENY_NONE
:
98 default: dwSharing
= FILE_SHARE_READ
| FILE_SHARE_WRITE
; break;
101 return (HFILE
) CreateFileA(lpPathName
,
106 FILE_ATTRIBUTE_NORMAL
,
116 _lcreat(LPCSTR lpPathName
, int iAttribute
)
120 iAttribute
&= FILE_ATTRIBUTE_READONLY
| FILE_ATTRIBUTE_HIDDEN
| FILE_ATTRIBUTE_SYSTEM
;
121 hFile
= CreateFileA(lpPathName
,
122 GENERIC_READ
| GENERIC_WRITE
,
123 (FILE_SHARE_READ
| FILE_SHARE_WRITE
),
129 return HandleToLong(hFile
);
140 return CloseHandle(LongToHandle(hFile
)) ? 0 : HFILE_ERROR
;
149 _llseek(HFILE hFile
, LONG lOffset
, int iOrigin
)
151 return SetFilePointer(LongToHandle(hFile
),