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) |