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取得 |
|