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

INamespaceWalkCB

COM
IIDd92995f8-cf5e-4a76-bf59-ead39ea2b97e継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

INamespaceWalk と共に使用されるメソッドを公開するコールバックインターフェイスです。

解説(Remarks)

このインターフェイスの IID は IID_INamespaceWalkCB です。

メソッド 4

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

vtbl 3 HRESULT FoundItem(IShellFolder* psf, ITEMIDLIST* pidl)

名前空間ウォーク中に名前空間内でオブジェクトが見つかったときに呼び出されます。このメソッドは、これを実装するクラスの主要なアクション関数として使用します。必要な処理をこのメソッド内で実行してください。

psfIShellFolder*in項目を含むフォルダーを表す IShellFolder オブジェクトへのポインターです。
pidlITEMIDLIST*inpsf からの相対的な、項目の PIDL です。

戻り値

型: HRESULT

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

vtbl 4 HRESULT EnterFolder(IShellFolder* psf, ITEMIDLIST* pidl)

名前空間ウォーク中にフォルダーに入ろうとしているときに呼び出されます。取得した項目の初期化にこのメソッドを使用してください。

psfIShellFolder*inpidl で指定されたフォルダーの親を表す IShellFolder オブジェクトへのポインターです。
pidlITEMIDLIST*inpsf からの相対的な、入ろうとしているフォルダーの PIDL です。

戻り値

型: HRESULT

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

vtbl 5 HRESULT LeaveFolder(IShellFolder* psf, ITEMIDLIST* pidl)

フォルダーを通じた名前空間ウォークの後に呼び出されます。INamespaceWalkCB::EnterFolder または INamespaceWalkCB::FoundItem によって実行された処理に続いて必要なクリーンアップを行うために、このメソッドを使用してください。

psfIShellFolder*inpidl で指定されたフォルダーの親を表す IShellFolder オブジェクトへのポインターです。
pidlITEMIDLIST*inpsf からの相対的な、退出しようとしているフォルダーの PIDL です。

戻り値

型: HRESULT

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

vtbl 6 HRESULT InitializeProgressDialog(LPWSTR* ppszTitle, LPWSTR* ppszCancel)

名前空間ウォーク中に表示される進行状況ダイアログボックスのウィンドウタイトルとキャンセルボタンのテキストを初期化します。

ppszTitleLPWSTR*outこのメソッドが戻るとき、ダイアログボックスに使用するタイトルを格納した null で終わる文字列へのポインターが格納されます。
ppszCancelLPWSTR*outこのメソッドが戻るとき、名前空間ウォークをキャンセルするボタンに表示されるテキストを格納した null で終わる文字列へのポインターが格納されます。

戻り値

型: HRESULT

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

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