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

ICommDlgBrowser2

COM
IID10339516-2894-11d2-9039-00c04f8eeb3e継承元ICommDlgBrowser自前メソッド開始 vtbl6

公式ドキュメント

ICommDlgBrowser の機能を拡張します。このインターフェイスは、コモンファイルダイアログボックスが Shell ブラウザーをホストする際に公開されます。ICommDlgBrowser2 へのポインターは、IShellBrowser オブジェクトに対して QueryInterface を呼び出すことで取得できます。

解説(Remarks)

このインターフェイスは、継承元である ICommDlgBrowser インターフェイスのメソッドも提供します。

注意 Windows XP 以前では、このインターフェイスは Shlobj.h で定義されていました。
このインターフェイスは、コモンファイルダイアログボックスによってのみ実装されます。

Shell ビューがコモンダイアログボックス内でホストされている場合は、ICommDlgBrowser2 を使用してください。

ICommDlgBrowser2 は、すべての ICommDlgBrowser メソッドと、IUnknown を実装します。ここに示すメソッドは ICommDlgBrowser2 に固有のものです。

注意 Windows Vista 以降。 Windows Vista より前では、このインターフェイスは Shlobj.h で宣言されていました。

メソッド 3

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

vtbl 6 HRESULT Notify(IShellView* ppshv, DWORD dwNotifyType)

イベントが発生したことを、Shell ビューがそれをホストするコモンダイアログボックスに通知するために呼び出されます。

ppshvIShellView*inホストされているビューの IShellView インターフェイスへのポインターです。
dwNotifyTypeDWORDin

次の 2 つの値のいずれかを取るフラグです。

CDB2N_CONTEXTMENU_START

ショートカットメニューが表示されようとしていることを示します。

CDB2N_CONTEXTMENU_DONE

ショートカットメニューが表示されなくなったことを示します。

戻り値

型: HRESULT

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

vtbl 7 HRESULT GetDefaultMenuText(IShellView* ppshv, LPWSTR pszText, INT cchMax)

既定のショートカットメニューのテキストを取得するために、Shell ビューによって呼び出されます。

ppshvIShellView*inホストされているビューの IShellView インターフェイスへのポインターです。
pszTextLPWSTRout既定のショートカットメニューのテキストを返すために Shell ブラウザーが使用するバッファーへのポインターです。
cchMaxINTinpszText バッファーのサイズ (文字数) です。少なくとも許容される最大パス長 (MAX_PATH) 以上のサイズにする必要があります。

戻り値

型: HRESULT

新しい既定のショートカットメニューのテキストが pshv に返された場合は S_OK を返します。S_FALSE が返された場合は、通常の既定のテキストを使用してください。それ以外の場合は、標準的な COM エラー値を返します。

vtbl 8 HRESULT GetViewFlags(DWORD* pdwFlags)

コモンダイアログブラウザー用に特別なカスタマイズを行う必要があるかどうかをビューが判断する必要がある場合に呼び出されます。

pdwFlagsDWORD*out

コモンダイアログモードのときのビューの動作を制御する DWORD 値へのポインターです。

CDB2GVF_SHOWALLFILES (0x00000001)

0x00000001。隠しファイルやシステムファイルを含むすべてのファイルを表示する必要があります。Windows XP では、これが認識される唯一のフラグです。

CDB2GVF_ISFILESAVE (0x00000002)

0x00000002。このブラウザーは、保存するファイルを選択するために指定されています。

CDB2GVF_ALLOWPREVIEWPANE (0x00000004)

0x00000004。使用されていません。

CDB2GVF_NOSELECTVERB (0x00000008)

0x00000008。項目のコンテキストメニューに "select" 動詞を表示しません。

CDB2GVF_NOINCLUDEITEM (0x00000010)

0x00000010。IncludeObject を呼び出さないようにします。

CDB2GVF_ISFOLDERPICKER (0x00000020)

0x00000020。このブラウザーは、フォルダーを選択するために指定されています。

CDB2GVF_ADDSHIELD (0x00000040)

0x00000040。Windows 7 以降。 CDB2GVF_NOSELECTVERB が指定されていない場合、選択された項目に UAC シールドを表示します。

戻り値

型: 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_ICommDlgBrowser2 "{10339516-2894-11D2-9039-00C04F8EEB3E}"
#usecom global ICommDlgBrowser2 IID_ICommDlgBrowser2 "{}"
#comfunc global ICommDlgBrowser2_Notify              6 sptr,int
#comfunc global ICommDlgBrowser2_GetDefaultMenuText  7 sptr,var,int
#comfunc global ICommDlgBrowser2_GetViewFlags        8 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。