第 号
|
Last Updated 2005/08/02
|
SHBrowseForFolderでルートフォルダの指定
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取得
2002/10/01