CSting shortName = ...;
WIN32_FIND_DATA findData;
HANDLE hFindFile = ::FindFirstFile( shortName.c_str(), &findData );
if ( hFindFile == INVALID_HANDLE_VALUE ) {
DWORD err = GetLastError();
return false;
}
::FindClose( hFindFile );
char drive[ _MAX_DRIVE ], dir[ _MAX_DIR ];
::_splitpath( inShortName.c_str(), drive, dir, NULL, NULL );
CString longName;
longName = drive;
longName += dir;
longName += findData.cFileName;