DOC: CFile::GetFileTitle May Return with File Extension (143409)
The information in this article applies to:
- Microsoft Visual C++ 4.0
- Microsoft Foundation Classes (MFC)
This article was previously published under Q143409 SUMMARY
Using the GetFileTitle() CFile member function to return the file's title
may return the extension as well. However, the documentation for this
member function does not fully describe this "by design" behavior.
This was corrected in Visual C++ 4.1.
MORE INFORMATION
The behavior of CFile::GetFileTitle() member function has changed in
Windows 95. The expected behavior is described here.
From the Win32 SDK GetFileTitle() documentation:
In Windows 95, the GetFileTitle() function retrieves the same text that the
system would compose in displaying a file name to the user. This text is
intended to be used for display purposes only and is in accordance with the
user's preferences for display of filenames. There are two important
implications of this enhancement: First, an application cannot expect to
use the resultant text to call file system functions because it is merely a
display name; Second, in preserving the function's "insufficient buffer"
case, the return value for that code path reflects the size of the text
that would be composed in the normal case such that the caller may attempt
to allocate sufficient storage and retrieve the result with a subsequent
call to GetFileTitle(). More generally, there is no guaranteed connection
between the resultant text or return value and the characters in the
original buffer passed by the application.
In porting applications to Windows 95, you need to update any code
that relies on such behavior in previous versions of the operating system.
The most common case is code that deliberately calls GetFileTitle() with a
NULL return buffer, passing size 0, and then uses the return value as an
index into the original string. This technique is no longer supported.
Applications can usually achieve similar results (and superior performance)
with run-time library functions such as strrchr, wcsrchr, and _mbsrchr.
Modification Type: | Major | Last Reviewed: | 10/17/2003 |
---|
Keywords: | kbBug kbdocfix kbFileIO kbVC410fix KB143409 |
---|
|