IShellFolder::BindToObject 方法 (shobjidl_core.h)

擷取處理程式,通常是實作特定專案的 IShellFolder 的 Shell 資料夾物件。 控制處理程式建構的選擇性參數會在系結內容中傳遞。

語法

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

參數

[in] pidl

類型: PCUIDLIST_RELATIVE

識別子資料夾之 ITEMIDLIST 結構的位址 (PIDL) 。 此值可以參考命名空間階層中父資料夾下方任何層級的專案。 結構包含一或多個 SHITEMID 結構,後面接著終止 的 NULL

[in] pbc

類型: IBindCtx*

系結內容物件上 IBindCtx 介面的指標,可用來將參數傳遞至處理程式的建構。 如果未使用此參數,請將它設定為 NULL。 因為這個參數的支援對於資料夾物件實作是選擇性的,所以某些資料夾可能不支援使用系結內容。

系結內容中提供的資訊包括 BIND_OPTS 結構,其中包含 grfMode 成員,指出系結至數據流處理程式時的存取模式。 您可以使用 IBindCtx::RegisterObjectParamIBindCtx::GetObjectParam 來設定和探索其他參數。

[in] riid

類型: REFIID

要傳回之介面的標識碼。 這可能是 IID_IShellFolderIID_IStream或任何其他識別特定處理程式的介面。

[out] ppv

類型: void**

當這個方法傳回時,會包含所要求介面指標的位址。 如果發生錯誤,則會在此位址傳回 NULL 指標。

傳回值

類型: HRESULT

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

應用程式會使用 IShellFolder::BindToObject (...、IID_IShellFolder...) 來取得子專案的 Shell 資料夾物件。 用戶端應該傳遞用來識別特定處理程式的標準介面 IID。 例如, IID_IShellFolder 識別資料夾處理程式, IID_IStream 識別數據流處理程式。 實作也支援使用衍生介面系結至處理程式,例如 IID_IShellFolder2。 Shell 命名空間延伸模組可以藉由為指定的子專案建立Shell資料夾物件,然後呼叫 QueryInterface 透過其介面指標與對象通訊,以實作此函式。

BindToObject 的實作可以針對不支援的 IID 值快速失敗,將它的任何呼叫優化。 例如,如果子專案的Shell資料夾物件不支援 IRemoteComputer,則實作應該會立即傳回 E_NOINTERFACE ,而不需為子專案建立Shell資料夾物件,然後在所有之後發現不支援 IRemoteComputer

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 shobjidl_core.h (包括 Shobjidl.h)
Dll Shell32.dll (4.0 版或更新版本)

另請參閱

IPersistFolder

IPersistFolder2

IShellFolder

IShellFolder2

SHGetDesktopFolder