Condividi tramite


Metodo IShellFolder::BindToObject (shobjidl_core.h)

Recupera un gestore, in genere l'oggetto cartella Shell che implementa IShellFolder per un elemento specifico. I parametri facoltativi che controllano la costruzione del gestore vengono passati nel contesto di associazione.

Sintassi

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

Parametri

[in] pidl

Tipo: PCUIDLIST_RELATIVE

Indirizzo di una struttura ITEMIDLIST (PIDL) che identifica la sottocartella. Questo valore può fare riferimento a un elemento a qualsiasi livello inferiore alla cartella padre nella gerarchia dello spazio dei nomi. La struttura contiene una o più strutture SHITEMID , seguite da un valore NULL terminante.

[in] pbc

Tipo: IBindCtx*

Puntatore a un'interfaccia IBindCtx in un oggetto contesto di associazione che può essere usato per passare i parametri alla costruzione del gestore. Se questo parametro non viene usato, impostarlo su NULL. Poiché il supporto per questo parametro è facoltativo per le implementazioni dell'oggetto cartelle, alcune cartelle potrebbero non supportare l'uso di contesti di associazione.

Le informazioni che possono essere fornite nel contesto di associazione includono una struttura BIND_OPTS che include un membro grfMode che indica la modalità di accesso quando si associa a un gestore di flusso. È possibile impostare e individuare altri parametri usando IBindCtx::RegisterObjectParam e IBindCtx::GetObjectParam.

[in] riid

Tipo: REFIID

Identificatore dell'interfaccia da restituire. Questo può essere IID_IShellFolder, IID_IStream o qualsiasi altra interfaccia che identifica un determinato gestore.

[out] ppv

Tipo: void**

Quando questo metodo restituisce, contiene l'indirizzo di un puntatore all'interfaccia richiesta. Se si verifica un errore, viene restituito un puntatore NULL in questo indirizzo.

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Le applicazioni usano IShellFolder::BindToObject(..., IID_IShellFolder, ...) per ottenere l'oggetto cartella Shell per un elemento secondario. I client devono passare l'IID dell'interfaccia canonica usata per identificare un gestore specifico. Ad esempio, IID_IShellFolder identifica il gestore cartelle e IID_IStream identifica il gestore di flusso. Le implementazioni possono supportare l'associazione ai gestori usando interfacce derivate, ad esempio IID_IShellFolder2. Un'estensione dello spazio dei nomi shell può implementare questa funzione creando l'oggetto cartella Shell per l'elemento secondario specificato e quindi chiamando QueryInterface per comunicare con l'oggetto tramite il puntatore dell'interfaccia.

Le implementazioni di BindToObject possono ottimizzare qualsiasi chiamata a essa eseguendo rapidamente errori per i valori IID che non supportano. Ad esempio, se l'oggetto cartella Shell dell'elemento secondario non supporta IRemoteComputer, l'implementazione deve restituire E_NOINTERFACE immediatamente anziché creare immediatamente l'oggetto cartella Shell per l'elemento secondario e quindi trovare che IRemoteComputer non è stato supportato dopo tutto.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shobjidl_core.h (include Shobjidl.h)
DLL Shell32.dll (versione 4.0 o successiva)

Vedi anche

IPersistFolder

IPersistFolder2

IShellFolder

IShellFolder2

SHGetDesktopFolder