Udostępnij za pośrednictwem


Serwery: Elementy serwer

Podczas kontenera uruchamia serwer, dzięki czemu użytkownik może edytować element osadzony lub połączony OLE, aplikacja serwera tworzy "pozycja serwera". Element serwera, który jest obiektem klasy pochodzące z COleServerItem, stanowi interfejs między dokumentem serwera a aplikacją kontenera.

COleServerItem Klasy definiuje kilka funkcji Członkowskich wykonać wywoływane przez OLE, zwykle w odpowiedzi na żądania z kontenera.Elementy na serwerze może reprezentować części serwera lub cały dokument.Gdy element OLE jest osadzony w dokumencie kontenera, elementu serwera reprezentuje dokument całego serwera.W przypadku połączonego elementu OLE elementu serwera może reprezentować części serwera lub cały dokument, w zależności od tego, czy łącze jest część lub całość.

W HIERSVR próbki, na przykład klasa elementu serwera CServerItem, członek, który jest wskaźnik do obiektu klasy CServerNode.CServerNode obiekt jest węzeł w aplikacji HIERSVR dokument, który jest drzewo.Gdy CServerNode obiektu jest głównym węzłem, CServerItem obiekt reprezentuje całego dokumentu.Gdy CServerNode obiekt jest węzeł podrzędny, CServerItem obiekt reprezentuje część dokumentu.Zobacz przykładowy MFC OLE HIERSVR przykład interakcji.

Wdrażania elementów serwera

Użycie Kreatora aplikacji do produkcji "starter" kodu aplikacji, co należy zrobić, aby uwzględnić elementy serwera w kodzie starter jest wybierz jedną z opcji serwera na stronie opcje OLE.Jeśli dodajesz serwer elementów do istniejącej aplikacji, wykonaj następujące czynności:

Aby zaimplementować elementu serwera

  1. Pochodzić od klasy COleServerItem.

  2. W klasie pochodnej zastąpić OnDraw funkcji składowej.

    Rozmowy w ramach OnDraw do renderowania element OLE w metapliku.Aplikacji kontenera używa tego metapliku renderowanie towaru.Klasa widoku aplikacji ma również OnDraw funkcja składnika, który jest używany do renderowania elementu, gdy aplikacja serwera jest aktywny.

  3. Wdrożenie nadpisanie OnGetEmbeddedItem dla klasy dokumentu serwera.Aby uzyskać więcej informacji, zobacz artykuł serwery: wykonawczych dokumentów serwera i próbki MFC OLE HIERSVR.

  4. Wdrożenie klasy elementu serwera OnGetExtent funkcji składowej.Ramy wywołuje tę funkcję, aby pobrać rozmiaru towaru.Domyślna implementacja nic nie robi.

Porada dla architektury elementu serwera

Jak zauważono w Wdrażania elementów serwera, aplikacje serwera musi być w stanie do renderowania elementów zarówno w widoku serwera, jak i w metapliku używanych przez aplikację kontenera.Biblioteka Microsoft Foundation klas architektury aplikacji, klasa widoku 's OnDraw funkcji składowej renderuje towaru, gdy jest edytowany (zobacz CView::OnDraw w Odwołanie do biblioteki klas).Element server OnDraw renderuje element w metapliku we wszystkich innych przypadkach (patrz COleServerItem::OnDraw).

Można uniknąć dublowania się kodu przez pisanie funkcji pomocnika w klasie dokumentu serwera i wywoływanie ich z OnDraw funkcje w klasach widoku i elementu z serwera.Próbki MFC OLE HIERSVR używa tej strategii: funkcje CServerView::OnDraw i CServerItem::OnDraw zarówno wywołania CServerDoc::DrawTree do elementu.

Widok i element OnDraw Członkowskich funkcji, ponieważ one rysowanie w różnych warunkach.Widok należy uwzględnić takie czynniki jak powiększanie, rozmiar zaznaczenia i stopnia, przycinania i elementy interfejsu użytkownika, takie jak paski przewijania.Element serwera z drugiej strony, zawsze zwraca cały obiekt OLE.

Aby uzyskać więcej informacji, zobacz CView::OnDraw, COleServerItem, COleServerItem::OnDraw, i COleServerDoc::OnGetEmbeddedItem w Odwołanie do biblioteki klas.

Zobacz też

Koncepcje

Serwery