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)
11 #undef WIN32_LEAN_AND_MEAN
25 DWORD NumberOfBytesRead
;
26 if ( ReadFile((HANDLE
)hFile
,(LPVOID
)lpBuffer
,(DWORD
)lBytes
,&NumberOfBytesRead
, NULL
) == FALSE
)
29 return NumberOfBytesRead
;
33 UINT STDCALL
_lread(HFILE fd
,LPVOID buffer
,UINT count
)
35 return _hread(fd
,buffer
, count
);
46 DWORD NumberOfBytesWritten
;
48 if ( SetEndOfFile((HANDLE
) hFile
) == FALSE
)
53 if ( WriteFile((HANDLE
)hFile
,(LPVOID
)lpBuffer
,(DWORD
)lBytes
, &NumberOfBytesWritten
,NULL
) == FALSE
)
56 return NumberOfBytesWritten
;
68 return _hwrite(hFile
,lpBuffer
,uBytes
);
75 HFILE
_lopen( LPCSTR lpPathName
, int iReadWrite
)
80 DWORD dwAccessMask
= 0;
81 DWORD dwShareMode
= 0;
83 if ( (iReadWrite
& OF_READWRITE
) == OF_READWRITE
)
84 dwAccessMask
= GENERIC_READ
| GENERIC_WRITE
;
85 else if ( (iReadWrite
& OF_READ
) == OF_READ
)
86 dwAccessMask
= GENERIC_READ
;
87 else if ( (iReadWrite
& OF_WRITE
) == OF_WRITE
)
88 dwAccessMask
= GENERIC_WRITE
;
94 if ((iReadWrite
& OF_SHARE_COMPAT
) == OF_SHARE_COMPAT
)
95 dwShareMode
= FILE_SHARE_WRITE
| FILE_SHARE_READ
| FILE_SHARE_DELETE
;
96 else if ((iReadWrite
& OF_SHARE_DENY_NONE
) == OF_SHARE_DENY_NONE
)
97 dwShareMode
= FILE_SHARE_WRITE
| FILE_SHARE_READ
| FILE_SHARE_DELETE
;
98 else if ((iReadWrite
& OF_SHARE_DENY_READ
) == OF_SHARE_DENY_READ
)
99 dwShareMode
= FILE_SHARE_WRITE
| FILE_SHARE_DELETE
;
100 else if ((iReadWrite
& OF_SHARE_DENY_WRITE
) == OF_SHARE_DENY_WRITE
)
101 dwShareMode
= FILE_SHARE_READ
| FILE_SHARE_DELETE
;
102 else if ((iReadWrite
& OF_SHARE_EXCLUSIVE
) == OF_SHARE_EXCLUSIVE
)
108 return (HFILE
) CreateFileA( lpPathName
,dwAccessMask
,dwShareMode
,
109 NULL
,OPEN_EXISTING
,FILE_ATTRIBUTE_NORMAL
,NULL
);
114 HFILE
_lcreat( LPCSTR lpPathName
, int iAttribute
)
117 DWORD FileAttributes
= 0;
119 if ( iAttribute
== 1 )
120 FileAttributes
|= FILE_ATTRIBUTE_NORMAL
;
121 else if ( iAttribute
== 2 )
122 FileAttributes
|= FILE_ATTRIBUTE_READONLY
;
123 else if ( iAttribute
== 3 )
124 FileAttributes
|= FILE_ATTRIBUTE_HIDDEN
;
125 else if ( iAttribute
== 4 )
126 FileAttributes
|= FILE_ATTRIBUTE_SYSTEM
;
128 return(HFILE
) CreateFileA( lpPathName
,GENERIC_ALL
,FILE_SHARE_READ
|FILE_SHARE_WRITE
,
129 NULL
,CREATE_ALWAYS
,iAttribute
,NULL
);
137 if ( CloseHandle((HANDLE
)hFile
) )
149 return SetFilePointer((HANDLE
) hFile
, lOffset
, NULL
,(DWORD
)iOrigin
);