|
// *********************************************************
// エクスプローラのファイルコピー
// lpFiles に指定できるのは一つのファイルまたはディレクトリ
// lpNewFile に指定できるのは一つのファイルまたはディレクトリ
// 戻り値 : 成功 true, 失敗 false
// *********************************************************
BOOL LboxFileSystem::ShellCopy(
HWND hWnd, LboxString *LstrFiles, LboxString *LstrNew )
{
return LboxFileSystem::ShellCopy(
hWnd,
LstrFiles->szLboxString,
LstrNew->szLboxString
);
}
BOOL LboxFileSystem::ShellCopy( HWND hWnd, LPTSTR lpFiles, LPTSTR lpNew )
{
SHFILEOPSTRUCT sf;
lpFiles[lstrlen( lpFiles )+1] = 0x00;
ZeroMemory( &sf, sizeof( sf ) );
sf.hwnd = hWnd;
sf.wFunc = FO_COPY;
sf.pFrom = lpFiles;
sf.pTo = lpNew;
return (BOOL)!SHFileOperation( &sf );
}
// *********************************************************
// エクスプローラのファイルコピー
// lpNewFile に指定できるのは一つのディレクトリ
// 戻り値 : 成功 true, 失敗 false
// *********************************************************
BOOL LboxFileSystem::ShellCopy( HWND hWnd, HWND hList, LboxString *LstrDir )
{
return LboxFileSystem::ShellCopy(
hWnd,
hList,
LstrDir->szLboxString
);
}
BOOL LboxFileSystem::ShellCopy( HWND hWnd, HWND hList, LPTSTR lpDir )
{
LboxToken *Ltoken = new LboxToken( );
LboxListCreateToken( hList, Ltoken );
BOOL bRet;
SHFILEOPSTRUCT sf;
ZeroMemory( &sf, sizeof( sf ) );
sf.hwnd = hWnd;
sf.wFunc = FO_COPY;
sf.pFrom = Ltoken->pszLboxToken;
sf.pTo = lpDir;
bRet = (BOOL)!SHFileOperation( &sf );
delete Ltoken;
return bRet;
}
| |