Classe CDocObjectServer
Implementa le interfacce OLE aggiuntive necessarie per trasformare un server COleDocument
normale in un server DocObject completo: IOleDocument
, IOleDocumentView
, IOleCommandTarget
e 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à
CDocObjectServer
Requisiti
Intestazione: afxdocob.h
CDocObjectServer::ActivateDocObject
Chiamare questa funzione per attivare (ma non visualizzare) il server oggetti documento.
void ActivateDocObject();
Osservazioni:
ActivateDocObject
chiama IOleDocumentSite
il 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