INameSpaceTreeControl
COM公式ドキュメント
Shell アイテムのツリー内のノードを表示および操作するためのメソッドを公開します。
解説(Remarks)
このインターフェイスを実装するには、クラス ID CLSID_NameSpaceTreeControl を使用します。
メソッド 19
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
INameSpaceTreeControl オブジェクトを初期化します。
| hwndParent | HWND | in | 親ウィンドウのハンドル。 |
| prc | RECT* | in | クライアントウィンドウ内におけるコントロールのサイズと位置を記述する RECT 構造体へのポインター。 |
| nsctsFlags | DWORD | in | 指定した名前空間ツリーコントロールの特性。NSTCSTYLE 列挙体の値のうち 1 つ以上。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
クライアントがコントロールに登録できるようにします。
| punk | IUnknown* | in | コントロールに登録するクライアントの IUnknown へのポインター。 |
| pdwCookie | DWORD* | out | 登録用に返されるクッキーへのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
返されるクッキーへのポインターは、後で INameSpaceTreeControl::TreeUnadvise を使用してコントロールの登録を解除する際に使用します。
クライアントがコントロールの登録を解除できるようにします。
| dwCookie | DWORD | in | 登録を解除するクッキーへのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
渡すクッキーへのポインターは、INameSpaceTreeControl::TreeAdvise で返されたものです。
ツリーのルートの一覧に Shell アイテムを追加します。
| psiRoot | IShellItem* | in | 追加する Shell アイテムへのポインター。 |
| grfEnumFlags | DWORD | in | ルートおよびそのすべての子アイテムの特性を列挙します。SHCONTF 型の値のうち 1 つ以上。これらのフラグはビット単位の OR で組み合わせることができます。 |
| grfRootStyle | DWORD | in | 追加するルートのスタイルを指定します。次の値のうち 1 つ以上: NSTCRS_VISIBLE (0x0000)ルートとアイテムの両方が表示されます。NSTCRS_HIDDEN とは相互排他的です。 NSTCRS_HIDDEN (0x0001)ルートが非表示になり、子アイテムのみが表示されます。NSTCRS_VISIBLE とは相互排他的です。 NSTCRS_EXPANDED (0x0002)初期化時にルートが展開されます。 |
| pif | IShellItemFilter* | in | ツリー内で表示するアイテムをフィルターできるようにする IShellItemFilter へのポインター。指定した場合、各アイテムは SHCONTF フラグでカスタマイズできます。フィルターが不要な場合、この値は NULL にできます。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ツリーのルートアイテムに Shell アイテムを挿入します。
| iIndex | INT | in | ルートを挿入する位置のインデックス。 |
| psiRoot | IShellItem* | in | 挿入する Shell アイテムへのポインター。 |
| grfEnumFlags | DWORD | in | ルートおよびそのすべての子アイテムの特性を列挙します。SHCONTF 型の値のいずれか。 |
| grfRootStyle | DWORD | in | 挿入するルートのスタイル。次の値のうち 1 つ以上(フラグはビット単位の OR で組み合わせることができます)。 NSTCRS_VISIBLE (0x0000)ルートとアイテムの両方が表示されます。NSTCRS_HIDDEN とは相互排他的です。 NSTCRS_HIDDEN (0x0001)ルートが非表示になり、子アイテムのみが表示されます。NSTCRS_VISIBLE とは相互排他的です。 NSTCRS_EXPANDED (0x0002)初期化時にルートが展開されます。 |
| pif | IShellItemFilter* | in | ツリー内で表示するアイテムをフィルターできるようにする IShellItemFilter へのポインター。指定した場合、各アイテムは SHCONTF フラグでカスタマイズできます。フィルターが不要な場合、この値は NULL にできます。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ルートとその子アイテムをツリーから削除します。
| psiRoot | IShellItem* | in | 削除するルートへのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
すべてのルートとその子アイテムをツリーから削除します。
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ルートアイテムの配列を取得します。
| ppsiaRootItems | IShellItemArray** | out | ルートアイテムの配列へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Shell アイテムの状態情報を設定します。
| psi | IShellItem* | in | 状態を設定する Shell アイテムへのポインター。 |
| nstcisMask | DWORD | in | 設定する情報をビットマップ形式で指定します。NSTCITEMSTATE 定数のうち 1 つ以上。 |
| nstcisFlags | DWORD | in | nstcisMask で指定したフラグに設定する値を含むビットマップ。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
nstcisMask の値は、pnstcisFlags が指す値のどのビットを設定するかを指定します。それ以外のビットは無視されます。簡単な例として、nstcisMask=NSTCIS_SELECTED の場合、nstcisFlags の値の最初のビットにより、そのフラグを設定する(1)か解除する(0)かが決まります。
Shell アイテムの状態情報を取得します。
| psi | IShellItem* | in | 状態を取得する Shell アイテムへのポインター。 |
| nstcisMask | DWORD | in | 要求する情報をビットマップ形式で指定します。NSTCITEMSTATE 定数のうち 1 つ以上。 |
| pnstcisFlags | DWORD* | out | このメソッドが返るとき、nstcisMask で要求された値を含むビットマップを指します。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
nstcisMask の値は、pnstcisFlags が指す値のどのビットが要求されているかを指定します。簡単な例として、nstcisMask=NSTCIS_SELECTED の場合、このメソッドが返るときに有効なのは pnstcisFlags が指す値の最初のビットのみです。pnstcisFlags が指す値の最初のビットが 1 の場合、NSTCIS_SELECTED フラグが設定されています。pnstcisFlags が指す値の最初のビットが 0 の場合、NSTCIS_SELECTED フラグは設定されていません。
選択されている Shell アイテムの配列を取得します。
| psiaItems | IShellItemArray** | out | 選択されている Shell アイテムの配列へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
指定した Shell アイテムに関連付けられたチェックボックスの状態を取得します。
| psi | IShellItem* | in | チェックボックスの状態を取得する Shell アイテムへのポインター。 |
| piStateNumber | INT* | out | Shell アイテムのチェックボックスの状態へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Shell アイテムに関連付けられたチェックボックスの状態を設定します。
| psi | IShellItem* | in | チェックボックスの状態を設定する Shell アイテムへのポインター。 |
| iStateNumber | INT | in | Shell アイテムのチェックボックスに設定する状態。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
指定したアイテムが表示されるようにします。
| psi | IShellItem* | in | 表示を確保する Shell アイテムへのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
現在のウィンドウのみにデスクトップテーマを設定します。
| pszTheme | LPWSTR | in | 現在のウィンドウに設定するデスクトップテーマの名前。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
要求されたメソッドに従って、ツリー内の次のアイテムを取得します。
| psi | IShellItem* | in | 次のアイテムを取得する対象の Shell アイテム。この値は NULL にできます。 |
| nstcgi | NSTCGNI | in | 次のアイテムの種類。この値は次のフラグのいずれかにできます: NSTCGNI_NEXT (0)指定したアイテムの次の兄弟アイテム。 NSTCGNI_NEXTVISIBLE (1)指定したアイテムに何らかの関係を持つ、ツリー内の次に表示されるアイテム。これには子アイテム(存在する場合)、次の兄弟アイテム、あるいは先祖の兄弟アイテムのいずれかが含まれます。 NSTCGNI_PREV (2)指定したアイテムの前の兄弟アイテム。 NSTCGNI_PREVVISIBLE (3)前に表示されるアイテムで、兄弟アイテム、兄弟の子孫アイテム、または親アイテムのいずれか。 NSTCGNI_PARENT (4)指定したアイテムの親アイテム。 NSTCGNI_CHILD (5)指定したアイテムの最初の子アイテム。 NSTCGNI_FIRSTVISIBLE (6)ツリー内で絶対的に最初に表示されるアイテム(指定したアイテムからの相対ではありません)。 NSTCGNI_LASTVISIBLE (7)ツリー内で絶対的に最後に表示されるアイテム(指定したアイテムからの相対ではありません)。 |
| ppsiNext | IShellItem** | out | 要求された次のアイテムの条件に合致する IShellItem へのポインターのアドレス。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
選択した種類に次のアイテムが存在しない場合、この関数は E_FAIL を返し、返されるアイテム ppsiNext は NULL になります。
指定した座標が含まれるアイテムがあれば、そのアイテムを取得します。
| ppt | POINT* | in | テストする座標へのポインター。 |
| ppsiOut | IShellItem** | out | 座標が含まれるアイテムへのポインターのアドレス。座標がどのアイテムにも含まれない場合は NULL。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
座標がどのアイテムにも含まれない場合、この関数は S_FALSE を返し、アイテムは NULL になります。
指定したアイテムのサイズと位置を記述する RECT 構造体を取得します。
| psi | IShellItem* | in | RECT 構造体を取得する対象のアイテムへのポインター。 |
| prect | RECT* | out | アイテムのサイズと位置を記述する RECT 構造体へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
指定したツリー内のすべてのアイテムを折りたたみます。
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_INameSpaceTreeControl "{028212A3-B627-47E9-8856-C14265554E4F}" #usecom global INameSpaceTreeControl IID_INameSpaceTreeControl "{}" #comfunc global INameSpaceTreeControl_Initialize 3 sptr,var,int #comfunc global INameSpaceTreeControl_TreeAdvise 4 sptr,var #comfunc global INameSpaceTreeControl_TreeUnadvise 5 int #comfunc global INameSpaceTreeControl_AppendRoot 6 sptr,int,int,sptr #comfunc global INameSpaceTreeControl_InsertRoot 7 int,sptr,int,int,sptr #comfunc global INameSpaceTreeControl_RemoveRoot 8 sptr #comfunc global INameSpaceTreeControl_RemoveAllRoots 9 #comfunc global INameSpaceTreeControl_GetRootItems 10 sptr #comfunc global INameSpaceTreeControl_SetItemState 11 sptr,int,int #comfunc global INameSpaceTreeControl_GetItemState 12 sptr,int,var #comfunc global INameSpaceTreeControl_GetSelectedItems 13 sptr #comfunc global INameSpaceTreeControl_GetItemCustomState 14 sptr,var #comfunc global INameSpaceTreeControl_SetItemCustomState 15 sptr,int #comfunc global INameSpaceTreeControl_EnsureItemVisible 16 sptr #comfunc global INameSpaceTreeControl_SetTheme 17 wstr #comfunc global INameSpaceTreeControl_GetNextItem 18 sptr,int,sptr #comfunc global INameSpaceTreeControl_HitTest 19 var,sptr #comfunc global INameSpaceTreeControl_GetItemRect 20 sptr,var #comfunc global INameSpaceTreeControl_CollapseAll 21 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_INameSpaceTreeControl "{028212A3-B627-47E9-8856-C14265554E4F}" #usecom global INameSpaceTreeControl IID_INameSpaceTreeControl "{}" #comfunc global INameSpaceTreeControl_Initialize 3 sptr,sptr,int #comfunc global INameSpaceTreeControl_TreeAdvise 4 sptr,sptr #comfunc global INameSpaceTreeControl_TreeUnadvise 5 int #comfunc global INameSpaceTreeControl_AppendRoot 6 sptr,int,int,sptr #comfunc global INameSpaceTreeControl_InsertRoot 7 int,sptr,int,int,sptr #comfunc global INameSpaceTreeControl_RemoveRoot 8 sptr #comfunc global INameSpaceTreeControl_RemoveAllRoots 9 #comfunc global INameSpaceTreeControl_GetRootItems 10 sptr #comfunc global INameSpaceTreeControl_SetItemState 11 sptr,int,int #comfunc global INameSpaceTreeControl_GetItemState 12 sptr,int,sptr #comfunc global INameSpaceTreeControl_GetSelectedItems 13 sptr #comfunc global INameSpaceTreeControl_GetItemCustomState 14 sptr,sptr #comfunc global INameSpaceTreeControl_SetItemCustomState 15 sptr,int #comfunc global INameSpaceTreeControl_EnsureItemVisible 16 sptr #comfunc global INameSpaceTreeControl_SetTheme 17 wstr #comfunc global INameSpaceTreeControl_GetNextItem 18 sptr,int,sptr #comfunc global INameSpaceTreeControl_HitTest 19 sptr,sptr #comfunc global INameSpaceTreeControl_GetItemRect 20 sptr,sptr #comfunc global INameSpaceTreeControl_CollapseAll 21 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。