Implementazione dell'attivazione sul posto

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 composta che comprende 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 lavorare con una parte non oggetto del documento, l'oggetto viene disattivato, causando la sostituzione del menu originale del documento contenitore.

Questa funzionalità originariamente è passata dal nome della modifica sul posto. Il nome è stato modificato perché la modifica è solo un modo per consentire a un utente di interagire con un oggetto in esecuzione. Le clip audio, ad esempio, possono essere ascoltate invece di modificarle. I clip video possono essere visualizzati invece di modificarli. L'attivazione sul posto è particolarmente adatta nel caso di clip video perché consente l'esecuzione 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 per le applicazioni contenitore e 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 sottolineare che risiedono in un documento separato.

L'attivazione sul posto inizia con l'oggetto in risposta a una chiamata IOleObject::D oVerb dal relativo 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 compositi, il comando e i messaggi di menu associati vengono inviati al contenitore o all'applicazione oggetto, a seconda del menu a discesa specifico selezionato. L'input tramite righelli, barre degli strumenti o adornamenti 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 la 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 come server locale (EXE). In entrambi i casi, la barra dei menu compositi contiene voci (in genere menu a discesa) sia dal server che dai processi contenitore. Nel caso di un server in-process, la finestra di attivazione sul posto è semplicemente un'altra finestra figlio nella gerarchia della finestra 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 che i comandi di menu e i messaggi vengono inviati correttamente.

Documenti composti