IFolderView2
COM公式ドキュメント
フォルダーの表示オプションに関する情報の取得、そのフォルダー内の指定した項目の選択、フォルダーのビューモードの設定を行うメソッドを公開します。(IFolderView2)
解説(Remarks)
このインターフェイスは、継承元である IFolderView インターフェイスのメソッドも提供します。
メソッド 25
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
指定したプロパティキーと方向でビューをグループ化します。
| key | PROPERTYKEY* | in | ビューのグループ化に使用する PROPERTYKEY。 |
| fAscending | BOOL | in | グループの並べ替え順序を示す BOOL 型の値。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
フォルダー表示で項目のグループ化に使用されているプロパティと並べ替え順序を取得します。
| pkey | PROPERTYKEY* | out | ビューのグループ化に使用されている PROPERTYKEY へのポインター。 |
| pfAscending | BOOL* | outoptional | グループの並べ替え順序を示す BOOL 型の値へのポインター。 |
戻り値
項目のプロパティをビューのプロパティキャッシュにキャッシュします。
| pidl | ITEMIDLIST* | in | 項目を識別する PIDL。 |
| propkey | PROPERTYKEY* | in | 格納する PROPERTYKEY。 |
| propvar | PROPVARIANT* | in | PROPERTYKEY が格納される PROPVARIANT 構造体へのポインター。 |
戻り値
型: DEPRECATED_HRESULT
成功した場合は S_OK を、それ以外の場合はエラー値を返します。
解説(Remarks)
プロパティはビューに表示されますが、基になる項目には書き込まれません。
指定したプロパティキーに対応するプロパティ値を、ビューのキャッシュから取得します。
| pidl | ITEMIDLIST* | in | 項目識別子リスト (PIDL) へのポインター。 |
| propkey | PROPERTYKEY* | in | 取得する PROPERTYKEY。 |
| ppropvar | PROPVARIANT* | out | PROPERTYKEY が格納される PROPVARIANT 構造体へのポインター。 |
戻り値
型: DEPRECATED_HRESULT
成功した場合は S_OK を、それ以外の場合はエラー値を返します。
| 戻り値 | 説明 |
|---|---|
| 成功。値はキャッシュ内にあります。 | |
| 値はビューのキャッシュ内にありません。 |
項目のタイルプロパティのリストを設定します。
| pidl | ITEMIDLIST* | in | 項目識別子リスト (PIDL) へのポインター。 |
| pszPropList | LPWSTR | in | プロパティのリストを含む Unicode 文字列へのポインター。 |
戻り値
型: DEPRECATED_HRESULT
成功した場合は S_OK を、それ以外の場合はエラー値を返します。
解説(Remarks)
pszPropList パラメーターは "prop:<canonical-property-name>;<canonical-property-name>" の形式である必要があり、"<canonical-property-name>" は実際の正規プロパティ名に置き換えられます。このパラメーターには、セミコロンで区切られた 1 つ以上のプロパティを含めることができます。
項目の拡張タイルプロパティのリストを設定します。
| pidl | ITEMIDLIST* | in | 項目識別子リスト (PIDL) へのポインター。 |
| pszPropList | LPWSTR | in | プロパティのリストを含む Unicode 文字列へのポインター。 |
戻り値
型: DEPRECATED_HRESULT
成功した場合は S_OK を、それ以外の場合はエラー値を返します。
解説(Remarks)
pszPropList パラメーターは "prop:<canonical-property-name>;<canonical-property-name>" の形式である必要があり、"<canonical-property-name>" は実際の正規プロパティ名です。セミコロンで区切られた 1 つ以上のプロパティを含めることができます。
ビュー内に項目が存在しない場合に使用される既定のテキストを設定します。
| iType | FVTEXTTYPE | in | この値には次のフラグを設定してください。 FVST_EMPTYTEXTビュー内に項目が存在しない場合に表示するテキストを設定します。 |
| pwszText | LPWSTR | in | 使用するテキストを含む Unicode 文字列へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
指定したフォルダーフラグを設定して適用します。
| dwMask | DWORD | in | 構造体内のどの項目が対象または有効であるかを示すビットマスクを指定する DWORD 型の値。 |
| dwFlags | DWORD | in | 1 つ以上の FOLDERFLAGS を含む DWORD 型の値。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
Windows 7 以降の場合: このメソッドは、FOLDERVIEWOPTIONS 列挙型の FVO_CUSTOMPOSITION フラグと組み合わせて使用する必要があります。
現在適用されているフォルダーフラグを取得します。
| pdwFlags | DWORD* | out | フォルダーに適用されている FOLDERFLAGS を格納する DWORD へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
現在ビューに適用されている並べ替え列の数を取得します。
| pcColumns | INT* | out | int へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
指定された列数がビュー内の並べ替え列の数と一致しない場合は E_INVALIDARG を返します。
指定した並べ替え列を設定し、それに基づいてビューを並べ替えます。
| rgSortColumns | SORTCOLUMN* | in | SORTCOLUMN 構造体へのポインター。この構造体のサイズは cColumns によって決まります。 |
| cColumns | INT | in | 並べ替えの対象となる列の数。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
現在ビューに適用されている並べ替え列を取得します。
| rgSortColumns | SORTCOLUMN* | out | SORTCOLUMN 構造体へのポインター。この構造体のサイズは cColumns によって決まります。 |
| cColumns | INT | in | 並べ替えの対象となる列の数。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
指定した項目を表すオブジェクトを取得します。
| iItem | INT | in | 取得する項目の 0 から始まるインデックス。 |
| riid | GUID* | in | 項目を表すために使用する IID への参照 (IID_IShellItem など)。 |
| ppv | void** | out | このメソッドが返るとき、riid で要求されたインターフェイスポインターが格納されます。通常は IShellItem です。 |
戻り値
ビュー内の指定したインデックスを基準として、次の表示可能な項目を取得します。
| iStart | INT | in | 表示可能な項目の検索を開始する 0 から始まる位置。 |
| fPrevious | BOOL | in | iStart より前で最初の表示可能な項目を検索する場合は TRUE。iStart より後で最初の表示可能な項目を検索する場合は FALSE。 |
| piItem | INT* | out | このメソッドが返るとき、ビュー内の表示可能な項目のインデックスを受け取る値へのポインターが格納されます。 |
戻り値
型: HRESULT
このメソッドは、次のいずれかの値を返すことがあります。
| 戻り値 | 説明 |
|---|---|
| 項目を取得しました。 | |
| 項目が見つかりませんでした。これは成功コードである点に注意してください。 |
指定したインデックス以降で、現在選択されている項目を検索します。
| iStart | INT | in | 現在選択されている項目の検索を開始するインデックス位置。 |
| piItem | INT* | out | ビュー内の項目のインデックスを受け取る値へのポインター。 |
戻り値
型: HRESULT
選択された項目が見つかった場合は S_OK を返します。それ以外の場合は、次のようなエラー値を返します。
| 戻り値 | 説明 |
|---|---|
| 項目が見つかりませんでした。これは成功コードである点に注意してください。ビューの検索操作自体は成功しましたが、指定したインデックス (iStart) 以降に現在選択されている項目が見つからなかったことを示します。項目が 1 つも選択されていない場合や、選択されている項目のインデックスが iStart より小さい場合が考えられます。 |
現在の選択を IShellItemArray として取得します。
| fNoneImpliesFolder | BOOL | in | TRUE の場合、現在選択がないときには親フォルダーを含む IShellItemArray を返します。 |
| ppsia | IShellItemArray** | out | IShellItemArray へのポインターのアドレス。 |
戻り値
型: HRESULT
次のいずれかの値を返します。それ以外の場合はエラーを返します。
| 戻り値 | 説明 |
|---|---|
| 操作は正常に完了しました。 | |
| 返された IShellItemArray に項目が 1 つも含まれていません。 |
チェック状態を含む選択状態を取得します。
| pidl | ITEMIDLIST* | in | 項目の PIDL。 |
| pdwFlags | DWORD* | out | 現在の選択の種類を指定する、次の _SVSIF 定数のいずれか 0 個または 1 個: SVSI_FOCUSED、SVSI_SELECT、SVSI_CHECK、SVSI_CHECK2。その他の _SVSIF 定数は、この API では返されません。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
現在の選択に対して指定した動詞 (verb) を実行します。
| pszVerb | LPSTR | in | 動詞 (verb) を含む Unicode 文字列へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
pszVerb が NULL の場合、選択に対して既定の動詞 (verb) が実行されます。
ビューモードと画像サイズを設定して適用します。
| uViewMode | FOLDERVIEWMODE | in | 適用する FOLDERVIEWMODE。 |
| iImageSize | INT | in | 画像のサイズ (ピクセル単位)。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
iImageSize が -1 の場合、そのビューモードの現在の既定アイコンサイズが使用されます。
現在ビューに適用されているビューモードとアイコンサイズを取得します。
| puViewMode | FOLDERVIEWMODE* | out | 現在の FOLDERVIEWMODE へのポインター。 |
| piImageSize | INT* | out | アイコンのサイズ (ピクセル単位) へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
グループのサブセット表示を有効にし、各グループ内で表示する項目の行数を設定します。
| cVisibleRows | DWORD | in | 表示する行数。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
cVisibleRows が 0 の場合、サブセット表示は無効になります。
グループのサブセットとして表示されている行数を取得します。
| pcVisibleRows | DWORD* | out | 現在表示されている行数。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
グループのサブセット表示が無効な場合、行数は 0 になります。
再描画のオン/オフを設定します。
| fRedrawOn | BOOL | in | BOOL 値。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
このビューが現在のドラッグアンドドロップ操作または切り取りと貼り付け操作の発生元であるかどうかを確認します (ドロップ先オブジェクトによって使用されます)。
戻り値
型: 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_IFolderView2 "{1AF3A467-214F-4298-908E-06B03E0B39F9}" #usecom global IFolderView2 IID_IFolderView2 "{}" #comfunc global IFolderView2_SetGroupBy 17 var,int #comfunc global IFolderView2_GetGroupBy 18 var,var #comfunc global IFolderView2_SetViewProperty 19 var,var,var #comfunc global IFolderView2_GetViewProperty 20 var,var,var #comfunc global IFolderView2_SetTileViewProperties 21 var,wstr #comfunc global IFolderView2_SetExtendedTileViewProperties 22 var,wstr #comfunc global IFolderView2_SetText 23 int,wstr #comfunc global IFolderView2_SetCurrentFolderFlags 24 int,int #comfunc global IFolderView2_GetCurrentFolderFlags 25 var #comfunc global IFolderView2_GetSortColumnCount 26 var #comfunc global IFolderView2_SetSortColumns 27 var,int #comfunc global IFolderView2_GetSortColumns 28 var,int #comfunc global IFolderView2_GetItem 29 int,var,sptr #comfunc global IFolderView2_GetVisibleItem 30 int,int,var #comfunc global IFolderView2_GetSelectedItem 31 int,var #comfunc global IFolderView2_GetSelection 32 int,sptr #comfunc global IFolderView2_GetSelectionState 33 var,var #comfunc global IFolderView2_InvokeVerbOnSelection 34 str #comfunc global IFolderView2_SetViewModeAndIconSize 35 int,int #comfunc global IFolderView2_GetViewModeAndIconSize 36 var,var #comfunc global IFolderView2_SetGroupSubsetCount 37 int #comfunc global IFolderView2_GetGroupSubsetCount 38 var #comfunc global IFolderView2_SetRedraw 39 int #comfunc global IFolderView2_IsMoveInSameFolder 40 #comfunc global IFolderView2_DoRename 41 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IFolderView2 "{1AF3A467-214F-4298-908E-06B03E0B39F9}" #usecom global IFolderView2 IID_IFolderView2 "{}" #comfunc global IFolderView2_SetGroupBy 17 sptr,int #comfunc global IFolderView2_GetGroupBy 18 sptr,sptr #comfunc global IFolderView2_SetViewProperty 19 sptr,sptr,sptr #comfunc global IFolderView2_GetViewProperty 20 sptr,sptr,sptr #comfunc global IFolderView2_SetTileViewProperties 21 sptr,wstr #comfunc global IFolderView2_SetExtendedTileViewProperties 22 sptr,wstr #comfunc global IFolderView2_SetText 23 int,wstr #comfunc global IFolderView2_SetCurrentFolderFlags 24 int,int #comfunc global IFolderView2_GetCurrentFolderFlags 25 sptr #comfunc global IFolderView2_GetSortColumnCount 26 sptr #comfunc global IFolderView2_SetSortColumns 27 sptr,int #comfunc global IFolderView2_GetSortColumns 28 sptr,int #comfunc global IFolderView2_GetItem 29 int,sptr,sptr #comfunc global IFolderView2_GetVisibleItem 30 int,int,sptr #comfunc global IFolderView2_GetSelectedItem 31 int,sptr #comfunc global IFolderView2_GetSelection 32 int,sptr #comfunc global IFolderView2_GetSelectionState 33 sptr,sptr #comfunc global IFolderView2_InvokeVerbOnSelection 34 str #comfunc global IFolderView2_SetViewModeAndIconSize 35 int,int #comfunc global IFolderView2_GetViewModeAndIconSize 36 sptr,sptr #comfunc global IFolderView2_SetGroupSubsetCount 37 int #comfunc global IFolderView2_GetGroupSubsetCount 38 sptr #comfunc global IFolderView2_SetRedraw 39 int #comfunc global IFolderView2_IsMoveInSameFolder 40 #comfunc global IFolderView2_DoRename 41 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。