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

IExplorerBrowserEvents

COM
IID361bbdc7-e6ee-4e13-be58-58e2240c810f継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

Explorer ブラウザーのナビゲーションおよびビュー作成イベントを通知するためのメソッドを公開します。

解説(Remarks)

IExplorerBrowser のナビゲーションおよびビュー作成イベントの通知を受け取るには、このインターフェイスを実装します。実装することで、必要に応じてこれらのイベントを処理できるようになります。

IExplorerBrowser イベントの通知を受け取りたい実装者 (クライアント) は、その旨を IExplorerBrowser に通知する必要があります。クライアントは IExplorerBrowser::Advise メソッドを呼び出してこれを行います。これにより、IExplorerBrowserIExplorerBrowserEvents のメソッドを使用してクライアントへイベントのコールバックを行えるようになります。イベントのコールバックを停止するには、クライアントは IExplorerBrowser::Unadvise メソッドを呼び出す必要があります。呼び出さない場合、メモリリークが発生する可能性があります。

最初のナビゲーション (IExplorerBrowser::BrowseToObject) の際、Explorer はこのインターフェイスのメソッドを同期的に呼び出します。それ以降は、Explorer はこれらを非同期的に呼び出します。イベントコールバックの順序は次のとおりです。IExplorerBrowserEvents::OnNavigationPendingIExplorerBrowserEvents::OnViewCreated、そして、ナビゲーションが成功したか失敗したかに応じて IExplorerBrowserEvents::OnNavigationComplete または IExplorerBrowserEvents::OnNavigationFailed です。

メソッド 4

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

vtbl 3 HRESULT OnNavigationPending(ITEMIDLIST* pidlFolder)

Explorer ブラウザーが Shell フォルダーへナビゲートしようとしていることをクライアントに通知します。

pidlFolderITEMIDLIST*inフォルダーを指定する PIDL です。

戻り値

型: HRESULT

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

解説(Remarks)

Explorer ブラウザーは、フォルダーへナビゲートする前、すなわち IExplorerBrowserEvents::OnNavigationFailed または IExplorerBrowserEvents::OnNavigationComplete を呼び出す前に、このメソッドを呼び出します。

このメソッドから E_NOTIMPL を含む任意の失敗コードを返すと、ナビゲーションはキャンセルされます。

vtbl 4 HRESULT OnViewCreated(IShellView* psv)

Explorer ブラウザーのビューが作成され、変更可能になったことをクライアントに通知します。

psvIShellView*inIShellView へのポインターです。

戻り値

型: HRESULT

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

解説(Remarks)

Explorer ブラウザーは、ビューが表示される前にクライアントが Explorer ブラウザーのビューへ任意の変更を加えられるようにするために、このメソッドを呼び出します。たとえば、ビューモードやフォルダーフラグを設定するために使用します。

vtbl 5 HRESULT OnNavigationComplete(ITEMIDLIST* pidlFolder)

Explorer ブラウザーが Shell フォルダーへのナビゲーションに成功したことをクライアントに通知します。

pidlFolderITEMIDLIST*inフォルダーを指定する PIDL です。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドは、ビューの作成が成功したことを前提として、IExplorerBrowserEvents::OnViewCreated メソッドの後に呼び出されます。

ナビゲーションおよびビュー作成の後、ナビゲーション先へ到達できたかどうかに応じて、IExplorerBrowserEvents::OnNavigationComplete または IExplorerBrowserEvents::OnNavigationFailed のいずれかが呼び出されます。たとえば、パスへの経路が存在しない、あるいはユーザーがキャンセルしたなどの理由でナビゲーション先へ到達できなかった場合は、ナビゲーションの失敗となります。

vtbl 6 HRESULT OnNavigationFailed(ITEMIDLIST* pidlFolder)

Explorer ブラウザーが Shell フォルダーへのナビゲーションに失敗したことをクライアントに通知します。

pidlFolderITEMIDLIST*inフォルダーを指定する PIDL です。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドは、ビューの作成が成功したことを前提として、IExplorerBrowserEvents::OnViewCreated メソッドの後に呼び出されます。

ナビゲーションおよびビュー作成の後、ナビゲーション先へ到達できたかどうかに応じて、IExplorerBrowserEvents::OnNavigationComplete または IExplorerBrowserEvents::OnNavigationFailed のいずれかが呼び出されます。たとえば、パスへの経路が存在しない、あるいはユーザーがキャンセルしたなどの理由でナビゲーション先へ到達できなかった場合は、ナビゲーションの失敗となります。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IExplorerBrowserEvents "{361BBDC7-E6EE-4E13-BE58-58E2240C810F}"
#usecom global IExplorerBrowserEvents IID_IExplorerBrowserEvents "{}"
#comfunc global IExplorerBrowserEvents_OnNavigationPending   3 var
#comfunc global IExplorerBrowserEvents_OnViewCreated         4 sptr
#comfunc global IExplorerBrowserEvents_OnNavigationComplete  5 var
#comfunc global IExplorerBrowserEvents_OnNavigationFailed    6 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。