IShellFolder::GetUIObjectOf メソッド (shobjidl_core.h)

指定したファイル オブジェクトまたはフォルダーに対してアクションを実行するために使用できるオブジェクトを取得します。

構文

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 以降)

こちらも参照ください

IShellFolder

IShellFolder2