| Encapsulation of Windows file-handling routines
that allows work with >2GB files. |
|
Included is support for non-buffered access (FILE_FLAG_NO_BUFFERING)
and buffering for sequentially accessed files. Includes also stream wrapper
class.
Released under the BSD
License.
Articles
Files
Last modifications
5.05: 2008-02-08
- Delphi 2007 changed the implementation of CreateFmtHelp so that it clears the
Win32 'last error'. Therefore, it was impossible to detect windows error in
detection handler when EGpHugeFile help context was hcHFWindowsError.
To circumvent the problem, all EGpHugeFile help contexts were changed to a
negative value. HcHFWindowsError constant was removed. All Win32 API errors are
passed in the HelpContext unchanged. IOW, if HelpContext > 0, it contains an
Win32 API error code, otherwise it contains one of hcHF constants.
- Added method TGpHugeFile.GetTime and property TGpHugeFile.FileTime.
5.04a: 2007-10-10
- Added TGpHugeFileStream.Flush method.
- Added a way to disable buffering on the fly in both TGpHugeFile and TGpHugeFileStream.
- Added bunch of missing Win32Check checks.
- GetFileSize Win32 call was incorrectly raising exception when file was $FFFFFFFF bytes long.
- SetFilePointer Win32 call was incorrectly raising exception when position was set to $FFFFFFFF absolute.
- Better error reporting when application tries to read/write <= 0 bytes.
- Added optional logging of all Win32 calls to the TGpHugeFile (enabled with /dLogWin32Calls).
- Added thread concurrency debugging support to TGpHugeFileStream when compiled with /dDEBUG.
- Don't call MsgWait... in Close if file access is not asynchronous as that causes havoc with MS thread pool execution.
|