Condividi tramite


Classe CDocObjectServer

Implementa le interfacce OLE aggiuntive necessarie per trasformare un server COleDocument normale in un server DocObject completo: IOleDocument, IOleDocumentView, IOleCommandTargete IPrint.

Sintassi

class CDocObjectServer : public CCmdTarget

Membri

Costruttori pubblici

Nome Descrizione
CDocObjectServer::CDocObjectServer Costruisce un oggetto CDocObjectServer.

Metodi pubblici

Nome Descrizione
CDocObjectServer::ActivateDocObject Attiva il server oggetti documento, ma non lo mostra.

Metodi protetti

Nome Descrizione
CDocObjectServer::OnActivateView Visualizza la visualizzazione DocObject.
CDocObjectServer::OnApplyViewState Ripristina lo stato della visualizzazione DocObject.
CDocObjectServer::OnSaveViewState Salva lo stato della visualizzazione DocObject.

Osservazioni:

CDocObjectServer è derivato da CCmdTarget e funziona a stretto contatto con COleServerDoc per esporre le interfacce.

Un documento del server DocObject può contenere oggetti CDocObjectServerItem , che rappresentano l'interfaccia server per gli elementi DocObject.

Per personalizzare il server DocObject, derivare la propria classe da CDocObjectServer ed eseguire l'override delle funzioni di configurazione della visualizzazione, OnActivateView, OnApplyViewState e OnSaveViewState. Sarà necessario fornire una nuova istanza della classe in risposta alle chiamate al framework.

Per altre informazioni su DocObjects, vedere CDocObjectServerItem e COleCmdUI nella Guida di riferimento per MFC.

Gerarchia di ereditarietà

CObject

CCmdTarget

CDocObjectServer

Requisiti

Intestazione: afxdocob.h

CDocObjectServer::ActivateDocObject

Chiamare questa funzione per attivare (ma non visualizzare) il server oggetti documento.

void ActivateDocObject();

Osservazioni:

ActivateDocObject chiama IOleDocumentSiteil metodo , ActivateMe ma non visualizza la visualizzazione perché attende istruzioni specifiche su come configurare e visualizzare la visualizzazione, in base alla chiamata a CDocObjectServer::OnActivateView.

Insieme, ActivateDocObject attivare OnActivateView e visualizzare la visualizzazione DocObject. L'attivazione docObject è diversa da altri tipi di attivazione sul posto OLE. L'attivazione di DocObject ignora la visualizzazione dei bordi del tratteggio sul posto e degli oggetti (ad esempio handle di ridimensionamento), ignora le funzioni di extent dell'oggetto e disegna le barre di scorrimento all'interno del rettangolo di visualizzazione anziché disegnarle all'esterno di tale rettangolo (come nell'attivazione sul posto normale).

CDocObjectServer::CDocObjectServer

Costruisce e inizializza un oggetto CDocObjectServer.

explicit CDocObjectServer(
    COleServerDoc* pOwner,
    LPOLEDOCUMENTSITE pDocSite = NULL);

Parametri

pOwner
Puntatore al documento del sito client che rappresenta il client per il server DocObject.

pDocSite
Puntatore all'interfaccia IOleDocumentSite implementata dal contenitore.

Osservazioni:

Quando docObject è attivo, l'interfaccia OLE del sito client ( IOleDocumentSite) consente al server DocObject di comunicare con il client (contenitore). Quando viene attivato un server DocObject, verifica innanzitutto che il contenitore implementi l'interfaccia IOleDocumentSite . In tal caso, viene chiamato COleServerDoc::GetDocObjectServer per verificare se il contenitore supporta DocObjects. Per impostazione predefinita, GetDocObjectServer restituisce NULL. È necessario eseguire l'override COleServerDoc::GetDocObjectServer per costruire un nuovo CDocObjectServer oggetto o un oggetto derivato personalizzato, con puntatori al COleServerDoc contenitore e alla relativa IOleDocumentSite interfaccia come argomenti al costruttore.

CDocObjectServer::OnActivateView

Chiamare questa funzione per visualizzare la visualizzazione DocObject.

virtual HRESULT OnActivateView();

Valore restituito

Restituisce un valore di errore o avviso. Per impostazione predefinita, restituisce NOERROR se ha esito positivo; in caso contrario, E_FAIL.

Osservazioni:

Questa funzione crea una finestra cornice sul posto, disegna barre di scorrimento all'interno della visualizzazione, imposta i menu condivisioni server con il relativo contenitore, aggiunge controlli cornice, imposta l'oggetto attivo, infine visualizza la finestra cornice sul posto e imposta lo stato attivo.

CDocObjectServer::OnApplyViewState

Eseguire l'override di questa funzione per ripristinare lo stato della visualizzazione DocObject.

virtual void OnApplyViewState(CArchive& ar);

Parametri

Ar
Oggetto CArchive da cui serializzare lo stato di visualizzazione.

Osservazioni:

Questa funzione viene chiamata quando la visualizzazione viene visualizzata per la prima volta dopo la creazione di istanze. OnApplyViewState indica a una vista di reinizializzare se stessa in base ai dati nell'oggetto CArchive salvato in precedenza con OnSaveViewState. La vista deve convalidare i dati nell'oggetto CArchive perché il contenitore non tenta di interpretare i dati dello stato di visualizzazione in alcun modo.

È possibile usare OnSaveViewState per archiviare informazioni persistenti specifiche dello stato della visualizzazione. Se si esegue l'override di per archiviare OnSaveViewState le informazioni, è necessario eseguire l'override per leggere tali informazioni e applicarle OnApplyViewState alla visualizzazione quando viene appena attivata.

CDocObjectServer::OnSaveViewState

Eseguire l'override di questa funzione per salvare informazioni aggiuntive sullo stato relative alla visualizzazione DocObject.

virtual void OnSaveViewState(CArchive& ar);

Parametri

Ar
Oggetto CArchive a cui viene serializzato lo stato di visualizzazione.

Osservazioni:

Lo stato può includere proprietà come il tipo di visualizzazione, il fattore di zoom, l'inserimento e il punto di selezione e così via. Il contenitore chiama in genere questa funzione prima di disattivare la visualizzazione. Lo stato salvato può essere ripristinato in un secondo momento tramite OnApplyViewState.

È possibile usare OnSaveViewState per archiviare informazioni persistenti specifiche dello stato della visualizzazione. Se si esegue l'override di per archiviare OnSaveViewState le informazioni, è necessario eseguire l'override per leggere tali informazioni e applicarle OnApplyViewState alla visualizzazione quando viene appena attivata.

Vedi anche

Classe CCmdTarget
Grafico della gerarchia
Classe CDocObjectServerItem