CFile64
v1.0 An MFC class to encapsulate the Win32 64 bit file system API
(Obsolete)
A lot of developers may not realize that parts of the Win32 SDK already has some
64 bit isms. An example in kind is the API provided to access the file system. Currently
the MFC CFile class hides this to provide a lowest common denominator approach to
interacting with the API. If you do have occasion to use the 64 bit extensions then
you will have no doubt cursed Microsoft when you start to use the raw SDK calls.
This class is an attempt to provide a more OO interface to it.
Features
- Provides access to the native 64 bit file system API available on NTFS volumes.
Note: This does not prevent the class being used on FAT or FAT32 volumes, just
that files cannot be extended beyond 4 GB in size.
- Provides access to all the parameters in the SDK CreateFile API. This can
prove helpful when you want total control over the way a file is opened or created.
- Interface has been kept as close to CFile as possible
- Uses the built in 64 bit integer type "__in64" available
in Visual C++ 4.0 or later. This makes use and understanding of the 64 bit API
much easier when compared with using the raw Win32 SDK calls.
- Comprehensive documentation is included. The style should be familiar to
anyone who uses MS Developer Studio documentation.
Copyright
- You are allowed to include the source code in any product (commercial, shareware,
freeware or otherwise) when your product is released in binary form.
- You are allowed to modify the source code in any way you want except you
cannot modify the copyright details at the top of each module.
- If you want to distribute source code with your application, then you are
only allowed to distribute versions released by the author. This is to maintain
a single distribution point for the source code.
The enclosed zip file contains the CFile64
source code and a simple console based application which exercises the class.
Updates
23 December 2005
- Please note that this code is now obsolete because MFC as of Visual Studio
.NET 2002 has an updated "CFile" class which supports files > 4GB.
You should update your code to use this standard class instead of my CFile64
class.
V1.0 (11 February 1998)