Clarification of SearchPath() Return ValueLast reviewed: September 25, 1995Article ID: Q115826 |
The information in this article applies to:
SUMMARYThe entry for "SearchPath()" in the "Win32 Programmer's Reference" says that the return value will be one of the following:
In order to distinguish the "file not found" condition from another error (out of memory, invalid parameter, and so forth), call SetLastError() with a value of NO_ERROR before calling SearchPath().
MORE INFORMATIONThis behavior is by design. The recommended way to check the return status for SearchPath() is:
return value > buffer length buffer too small return value = 0 file not found or another error return value <= buffer length file foundHandle the case where the return value is 0 as follows:
TCHAR szFilename[] = "MyFile.Txt"; TCHAR szPathname[MAX_PATH]; LPTSTR lpszFilename; SetLastError( NO_ERROR ); if( !SearchPath( NULL, szFilename, NULL, MAX_PATH, szPathname, &lpszFilename ) ) { if( GetLastError() == NO_ERROR ) Display( "File not found." ); else Display( "SearchPath failed!" ); } |
Additional reference words: 3.10
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |