指定したファイル オブジェクトまたはフォルダーに対してアクションを実行するために使用できるオブジェクトを取得します。
構文
HRESULT GetUIObjectOf(
[in] HWND hwndOwner,
[in] UINT cidl,
[in] PCUITEMID_CHILD_ARRAY apidl,
[in] REFIID riid,
[in, out] UINT *rgfReserved,
[out] void **ppv
);
Parameters
[in] hwndOwner
型: HWND
ダイアログ ボックスまたはメッセージ ボックスが表示される場合にクライアントが指定する必要がある所有者ウィンドウへのハンドル。
[in] cidl
型: UINT
apidl パラメーターで指定されたファイル オブジェクトまたはサブフォルダーの数。
[in] apidl
型: PCUITEMID_CHILD_ARRAY
ITEMIDLIST 構造体へのポインターの配列のアドレス。各構造体は、親フォルダーに対する相対ファイル オブジェクトまたはサブフォルダーを一意に識別します。 各項目 ID リストには、1 つの SHITEMID 構造体の後に終了ゼロが続く必要があります。
[in] riid
型: REFIID
ppv を介して取得するインターフェイスの IID への参照。 これには、項目に対して作成できる任意の有効なインターフェイス識別子を指定できます。 シェルで使用される最も一般的な識別子は、このリファレンスの最後にあるコメントに記載されています。
[in, out] rgfReserved
型: UINT*
予約済み。
[out] ppv
型: void**
このメソッドが正常に返されると、 riid で要求されたインターフェイス ポインターが含まれます。
戻り値
型: HRESULT
このメソッドが成功した場合は、S_OKを返します。 それ以外の場合は、HRESULT エラー コードが返されます。
注釈
cidl が 1 より大きい場合、IShellFolder::GetUIObjectOf の実装は、apidl で指定されたすべての項目に対して 1 つのオブジェクトを作成できる場合にのみ成功します。 実装ですべての項目に対して 1 つのオブジェクトを作成できない場合、このメソッドは失敗します。
シェルがこのメソッドからインターフェイスを要求するときに使用する最も一般的なインターフェイス識別子を次に示します。 この一覧は、 cidl が要求されたインターフェイスに対して 1 より大きい値にできるかどうかを示します。
| インターフェイス識別子 | 許可される cidl 値 |
|---|---|
| IContextMenu | cidl パラメーターは、1 以上にすることができます。 |
| IContextMenu2 | cidl パラメーターは、1 以上にすることができます。 |
| IDataObject の | cidl パラメーターは、1 以上にすることができます。 |
| IDropTarget | cidl パラメーターには 1 つしか指定できません。 |
| IExtractIcon | cidl パラメーターには 1 つしか指定できません。 |
| IExtractImage | cidl パラメーターには 1 つしか指定できません。 |
| IQueryInfo | cidl パラメーターには 1 つしか指定できません。 |
riid パラメーターと ppv パラメーターをパッケージ化するには、Objbase.h で定義されている IID_PPV_ARGS マクロを使用することをお勧めします。 このマクロは 、ppv の値によって指されるインターフェイスに基づいて正しい IID を提供します。これにより、予期しない結果につながる可能性のある riid でのコーディング エラーの可能性がなくなります。
Requirements
| Requirement | 価値 |
|---|---|
| サポートされる最小クライアント | Windows XP [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
| ターゲット プラットフォーム の | Windows |
| ヘッダー | shobjidl_core.h (Shobjidl.h を含む) |
| DLL | Shell32.dll (バージョン 4.0 以降) |