// サムネイルの表示を有効にする
static HRESULT EnableThumbShellView(LPCTSTR szDirectoryName)
{
OSVERSIONINFO version;
memset(&version, 0, sizeof(version));
version.dwOSVersionInfoSize = sizeof(version);
::GetVersionEx(&version);
if(version.dwPlatformId == VER_PLATFORM_WIN32_NT)
{
if((version.dwMajorVersion >= 5) && (version.dwMinorVersion >= 1))
{
// WinXP or Lator
return S_OK;
}
}
CString strDesktopIni = GetProfileFileName(szDirectoryName);
// [.ShellClassInfo]
// ConfirmFileOp=0
::WritePrivateProfileString(_T(".ShellClassInfo"), _T("ConfirmFileOp"), _T("0"), strDesktopIni);
CString strClsID = _T("{8BEBB290-52D0-11d0-B7F4-00C04FD706EC}");
// [ExtShellFolderViews]
// Default={8BEBB290-52D0-11d0-B7F4-00C04FD706EC}
::WritePrivateProfileString(_T("ExtShellFolderViews"), _T("Default"), strClsID, strDesktopIni);
// {8BEBB290-52D0-11d0-B7F4-00C04FD706EC}={8BEBB290-52D0-11d0-B7F4-00C04FD706EC}
::WritePrivateProfileString(_T("ExtShellFolderViews"), strClsID, strClsID, strDesktopIni);
// [{8BEBB290-52D0-11d0-B7F4-00C04FD706EC}]
// MenuName=縮小版(&H)
::WritePrivateProfileString(strClsID, _T("MenuName"), _T("縮小版(&H)"), strDesktopIni);
// ToolTipText=縮小版(&H)
::WritePrivateProfileString(strClsID, _T("ToolTipText"), _T("縮小版(&H)"), strDesktopIni);
// HelpText=縮小表示で項目を表示します
::WritePrivateProfileString(strClsID, _T("HelpText"), _T("縮小表示で項目を表示します"), strDesktopIni);
// Attributes=0x60000000
::WritePrivateProfileString(strClsID, _T("Attributes"), _T("0x60000000"), strDesktopIni);
// 隠しファイルにする
::SetFileAttributes(strDesktopIni, FILE_ATTRIBUTE_HIDDEN);
// フォルダのシェル拡張を有効にする
::PathMakeSystemFolder(szDirectoryName); // SHLWAPI 4.71
return S_OK;
}
static CString GetProfileFileName(LPCTSTR szDirectoryName)
{
CString strDirectoryName = /*CShlwapiHelper::*/PathAddBackslash(szDirectoryName); // SHLWAPI 4.71
CString strDesktopIni = strDirectoryName + _T("Desktop.ini");
return strDesktopIni;
}
// バックスラッシュを付加する
// → CShlwapiHlperよりコピー
static CString PathAddBackslash(CString strPath)
{
TCHAR szPath[_MAX_PATH];
_tcscpy(szPath, strPath);
::PathAddBackslash(szPath); // SHLWAPI 4.71
return szPath;
}