Last Updated 2002/10/01
Programming Tips Visual C++ API  索 引 
SHBrowseForFolderでルートフォルダの指定
2002/10/01

SHBrowseForFolder() にてルートフォルダを指定のフォルダにする方法.

BROWSEINFO 構造体の pidlRoot にフォルダを指定すればよい.
フォルダは ITEMIDLIST に変換する.

LPITEMIDLIST ConvertPIDL( char *lpszPath ) // I :変換するパス
{
ULONG chEatan;
ULONG dwAttributes;
OLECHAR olePath[ MAX_PATH ];
LPSHELLFOLDER pDesktopFolder;
LPITEMIDLIST pidl;

if( SUCCEEDED( SHGetDesktopFolder( &pDesktopFolder ) ) ) {
MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, lpszPath, -1,
olePath, MAX_PATH );
if( FAILED( pDesktopFolder->lpVtbl->ParseDisplayName(
pDesktopFolder, NULL, NULL, olePath, &chEatan, &pidl,
&dwAttributes ) ) )
pidl = NULL;
pDesktopFolder->lpVtbl->Release( pDesktopFolder );
}
return( pidl );
}

この関数の戻り値を pidlRoot に指定すればよい.


参照
SHBrowseForFolder(フォルダ選択ダイアログ)
パスからからITEMIDLIST取得
前後のTips
SHBrowseForFolderでルートフォルダの指定

DSS ProgrammingTipsCGI Ver2.02