Condividi tramite


Metodo IOleLink::BindToSource (oleidl.h)

Attiva la connessione all'origine del collegamento associando il moniker archiviato all'interno dell'oggetto collegato.

Sintassi

HRESULT BindToSource(
  [in] DWORD    bindflags,
  [in] IBindCtx *pbc
);

Parametri

[in] bindflags

Specifica come procedere se l'origine del collegamento ha un CLSID diverso dall'ultima volta che è stato associato. Se questo parametro è zero e i CLSID sono diversi, il metodo ha esito negativo e restituisce OLE_E_CLASSDIFF. Se viene specificato il valore OLELINKBIND_EVENIFCLASSDIFF dell'enumerazione OLELINKBIND e i CLSID sono diversi, il metodo associa correttamente e aggiorna il CLSID archiviato nell'oggetto collegato.

[in] pbc

Puntatore all'interfaccia IBindCtx nel contesto di associazione da usare in questa operazione di associazione. Questo parametro può essere NULL. Il contesto di associazione memorizza nella cache gli oggetti associati durante il processo di associazione, contiene parametri che si applicano a tutte le operazioni usando il contesto di associazione e fornisce i mezzi in base al quale l'implementazione dell'associazione deve recuperare informazioni sull'ambiente. Per altre informazioni, vedere IBindCtx.

Valore restituito

Questo metodo restituisce S_OK se l'operazione ha esito positivo. Gli altri valori restituiti possibili includono i seguenti:

Codice restituito Descrizione
OLE_E_CLASSDIFF
L'origine del collegamento non è stata associata perché il CLSID è stato modificato. Questo errore viene restituito solo se il flag di OLELINKBIND_EVENIFCLASSDIFF non è specificato nel parametro bindflags .
MK_E_NOOBJECT
Impossibile trovare l'origine del collegamento o , se il moniker dell'origine del collegamento è un composito, non è stato possibile trovare un oggetto intermedio identificato nel composito.
E_UNSPEC
Il moniker del collegamento è NULL.
 

L'associazione del moniker potrebbe richiedere la chiamata alla funzione CreateBindCtx ; pertanto, questo metodo può restituire errori generati da CreateBindCtx.

Commenti

Note ai chiamanti

In genere, l'applicazione contenitore non deve chiamare direttamente il metodo IOleLink::BindToSource . Quando è necessario attivare la connessione all'origine del collegamento, il contenitore chiama in genere IOleObject::D oVerb, IOleObject::Update o IOleLink: :Update. L'implementazione di questi metodi dell'oggetto collegato chiama IOleLink::BindToSource. Il contenitore può anche chiamare la funzione OleRun , che chiama IOleLink::BindToSource quando viene chiamato su un oggetto collegato.

In ogni esempio elencato in precedenza, in cui viene chiamato IOleLink::BindToSource , il parametro bindflags è impostato su zero. Di conseguenza, queste chiamate possono avere esito negativo con l'errore OLE_E_CLASSDIFF se la classe dell'origine del collegamento è diversa da quella dell'ultima volta che l'oggetto collegato è stato associato. Ciò potrebbe verificarsi, ad esempio, se l'origine del collegamento originale era un foglio di calcolo Lotus incorporato che un utente finale aveva successivamente convertito (usando la finestra di dialogo Modifica tipo) in un foglio di calcolo di Excel.

Se si vuole che il contenitore venga associato anche se l'origine del collegamento ha ora un CLSID diverso, è possibile chiamare direttamente IOleLink::BindToSource e specificare OLELINKBIND_EVENIFCLASSDIFF per il parametro bindflags. Questa chiamata viene associata all'origine del collegamento e aggiorna il CLSID dell'oggetto di collegamento. In alternativa, il contenitore può eliminare il collegamento esistente e usare la funzione OleCreateLink per creare un nuovo oggetto collegato.

Note per gli implementatori

L'oggetto collegato memorizza nella cache il puntatore dell'interfaccia all'origine di collegamento acquisita durante l'associazione.

L'implementazione IOleLink::BindToSource dell'oggetto collegato tenta prima di tutto di associare usando un moniker costituito dal moniker del documento composto con il moniker relativo dell'origine del collegamento. Se ha esito positivo, aggiorna il moniker assoluto del collegamento. In caso contrario, tenta di associare usando il moniker assoluto, aggiornando il moniker relativo se riuscito.

Se IOleLink::BindToSource associa all'origine del collegamento, chiama l'implementazione IOleContainer::LockContainer del documento composto per mantenere attivo il documento composto contenente mentre l'origine del collegamento è in esecuzione. IOleLink::BindToSource chiama anche le implementazioni IOleObject::Advise e IDataObject::D Advise dell'origine collegamento per configurare le connessioni consultive. L'implementazione IOleLink::UnbindSource sblocca il contenitore ed elimina le connessioni consultive.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione oleidl.h

Vedi anche

IDataObject::D Advise

IOleContainer::LockContainer

IOleLink

IOleLink::UnbindSource

IOleLink::Update

IOleObject::Consigli

IOleObject::D oVerb

IOleObject::Update

OleRun