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

INameSpaceTreeControl

COM
IID028212a3-b627-47e9-8856-c14265554e4f継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

Shell アイテムのツリー内のノードを表示および操作するためのメソッドを公開します。

解説(Remarks)

このインターフェイスを実装するには、クラス ID CLSID_NameSpaceTreeControl を使用します。

メソッド 19

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

vtbl 3 HRESULT Initialize(HWND hwndParent, RECT* prc, DWORD nsctsFlags)

INameSpaceTreeControl オブジェクトを初期化します。

hwndParentHWNDin親ウィンドウのハンドル。
prcRECT*inクライアントウィンドウ内におけるコントロールのサイズと位置を記述する RECT 構造体へのポインター。
nsctsFlagsDWORDin指定した名前空間ツリーコントロールの特性。NSTCSTYLE 列挙体の値のうち 1 つ以上。

戻り値

型: HRESULT

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

vtbl 4 HRESULT TreeAdvise(IUnknown* punk, DWORD* pdwCookie)

クライアントがコントロールに登録できるようにします。

punkIUnknown*inコントロールに登録するクライアントの IUnknown へのポインター。
pdwCookieDWORD*out登録用に返されるクッキーへのポインター。

戻り値

型: HRESULT

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

解説(Remarks)

返されるクッキーへのポインターは、後で INameSpaceTreeControl::TreeUnadvise を使用してコントロールの登録を解除する際に使用します。

vtbl 5 HRESULT TreeUnadvise(DWORD dwCookie)

クライアントがコントロールの登録を解除できるようにします。

dwCookieDWORDin登録を解除するクッキーへのポインター。

戻り値

型: HRESULT

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

解説(Remarks)

渡すクッキーへのポインターは、INameSpaceTreeControl::TreeAdvise で返されたものです。

vtbl 6 HRESULT AppendRoot(IShellItem* psiRoot, DWORD grfEnumFlags, DWORD grfRootStyle, IShellItemFilter* pif)

ツリーのルートの一覧に Shell アイテムを追加します。

psiRootIShellItem*in追加する Shell アイテムへのポインター。
grfEnumFlagsDWORDinルートおよびそのすべての子アイテムの特性を列挙します。SHCONTF 型の値のうち 1 つ以上。これらのフラグはビット単位の OR で組み合わせることができます。
grfRootStyleDWORDin

追加するルートのスタイルを指定します。次の値のうち 1 つ以上:

NSTCRS_VISIBLE (0x0000)

ルートとアイテムの両方が表示されます。NSTCRS_HIDDEN とは相互排他的です。

NSTCRS_HIDDEN (0x0001)

ルートが非表示になり、子アイテムのみが表示されます。NSTCRS_VISIBLE とは相互排他的です。

NSTCRS_EXPANDED (0x0002)

初期化時にルートが展開されます。

pifIShellItemFilter*inツリー内で表示するアイテムをフィルターできるようにする IShellItemFilter へのポインター。指定した場合、各アイテムは SHCONTF フラグでカスタマイズできます。フィルターが不要な場合、この値は NULL にできます。

戻り値

型: HRESULT

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

vtbl 7 HRESULT InsertRoot(INT iIndex, IShellItem* psiRoot, DWORD grfEnumFlags, DWORD grfRootStyle, IShellItemFilter* pif)

ツリーのルートアイテムに Shell アイテムを挿入します。

iIndexINTinルートを挿入する位置のインデックス。
psiRootIShellItem*in挿入する Shell アイテムへのポインター。
grfEnumFlagsDWORDinルートおよびそのすべての子アイテムの特性を列挙します。SHCONTF 型の値のいずれか。
grfRootStyleDWORDin

挿入するルートのスタイル。次の値のうち 1 つ以上(フラグはビット単位の OR で組み合わせることができます)。

NSTCRS_VISIBLE (0x0000)

ルートとアイテムの両方が表示されます。NSTCRS_HIDDEN とは相互排他的です。

NSTCRS_HIDDEN (0x0001)

ルートが非表示になり、子アイテムのみが表示されます。NSTCRS_VISIBLE とは相互排他的です。

NSTCRS_EXPANDED (0x0002)

初期化時にルートが展開されます。

pifIShellItemFilter*inツリー内で表示するアイテムをフィルターできるようにする IShellItemFilter へのポインター。指定した場合、各アイテムは SHCONTF フラグでカスタマイズできます。フィルターが不要な場合、この値は NULL にできます。

戻り値

型: HRESULT

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

vtbl 8 HRESULT RemoveRoot(IShellItem* psiRoot)

ルートとその子アイテムをツリーから削除します。

psiRootIShellItem*in削除するルートへのポインター。

戻り値

型: HRESULT

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

vtbl 9 HRESULT RemoveAllRoots()

すべてのルートとその子アイテムをツリーから削除します。

戻り値

型: HRESULT

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

vtbl 10 HRESULT GetRootItems(IShellItemArray** ppsiaRootItems)

ルートアイテムの配列を取得します。

ppsiaRootItemsIShellItemArray**outルートアイテムの配列へのポインター。

戻り値

型: HRESULT

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

vtbl 11 HRESULT SetItemState(IShellItem* psi, DWORD nstcisMask, DWORD nstcisFlags)

Shell アイテムの状態情報を設定します。

psiIShellItem*in状態を設定する Shell アイテムへのポインター。
nstcisMaskDWORDin設定する情報をビットマップ形式で指定します。NSTCITEMSTATE 定数のうち 1 つ以上。
nstcisFlagsDWORDinnstcisMask で指定したフラグに設定する値を含むビットマップ。

戻り値

型: HRESULT

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

解説(Remarks)

nstcisMask の値は、pnstcisFlags が指す値のどのビットを設定するかを指定します。それ以外のビットは無視されます。簡単な例として、nstcisMask=NSTCIS_SELECTED の場合、nstcisFlags の値の最初のビットにより、そのフラグを設定する(1)か解除する(0)かが決まります。

vtbl 12 HRESULT GetItemState(IShellItem* psi, DWORD nstcisMask, DWORD* pnstcisFlags)

Shell アイテムの状態情報を取得します。

psiIShellItem*in状態を取得する Shell アイテムへのポインター。
nstcisMaskDWORDin要求する情報をビットマップ形式で指定します。NSTCITEMSTATE 定数のうち 1 つ以上。
pnstcisFlagsDWORD*outこのメソッドが返るとき、nstcisMask で要求された値を含むビットマップを指します。

戻り値

型: HRESULT

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

解説(Remarks)

nstcisMask の値は、pnstcisFlags が指す値のどのビットが要求されているかを指定します。簡単な例として、nstcisMask=NSTCIS_SELECTED の場合、このメソッドが返るときに有効なのは pnstcisFlags が指す値の最初のビットのみです。pnstcisFlags が指す値の最初のビットが 1 の場合、NSTCIS_SELECTED フラグが設定されています。pnstcisFlags が指す値の最初のビットが 0 の場合、NSTCIS_SELECTED フラグは設定されていません。

vtbl 13 HRESULT GetSelectedItems(IShellItemArray** psiaItems)

選択されている Shell アイテムの配列を取得します。

psiaItemsIShellItemArray**out選択されている Shell アイテムの配列へのポインター。

戻り値

型: HRESULT

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

vtbl 14 HRESULT GetItemCustomState(IShellItem* psi, INT* piStateNumber)

指定した Shell アイテムに関連付けられたチェックボックスの状態を取得します。

psiIShellItem*inチェックボックスの状態を取得する Shell アイテムへのポインター。
piStateNumberINT*outShell アイテムのチェックボックスの状態へのポインター。

戻り値

型: HRESULT

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

vtbl 15 HRESULT SetItemCustomState(IShellItem* psi, INT iStateNumber)

Shell アイテムに関連付けられたチェックボックスの状態を設定します。

psiIShellItem*inチェックボックスの状態を設定する Shell アイテムへのポインター。
iStateNumberINTinShell アイテムのチェックボックスに設定する状態。

戻り値

型: HRESULT

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

vtbl 16 HRESULT EnsureItemVisible(IShellItem* psi)

指定したアイテムが表示されるようにします。

psiIShellItem*in表示を確保する Shell アイテムへのポインター。

戻り値

型: HRESULT

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

vtbl 17 HRESULT SetTheme(LPWSTR pszTheme)

現在のウィンドウのみにデスクトップテーマを設定します。

pszThemeLPWSTRin現在のウィンドウに設定するデスクトップテーマの名前。

戻り値

型: HRESULT

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

vtbl 18 HRESULT GetNextItem(IShellItem* psi, NSTCGNI nstcgi, IShellItem** ppsiNext)

要求されたメソッドに従って、ツリー内の次のアイテムを取得します。

psiIShellItem*in次のアイテムを取得する対象の Shell アイテム。この値は NULL にできます。
nstcgiNSTCGNIin

次のアイテムの種類。この値は次のフラグのいずれかにできます:

NSTCGNI_NEXT (0)

指定したアイテムの次の兄弟アイテム。

NSTCGNI_NEXTVISIBLE (1)

指定したアイテムに何らかの関係を持つ、ツリー内の次に表示されるアイテム。これには子アイテム(存在する場合)、次の兄弟アイテム、あるいは先祖の兄弟アイテムのいずれかが含まれます。

NSTCGNI_PREV (2)

指定したアイテムの前の兄弟アイテム。

NSTCGNI_PREVVISIBLE (3)

前に表示されるアイテムで、兄弟アイテム、兄弟の子孫アイテム、または親アイテムのいずれか。

NSTCGNI_PARENT (4)

指定したアイテムの親アイテム。

NSTCGNI_CHILD (5)

指定したアイテムの最初の子アイテム。

NSTCGNI_FIRSTVISIBLE (6)

ツリー内で絶対的に最初に表示されるアイテム(指定したアイテムからの相対ではありません)。

NSTCGNI_LASTVISIBLE (7)

ツリー内で絶対的に最後に表示されるアイテム(指定したアイテムからの相対ではありません)。

ppsiNextIShellItem**out要求された次のアイテムの条件に合致する IShellItem へのポインターのアドレス。

戻り値

型: HRESULT

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

解説(Remarks)

選択した種類に次のアイテムが存在しない場合、この関数は E_FAIL を返し、返されるアイテム ppsiNextNULL になります。

vtbl 19 HRESULT HitTest(POINT* ppt, IShellItem** ppsiOut)

指定した座標が含まれるアイテムがあれば、そのアイテムを取得します。

pptPOINT*inテストする座標へのポインター。
ppsiOutIShellItem**out座標が含まれるアイテムへのポインターのアドレス。座標がどのアイテムにも含まれない場合は NULL

戻り値

型: HRESULT

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

解説(Remarks)

座標がどのアイテムにも含まれない場合、この関数は S_FALSE を返し、アイテムは NULL になります。

vtbl 20 HRESULT GetItemRect(IShellItem* psi, RECT* prect)

指定したアイテムのサイズと位置を記述する RECT 構造体を取得します。

psiIShellItem*inRECT 構造体を取得する対象のアイテムへのポインター。
prectRECT*outアイテムのサイズと位置を記述する RECT 構造体へのポインター。

戻り値

型: HRESULT

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

vtbl 21 HRESULT CollapseAll()

指定したツリー内のすべてのアイテムを折りたたみます。

戻り値

型: 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_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 指定が可能。