GetFileTitle

The GetFileTitle function returns the name of the file identified by the lpszFile parameter.

short GetFileTitle(

LPCTSTR lpszFile, // pointer to full path and filename for file
LPTSTR lpszTitle, // pointer to buffer that receives filename
WORD cbBuf // length of buffer
);  

Parameters

lpszFile

Pointer to the name and location of a file.

lpszTitle

Pointer to a buffer into which the function is to copy the name of the file.

cbBuf

Specifies the length, in characters, of the buffer pointed to by the lpszTitle parameter.

Return Values

If the function succeeds, the return value is zero.

If the filename is invalid, the return value is a negative number.

If the buffer pointed to by the lpszTitle parameter is too small, the return value is a positive integer that specifies the required buffer size, in bytes (ANSI version) or characters (Unicode version). The required buffer size includes the terminating null character.

Remarks

The GetFileTitle function returns an error value if the buffer pointed to by the lpszFile parameter contains any of the following elements:

·An empty string

·A string containing a wildcard (*), opening bracket ([), or closing bracket (])

·A string that ends with a colon (:), slash mark (/), or backslash (\)

·A string whose length exceeded the length of the buffer

·An invalid character (for example, a space or an unprintable character)

To get the buffer size needed for the name of a file, call the function with lpszTitle set to NULL and cbBuf set to zero. The function will return the required size.

GetFileTitle returns the string that the system would use to display the filename to the user. The display name includes an extension only if that is the user's preference for displaying filenames. This means that the returned string may not accurately identify the file if it is used in calls to file system functions.

If the lpszTitle buffer is too small, GetFileTitle returns the size required to hold the display name. There is no guaranteed connection between the required size and the characters originally specified in the lpszFile buffer. In porting applications to Windows 95 and Windows NT, developers will 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 lpszTitle set to NULL and cbBuf set to zero, and then uses the return value as an index into the lpszFile string. This technique is no longer supported. You can usually achieve similar results (and superior performance) with run-time library functions such as strrchr, wcsrchr, and _mbsrchr.

See Also

GetOpenFileName, GetSaveFileName