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

INameSpaceTreeControlEvents

COM
IID93d77985-b3d8-4484-8318-672cdda002ce継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

INameSpaceTreeControl のイベントを処理するためのメソッドを公開します。

解説(Remarks)

このインターフェイスは、名前空間コントロール (CLSID_NameSpaceTreeControl) のクライアントによって実装されます。これにより、クライアントは名前空間コントロールのイベントの通知を受け取り、それらのイベントを処理できるようになります。処理しない場合は、名前空間コントロールに処理を任せることができます。

メソッド 18

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

vtbl 3 HRESULT OnItemClick(IShellItem* psi, DWORD nstceHitTest, DWORD nstceClickType)

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

psiIShellItem*inクリックされた IShellItem です。
nstceHitTestDWORDin

クリックされた IShellItem 上の位置です。次のいずれかの値になります。

NSTCEHT_NOWHERE (0x0001)

クリックは IShellItem から外れていました。

NSTCEHT_ONITEMICON (0x0002)

クリックは IShellItem のアイコン上でした。

NSTCEHT_ONITEMLABEL (0x0004)

クリックは IShellItem のラベルテキスト上でした。

NSTCEHT_ONITEMINDENT (0x0008)

クリックは IShellItem の左端のインデント領域上でした。

NSTCEHT_ONITEMBUTTON (0x0010)

クリックは IShellItem の展開ボタン上でした。

NSTCEHT_ONITEMRIGHT (0x0020)

クリックは IShellItem のテキストの右端側でした。

NSTCEHT_ONITEMSTATEICON (0x0040)

クリックは IShellItem の状態アイコン上でした。

NSTCEHT_ONITEM (0x0046)

クリックは IShellItem のアイテムアイコン、アイテムラベル、または状態アイコン上でした。

NSTCEHT_ONITEMTABBUTTON (0x1000)

クリックは IShellItem のタブボタン上でした。

nstceClickTypeDWORDin

どのボタンがクリックされたか、およびクリックの種類を示します。次のいずれかの値になります。

NSTCECT_LBUTTON (0x0001)

左ボタンがクリックされました。

NSTCECT_MBUTTON (0x0002)

中ボタンがクリックされました。

NSTCECT_RBUTTON (0x0003)

右ボタンがクリックされました。

NSTCECT_BUTTON (0x0003)

ボタンがクリックされました。

NSTCECT_DBLCLICK (0x0004)

ダブルクリックでした。この値が存在する場合は、他のいずれかの値に加算されます。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドが失敗した場合、イベントは INameSpaceTreeControl と TreeView の両方によって処理されます。S_OK を返した場合は、INameSpaceTreeControl のみがイベントを処理します。

vtbl 4 HRESULT OnPropertyItemCommit(IShellItem* psi)

実装されていません。(INameSpaceTreeControlEvents.OnPropertyItemCommit)

psiIShellItem*in使用されません。

戻り値

型: HRESULT

E_NOTIMPL を返します。

vtbl 5 HRESULT OnItemStateChanging(IShellItem* psi, DWORD nstcisMask, DWORD nstcisState)

アイテムの状態が変化する前に呼び出されます。

psiIShellItem*in状態が変化しようとしているシェルアイテムへのポインターです。
nstcisMaskDWORDin呼び出し側アプリケーションが設定しようとしている情報の種類を示す、NSTCITEMSTATE 列挙型の 1 つ以上の値です。
nstcisStateDWORDin設定される値を示す、NSTCITEMSTATE 列挙型の 1 つ以上の値です。

戻り値

型: HRESULT

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

vtbl 6 HRESULT OnItemStateChanged(IShellItem* psi, DWORD nstcisMask, DWORD nstcisState)

実装されていません。(INameSpaceTreeControlEvents.OnItemStateChanged)

psiIShellItem*in状態が変化したシェルアイテムへのポインターです。
nstcisMaskDWORDin呼び出し側が設定しようとしている情報の種類を示す、NSTCITEMSTATE 列挙型の 1 つ以上の値です。
nstcisStateDWORDin設定される値を示す、NSTCITEMSTATE 列挙型の 1 つ以上の値です。

戻り値

型: HRESULT

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

vtbl 7 HRESULT OnSelectionChanged(IShellItemArray* psiaSelection)

選択が変化したときに呼び出されます。

psiaSelectionIShellItemArray*in新しい選択項目を格納する IShellItem オブジェクトの配列です。

戻り値

型: HRESULT

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

vtbl 8 HRESULT OnKeyboardInput(DWORD uMsg, WPARAM wParam, LPARAM lParam)

ユーザーがキーボードのキーを押したときに呼び出されます。

uMsgDWORDinメッセージ値です。
wParamWPARAMinメッセージの WParam パラメーターを指定します。
lParamLPARAMinメッセージの LParam パラメーターを指定します。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドは、WndProc からメッセージを直接受け取ります。S_OK を返した場合、メッセージは消費されておらず、名前空間ツリーコントロールがメッセージを処理できます。それ以外の場合は、メッセージは処理済みであり、それ以上の操作は不要です。

vtbl 9 HRESULT OnBeforeExpand(IShellItem* psi)

IShellItem が展開される前に呼び出されます。

psiIShellItem*in展開される IShellItem へのポインターです。

戻り値

型: HRESULT

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

vtbl 10 HRESULT OnAfterExpand(IShellItem* psi)

IShellItem が展開された後に呼び出されます。

psiIShellItem*in展開された IShellItem へのポインターです。

戻り値

型: HRESULT

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

vtbl 11 HRESULT OnBeginLabelEdit(IShellItem* psi)

IShellItem が編集モードに入る前に呼び出されます。

psiIShellItem*inテキストが編集される対象の IShellItem へのポインターです。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドが失敗しても、編集モードへの移行はキャンセルされません。

vtbl 12 HRESULT OnEndLabelEdit(IShellItem* psi)

IShellItem が編集モードを終了した後に呼び出されます。

psiIShellItem*inテキストが編集された対象の IShellItem へのポインターです。

戻り値

型: HRESULT

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

vtbl 13 HRESULT OnGetToolTip(IShellItem* psi, LPWSTR pszTip, INT cchTip)

ツールチップを提供できるようにします。

psiIShellItem*inツールチップを含む IShellItem へのポインターです。
pszTipLPWSTRoutこのメソッドが返るときに、ツールチップのテキストを格納します。
cchTipINTinツールチップのサイズ (文字数) です。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドが S_OK を返した場合、クライアントは独自のツールチップを提供します。それ以外の場合は、INameSpaceTreeControl がツールチップを取得します。

vtbl 14 HRESULT OnBeforeItemDelete(IShellItem* psi)

IShellItem とそのすべての子が削除される前に呼び出されます。

psiIShellItem*in削除される IShellItem へのポインターです。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドが失敗しても、指定された IShellItem とその子は削除されます。

vtbl 15 HRESULT OnItemAdded(IShellItem* psi, BOOL fIsRoot)

IShellItem が追加された後に呼び出されます。

psiIShellItem*in追加された IShellItem へのポインターです。
fIsRootBOOLin追加された IShellItem がルートかどうかを指定します。

戻り値

型: HRESULT

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

vtbl 16 HRESULT OnItemDeleted(IShellItem* psi, BOOL fIsRoot)

IShellItem が削除された後に呼び出されます。

psiIShellItem*in削除された IShellItem へのポインターです。
fIsRootBOOLin削除された IShellItem がルートかどうかを指定します。

戻り値

型: HRESULT

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

vtbl 17 HRESULT OnBeforeContextMenu(IShellItem* psi, GUID* riid, void** ppv)

コンテキストメニューが表示される前に呼び出されます。クライアントが追加のメニュー項目を追加できるようにします。

psiIShellItem*inoptionalコンテキストメニューの生成元となる IShellItem へのポインターです。この値は NULL になる場合があります。
riidGUID*inコンテキストメニューの IID への参照です。
ppvvoid**outこのメソッドが返るときに、riid で指定されたインターフェイスへのポインターのアドレスを格納します。

戻り値

型: HRESULT

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

vtbl 18 HRESULT OnAfterContextMenu(IShellItem* psi, IContextMenu* pcmIn, GUID* riid, void** ppv)

コンテキストメニューが表示された後に呼び出されます。

psiIShellItem*inoptionalコンテキストメニューの生成元となる IShellItem へのポインターです。この値が NULL になるのは、NSTCS2_SHOWNULLSPACEMENU フラグが設定されている場合のみです。
pcmInIContextMenu*inコンテキストメニューへのポインターです。
riidGUID*inコンテキストメニューの IID への参照です。
ppvvoid**outこのメソッドが返るときに、riid で指定されたインターフェイスへのポインターのアドレスを格納します。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドにより、クライアントはコンテキストメニューを完全に置き換えることができます。このメソッドを使うと、クライアントは pcmIn で指定されたものではなく、ppv で返されるコンテキストメニューを使用できます。

vtbl 19 HRESULT OnBeforeStateImageChange(IShellItem* psi)

指定された IShellItem の状態アイコンが変更される前に呼び出されます。

psiIShellItem*in状態イメージが変化する IShellItem へのポインターです。

戻り値

型: HRESULT

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

解説(Remarks)

このメソッドが S_OK を返した場合、クライアントがイベントを処理済みであり、名前空間コントロール側でのそれ以上の操作は不要です。それ以外の場合は、イベントを処理する必要があり、その場合の既定の動作はリスト内の次のイメージに移ることです。

vtbl 20 HRESULT OnGetDefaultIconIndex(IShellItem* psi, INT* piDefaultIcon, INT* piOpenIcon)
psiIShellItem*in既定アイコンのインデックスを取得する対象の項目を表す IShellItem へのポインタである。
piDefaultIconINT*out通常状態の既定アイコンのインデックスを受け取る INT へのポインタである。
piOpenIconINT*out展開(オープン)状態のアイコンのインデックスを受け取る INT へのポインタである。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_INameSpaceTreeControlEvents "{93D77985-B3D8-4484-8318-672CDDA002CE}"
#usecom global INameSpaceTreeControlEvents IID_INameSpaceTreeControlEvents "{}"
#comfunc global INameSpaceTreeControlEvents_OnItemClick               3 sptr,int,int
#comfunc global INameSpaceTreeControlEvents_OnPropertyItemCommit      4 sptr
#comfunc global INameSpaceTreeControlEvents_OnItemStateChanging       5 sptr,int,int
#comfunc global INameSpaceTreeControlEvents_OnItemStateChanged        6 sptr,int,int
#comfunc global INameSpaceTreeControlEvents_OnSelectionChanged        7 sptr
#comfunc global INameSpaceTreeControlEvents_OnKeyboardInput           8 int,sptr,sptr
#comfunc global INameSpaceTreeControlEvents_OnBeforeExpand            9 sptr
#comfunc global INameSpaceTreeControlEvents_OnAfterExpand             10 sptr
#comfunc global INameSpaceTreeControlEvents_OnBeginLabelEdit          11 sptr
#comfunc global INameSpaceTreeControlEvents_OnEndLabelEdit            12 sptr
#comfunc global INameSpaceTreeControlEvents_OnGetToolTip              13 sptr,var,int
#comfunc global INameSpaceTreeControlEvents_OnBeforeItemDelete        14 sptr
#comfunc global INameSpaceTreeControlEvents_OnItemAdded               15 sptr,int
#comfunc global INameSpaceTreeControlEvents_OnItemDeleted             16 sptr,int
#comfunc global INameSpaceTreeControlEvents_OnBeforeContextMenu       17 sptr,var,sptr
#comfunc global INameSpaceTreeControlEvents_OnAfterContextMenu        18 sptr,sptr,var,sptr
#comfunc global INameSpaceTreeControlEvents_OnBeforeStateImageChange  19 sptr
#comfunc global INameSpaceTreeControlEvents_OnGetDefaultIconIndex     20 sptr,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。