Sdílet prostřednictvím


Servery: Serverové položky

Když kontejner spustí na serveru, takže uživatel může upravovat položky vložené nebo propojené OLE, aplikace vytvoří "položka serveru". Položky serveru, což je objekt třídy odvozené z COleServerItem, poskytuje rozhraní mezi dokumentu na serveru a aplikací kontejneru.

COleServerItem Třída definuje několik overridable členské funkce, které jsou volány prostřednictvím OLE, obvykle v reakci na požadavky z kontejneru.Server položky mohou představovat část dokumentu na serveru nebo v celém dokumentu.Položky OLE vložený v dokumentu kontejner, představuje položku serveru server celý dokument.Propojeného zboží OLE server položky mohou představovat část dokumentu na serveru nebo v celém dokumentu, v závislosti na tom, zda je odkaz na část nebo celé.

V HIERSVR vzorek například třídy položky serveru CServerItem, má člen, který je ukazatel na objekt třídy CServerNode.CServerNode objekt představuje uzel v dokumentu aplikace HIERSVR je strom.Když CServerNode objekt je kořenový uzel CServerItem objekt představuje celý dokument.Když CServerNode objekt je podřízený uzel CServerItem objekt představuje část dokumentu.Viz ukázka MFC OLE HIERSVR příklad této interakce.

Implementace serveru položek

Pokud pomocí Průvodce aplikace vytvářet "počáteční" kód pro vaši aplikaci, je nutné provést server položky zahrnete počáteční kód je zvolte jednu z možností server ze stránky možnosti OLE.Chcete-li přidat položky server do existující aplikace, proveďte následující kroky:

Implementace serveru zboží

  1. Odvození třídy z COleServerItem.

  2. Přepsat v odvozené třídě, OnDraw členské funkce.

    Architektura volá OnDraw položky OLE vykreslit do metasoubor.Kontejner aplikace používá tento metasoubor vykreslit položku.Třída zobrazení aplikace má také OnDraw členské funkce, která slouží k vykreslení zboží, je-li serverová aplikace aktivní.

  3. Přepsanou implementaci OnGetEmbeddedItem pro třídu dokumentu na serveru.Další informace naleznete v článku servery: prováděcí dokumenty na serveru a vzorek MFC OLE HIERSVR.

  4. Implementace třídy položky serveru OnGetExtent členské funkce.Architektura volá tuto funkci pro načtení velikost položky.Výchozí implementace neprovede žádnou akci.

Tip pro položku Server architektura

Jak je uvedeno v Provádění položky serveru, serverové aplikace musí mít pro vykreslování položek v zobrazení serveru i v kontejneru aplikace použít metasoubor.Do knihovny serveru Microsoft Foundation Class architektura aplikací, zobrazení třídy na OnDraw členské funkce vykreslí položky, pokud je upravována (viz CView::OnDraw v Knihovny tříd).Položky serveru OnDraw vykreslí položky do metasouboru ve všech ostatních případech (viz COleServerItem::OnDraw).

Se můžete vyhnout duplikaci kódu ve vaší třídě dokumentů serveru psaní pomocných funkcí a volání z OnDraw funkcí ve vaší třídy zobrazení a položku serveru.Vzorek knihovny MFC OLE HIERSVR používá tuto strategii: funkce CServerView::OnDraw a CServerItem::OnDraw obě volání CServerDoc::DrawTree k vykreslení zboží.

Zobrazení a zboží OnDraw členských funkcí, protože mohou kreslit za různých podmínek.Zobrazení musí brát v úvahu takové faktory, jako přiblížení, výběr velikosti a rozsahu, ořezové a prvky uživatelského rozhraní, například posuvníky.Položky serveru, na druhé straně vždy nakreslí celý objekt OLE.

Další informace naleznete v tématu CView::OnDraw, COleServerItem, COleServerItem::OnDraw, a COleServerDoc::OnGetEmbeddedItem v Knihovny tříd.

Viz také

Koncepty

Servery