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

IFileDialogControlEvents

COM
IID36116642-d713-4b97-9b83-7484a9d00433継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

アプリケーションが共通ファイルダイアログに追加したコントロールに関連するイベントを、アプリケーションに通知できるようにするメソッドを公開します。

解説(Remarks)

実装するタイミング

IFileDialogControlEvents は、アプリケーションが IFileDialogEvents を実装しているのと同じオブジェクト上で実装します。

ダイアログは、このインターフェイスのメソッドの戻り値をチェックしません。

メソッド 4

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT OnItemSelected(IFileDialogCustomize* pfdc, DWORD dwIDCtl, DWORD dwIDItem)

コンボボックスで項目が選択されたとき、ユーザーがオプションボタン(ラジオボタンとも呼ばれます)をクリックしたとき、または [ツール] メニューから項目が選択されたときに呼び出されます。

pfdcIFileDialogCustomize*inアプリケーションがダイアログにコントロールを追加した際に使用したインターフェイスへのポインター。
dwIDCtlDWORDinユーザーが選択を行ったコントロールの ID。
dwIDItemDWORDin選択された項目の ID。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

この通知は、ユーザーが [開く] ボタンに付属するドロップダウンメニューから項目を選択した場合には送信されません。そのケースでは、実行される動作が常に同じ(ユーザーが単に [開く] ボタンをクリックした場合と同様にダイアログを閉じる)だからです。その状況では、アプリケーションは GetSelectedControlItem を呼び出して、ユーザーがそのメニューから選択した項目を取得できます。

vtbl 4 HRESULT OnButtonClicked(IFileDialogCustomize* pfdc, DWORD dwIDCtl)

ユーザーがコマンドボタンをクリックしたときに呼び出されます。

pfdcIFileDialogCustomize*inアプリケーションがダイアログにコントロールを追加した際に使用したインターフェイスへのポインター。
dwIDCtlDWORDinユーザーがクリックしたボタンの ID。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 5 HRESULT OnCheckButtonToggled(IFileDialogCustomize* pfdc, DWORD dwIDCtl, BOOL bChecked)

ユーザーがチェックボタン(チェックボックス)の状態を変更したときに呼び出されます。

pfdcIFileDialogCustomize*inアプリケーションがダイアログにコントロールを追加した際に使用したインターフェイスへのポインター。
dwIDCtlDWORDinユーザーがクリックしたボタンの ID。
bCheckedBOOLinチェックボタンの現在の状態を示す BOOL。チェックされている場合は TRUE、それ以外の場合は FALSE

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 6 HRESULT OnControlActivating(IFileDialogCustomize* pfdc, DWORD dwIDCtl)

EnableOpenDropDown を通じてカスタマイズされた [開く] ボタンのドロップダウンリスト、または [ツール] メニューがその内容を表示しようとしているときに呼び出されます。

pfdcIFileDialogCustomize*inアプリケーションがダイアログにコントロールを追加する際に使用する IFileDialogCustomize オブジェクトへのポインター。
dwIDCtlDWORDin表示されようとしているリストまたはメニューの ID。

戻り値

型: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

この通知に応答して、アプリケーションは、ダイアログの現在の状態に基づいて、表示されようとしているメニューまたはリストの内容を更新できます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

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

#define global IID_IFileDialogControlEvents "{36116642-D713-4B97-9B83-7484A9D00433}"
#usecom global IFileDialogControlEvents IID_IFileDialogControlEvents "{}"
#comfunc global IFileDialogControlEvents_OnItemSelected        3 sptr,int,int
#comfunc global IFileDialogControlEvents_OnButtonClicked       4 sptr,int
#comfunc global IFileDialogControlEvents_OnCheckButtonToggled  5 sptr,int,int
#comfunc global IFileDialogControlEvents_OnControlActivating   6 sptr,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。