INameSpaceTreeControlEvents
COM公式ドキュメント
INameSpaceTreeControl のイベントを処理するためのメソッドを公開します。
解説(Remarks)
このインターフェイスは、名前空間コントロール (CLSID_NameSpaceTreeControl) のクライアントによって実装されます。これにより、クライアントは名前空間コントロールのイベントの通知を受け取り、それらのイベントを処理できるようになります。処理しない場合は、名前空間コントロールに処理を任せることができます。
メソッド 18
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ユーザーがマウスのボタンをクリックしたときに呼び出されます。
| psi | IShellItem* | in | クリックされた IShellItem です。 |
| nstceHitTest | DWORD | in | クリックされた 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 のタブボタン上でした。 |
| nstceClickType | DWORD | in | どのボタンがクリックされたか、およびクリックの種類を示します。次のいずれかの値になります。 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 のみがイベントを処理します。
実装されていません。(INameSpaceTreeControlEvents.OnPropertyItemCommit)
| psi | IShellItem* | in | 使用されません。 |
戻り値
型: HRESULT
E_NOTIMPL を返します。
アイテムの状態が変化する前に呼び出されます。
| psi | IShellItem* | in | 状態が変化しようとしているシェルアイテムへのポインターです。 |
| nstcisMask | DWORD | in | 呼び出し側アプリケーションが設定しようとしている情報の種類を示す、NSTCITEMSTATE 列挙型の 1 つ以上の値です。 |
| nstcisState | DWORD | in | 設定される値を示す、NSTCITEMSTATE 列挙型の 1 つ以上の値です。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
実装されていません。(INameSpaceTreeControlEvents.OnItemStateChanged)
| psi | IShellItem* | in | 状態が変化したシェルアイテムへのポインターです。 |
| nstcisMask | DWORD | in | 呼び出し側が設定しようとしている情報の種類を示す、NSTCITEMSTATE 列挙型の 1 つ以上の値です。 |
| nstcisState | DWORD | in | 設定される値を示す、NSTCITEMSTATE 列挙型の 1 つ以上の値です。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
選択が変化したときに呼び出されます。
| psiaSelection | IShellItemArray* | in | 新しい選択項目を格納する IShellItem オブジェクトの配列です。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
ユーザーがキーボードのキーを押したときに呼び出されます。
| uMsg | DWORD | in | メッセージ値です。 |
| wParam | WPARAM | in | メッセージの WParam パラメーターを指定します。 |
| lParam | LPARAM | in | メッセージの LParam パラメーターを指定します。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
解説(Remarks)
このメソッドは、WndProc からメッセージを直接受け取ります。S_OK を返した場合、メッセージは消費されておらず、名前空間ツリーコントロールがメッセージを処理できます。それ以外の場合は、メッセージは処理済みであり、それ以上の操作は不要です。
IShellItem が展開される前に呼び出されます。
| psi | IShellItem* | in | 展開される IShellItem へのポインターです。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
IShellItem が展開された後に呼び出されます。
| psi | IShellItem* | in | 展開された IShellItem へのポインターです。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
IShellItem が編集モードに入る前に呼び出されます。
| psi | IShellItem* | in | テキストが編集される対象の IShellItem へのポインターです。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
解説(Remarks)
このメソッドが失敗しても、編集モードへの移行はキャンセルされません。
IShellItem が編集モードを終了した後に呼び出されます。
| psi | IShellItem* | in | テキストが編集された対象の IShellItem へのポインターです。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
ツールチップを提供できるようにします。
| psi | IShellItem* | in | ツールチップを含む IShellItem へのポインターです。 |
| pszTip | LPWSTR | out | このメソッドが返るときに、ツールチップのテキストを格納します。 |
| cchTip | INT | in | ツールチップのサイズ (文字数) です。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
解説(Remarks)
このメソッドが S_OK を返した場合、クライアントは独自のツールチップを提供します。それ以外の場合は、INameSpaceTreeControl がツールチップを取得します。
IShellItem とそのすべての子が削除される前に呼び出されます。
| psi | IShellItem* | in | 削除される IShellItem へのポインターです。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
解説(Remarks)
このメソッドが失敗しても、指定された IShellItem とその子は削除されます。
IShellItem が追加された後に呼び出されます。
| psi | IShellItem* | in | 追加された IShellItem へのポインターです。 |
| fIsRoot | BOOL | in | 追加された IShellItem がルートかどうかを指定します。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
IShellItem が削除された後に呼び出されます。
| psi | IShellItem* | in | 削除された IShellItem へのポインターです。 |
| fIsRoot | BOOL | in | 削除された IShellItem がルートかどうかを指定します。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
コンテキストメニューが表示される前に呼び出されます。クライアントが追加のメニュー項目を追加できるようにします。
| psi | IShellItem* | inoptional | コンテキストメニューの生成元となる IShellItem へのポインターです。この値は NULL になる場合があります。 |
| riid | GUID* | in | コンテキストメニューの IID への参照です。 |
| ppv | void** | out | このメソッドが返るときに、riid で指定されたインターフェイスへのポインターのアドレスを格納します。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
コンテキストメニューが表示された後に呼び出されます。
| psi | IShellItem* | inoptional | コンテキストメニューの生成元となる IShellItem へのポインターです。この値が NULL になるのは、NSTCS2_SHOWNULLSPACEMENU フラグが設定されている場合のみです。 |
| pcmIn | IContextMenu* | in | コンテキストメニューへのポインターです。 |
| riid | GUID* | in | コンテキストメニューの IID への参照です。 |
| ppv | void** | out | このメソッドが返るときに、riid で指定されたインターフェイスへのポインターのアドレスを格納します。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
解説(Remarks)
このメソッドにより、クライアントはコンテキストメニューを完全に置き換えることができます。このメソッドを使うと、クライアントは pcmIn で指定されたものではなく、ppv で返されるコンテキストメニューを使用できます。
指定された IShellItem の状態アイコンが変更される前に呼び出されます。
| psi | IShellItem* | in | 状態イメージが変化する IShellItem へのポインターです。 |
戻り値
型: HRESULT
このメソッドが成功すると、S_OK を返します。それ以外の場合は、HRESULT エラーコードを返します。
解説(Remarks)
このメソッドが S_OK を返した場合、クライアントがイベントを処理済みであり、名前空間コントロール側でのそれ以上の操作は不要です。それ以外の場合は、イベントを処理する必要があり、その場合の既定の動作はリスト内の次のイメージに移ることです。
| psi | IShellItem* | in | 既定アイコンのインデックスを取得する対象の項目を表す IShellItem へのポインタである。 |
| piDefaultIcon | INT* | out | 通常状態の既定アイコンのインデックスを受け取る INT へのポインタである。 |
| piOpenIcon | INT* | out | 展開(オープン)状態のアイコンのインデックスを受け取る INT へのポインタである。 |
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 指定が可能。#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,sptr,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,sptr,sptr #comfunc global INameSpaceTreeControlEvents_OnAfterContextMenu 18 sptr,sptr,sptr,sptr #comfunc global INameSpaceTreeControlEvents_OnBeforeStateImageChange 19 sptr #comfunc global INameSpaceTreeControlEvents_OnGetDefaultIconIndex 20 sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。