ISearchFolderItemFactory
COM公式ドキュメント
検索フォルダーを作成および変更するメソッドを公開します。
解説(Remarks)
このインターフェイスを実装するには、クラス ID CLSID_SearchFolderItemFactory を使用します。
メソッド 12
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
指定した内容で、検索フォルダーの表示名を設定します。
| pszDisplayName | LPWSTR | in | フォルダーの表示名を表す Unicode 文字列へのポインター。 |
戻り値
型: HRESULT
成功した場合は成功値を、それ以外の場合はエラー値を返します。
解説(Remarks)
このメソッドの呼び出しは必須です。表示名を設定する必要があります。
指定した内容で、検索フォルダーの種類 ID を設定します。
| ftid | GUID | in | FOLDERTYPEID。システム内でフォルダーの種類を識別するために使用される GUID です。既定値は FOLDERTYPID_Library です。 |
戻り値
型: HRESULT
成功した場合は成功値を、それ以外の場合はエラー値を返します。
フォルダーの論理ビューモードを設定します。既定の設定は、ISearchFolderItemFactory::SetFolderTypeID メソッドで設定される FolderTypeID に基づきます。
| flvm | FOLDERLOGICALVIEWMODE | in | FOLDERLOGICALVIEWMODE 値。 |
戻り値
型: HRESULT
成功した場合は成功値を、それ以外の場合はエラー値を返します。
指定した内容で、検索フォルダーのアイコンサイズを設定します。既定の設定は、ISearchFolderItemFactory::SetFolderTypeID メソッドで設定される FolderTypeID に基づきます。
| iIconSize | INT | in | アイコンサイズ。 |
戻り値
型: HRESULT
成功した場合は成功値を、それ以外の場合はエラー値を返します。
PROPERTYKEY 構造体の配列を指定して、すべての列が表示される新しい列リストを作成します。既定値は FolderTypeID に基づきます。
| cVisibleColumns | DWORD | in | 配列要素の数。 |
| rgKey | PROPERTYKEY* | in | PROPERTYKEY 構造体の配列へのポインター。 |
戻り値
型: HRESULT
成功した場合は成功値を、それ以外の場合はエラー値を返します。
指定した内容で、並べ替え列の方向のリストを作成します。
| cSortColumns | DWORD | in | 並べ替え列の数。 |
| rgSortColumns | SORTCOLUMN* | in | 並べ替え方向を含む SORTCOLUMN 構造体の配列へのポインター。既定値は PKEY_ItemNameDisplay です。 |
戻り値
型: HRESULT
成功した場合は成功値を、それ以外の場合はエラー値を返します。
指定した内容で、グループ化列を設定します。グループ化列を指定しない場合、グループ化は行われません。
| keyGroup | PROPERTYKEY* | in | グループ化列の PROPERTYKEY への参照。 |
戻り値
型: HRESULT
成功した場合は成功値を、それ以外の場合はエラー値を返します。
指定した内容で、スタックキーのリストを作成します。このメソッドが呼び出されない場合、既定ではフォルダーはスタック表示されません。
| cStackKeys | DWORD | in | スタックキーの数。 |
| rgStackKeys | PROPERTYKEY* | in | スタックキー情報を含む PROPERTYKEY 構造体の配列へのポインター。 |
戻り値
型: HRESULT
成功した場合は成功値を、それ以外の場合はエラー値を返します。
指定した内容で、検索スコープを設定します。
| psiaScope | IShellItemArray* | in | 検索対象となる場所のリストへのポインター。検索には、この場所とそのすべてのサブコンテナーが含まれます。既定値は FOLDERID_Profile です。 |
戻り値
型: HRESULT
成功した場合は成功値を、それ以外の場合はエラー値を返します。
検索の ICondition を設定します。このメソッドが呼び出されない場合、結果として得られる検索にはフィルターが適用されません。
| pCondition | ICondition* | in | ICondition インターフェイスへのポインター。 |
戻り値
型: HRESULT
成功した場合は S_OK を、それ以外の場合はエラー値を返します。
検索フォルダーを IShellItem として取得します。
| riid | GUID* | in | 目的の IID への参照。 |
| ppv | void** | out | riid で指定した IShellItem インターフェイスポインター。 |
戻り値
型: HRESULT
成功した場合は成功値を、それ以外の場合はエラー値を返します。
解説(Remarks)
取得した IShellItem を列挙すると、検索結果が返されます。
検索フォルダーを ITEMIDLIST として取得します。
| ppidl | ITEMIDLIST** | out | このメソッドが正常に終了すると、PIDL が格納されます。 |
戻り値
型: HRESULT
成功した場合は成功値を、それ以外の場合はエラー値を返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ISearchFolderItemFactory "{A0FFBC28-5482-4366-BE27-3E81E78E06C2}" #usecom global ISearchFolderItemFactory IID_ISearchFolderItemFactory "{14010E02-BBBD-41F0-88E3-EDA371216584}" #comfunc global ISearchFolderItemFactory_SetDisplayName 3 wstr #comfunc global ISearchFolderItemFactory_SetFolderTypeID 4 int #comfunc global ISearchFolderItemFactory_SetFolderLogicalViewMode 5 int #comfunc global ISearchFolderItemFactory_SetIconSize 6 int #comfunc global ISearchFolderItemFactory_SetVisibleColumns 7 int,var #comfunc global ISearchFolderItemFactory_SetSortColumns 8 int,var #comfunc global ISearchFolderItemFactory_SetGroupColumn 9 var #comfunc global ISearchFolderItemFactory_SetStacks 10 int,var #comfunc global ISearchFolderItemFactory_SetScope 11 sptr #comfunc global ISearchFolderItemFactory_SetCondition 12 sptr #comfunc global ISearchFolderItemFactory_GetShellItem 13 var,sptr #comfunc global ISearchFolderItemFactory_GetIDList 14 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ISearchFolderItemFactory "{A0FFBC28-5482-4366-BE27-3E81E78E06C2}" #usecom global ISearchFolderItemFactory IID_ISearchFolderItemFactory "{14010E02-BBBD-41F0-88E3-EDA371216584}" #comfunc global ISearchFolderItemFactory_SetDisplayName 3 wstr #comfunc global ISearchFolderItemFactory_SetFolderTypeID 4 int #comfunc global ISearchFolderItemFactory_SetFolderLogicalViewMode 5 int #comfunc global ISearchFolderItemFactory_SetIconSize 6 int #comfunc global ISearchFolderItemFactory_SetVisibleColumns 7 int,sptr #comfunc global ISearchFolderItemFactory_SetSortColumns 8 int,sptr #comfunc global ISearchFolderItemFactory_SetGroupColumn 9 sptr #comfunc global ISearchFolderItemFactory_SetStacks 10 int,sptr #comfunc global ISearchFolderItemFactory_SetScope 11 sptr #comfunc global ISearchFolderItemFactory_SetCondition 12 sptr #comfunc global ISearchFolderItemFactory_GetShellItem 13 sptr,sptr #comfunc global ISearchFolderItemFactory_GetIDList 14 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。