Reactos
at listview 32 lines 692 B view raw
1// 2// FixLFN.h 3// 4 5#ifndef __FIXLFN_H 6#define __FIXLFN_H 7 8#include <string.h> 9#include <tchar.h> 10#include <shellapi.h> 11 12inline int FixLFN ( const TCHAR* pBadFileName, TCHAR* pGoodFileName ) 13{ 14 SHFILEINFO sfi; 15 TCHAR* p; 16 17 DWORD dwResult = SHGetFileInfo ( pBadFileName, 0, &sfi, sizeof(sfi), SHGFI_DISPLAYNAME ); 18 if ( dwResult ) 19 { 20 if ( pGoodFileName != pBadFileName ) 21 _tcscpy ( pGoodFileName, pBadFileName ); 22 if ( (p = _tcsrchr ( pGoodFileName, '\\' )) ) 23 _tcscpy ( p+1, sfi.szDisplayName ); 24 else if ( (p = _tcsrchr ( pGoodFileName, '/' )) ) 25 _tcscpy ( p+1, sfi.szDisplayName ); 26 else 27 _tcscpy ( pGoodFileName, sfi.szDisplayName ); 28 } 29 return dwResult; 30} 31 32#endif//__FIXLFN_H