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.
- 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.
- 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
The enclosed zip file contains the CFile64 source code and a simple console based application which
exercises the class.
V1.0 (11 February 1998)
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.