Condividi tramite


Metodo IBindCtx::RegisterObjectBound (objidl.h)

Registra un oggetto con il contesto di associazione per assicurarsi che l'oggetto rimanga attivo fino al rilascio del contesto di associazione.

Sintassi

HRESULT RegisterObjectBound(
  [in] IUnknown *punk
);

Parametri

[in] punk

Puntatore all'interfaccia IUnknown sull'oggetto registrato come associato.

Valore restituito

Questo metodo può restituire i valori restituiti standard E_OUTOFMEMORY e S_OK.

Commenti

Gli utenti che scrivono una nuova classe moniker (tramite un'implementazione dell'interfaccia IMoniker ) devono chiamare questo metodo ogni volta che l'implementazione attiva un oggetto. Ciò si verifica più spesso durante l'associazione di un moniker, ma può verificarsi anche durante il recupero del nome visualizzato di un moniker, l'analisi di un nome visualizzato in un moniker o il recupero dell'ora dell'ultima modifica di un oggetto.

RegisterObjectBound chiama AddRef per creare un riferimento aggiuntivo all'oggetto . È tuttavia necessario rilasciare comunque la propria copia del puntatore. La chiamata a questo metodo due volte per lo stesso oggetto crea due riferimenti a tale oggetto. È possibile rilasciare un riferimento ottenuto tramite una chiamata a questo metodo chiamando IBindCtx::RevokeObjectBound. Tutti i riferimenti contenuti nel contesto di associazione vengono rilasciati quando viene rilasciato il contesto di associazione stesso.

La chiamata a RegisterObjectBound per registrare un oggetto con un contesto di associazione mantiene attivo l'oggetto fino al rilascio del contesto di associazione. Il riutilizzo di un contesto di associazione in un'operazione di associazione successiva (per un'altra parte dello stesso moniker composito o per un moniker diverso) può rendere più efficiente l'operazione di associazione successiva perché non deve ricaricare l'oggetto. Ciò, tuttavia, migliora le prestazioni solo se l'operazione di associazione successiva richiede alcuni degli stessi oggetti dell'originale, pertanto è necessario bilanciare il possibile miglioramento delle prestazioni del riutilizzo di un contesto di associazione rispetto ai costi di mantenere gli oggetti attivati inutilmente.

IBindCtx non fornisce un metodo per recuperare un puntatore a un oggetto registrato tramite RegisterObjectBound. Supponendo che l'oggetto sia registrato con la tabella degli oggetti in esecuzione, le implementazioni del moniker possono chiamare IRunningObjectTable::GetObject per recuperare un puntatore all'oggetto.

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 objidl.h

Vedi anche

Ibindctx

IRunningObjectTable::GetObject