IFolderView
COM公式ドキュメント
フォルダーの表示オプションに関する情報を取得し、そのフォルダー内の指定した項目を選択し、フォルダーの表示モードを設定するためのメソッドを公開します。(IFolderView)
メソッド 14
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
フォルダーの現在の表示モードを表す値が格納されるアドレスを取得します。
| pViewMode | DWORD* | out | フォルダーの現在の表示モードを格納するメモリ位置へのポインター。そのアドレスにある値は、次の FOLDERVIEWMODE 値のいずれかです。 FVM_ICON中アイコン FVM_SMALLICON小アイコン FVM_LIST詳細なしの一覧表示 FVM_DETAILS詳細表示(サイズ、種類、最終更新日) FVM_THUMBNAIL縮小版表示 FVM_TILE大アイコン FVM_THUMBSTRIPフィルムストリップ表示 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
選択されたフォルダーの表示モードを設定します。
| ViewMode | DWORD | in | FOLDERVIEWMODE 列挙体の次の値のいずれか。 FVM_ICON中アイコン FVM_SMALLICON小アイコン FVM_LIST詳細なしの一覧表示。この表示も小アイコンを使用しますが、FVM_SMALLICON の場合とは異なり、再配置することはできません。 FVM_DETAILS詳細表示(サイズ、種類、最終更新日) FVM_THUMBNAIL縮小版表示 FVM_TILE大アイコン FVM_THUMBSTRIPフィルムストリップ表示 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
フォルダーオブジェクトを取得します。
| riid | GUID* | in | フォルダーを表すために必要な IID への参照。 |
| ppv | void** | out | このメソッドが返るとき、riid で要求されたインターフェースポインターが格納されます。通常は IShellFolder または関連するインターフェースです。単一要素を持つ IShellItemArray の場合もあります。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
フォルダービュー内の特定の項目の識別子を、インデックスによって取得します。
| iItemIndex | INT | in | ビュー内の項目のインデックス。 |
| ppidl | ITEMIDLIST** | out | 項目の識別子情報を含む PIDL へのポインターのアドレス。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
不要になった PIDL は、CoTaskMemFree を呼び出して解放する必要があります。
フォルダー内の項目数を取得します。これは全項目数の場合もあれば、選択された項目数などのサブセットの場合もあります。
| uFlags | DWORD | in | カウント対象を特定の種類の項目に限定する _SVGIO 列挙体のフラグ。 |
| pcItems | INT* | out | フォルダービューに表示される項目(ファイルおよびフォルダー)の数を受け取る整数へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
フォルダービュー内の項目のコレクションに基づく列挙オブジェクトのアドレスを取得します。
| uFlags | DWORD | in | 列挙対象を特定の種類の項目に限定する _SVGIO 値。 |
| riid | GUID* | in | フォルダーを表すために必要な IID への参照。 |
| ppv | void** | out | このメソッドが返るとき、riid で要求されたインターフェースポインターが格納されます。通常は IEnumIDList、IDataObject、または IShellItemArray です。エラーが発生した場合、この値は NULL になります。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
IFolderView::SelectItem で SVSI_SELECTIONMARK を使用してマークされた、フォルダービュー内の項目のインデックスを取得します。
| piItem | INT* | out | マークされた項目のインデックスへのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
フォルダービュー内で現在フォーカスを持つ項目のインデックスを取得します。
| piItem | INT* | out | 項目のインデックスへのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
フォルダービュー内の項目の位置を取得します。
| pidl | ITEMIDLIST* | in | ITEMIDLIST インターフェースへのポインター。 |
| ppt | POINT* | out | 項目の左上隅の位置を受け取る構造体へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
項目の周囲の余白を含む幅(x)と高さ(y)の寸法を格納した POINT 構造体を取得します。
| ppt | POINT* | inout | フォルダービュー内の項目の現在のサイズ寸法が格納される既存の構造体へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
例として、左上隅がピクセル (0,0) に位置する 75 ピクセル × 70 ピクセルのアイコンを考えます。この測定値には、表示されるグラフィックとその周囲のバッファ領域の両方が含まれることに注意してください。IFolderView::GetSpacing は、x 値 75、y 値 70 を格納した POINT 構造体へのポインターを返します。この情報を使用して重なりを避ける場合、右隣の次のアイコンは左上隅がピクセル (75,0) に配置されます。同様に、下の次のアイコンはピクセル (0,70) に配置されます。
項目の周囲の余白を含む、既定の幅(x)と高さ(y)の測定値を格納した POINT 構造体へのポインターを取得します。
| ppt | POINT* | out | フォルダービュー内の項目の既定のサイズ寸法が格納される既存の構造体へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
フォルダーの自動整列モードの現在の状態を取得します。
戻り値
フォルダービュー内の項目を選択します。
| iItem | INT | in | フォルダービュー内で選択する項目のインデックス。 |
| dwFlags | DWORD | in | 適用する選択の種類を指定する _SVSIF 定数のいずれか。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
フォルダービュー内に表示される項目の選択と配置を可能にします。
| cidl | DWORD | in | 選択する項目の数。 |
| apidl | ITEMIDLIST** | in | 項目の PIDL を格納した、サイズ cidl の配列へのポインター。 |
| apt | POINT* | inoptional | apidl 内の対応する各要素を配置すべき位置を格納した、cidl 個の構造体の配列へのポインター。 |
| dwFlags | DWORD | in | 適用する選択の種類を指定する _SVSIF 定数のいずれか。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
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 指定が可能。#define global IID_IFolderView "{CDE725B0-CCC9-4519-917E-325D72FAB4CE}" #usecom global IFolderView IID_IFolderView "{}" #comfunc global IFolderView_GetCurrentViewMode 3 sptr #comfunc global IFolderView_SetCurrentViewMode 4 int #comfunc global IFolderView_GetFolder 5 sptr,sptr #comfunc global IFolderView_Item 6 int,sptr #comfunc global IFolderView_ItemCount 7 int,sptr #comfunc global IFolderView_Items 8 int,sptr,sptr #comfunc global IFolderView_GetSelectionMarkedItem 9 sptr #comfunc global IFolderView_GetFocusedItem 10 sptr #comfunc global IFolderView_GetItemPosition 11 sptr,sptr #comfunc global IFolderView_GetSpacing 12 sptr #comfunc global IFolderView_GetDefaultSpacing 13 sptr #comfunc global IFolderView_GetAutoArrange 14 #comfunc global IFolderView_SelectItem 15 int,int #comfunc global IFolderView_SelectAndPositionItems 16 int,sptr,sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。