Condividi tramite


Server: elementi server

Quando un contenitore viene avviato un server in modo che sia possibile modificare un utente un elemento OLE incorporato o collegato, l'applicazione server crea un elemento “server„. L'elemento server, ovvero un oggetto di classe è derivata da COleServerItem, fornisce un'interfaccia tra il documento server e l'applicazione contenitore.

La classe di COleServerItem definisce diverse funzioni membro sottoponibili a override definite da OLE, in genere in risposta alle richieste dal contenitore.Elementi server possono rappresentare una parte del documento server o dell'intero documento.Quando un elemento OLE è incorporato nel documento contenitore, l'elemento server rappresenta l'intero documento server.Quando l'elemento OLE è connesso, l'elemento server può rappresentare una parte del documento server o dell'intero documento, a seconda che il collegamento è una parte o al tutto.

Nell'esempio di HIERSVR , ad esempio, la classe dell'server-elemento, CServerItem, ha un membro che sia un puntatore a un oggetto della classe CServerNode.L'oggetto di CServerNode è un nodo nel documento dell'applicazione HIERSVR, che è una struttura ad albero.Quando l'oggetto di CServerNode è il nodo radice, l'oggetto di CServerItem rappresenta l'intero documento.Quando l'oggetto di CServerNode è un nodo figlio, l'oggetto di CServerItem rappresenta una parte del documento.Vedere l'esempio HIERSVR OLE MFC per un esempio di questa interazione.

Distribuire gli elementi server

Se si utilizza la procedura guidata per scrivere il codice “iniziali„ per l'applicazione, è importante compiere per includere elementi server nel codice iniziale è possibile scegliere una delle opzioni server dalla pagina delle opzioni OLE.Se si aggiunge gli elementi server a un'applicazione esistente, effettuare i passaggi seguenti:

Per implementare un elemento server

  1. Derivare una classe da COleServerItem.

  2. Nella classe derivata, eseguire l'override della funzione membro di OnDraw .

    Il framework chiama OnDraw per eseguire il rendering dell'elemento OLE) in.L'applicazione contenitore utilizza tali metafile per eseguire il rendering dell'elemento.La classe di visualizzazione dell'applicazione dispone inoltre di una funzione membro di OnDraw , utilizzata per eseguire il rendering dell'elemento quando l'applicazione server è attiva.

  3. Implementare un override di OnGetEmbeddedItem per la classe del documento server.Per ulteriori informazioni, vedere l'articolo server: Distribuire documenti server e l'esempio HIERSVROLE MFC.

  4. Implementare la funzione membro di OnGetExtent della classe dell'server-elemento.Il framework chiama la funzione per recuperare la dimensione dell'elemento.L'implementazione predefinita non esegue alcuna operazione.

un suggerimento per architettura dell'Server-Elemento

Come indicato in Distribuire gli elementi server, le applicazioni server deve essere in grado di eseguire il rendering degli elementi sia nella visualizzazione del server e) in utilizzate dall'applicazione contenitore.Architettura dell'applicazione di libreria Microsoft Foundation Class), la funzione membro di visualizzazione di OnDraw della classe esegue il rendering dell'elemento quando viene modificata (vedere CView::OnDrawin riferimenti alla libreria di classi).OnDraw server dell'elemento esegue il rendering dell'elemento) in in tutti gli altri casi (vedere COleServerItem::OnDraw).

È possibile evitare la duplicazione del codice scrivendo le funzioni di supporto nella classe del documento server e chiamandole le funzioni di OnDraw nelle classi dell'server-elemento e progettazione visualizzazioni.L'esempio HIERSVR OLE MFC utilizza questa strategia: le funzioni CServerView::OnDraw e CServerItem::OnDraw entrambi chiamano CServerDoc::DrawTree per eseguire il rendering dell'elemento.

La visualizzazione e l'elemento hanno entrambe le funzioni membro di OnDraw perché disegno in diverse circostanze.La visualizzazione deve considerare questi fattori quali lo zoom, dimensione e ambito di selezione, area di visualizzazione ed elementi dell'interfaccia utente quali barre di scorrimento.L'elemento server, invece, viene disegnato sempre l'intero oggetto OLE.

Per ulteriori informazioni, vedere CView::OnDraw, COleServerItem, COleServerItem::OnDrawe COleServerDoc::OnGetEmbeddedItemin riferimenti alla libreria di classi.

Vedere anche

Concetti

Server