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

フォルダー オブジェクトから情報を取得したり、フォルダー オブジェクトと対話したりするために使用できるオブジェクトを要求します。

構文

HRESULT CreateViewObject(
  [in]  HWND   hwndOwner,
  [in]  REFIID riid,
  [out] void   **ppv
);

パラメーター

[in] hwndOwner

型: HWND

所有者ウィンドウへのハンドル。 カスタム フォルダー ビュー オブジェクトを実装している場合は、フォルダー ビュー ウィンドウを hwndOwner の子として作成する必要があります。

[in] riid

型: REFIID

ppv を介して取得するインターフェイスの IID への参照 。通常はIID_IShellView。

[out] ppv

型: void**

このメソッドが正常に返されると、 riid で要求されたインターフェイス ポインターが含まれます。 これは通常 、IShellView です。 詳細については、「解説」を参照してください。

戻り値

型: HRESULT

このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。

解説

この要求をサポートするには、 riid によって示されるインターフェイスを公開し、そのインターフェイスへのポインターを返す オブジェクトを作成します。

このメソッドの主な目的は、Windows エクスプローラーにフォルダー オブジェクトのフォルダー ビュー オブジェクトを提供することです。 Windows エクスプローラー は、riid を IID_IShellView に設定して、フォルダー ビュー オブジェクトを要求します。 フォルダー ビュー オブジェクトには、Windows エクスプローラー フォルダー ビューのフォルダーの内容が表示されます。 フォルダー ビュー オブジェクトは Shell フォルダー オブジェクトに依存しない必要があります。Windows エクスプローラーは、このメソッドを複数回呼び出して複数のフォルダー ビュー オブジェクトを作成する場合があるためです。 このメソッドが呼び出されるたびに、新しいビュー オブジェクトを作成する必要があります。 フォルダー オブジェクトは、この要求に対して 2 つの方法のいずれかで応答できます。 次のことが可能です。

  • カスタム フォルダー ビュー オブジェクトを作成し、その IShellView インターフェイスへのポインターを返します。
  • システム フォルダー ビュー オブジェクトを作成し、その IShellView インターフェイスへのポインターを返します。
このメソッドは、 IContextMenuIExtractIcon など、いくつかの省略可能なインターフェイスのいずれかを公開するオブジェクトを要求するためにも使用されます。 このコンテキストでは、 CreateViewObjectIShellFolder::GetUIObjectOf の使用方法に似ています。 ただし、 IShellFolder::GetUIObjectOf を呼び出して、フォルダーに含まれるいずれかのアイテムのオブジェクトを要求します。 IShellFolder::CreateViewObject を呼び出して、フォルダー自体のオブジェクトを要求します。 最も一般的に要求されるインターフェイスは次のとおりです。 riid パラメーターと ppv パラメーターをパッケージ化するには、Objbase.h で定義されているIID_PPV_ARGS マクロを使用することをお勧めします。 このマクロは 、ppv の値によって指されるインターフェイスに基づいて正しい IID を提供します。これにより、 riid でコーディング エラーが発生し、予期しない結果が発生する可能性がなくなります。

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー shobjidl_core.h (Shobjidl.h を含む)
[DLL] Shell32.dll (バージョン 4.0 以降)

関連項目

IShellFolder

IShellFolder2