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

IFolderView2

COM
IID1af3a467-214f-4298-908e-06b03e0b39f9継承元IFolderView自前メソッド開始 vtbl17

公式ドキュメント

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

解説(Remarks)

このインターフェイスは、継承元である IFolderView インターフェイスのメソッドも提供します。

メソッド 25

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

vtbl 17 HRESULT SetGroupBy(PROPERTYKEY* key, BOOL fAscending)

指定したプロパティキーと方向でビューをグループ化します。

keyPROPERTYKEY*inビューのグループ化に使用する PROPERTYKEY
fAscendingBOOLinグループの並べ替え順序を示す BOOL 型の値。

戻り値

型: HRESULT

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

vtbl 18 HRESULT GetGroupBy(PROPERTYKEY* pkey, BOOL* pfAscending)

フォルダー表示で項目のグループ化に使用されているプロパティと並べ替え順序を取得します。

pkeyPROPERTYKEY*outビューのグループ化に使用されている PROPERTYKEY へのポインター。
pfAscendingBOOL*outoptionalグループの並べ替え順序を示す BOOL 型の値へのポインター。

戻り値

型: HRESULT

このメソッドは、次のいずれかの値を返すことがあります。

戻り値 説明
S_OK
ビューはグループ化されています。
S_FALSE
ビューはグループ化されていません。
vtbl 19 HRESULT SetViewProperty(ITEMIDLIST* pidl, PROPERTYKEY* propkey, PROPVARIANT* propvar)

項目のプロパティをビューのプロパティキャッシュにキャッシュします。

pidlITEMIDLIST*in項目を識別する PIDL。
propkeyPROPERTYKEY*in格納する PROPERTYKEY
propvarPROPVARIANT*inPROPERTYKEY が格納される PROPVARIANT 構造体へのポインター。

戻り値

型: DEPRECATED_HRESULT

成功した場合は S_OK を、それ以外の場合はエラー値を返します。

解説(Remarks)

プロパティはビューに表示されますが、基になる項目には書き込まれません。

vtbl 20 HRESULT GetViewProperty(ITEMIDLIST* pidl, PROPERTYKEY* propkey, PROPVARIANT* ppropvar)

指定したプロパティキーに対応するプロパティ値を、ビューのキャッシュから取得します。

pidlITEMIDLIST*in項目識別子リスト (PIDL) へのポインター。
propkeyPROPERTYKEY*in取得する PROPERTYKEY
ppropvarPROPVARIANT*outPROPERTYKEY が格納される PROPVARIANT 構造体へのポインター。

戻り値

型: DEPRECATED_HRESULT

成功した場合は S_OK を、それ以外の場合はエラー値を返します。

戻り値 説明
S_OK
成功。値はキャッシュ内にあります。
E_FAIL
値はビューのキャッシュ内にありません。
vtbl 21 HRESULT SetTileViewProperties(ITEMIDLIST* pidl, LPWSTR pszPropList)

項目のタイルプロパティのリストを設定します。

pidlITEMIDLIST*in項目識別子リスト (PIDL) へのポインター。
pszPropListLPWSTRinプロパティのリストを含む Unicode 文字列へのポインター。

戻り値

型: DEPRECATED_HRESULT

成功した場合は S_OK を、それ以外の場合はエラー値を返します。

解説(Remarks)

pszPropList パラメーターは "prop:<canonical-property-name>;<canonical-property-name>" の形式である必要があり、"<canonical-property-name>" は実際の正規プロパティ名に置き換えられます。このパラメーターには、セミコロンで区切られた 1 つ以上のプロパティを含めることができます。

vtbl 22 HRESULT SetExtendedTileViewProperties(ITEMIDLIST* pidl, LPWSTR pszPropList)

項目の拡張タイルプロパティのリストを設定します。

pidlITEMIDLIST*in項目識別子リスト (PIDL) へのポインター。
pszPropListLPWSTRinプロパティのリストを含む Unicode 文字列へのポインター。

戻り値

型: DEPRECATED_HRESULT

成功した場合は S_OK を、それ以外の場合はエラー値を返します。

解説(Remarks)

pszPropList パラメーターは "prop:<canonical-property-name>;<canonical-property-name>" の形式である必要があり、"<canonical-property-name>" は実際の正規プロパティ名です。セミコロンで区切られた 1 つ以上のプロパティを含めることができます。

vtbl 23 HRESULT SetText(FVTEXTTYPE iType, LPWSTR pwszText)

ビュー内に項目が存在しない場合に使用される既定のテキストを設定します。

iTypeFVTEXTTYPEin

この値には次のフラグを設定してください。

FVST_EMPTYTEXT

ビュー内に項目が存在しない場合に表示するテキストを設定します。

pwszTextLPWSTRin使用するテキストを含む Unicode 文字列へのポインター。

戻り値

型: HRESULT

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

vtbl 24 HRESULT SetCurrentFolderFlags(DWORD dwMask, DWORD dwFlags)

指定したフォルダーフラグを設定して適用します。

dwMaskDWORDin構造体内のどの項目が対象または有効であるかを示すビットマスクを指定する DWORD 型の値。
dwFlagsDWORDin1 つ以上の FOLDERFLAGS を含む DWORD 型の値。

戻り値

型: HRESULT

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

解説(Remarks)

Windows 7 以降の場合: このメソッドは、FOLDERVIEWOPTIONS 列挙型の FVO_CUSTOMPOSITION フラグと組み合わせて使用する必要があります。

vtbl 25 HRESULT GetCurrentFolderFlags(DWORD* pdwFlags)

現在適用されているフォルダーフラグを取得します。

pdwFlagsDWORD*outフォルダーに適用されている FOLDERFLAGS を格納する DWORD へのポインター。

戻り値

型: HRESULT

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

vtbl 26 HRESULT GetSortColumnCount(INT* pcColumns)

現在ビューに適用されている並べ替え列の数を取得します。

pcColumnsINT*outint へのポインター。

戻り値

型: HRESULT

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

解説(Remarks)

指定された列数がビュー内の並べ替え列の数と一致しない場合は E_INVALIDARG を返します。

vtbl 27 HRESULT SetSortColumns(SORTCOLUMN* rgSortColumns, INT cColumns)

指定した並べ替え列を設定し、それに基づいてビューを並べ替えます。

rgSortColumnsSORTCOLUMN*inSORTCOLUMN 構造体へのポインター。この構造体のサイズは cColumns によって決まります。
cColumnsINTin並べ替えの対象となる列の数。

戻り値

型: HRESULT

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

vtbl 28 HRESULT GetSortColumns(SORTCOLUMN* rgSortColumns, INT cColumns)

現在ビューに適用されている並べ替え列を取得します。

rgSortColumnsSORTCOLUMN*outSORTCOLUMN 構造体へのポインター。この構造体のサイズは cColumns によって決まります。
cColumnsINTin並べ替えの対象となる列の数。

戻り値

型: HRESULT

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

vtbl 29 HRESULT GetItem(INT iItem, GUID* riid, void** ppv)

指定した項目を表すオブジェクトを取得します。

iItemINTin取得する項目の 0 から始まるインデックス。
riidGUID*in項目を表すために使用する IID への参照 (IID_IShellItem など)。
ppvvoid**outこのメソッドが返るとき、riid で要求されたインターフェイスポインターが格納されます。通常は IShellItem です。

戻り値

型: HRESULT

指定した項目が見つかった場合は S_OK を返します。それ以外の場合は、次のようなエラー値を返します。

戻り値 説明
E_INVALIDARG
iItem のインデックスが範囲外です。
vtbl 30 HRESULT GetVisibleItem(INT iStart, BOOL fPrevious, INT* piItem)

ビュー内の指定したインデックスを基準として、次の表示可能な項目を取得します。

iStartINTin表示可能な項目の検索を開始する 0 から始まる位置。
fPreviousBOOLiniStart より前で最初の表示可能な項目を検索する場合は TRUEiStart より後で最初の表示可能な項目を検索する場合は FALSE
piItemINT*outこのメソッドが返るとき、ビュー内の表示可能な項目のインデックスを受け取る値へのポインターが格納されます。

戻り値

型: HRESULT

このメソッドは、次のいずれかの値を返すことがあります。

戻り値 説明
S_OK
項目を取得しました。
S_FALSE
項目が見つかりませんでした。これは成功コードである点に注意してください。
vtbl 31 HRESULT GetSelectedItem(INT iStart, INT* piItem)

指定したインデックス以降で、現在選択されている項目を検索します。

iStartINTin現在選択されている項目の検索を開始するインデックス位置。
piItemINT*outビュー内の項目のインデックスを受け取る値へのポインター。

戻り値

型: HRESULT

選択された項目が見つかった場合は S_OK を返します。それ以外の場合は、次のようなエラー値を返します。

戻り値 説明
S_FALSE
項目が見つかりませんでした。これは成功コードである点に注意してください。ビューの検索操作自体は成功しましたが、指定したインデックス (iStart) 以降に現在選択されている項目が見つからなかったことを示します。項目が 1 つも選択されていない場合や、選択されている項目のインデックスが iStart より小さい場合が考えられます。
vtbl 32 HRESULT GetSelection(BOOL fNoneImpliesFolder, IShellItemArray** ppsia)

現在の選択を IShellItemArray として取得します。

fNoneImpliesFolderBOOLinTRUE の場合、現在選択がないときには親フォルダーを含む IShellItemArray を返します。
ppsiaIShellItemArray**outIShellItemArray へのポインターのアドレス。

戻り値

型: HRESULT

次のいずれかの値を返します。それ以外の場合はエラーを返します。

戻り値 説明
S_OK
操作は正常に完了しました。
S_FALSE
返された IShellItemArray に項目が 1 つも含まれていません。
vtbl 33 HRESULT GetSelectionState(ITEMIDLIST* pidl, DWORD* pdwFlags)

チェック状態を含む選択状態を取得します。

pidlITEMIDLIST*in項目の PIDL。
pdwFlagsDWORD*out現在の選択の種類を指定する、次の _SVSIF 定数のいずれか 0 個または 1 個: SVSI_FOCUSEDSVSI_SELECTSVSI_CHECKSVSI_CHECK2。その他の _SVSIF 定数は、この API では返されません。

戻り値

型: HRESULT

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

vtbl 34 HRESULT InvokeVerbOnSelection(LPSTR pszVerb)

現在の選択に対して指定した動詞 (verb) を実行します。

pszVerbLPSTRin動詞 (verb) を含む Unicode 文字列へのポインター。

戻り値

型: HRESULT

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

解説(Remarks)

pszVerbNULL の場合、選択に対して既定の動詞 (verb) が実行されます。

vtbl 35 HRESULT SetViewModeAndIconSize(FOLDERVIEWMODE uViewMode, INT iImageSize)

ビューモードと画像サイズを設定して適用します。

uViewModeFOLDERVIEWMODEin適用する FOLDERVIEWMODE
iImageSizeINTin画像のサイズ (ピクセル単位)。

戻り値

型: HRESULT

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

解説(Remarks)

iImageSize が -1 の場合、そのビューモードの現在の既定アイコンサイズが使用されます。

vtbl 36 HRESULT GetViewModeAndIconSize(FOLDERVIEWMODE* puViewMode, INT* piImageSize)

現在ビューに適用されているビューモードとアイコンサイズを取得します。

puViewModeFOLDERVIEWMODE*out現在の FOLDERVIEWMODE へのポインター。
piImageSizeINT*outアイコンのサイズ (ピクセル単位) へのポインター。

戻り値

型: HRESULT

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

vtbl 37 HRESULT SetGroupSubsetCount(DWORD cVisibleRows)

グループのサブセット表示を有効にし、各グループ内で表示する項目の行数を設定します。

cVisibleRowsDWORDin表示する行数。

戻り値

型: HRESULT

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

解説(Remarks)

cVisibleRows が 0 の場合、サブセット表示は無効になります。

vtbl 38 HRESULT GetGroupSubsetCount(DWORD* pcVisibleRows)

グループのサブセットとして表示されている行数を取得します。

pcVisibleRowsDWORD*out現在表示されている行数。

戻り値

型: HRESULT

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

解説(Remarks)

グループのサブセット表示が無効な場合、行数は 0 になります。

vtbl 39 HRESULT SetRedraw(BOOL fRedrawOn)

再描画のオン/オフを設定します。

fRedrawOnBOOLinBOOL 値。

戻り値

型: HRESULT

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

vtbl 40 HRESULT IsMoveInSameFolder()

このビューが現在のドラッグアンドドロップ操作または切り取りと貼り付け操作の発生元であるかどうかを確認します (ドロップ先オブジェクトによって使用されます)。

戻り値

型: HRESULT

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

vtbl 41 HRESULT DoRename()

現在の選択に対して名前変更操作を開始します。

戻り値

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