Serwery: elementy serwera
Gdy kontener uruchamia serwer tak, aby użytkownik może edytować element osadzony lub połączony OLE, aplikacja serwera tworzy "elementu serwera". Pozycja serwera, który jest obiektem klasy pochodne COleServerItem, stanowi interfejs między dokumentem serwer a aplikacją kontenera.
COleServerItem Klasa definiuje kilka funkcji NotOverridable elementów członkowskich, które są wywoływane przez OLE, zwykle w odpowiedzi na żądania z kontenera.Elementy serwera może stanowić część dokumentu na serwerze lub w całym dokumencie.Jeśli element OLE jest osadzony w dokumencie kontenera, elementu serwera reprezentuje dokument całego serwera.Gdy jest połączony element OLE, elementu serwera może stanowić część dokumentu na serwerze lub całego dokumentu, w zależności od tego, czy łącze jest do części lub całości.
W HIERSVR próbki, na przykład, klasa elementu serwera CServerItem, członek, który jest wskaźnikiem do obiektu klasy CServerNode.CServerNode obiektu jest węzłem w aplikacji HIERSVR dokument, który jest drzewo.Gdy CServerNode obiektu jest głównym węzłem, CServerItem obiekt reprezentuje cały dokument.Gdy CServerNode obiektu jest węzłem podrzędnym węzła CServerItem obiekt reprezentuje część dokumentu.Zobacz przykładowy MFC OLE HIERSVR na przykład interakcji.
Wykonania elementów serwera
Jeśli używasz Kreatora aplikacji do tworzenia "wersji dla początkujących" kodu aplikacji, wszystko, co trzeba 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
Pochodzić od klasy z COleServerItem.
W klasie pochodnej zastąpić OnDraw funkcji składowej.
Wywołania framework OnDraw do renderowania OLE element w metapliku.Aplikacja kontenera używa to metaplik do renderowania element.Klasa widoku aplikacji również ma OnDraw funkcji członka, który jest używany do renderowania elementu, gdy aplikacja serwera jest aktywny.
Wdrożenie nadpisanie OnGetEmbeddedItem dla swojej klasy dokumentu na serwerze.Aby uzyskać więcej informacji, zobacz artykuł serwery: wykonawczych dokumentów serwera i próbki MFC OLE HIERSVR.
Wdrożenie sieci klasy elementu serwera OnGetExtent funkcji składowej.Ramach wywołania tej funkcji do pobierania rozmiaru towaru.Domyślna implementacja nie działają.
Wskazówka dla architektury elementu serwera
Jak zauważono w Wykonania elementów serwera, aplikacje serwera musi mieć możliwość wyświetlania elementów zarówno w widoku serwera i metaplik używane przez aplikację kontenera.Biblioteki Microsoft Foundation Class architektury aplikacji w, klasa widok 's OnDraw funkcji składowej renderuje towaru, gdy jest edytowany (zobacz CView::OnDraw w Informacje dotyczące biblioteki klas).Element serwera OnDraw renderuje element do metaplik we wszystkich innych przypadkach (patrz COleServerItem::OnDraw).
Powielanie kodu można uniknąć pisania funkcji pomocnika w klasie dokumentu serwera i nazywanie ich z OnDraw funkcje w swojej klasy widoku i elementu serwera.Próbki MFC OLE HIERSVR używa tej strategii: funkcje CServerView::OnDraw i CServerItem::OnDraw zarówno wywołania CServerDoc::DrawTree do renderowania element.
Widok i element mają OnDraw Członkowskich funkcjonuje, ponieważ one rysowanie w różnych warunkach.Widok musi brać pod uwagę takie czynniki jak powiększanie, rozmiar zaznaczenia i stopnia, przycinania i elementy interfejsu użytkownika, takie jak paski przewijania.Z drugiej strony, element serwer zwraca zawsze cały obiekt OLE.
Aby uzyskać więcej informacji, zobacz CView::OnDraw, COleServerItem, COleServerItem::OnDraw, i COleServerDoc::OnGetEmbeddedItem w Informacje dotyczące biblioteki klas.