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

IFolderView

COM
IIDcde725b0-ccc9-4519-917e-325d72fab4ce継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

フォルダーの表示オプションに関する情報を取得し、そのフォルダー内の指定した項目を選択し、フォルダーの表示モードを設定するためのメソッドを公開します。(IFolderView)

メソッド 14

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

vtbl 3 HRESULT GetCurrentViewMode(DWORD* pViewMode)

フォルダーの現在の表示モードを表す値が格納されるアドレスを取得します。

pViewModeDWORD*out

フォルダーの現在の表示モードを格納するメモリ位置へのポインター。そのアドレスにある値は、次の FOLDERVIEWMODE 値のいずれかです。

FVM_ICON

中アイコン

FVM_SMALLICON

小アイコン

FVM_LIST

詳細なしの一覧表示

FVM_DETAILS

詳細表示(サイズ、種類、最終更新日)

FVM_THUMBNAIL

縮小版表示

FVM_TILE

大アイコン

FVM_THUMBSTRIP

フィルムストリップ表示

戻り値

型: HRESULT

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

vtbl 4 HRESULT SetCurrentViewMode(DWORD ViewMode)

選択されたフォルダーの表示モードを設定します。

ViewModeDWORDin

FOLDERVIEWMODE 列挙体の次の値のいずれか。

FVM_ICON

中アイコン

FVM_SMALLICON

小アイコン

FVM_LIST

詳細なしの一覧表示。この表示も小アイコンを使用しますが、FVM_SMALLICON の場合とは異なり、再配置することはできません。

FVM_DETAILS

詳細表示(サイズ、種類、最終更新日)

FVM_THUMBNAIL

縮小版表示

FVM_TILE

大アイコン

FVM_THUMBSTRIP

フィルムストリップ表示

戻り値

型: HRESULT

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

vtbl 5 HRESULT GetFolder(GUID* riid, void** ppv)

フォルダーオブジェクトを取得します。

riidGUID*inフォルダーを表すために必要な IID への参照。
ppvvoid**outこのメソッドが返るとき、riid で要求されたインターフェースポインターが格納されます。通常は IShellFolder または関連するインターフェースです。単一要素を持つ IShellItemArray の場合もあります。

戻り値

型: HRESULT

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

vtbl 6 HRESULT Item(INT iItemIndex, ITEMIDLIST** ppidl)

フォルダービュー内の特定の項目の識別子を、インデックスによって取得します。

iItemIndexINTinビュー内の項目のインデックス。
ppidlITEMIDLIST**out項目の識別子情報を含む PIDL へのポインターのアドレス。

戻り値

型: HRESULT

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

解説(Remarks)

不要になった PIDL は、CoTaskMemFree を呼び出して解放する必要があります。

vtbl 7 HRESULT ItemCount(DWORD uFlags, INT* pcItems)

フォルダー内の項目数を取得します。これは全項目数の場合もあれば、選択された項目数などのサブセットの場合もあります。

uFlagsDWORDinカウント対象を特定の種類の項目に限定する _SVGIO 列挙体のフラグ。
pcItemsINT*outフォルダービューに表示される項目(ファイルおよびフォルダー)の数を受け取る整数へのポインター。

戻り値

型: HRESULT

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

vtbl 8 HRESULT Items(DWORD uFlags, GUID* riid, void** ppv)

フォルダービュー内の項目のコレクションに基づく列挙オブジェクトのアドレスを取得します。

uFlagsDWORDin列挙対象を特定の種類の項目に限定する _SVGIO 値。
riidGUID*inフォルダーを表すために必要な IID への参照。
ppvvoid**outこのメソッドが返るとき、riid で要求されたインターフェースポインターが格納されます。通常は IEnumIDListIDataObject、または IShellItemArray です。エラーが発生した場合、この値は NULL になります。

戻り値

型: HRESULT

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

vtbl 9 HRESULT GetSelectionMarkedItem(INT* piItem)

IFolderView::SelectItem で SVSI_SELECTIONMARK を使用してマークされた、フォルダービュー内の項目のインデックスを取得します。

piItemINT*outマークされた項目のインデックスへのポインター。

戻り値

型: HRESULT

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

vtbl 10 HRESULT GetFocusedItem(INT* piItem)

フォルダービュー内で現在フォーカスを持つ項目のインデックスを取得します。

piItemINT*out項目のインデックスへのポインター。

戻り値

型: HRESULT

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

vtbl 11 HRESULT GetItemPosition(ITEMIDLIST* pidl, POINT* ppt)

フォルダービュー内の項目の位置を取得します。

pidlITEMIDLIST*inITEMIDLIST インターフェースへのポインター。
pptPOINT*out項目の左上隅の位置を受け取る構造体へのポインター。

戻り値

型: HRESULT

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

vtbl 12 HRESULT GetSpacing(POINT* ppt)

項目の周囲の余白を含む幅(x)と高さ(y)の寸法を格納した POINT 構造体を取得します。

pptPOINT*inoutフォルダービュー内の項目の現在のサイズ寸法が格納される既存の構造体へのポインター。

戻り値

型: HRESULT

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

解説(Remarks)

例として、左上隅がピクセル (0,0) に位置する 75 ピクセル × 70 ピクセルのアイコンを考えます。この測定値には、表示されるグラフィックとその周囲のバッファ領域の両方が含まれることに注意してください。IFolderView::GetSpacing は、x 値 75、y 値 70 を格納した POINT 構造体へのポインターを返します。この情報を使用して重なりを避ける場合、右隣の次のアイコンは左上隅がピクセル (75,0) に配置されます。同様に、下の次のアイコンはピクセル (0,70) に配置されます。

vtbl 13 HRESULT GetDefaultSpacing(POINT* ppt)

項目の周囲の余白を含む、既定の幅(x)と高さ(y)の測定値を格納した POINT 構造体へのポインターを取得します。

pptPOINT*outフォルダービュー内の項目の既定のサイズ寸法が格納される既存の構造体へのポインター。

戻り値

型: HRESULT

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

vtbl 14 HRESULT GetAutoArrange()

フォルダーの自動整列モードの現在の状態を取得します。

戻り値

型: HRESULT

フォルダーが自動整列モードの場合は S_OK を、そうでない場合は S_FALSE を返します。

vtbl 15 HRESULT SelectItem(INT iItem, DWORD dwFlags)

フォルダービュー内の項目を選択します。

iItemINTinフォルダービュー内で選択する項目のインデックス。
dwFlagsDWORDin適用する選択の種類を指定する _SVSIF 定数のいずれか。

戻り値

型: HRESULT

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

vtbl 16 HRESULT SelectAndPositionItems(DWORD cidl, ITEMIDLIST** apidl, POINT* apt, DWORD dwFlags)

フォルダービュー内に表示される項目の選択と配置を可能にします。

cidlDWORDin選択する項目の数。
apidlITEMIDLIST**in項目の PIDL を格納した、サイズ cidl の配列へのポインター。
aptPOINT*inoptionalapidl 内の対応する各要素を配置すべき位置を格納した、cidl 個の構造体の配列へのポインター。
dwFlagsDWORDin適用する選択の種類を指定する _SVSIF 定数のいずれか。

戻り値

型: 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_IFolderView "{CDE725B0-CCC9-4519-917E-325D72FAB4CE}"
#usecom global IFolderView IID_IFolderView "{}"
#comfunc global IFolderView_GetCurrentViewMode      3 var
#comfunc global IFolderView_SetCurrentViewMode      4 int
#comfunc global IFolderView_GetFolder               5 var,sptr
#comfunc global IFolderView_Item                    6 int,var
#comfunc global IFolderView_ItemCount               7 int,var
#comfunc global IFolderView_Items                   8 int,var,sptr
#comfunc global IFolderView_GetSelectionMarkedItem  9 var
#comfunc global IFolderView_GetFocusedItem          10 var
#comfunc global IFolderView_GetItemPosition         11 var,var
#comfunc global IFolderView_GetSpacing              12 var
#comfunc global IFolderView_GetDefaultSpacing       13 var
#comfunc global IFolderView_GetAutoArrange          14
#comfunc global IFolderView_SelectItem              15 int,int
#comfunc global IFolderView_SelectAndPositionItems  16 int,var,var,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。