Oggetti collegati e moniker

Gli oggetti collegati, come gli oggetti incorporati, si basano su un gestore oggetti per comunicare con le applicazioni server. L'oggetto collegato stesso, tuttavia, gestisce la denominazione e il rilevamento delle origini di collegamento. L'oggetto collegato funge da server in-process. Ad esempio, quando attivato, un oggetto collegato individua e avvia l'applicazione server OLE che rappresenta l'origine del collegamento.

Il gestore di un oggetto collegato è costituito da due componenti principali: il componente del gestore e il componente di collegamento. Il componente del gestore contiene i componenti di controllo e comunicazione remota e funzioni molto simili a un gestore per un oggetto incorporato. Il componente di collegamento ha un proprio controller e cache e fornisce l'accesso all'archiviazione strutturata dell'oggetto. Il controller dei componenti di collegamento supporta la denominazione di origine tramite l'uso di moniker e binding, il processo di individuazione ed esecuzione dell'origine del collegamento. Per altre informazioni sui moniker e sull'associazione, vedere Modello a oggetti componente.

Quando un utente crea inizialmente un oggetto collegato o ne carica uno esistente dall'archiviazione, il contenitore carica un'istanza del componente di collegamento in memoria, insieme al gestore di oggetti. Il componente di collegamento fornisce interfacce, in particolare IOleLink, che identificano l'oggetto come collegamento e consentono di gestire la denominazione, il rilevamento e l'aggiornamento dell'origine del collegamento.

Implementando l'interfaccia IOleLink , un oggetto collegato fornisce al contenitore funzioni che supportano il collegamento. Solo gli oggetti collegati implementano IOleLink e eseguendo una query per questa interfaccia, un contenitore può determinare se un determinato oggetto è incorporato o collegato. La funzione più importante fornita da IOleLink consente a un contenitore di eseguire il binding all'origine dell'oggetto collegato, ovvero per attivare la connessione al documento che archivia i dati nativi dell'oggetto collegato. IOleLink definisce anche le funzioni per la gestione delle informazioni sull'oggetto collegato, ad esempio i dati di presentazione memorizzati nella cache e la posizione dell'origine del collegamento.

Quando viene salvato un documento composto contenente un oggetto collegato, i dati del collegamento vengono salvati con l'origine del collegamento, non con il contenitore. Solo le informazioni relative al nome e alla posizione vengono salvate insieme al documento composto. Questo comportamento è diverso da quello di un oggetto incorporato, i cui dati vengono archiviati insieme a quello del relativo contenitore.

Le applicazioni contenitore possono fornire informazioni sui relativi oggetti incorporati in modo che quest'ultimo, o parti, possano fungere da origini di collegamento. Implementando il supporto per il collegamento agli oggetti incorporati del contenitore, è possibile rendere possibili incorporamenti annidati, consentendo all'utente di tenere traccia degli originali di ogni oggetto di incorporamento a cui si desidera collegare un collegamento. Ad esempio, se un utente desidera incorporare un foglio di lavoro di Microsoft Excel in Microsoft Word e il foglio di lavoro contiene una bitmap creata in Paintbrush, l'utente può collegarsi a una copia della bitmap contenuta nel foglio di lavoro anziché all'originale.

Documenti composti

Server in-process

Gestori di oggetti