|
// *********************************************************
// エクスプローラのファイル削除( ディレクトリ可 )
// lpFiles に指定できるのは一つのファイルまたはディレクトリ
// lpFiles がフルパスで指定されているとゴミ箱へ移動
// 戻り値 : 成功 true, 失敗 false
// *********************************************************
BOOL LboxFileSystem::ShellDelete( HWND hWnd, LboxString *LstrFiles )
{
return LboxFileSystem::ShellDelete(
hWnd,
LstrFiles->szLboxString
);
}
BOOL LboxFileSystem::ShellDelete( HWND hWnd, LPTSTR lpFiles )
{
SHFILEOPSTRUCT sf;
lpFiles[lstrlen( lpFiles )+1] = 0x00;
ZeroMemory( &sf, sizeof( sf ) );
sf.hwnd = hWnd;
sf.wFunc = FO_DELETE;
sf.pFrom = lpFiles;
sf.fFlags = FOF_ALLOWUNDO;
return (BOOL)!SHFileOperation( &sf );
}
// *********************************************************
// エクスプローラのファイル削除( ディレクトリ可 )
// 戻り値 : 成功 true, 失敗 false
// *********************************************************
BOOL LboxFileSystem::ShellDelete( HWND hWnd, HWND hList )
{
LboxToken *Ltoken = new LboxToken( );
LboxListCreateToken( hList, Ltoken );
BOOL bRet;
SHFILEOPSTRUCT sf;
ZeroMemory( &sf, sizeof( sf ) );
sf.hwnd = hWnd;
sf.wFunc = FO_DELETE;
sf.pFrom = Ltoken->pszLboxToken;
sf.fFlags = FOF_ALLOWUNDO;
bRet = (BOOL)!SHFileOperation( &sf );
delete Ltoken;
return bRet;
}
| |