IShellFolder::BindToObject-Methode (shobjidl_core.h)

Ruft einen Handler ab, in der Regel das Shell-Ordnerobjekt, das IShellFolder für ein bestimmtes Element implementiert. Optionale Parameter, die die Konstruktion des Handlers steuern, werden im Bindungskontext übergeben.

Syntax

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

Parameter

[in] pidl

Typ: PCUIDLIST_RELATIVE

Die Adresse einer ITEMIDLIST-Struktur (PIDL), die den Unterordner identifiziert. Dieser Wert kann auf ein Element auf jeder Ebene unterhalb des übergeordneten Ordners in der Namespacehierarchie verweisen. Die Struktur enthält mindestens eine SHITEMID-Struktur , gefolgt von einem beendenden NULL.

[in] pbc

Typ: IBindCtx*

Ein Zeiger auf eine IBindCtx-Schnittstelle in einem Bindungskontextobjekt, das verwendet werden kann, um Parameter an die Konstruktion des Handlers zu übergeben. Wenn dieser Parameter nicht verwendet wird, legen Sie ihn auf NULL fest. Da die Unterstützung für diesen Parameter für Ordnerobjektimplementierungen optional ist, unterstützen einige Ordner möglicherweise nicht die Verwendung von Bindungskontexten.

Informationen, die im Bindungskontext bereitgestellt werden können, umfassen eine BIND_OPTS-Struktur , die einen grfMode-Member enthält, der den Zugriffsmodus bei der Bindung an einen Streamhandler angibt. Andere Parameter können mit IBindCtx::RegisterObjectParam und IBindCtx::GetObjectParam festgelegt und ermittelt werden.

[in] riid

Typ: REFIID

Der Bezeichner der zurückzugebenden Schnittstelle. Dies kann IID_IShellFolder, IID_IStream oder eine andere Schnittstelle sein, die einen bestimmten Handler identifiziert.

[out] ppv

Typ: void**

Wenn diese Methode zurückgibt, enthält die Adresse eines Zeigers auf die angeforderte Schnittstelle. Wenn ein Fehler auftritt, wird an dieser Adresse ein NULL-Zeiger zurückgegeben.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Anwendungen verwenden IShellFolder::BindToObject(..., IID_IShellFolder, ...), um das Shell-Ordnerobjekt für ein Unterelement abzurufen. Clients sollten die kanonische Schnittstelle IID übergeben, die zum Identifizieren eines bestimmten Handlers verwendet wird. Beispielsweise identifiziert IID_IShellFolder den Ordnerhandler und IID_IStream den Streamhandler. Implementierungen können auch die Bindung an Handler unterstützen, die abgeleitete Schnittstellen verwenden, z. B. IID_IShellFolder2. Eine Shell-Namespaceerweiterung kann diese Funktion implementieren, indem sie das Shell-Ordnerobjekt für das angegebene Unterelement erstellt und dann QueryInterface aufruft, um mit dem Objekt über seinen Schnittstellenzeiger zu kommunizieren.

Implementierungen von BindToObject können jeden Aufruf von bindToObject optimieren, indem schnell ein Fehler für IID-Werte auftritt, die nicht unterstützt werden. Wenn beispielsweise das Shell-Ordnerobjekt des Unterelements IRemoteComputer nicht unterstützt, sollte die Implementierung sofort E_NOINTERFACE zurückgeben, anstatt unnötigerweise das Shell-Ordnerobjekt für das Unterelement zu erstellen und dann zu ermitteln, dass IRemoteComputer nicht unterstützt wurde.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shobjidl_core.h (einschließlich Shobjidl.h)
DLL Shell32.dll (Version 4.0 oder höher)

Weitere Informationen

IPersistFolder

IPersistFolder2

IShellFolder

IShellFolder2

SHGetDesktopFolder