Win32 API 日本語リファレンス
ホームUI.Shell › IShellDispatch

IShellDispatch

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDd8f015c0-c278-11ce-a49e-444553540000継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

Shell 内のオブジェクトを表します。

解説(Remarks)

Shell 内のオブジェクトを表します。Shell を制御し、Shell 内でコマンドを実行するためのメソッドが提供されています。また、その他の Shell 関連オブジェクトを取得するためのメソッドもあります。

メモ

IShellDispatchShell オブジェクトを通じて実装され、アクセスされます。

メソッド 23

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_Application(IDispatch** ppid)
ppidIDispatch**outトップレベルアプリケーション(Shell オブジェクト)を表す IDispatch を受け取るポインタである。
vtbl 8 HRESULT get_Parent(IDispatch** ppid)
ppidIDispatch**out親オブジェクトを表す IDispatch を受け取るポインタである。
vtbl 9 HRESULT NameSpace(VARIANT vDir, Folder** ppsdf)

指定されたフォルダーの Folder オブジェクトを作成して返します。

vDirVARIANTin対象とする名前空間を示す VARIANT(フォルダーパス文字列または特殊フォルダーの ShellSpecialFolderConstants 値)を指定する。
ppsdfFolder**out指定した名前空間に対応する Folder オブジェクトを受け取るポインタである。
vtbl 10 HRESULT BrowseForFolder(INT Hwnd, LPWSTR Title, INT Options, VARIANT RootFolder, Folder** ppsdf)

ユーザーがフォルダーを選択できるダイアログ ボックスを作成し、選択されたフォルダーの Folder オブジェクトを返します。

HwndINTinダイアログの親ウィンドウのハンドルを指定する。
TitleLPWSTRinダイアログ内に表示する説明文を指定する。
OptionsINTinダイアログの動作を制御するオプションフラグ(BIF_ 系の値)を指定する。
RootFolderVARIANTinブラウズの起点となるルートフォルダーを示す VARIANT を指定する。
ppsdfFolder**outユーザーが選択したフォルダーを表す Folder オブジェクトを受け取るポインタである。キャンセル時は NULL となる。
vtbl 11 HRESULT Windows(IDispatch** ppid)

ShellWindows オブジェクトを作成して返します。このオブジェクトは、Shell に属するすべての開いているウィンドウのコレクションを表します。

ppidIDispatch**out開いているシェルウィンドウの集合を表す IDispatch を受け取るポインタである。
vtbl 12 HRESULT Open(VARIANT vDir)

指定されたフォルダーを開きます。

vDirVARIANTin開く対象のフォルダーを示す VARIANT(パス文字列または特殊フォルダー値)を指定する。
vtbl 13 HRESULT Explore(VARIANT vDir)

指定されたフォルダーを Windows エクスプローラー ウィンドウで開きます。

vDirVARIANTinエクスプローラービューで開く対象のフォルダーを示す VARIANT(パス文字列または特殊フォルダー値)を指定する。
vtbl 14 HRESULT MinimizeAll()

デスクトップ上のすべてのウィンドウを最小化します。このメソッドは、古いシステムではタスクバーを右クリックして [すべてのウィンドウを最小化] を選択するのと、またはタスクバーの [デスクトップの表示] アイコンをクリックするのと同じ効果があります。

vtbl 15 HRESULT UndoMinimizeALL()

すべてのデスクトップ ウィンドウを、直前の MinimizeAll コマンドの前の状態に復元します。このメソッドは、タスクバーを右クリックして [すべてのウィンドウの最小化を元に戻す] を選択するのと (古いシステムの場合)、またはタスクバーの [デスクトップの表示] アイコンを 2 回目にクリックするのと同じ効果があります。

vtbl 16 HRESULT FileRun()

[ファイル名を指定して実行] ダイアログをユーザーに表示します。

vtbl 17 HRESULT CascadeWindows()

デスクトップ上のすべてのウィンドウを重ねて表示します。このメソッドは、タスクバーを右クリックして [ウィンドウを重ねて表示] を選択するのと同じ効果があります。

vtbl 18 HRESULT TileVertically()

デスクトップ上のすべてのウィンドウを縦に並べて表示します。このメソッドは、タスクバーを右クリックして [ウィンドウを左右に並べて表示] を選択するのと同じ効果があります。

vtbl 19 HRESULT TileHorizontally()

デスクトップ上のすべてのウィンドウを横に並べて表示します。このメソッドは、タスクバーを右クリックして [ウィンドウを上下に並べて表示] を選択するのと同じ効果があります。

vtbl 20 HRESULT ShutdownWindows()

[Windows のシャットダウン] ダイアログ ボックスを表示します。これは、スタート メニューをクリックして [シャットダウン] を選択するのと同じです。

vtbl 21 HRESULT Suspend()

td

vtbl 22 HRESULT EjectPC()

コンピューターをドッキング ステーションから取り外します。これは、コンピューターがこのコマンドをサポートしている場合、スタート メニューをクリックして [PC の取り外し] を選択するのと同じです。

vtbl 23 HRESULT SetTime()

[日付と時刻] ダイアログ ボックスを表示します。このメソッドは、タスクバーの通知領域の時計を右クリックして [日付と時刻の調整] を選択するのと同じ効果があります。

vtbl 24 HRESULT TrayProperties()

[タスクバーと [スタート] メニューのプロパティ] ダイアログ ボックスを表示します。このメソッドは、タスクバーを右クリックして [プロパティ] を選択するのと同じ効果があります。

vtbl 25 HRESULT Help()

Windows ヘルプとサポート ウィンドウを表示します。このメソッドは、スタート メニューをクリックして [ヘルプとサポート] を選択するのと同じ効果があります。

vtbl 26 HRESULT FindFiles()

[検索: すべてのファイル] ダイアログ ボックスを表示します。これは、スタート メニューをクリックして [検索] を選択するのと同じです。

vtbl 27 HRESULT FindComputer()

[検索結果: コンピューター] ダイアログ ボックスを表示します。このダイアログ ボックスは、指定されたコンピューターの検索結果を表示します。

vtbl 28 HRESULT RefreshMenu()

スタート メニューの内容を更新します。Windows XP より前のシステムでのみ使用されます。

vtbl 29 HRESULT ControlPanelItem(LPWSTR bstrDir)

指定されたコントロール パネル アプリケーションを実行します。アプリケーションが既に開いている場合は、実行中のインスタンスをアクティブにします。注: Windows Vista 以降、ほとんどのコントロール パネル アプリケーションは Shell 項目であり、この関数で開くことはできません。これらのコントロール パネル アプリケーションを開くには、正規名 (canonical name) を control.exe に渡します。例:

control.exe /name Microsoft.Personalization

bstrDirLPWSTRin起動するコントロールパネル項目(.cpl ファイル名など)を指定する。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

#define global IID_IShellDispatch "{D8F015C0-C278-11CE-A49E-444553540000}"
#usecom global IShellDispatch IID_IShellDispatch "{}"
#comfunc global IShellDispatch_get_Application   7 sptr
#comfunc global IShellDispatch_get_Parent        8 sptr
#comfunc global IShellDispatch_NameSpace         9 int,sptr
#comfunc global IShellDispatch_BrowseForFolder   10 int,wstr,int,int,sptr
#comfunc global IShellDispatch_Windows           11 sptr
#comfunc global IShellDispatch_Open              12 int
#comfunc global IShellDispatch_Explore           13 int
#comfunc global IShellDispatch_MinimizeAll       14
#comfunc global IShellDispatch_UndoMinimizeALL   15
#comfunc global IShellDispatch_FileRun           16
#comfunc global IShellDispatch_CascadeWindows    17
#comfunc global IShellDispatch_TileVertically    18
#comfunc global IShellDispatch_TileHorizontally  19
#comfunc global IShellDispatch_ShutdownWindows   20
#comfunc global IShellDispatch_Suspend           21
#comfunc global IShellDispatch_EjectPC           22
#comfunc global IShellDispatch_SetTime           23
#comfunc global IShellDispatch_TrayProperties    24
#comfunc global IShellDispatch_Help              25
#comfunc global IShellDispatch_FindFiles         26
#comfunc global IShellDispatch_FindComputer      27
#comfunc global IShellDispatch_RefreshMenu       28
#comfunc global IShellDispatch_ControlPanelItem  29 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。