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::RegisterObjectParam と IBindCtx::GetObjectParam を使用して設定および検出できます。
[in] riid
種類: REFIID
返すインターフェイスの識別子。 これは 、IID_IShellFolder、 IID_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 以降) |