Implementazione dell'attivazione di In-Place

L'attivazione sul posto consente a un utente di interagire con un oggetto incorporato senza uscire dal documento contenitore. Quando un utente attiva l'oggetto, una barra dei menu composita che comprende gli elementi delle barre dei menu dell'applicazione contenitore e dell'applicazione server sostituisce la barra dei menu principale del contenitore. I comandi e le funzionalità di entrambe le applicazioni sono quindi disponibili per l'utente, inclusa la Guida sensibile al contesto per l'oggetto attivo. Quando un utente inizia a usare una parte non oggetto del documento, l'oggetto viene disattivato, causando la sostituzione del menu originale del documento contenitore.

Questa funzionalità è stata originariamente passata dal nome della modifica sul posto. Il nome è stato modificato perché la modifica è un solo modo per consentire a un utente di interagire con un oggetto in esecuzione. Le clip audio, ad esempio, possono essere ascoltate invece di modificarle. Le clip video possono essere visualizzate invece di modificarle. L'attivazione sul posto è particolarmente adatta nel caso di clip video perché consente loro di funzionare sul posto, senza chiamare una finestra separata. Questo potrebbe essere fondamentale se il video dovesse essere visualizzato, ad esempio, in combinazione con i dati di testo adiacenti nel documento contenitore.

L'implementazione dell'attivazione sul posto è strettamente facoltativa sia per le applicazioni contenitore che per le applicazioni server. OLE supporta ancora il modello in cui l'attivazione di un oggetto fa sì che l'applicazione server apra una finestra separata. Gli oggetti collegati vengono sempre aperti in una finestra separata per evidenziare che risiedono in un documento separato.

L'attivazione sul posto inizia con l'oggetto in risposta a una chiamata IOleObject::D oVerb dal contenitore. Questa chiamata si verifica in genere in risposta a un utente facendo doppio clic sull'oggetto o selezionando un comando (verbo) dal menu Modifica dell'applicazione contenitore.

La finestra sul posto riceve l'input da tastiera e mouse mentre l'oggetto incorporato è attivo. Quando un utente seleziona i comandi dalla barra dei menu composita, il comando e i messaggi di menu associati vengono inviati al contenitore o all'applicazione oggetto, a seconda del proprietario del menu a discesa specifico selezionato. L'input tramite righelli, barre degli strumenti o decorazioni cornice di un oggetto passa direttamente all'oggetto incorporato, proprietario di queste finestre.

Un oggetto incorporato attivato sul posto rimane attivo fino a quando il contenitore non lo disattiva in risposta all'input dell'utente o l'oggetto rinuncia volontariamente allo stato attivo, come potrebbe fare un clip video, ad esempio. Un utente può disattivare un oggetto facendo clic all'interno del documento contenitore, ma all'esterno della finestra di attivazione sul posto dell'oggetto o semplicemente facendo clic su un altro oggetto. Un oggetto attivato sul posto rimane attivo, tuttavia, se l'utente fa clic sulla barra del titolo del contenitore, sulla barra di scorrimento o, in particolare, sulla barra dei menu.

È possibile implementare un server a oggetti attivazione sul posto come server in-process (DLL) o un server locale (EXE). In entrambi i casi, la barra dei menu composita contiene elementi (in genere menu a discesa) sia dal server che dai processi del contenitore. Nel caso di un server in-process, la finestra di attivazione sul posto è semplicemente un'altra finestra figlio nella gerarchia delle finestre del contenitore, ricevendone l'input tramite il message pump dell'applicazione contenitore.

Nel caso di un server locale, la finestra di attivazione sul posto appartiene al processo dell'applicazione server dell'oggetto incorporato, ma la relativa finestra padre appartiene al contenitore. L'input per la finestra di attivazione sul posto viene visualizzato nella coda dei messaggi del server e viene inviato dal ciclo di messaggi del server. Le librerie OLE sono responsabili della visualizzazione dei comandi di menu e dei messaggi inviati correttamente.

Documenti composti