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

ハンドラー (通常は特定の項目の IShellFolder を実装するシェル フォルダー オブジェクト) を取得します。 ハンドラーの構築を制御する省略可能なパラメーターは、バインド コンテキストで渡されます。

構文

HRESULT BindToObject(
  [in]  PCUIDLIST_RELATIVE pidl,
  [in]  IBindCtx           *pbc,
  [in]  REFIID             riid,
  [out] void               **ppv
);

パラメーター

[in] pidl

種類: PCUIDLIST_RELATIVE

サブフォルダーを識別する ITEMIDLIST 構造体 (PIDL) のアドレス。 この値は、名前空間階層内の親フォルダーの下の任意のレベルの項目を参照できます。 構造体には、1 つ以上の SHITEMID 構造体が含まれています。その後に終端 NULL が続きます。

[in] pbc

種類: IBindCtx*

ハンドラーの構築にパラメーターを渡すために使用できるバインド コンテキスト オブジェクト上の IBindCtx インターフェイスへのポインター。 このパラメーターを使用しない場合は、NULL に設定 します。 このパラメーターのサポートはフォルダー オブジェクトの実装では省略可能であるため、一部のフォルダーではバインド コンテキストの使用がサポートされない場合があります。

バインド コンテキストで提供できる情報には、ストリーム ハンドラーへのバインド時にアクセス モードを示す grfMode メンバーを含むBIND_OPTS構造体が含まれます。 その他のパラメーターは、 IBindCtx::RegisterObjectParamIBindCtx::GetObjectParam を使用して設定および検出できます。

[in] riid

種類: REFIID

返すインターフェイスの識別子。 これは 、IID_IShellFolderIID_IStream、または特定のハンドラーを識別するその他のインターフェイスである場合があります。

[out] ppv

型: void**

このメソッドが戻るとき、 には、要求されたインターフェイスへのポインターのアドレスが含まれます。 エラーが発生した場合は、このアドレスで NULL ポインターが返されます。

戻り値

種類: HRESULT

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

注釈

アプリケーションでは 、IShellFolder::BindToObject(..., IID_IShellFolder, ...) を使用して、サブ項目のシェル フォルダー オブジェクトを取得します。 クライアントは、特定のハンドラーを識別するために使用される正規インターフェイス IID を渡す必要があります。 たとえば、 IID_IShellFolder はフォルダー ハンドラーを識別し、 IID_IStream はストリーム ハンドラーを識別します。 実装では、 IID_IShellFolder2などの派生インターフェイスを使用してハンドラーへのバインドをサポートすることもできます。 シェル名前空間拡張機能は、指定したサブ項目のシェル フォルダー オブジェクトを作成し、 QueryInterface を呼び出してインターフェイス ポインターを介してオブジェクトと通信することで、この関数を実装できます。

BindToObject の実装では、サポートされていない IID 値に対してすばやく失敗することで、その呼び出しを最適化できます。 たとえば、サブ項目の Shell フォルダー オブジェクトが IRemoteComputer をサポートしていない場合、実装はサブ項目のシェル フォルダー オブジェクトを不必要に作成し、結局 IRemoteComputer がサポートされていないことを検出するのではなく、すぐにE_NOINTERFACEを返す必要があります。

要件

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

こちらもご覧ください

IPersistFolder

IPersistFolder2

IShellFolder

IShellFolder2

SHGetDesktopFolder