Condividi tramite


Funzione CreateBindCtx (objbase.h)

Restituisce un puntatore a un'implementazione di IBindCtx (oggetto contesto di associazione). Questo oggetto archivia informazioni su un'operazione di associazione moniker specifica.

Sintassi

HRESULT CreateBindCtx(
  [in]  DWORD reserved,
  [out] LPBC  *ppbc
);

Parametri

[in] reserved

Questo parametro è riservato e deve essere 0.

[out] ppbc

Indirizzo di una variabile puntatore IBindCtx* che riceve il puntatore di interfaccia al nuovo oggetto contesto di associazione. Quando la funzione ha esito positivo, il chiamante è responsabile della chiamata a Release nel contesto di associazione. Un valore NULL per il contesto di associazione indica che si è verificato un errore.

Valore restituito

Questa funzione può restituire i valori restituiti standard E_OUTOFMEMORY e S_OK.

Commenti

CreateBindCtx viene comunemente usato nel processo di associazione di un moniker (individuazione e recupero di un puntatore a un'interfaccia identificandolo tramite un moniker), come nei passaggi seguenti:

  1. Ottenere un puntatore a un contesto di associazione chiamando la funzione CreateBindCtx .
  2. Chiamare il metodo IMoniker::BindToObject sul moniker, recuperando un puntatore di interfaccia all'oggetto a cui fa riferimento il moniker.
  3. Rilasciare il contesto di associazione.
  4. Usare il puntatore all'interfaccia.
  5. Rilasciare il puntatore all'interfaccia.
Il frammento di codice seguente illustra questi passaggi.
// pMnk is an IMoniker * that points to a previously acquired moniker
IInterface *pInterface;
IBindCtx *pbc;
 
CreateBindCtx( 0, &pbc );
pMnk->BindToObject( pbc, NULL, IID_IInterface, &pInterface );
pbc->Release();

// pInterface now points to the object; safe to use pInterface
pInterface->Release();

I contesti di binding vengono usati anche in altri metodi dell'interfaccia IMoniker oltre a IMoniker::BindToObject e nella funzione MkParseDisplayName .

Un contesto di associazione mantiene i riferimenti agli oggetti associati durante l'operazione di associazione, causando il rilascio degli oggetti associati (mantenendo in esecuzione il server dell'oggetto) fino al rilascio del contesto di associazione. Il riutilizzo di un contesto di associazione quando le operazioni successive si associano allo stesso oggetto possono migliorare le prestazioni. È tuttavia consigliabile rilasciare il contesto di associazione il prima possibile, perché è possibile mantenere gli oggetti attivati inutilmente.

Un contesto di associazione contiene una struttura BIND_OPTS , che contiene parametri che si applicano a tutti i passaggi di un'operazione di associazione. Quando si crea un contesto di associazione usando CreateBindCtx, i campi della struttura BIND_OPTS vengono inizializzati nel modo seguente.

cbStruct = sizeof(BIND_OPTS) 
grfFlags = 0 
grfMode = STGM_READWRITE 
dwTickCountDeadline = 0

È possibile chiamare il metodo IBindCtx::SetBindOptions per modificare questi valori predefiniti.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione objbase.h
Libreria Ole32.lib
DLL Ole32.dll

Vedi anche

Ibindctx

Imoniker

MkParseDisplayName