Condividi tramite


Contenitore di documenti attivi

Un contenitore di documenti attivi, ad esempio il raccoglitore Microsoft Office o Internet Explorer, consente di lavorare con vari documenti di tipi di applicazione diversi all'interno di un singolo frame (anziché forzarvi per creare e utilizzare i frame dell'applicazione più per ogni tipo di documento).

MFC fornisce un supporto completo per i contenitori di documenti attivi nella classe di COleDocObjectItem .È possibile utilizzare la Creazione guidata applicazione MFC per creare un contenitore di documenti attivi selezionando la casella di controllo di Contenitore documento attivo nella pagina di Supporto documenti compositi la Creazione guidata applicazione MFC.Per ulteriori informazioni, vedere Creare un'applicazione contenitore di documenti attivi.

Per ulteriori informazioni sui contenitori di documenti attivi, vedere:

Requisiti del contenitore

Il supporto del documento attivo in un contenitore di documenti attivi implica oltre alle implementazioni di interfaccia: richiede la conoscenza di tramite le interfacce di un oggetto contenuto.Lo stesso vale per estensioni del documento attivo, in cui il contenitore inoltre necessario conoscere utilizzare tali interfacce nei documenti attivi di estensione stessi.

Un contenitore di documenti attivi che integra i documenti attivi necessario:

  • Essere in grado di archiviazione dell'oggetto di gestione tramite l'interfaccia di IPersistStorage , ovvero, deve fornire un'istanza di IStorage a ogni documento attivo.

  • Supportare la base che incorpora le funzionalità dei documenti OLE, necessitanti “il sito„ di oggetti (uno per documento o incorporare) che implementano IOleClientSite e IAdviseSink.

  • Supportare l'attivazione sul posto di oggetti incorporati o documenti attivi.Gli oggetti del sito del contenitore devono implementare IOleInPlaceSite e l'oggetto frame del contenitore necessario fornire IOleInPlaceFrame.

  • Supportare le estensioni di documenti attivi implementa IOleDocumentSite per fornire un meccanismo per il contenitore parlino con documento.Facoltativamente, il contenitore può implementare le interfacce IOleCommandTarget e IContinueCallback del documento attivo per accettare i controlli semplici quali stampa o salvataggio.

L'oggetto frame, gli oggetti visualizzazione e l'oggetto contenitore possono implementare facoltativamente IOleCommandTarget per supportare di invio dei controlli sicuri, come illustrato in Destinazioni comando.La visualizzazione e gli oggetti contenitori possono essere opportuno implementare IPrint e IContinueCallback, per supportare la stampa a livello di codice, come illustrato in stampa a livello di codice.

Nella figura seguente vengono illustrate le relazioni concettuali tra un contenitore e i relativi componenti (a sinistra) e il documento attivo e i relativi punti di vista (a destra).Il documento attivo gestisce la memoria e dati e visualizzazioni o facoltativamente stampa di visualizzazione di dati.Le interfacce in grassetto sono quelle necessarie per la partecipazione del documento attivo; tali grassetto e corsivo sono facoltativi.Tutte le altre interfacce sono necessarie.

Interfacce del contenitore del documento attivo

Un documento che supporta solo un singolo punto di vista possibile implementare sia i componenti del documento della visualizzazione (ovvero le interfacce corrispondenti) in una singola classe concreta.Inoltre, un sito del contenitore che solo i supporti una visualizzazione alla volta possono combinare il sito del documento e il sito di visualizzazione in una singola classe concreta del sito.L'oggetto frame del contenitore, tuttavia, deve rimanere diverso dalla parte del documento client solo è inclusa qui per assegnare un'immagine completa dell'architettura; non è interessata dall'architettura di contenimento del documento attivo.

Oggetti del sito del documento

Architettura di contenimento del documento attivo, un sito del documento è analogo a un oggetto client del sito nei documenti OLE con l'aggiunta dell'interfaccia di IOleDocument :

interface IOleDocumentSite : IUnknown

{

HRESULT ActivateMe(IOleDocumentView *pViewToActivate);

}

Il sito del documento è concettualmente il contenitore per uno o più oggetti “del sito di visualizzazione„.Ogni oggetto visualizzazione del sito è associato a singoli oggetti visualizzazione del documento gestito dal sito del documento.Se il contenitore supporta solo un singolo punto di vista del sito del documento, quindi possibile distribuire il sito del documento e il sito di visualizzazione con una sola classe concreta.

Oggetti visivi del sito

L'oggetto di visualizzazione del sito di un contenitore gestisce lo spazio visualizzato per una determinata visualizzazione di un documento.Oltre a supportare l'interfaccia standard di IOleInPlaceSite , un sito di visualizzazione implementa anche in genere IContinueCallback per il controllo di stampa a livello di codice.Si noti che l'oggetto visualizzato non eseguire una query mai per IContinueCallback in modo da essere effettivamente essere implementato su qualsiasi oggetto nel contenitore long.)

Un contenitore che supporta più visualizzazioni deve essere in grado di creare gli oggetti del sito di visualizzazione di più all'interno del sito del documento.In questo modo ogni visualizzazione con i servizi separati deactivate e di attivazione secondo quanto indicato con IOleInPlaceSite.

Oggetto frame

L'oggetto frame del contenitore è, in genere, lo stesso frame utilizzato per l'attivazione sul posto nei documenti OLE, ovvero, che gestisce la negoziazione della barra degli strumenti e del menu.Un oggetto visualizzazione può accedere a questo oggetto frame con IOleInPlaceSite::GetWindowContext, che fornisce inoltre l'accesso all'oggetto contenitore che rappresenta il documento contenitore (che può gestire della negoziazione livello del riquadro della barra degli strumenti e l'enumerazione contenuto dell'oggetto).

Un contenitore di documenti attivi possibile aumentare il frame aggiungendo IOleCommandTarget.In questo modo consente ai controlli di ricezione provenienti dall'interfaccia utente del documento attivo nello stesso modo in cui tale interfaccia può consentire a un contenitore per inviare gli stessi controlli (come File New, Apri, Salva con nome, Stampa; Edit Copy, Incolla, Annullae altre) a un documento attivo.Per ulteriori informazioni, vedere Destinazioni comando.

Vedere anche

Concetti

Contenimento del documento attivo