|
関数 ShellExecute() の第2引数に"openas"を指定することによってダイアログを起動することができる。
//*********************************************************
// 「ファイルやフォルダを開くアプリケーションを選択」ダイアログを起動する
//*********************************************************
BOOL ShellOpenas( HWND hOwner, const char *FileName )
{
return ( (HINSTANCE)HINSTANCE_ERROR <= ShellExecute( hOwner, "openas", FileName, NULL, NULL, SW_SHOWNORMAL ) );
}//ShellOpenas
関連づけの有無に関わらず「ファイルやフォルダを開くアプリケーションを選択」ダイアログを起動する関数を作る。
//*********************************************************
// 「ファイルやフォルダを開くアプリケーションを選択」ダイアログを起動する
//*********************************************************
BOOL ShellOpenas( HWND hOwner, const char *FileName )
{
char Param[1 + MAX_PATH + sizeof("shell32.dll,OpenAs_RunDLL ")];
// rundll32.exe を コマンドライン引数"shell32.dll,OpenAs_RunDLL ファイル名" で起動する
sprintf( Param, "shell32.dll,OpenAs_RunDLL %s", FileName ); // コマンドライン引数を作成
return ( (HINSTANCE)HINSTANCE_ERROR <= ShellExecute( hOwner, NULL, "rundll32.exe", Param, NULL, SW_SHOWNORMAL ) );
}//ShellOpenas
関連 | |