Sdílet prostřednictvím


Aktivní dokument kontejnery

Kontejnerem aktivního dokumentu, jako je například aplikace Microsoft Office Binder nebo v aplikaci Internet Explorer umožňuje pracovat s několika dokumentů aplikace pro různé typy v rámci jeden snímek (namísto vynucení, můžete vytvořit a použít více snímků aplikace pro každý typ dokumentu).

MFC poskytuje plnou podporu pro aktivní dokument kontejnerů v COleDocObjectItem třídy.Průvodce aplikací MFC můžete vytvořit výběrem kontejnerem aktivního dokumentu aktivní dokument kontejneru na políčko Složené dokumentu podporu stránky průvodce aplikace MFC.Další informace naleznete v vytváření aplikace kontejneru aktivní dokument.

Další informace o kontejnerech aktivního dokumentu naleznete:

Požadavky na kontejner

Podpora aktivního dokumentu v kontejneru aktivní dokument zahrnuje více než jen implementace rozhraní: vyžaduje znalost pomocí rozhraní obsažený objekt.Totéž platí pro rozšíření aktivního dokumentu, kde kontejneru musíte také znát použití těchto rozhraní rozšíření na aktivní doklady samotné.

Aktivní dokument kontejneru, který integruje aktivní dokumenty musí:

  • Schopné zpracování objektu úložiště prostřednictvím IPersistStorage rozhraní, je nutné zadat IStorage instanci každého aktivního dokumentu.

  • Základní funkce vkládání dokumentů OLE objekty "server" (jeden na dokumentu nebo vložení) vyžadující podporu této implementace IOleClientSite a IAdviseSink.

  • Podporovat místní aktivace vložené objekty nebo aktivní dokumenty.Objekty kontejneru sítě musí implementovat IOleInPlaceSite a rámeček objektu kontejneru musí poskytnout IOleInPlaceFrame.

  • Podporovat rozšíření aktivních dokumentů implementací IOleDocumentSite poskytnout mechanismus pro kontejner na dokument.Volitelně implementovat rozhraní aktivní dokument kontejneru IOleCommandTarget a IContinueCallback k vyzvednutí jednoduchých příkazů, například tisk nebo uložení.

Rámeček objektu, objekty zobrazení a objekt kontejneru můžete volitelně implementovat IOleCommandTarget na podporu odesílání určitých příkazů, jak je popsáno v Příkaz cíle.Zobrazení a kontejneru objektů lze také volitelně implementovat IPrint a IContinueCallback, podporovat programové tisku, jak je popsáno v Programové tisku.

Následující obrázek ukazuje koncepční vztahy mezi kontejneru a jeho součástí (vlevo) a aktivního dokumentu a jeho zobrazení (napravo).Aktivní dokument spravuje úložiště a dat a zobrazení zobrazí nebo vytiskne také data.Rozhraní tučně jsou nezbytné pro účast v aktivním dokumentu; tučně a kurzívou jsou volitelné.Všechna rozhraní jsou povinné.

Rozhraní zásobníku aktivního dokumentu

Dokument, který podporuje pouze jedno zobrazení lze implementovat součásti zobrazení a dokumentu (to znamená, že jejich odpovídající rozhraní) v jedné konkrétní třídy.Kromě toho webu kontejner, který podporuje pouze jedno zobrazení najednou možné kombinovat web dokumentů a zobrazení webu webu jedné konkrétní třídy.Rámeček objektu kontejneru, však musí zůstat odlišná a součást dokument kontejneru pouze zde zahrnuty poskytnout úplný obraz architektury; nejsou ovlivněny architektura uzavření aktivního dokumentu.

Objekty serveru dokumentu

V architektuře uzavření aktivního dokumentu webu dokumentu je stejný jako klienta objektu serveru OLE dokumentů s přídavkem IOleDocument rozhraní:

interface IOleDocumentSite : IUnknown

{

HRESULT ActivateMe(IOleDocumentView *pViewToActivate);

}

Web dokumentu je koncepčně kontejner pro jeden nebo více objektů "zobrazení webu".Každý objekt zobrazení webu jednotlivých zobrazení objektů dokumenty spravované serverem dokument přidružen.Pokud kontejner podporuje pouze jedno zobrazení na webu dokumentu, pak jej implementovat web dokumentů a zobrazení webu jedné konkrétní třídy.

Objekty zobrazení webu

Objekt kontejneru zobrazení sítě spravuje místo zobrazení pro zobrazení dokumentu.Vedle standardní podpůrné IOleInPlaceSite rozhraní, zobrazení webu také obecně implementuje IContinueCallback pro programové řízení tisku.(Všimněte si, že objekt zobrazení nikdy dotazy pro IContinueCallback tak mohou skutečně implementovány na libovolný objekt kontejneru, podle svých požadavků.)

Kontejner, který podporuje více zobrazení musí být schopen vytvořit více zobrazení webu objekty na webu dokumentu.To poskytuje každé zobrazení s samostatné aktivace a deaktivace služby poskytované prostřednictvím IOleInPlaceSite.

Rámeček objektu.

Rámeček objektu kontejneru je z větší části stejné rámce, který se používá pro aktivaci na místě dokumenty OLE, tj, který zpracovává vyjednávání nabídek a panelů nástrojů.Objekt zobrazení má přístup k tomuto objektu rámeček přes IOleInPlaceSite::GetWindowContext, který také poskytuje přístup k objektu kontejneru reprezentující dokument kontejneru (který může zpracovávat úroveň podokno nástrojů vyjednávání a výčet obsažený objekt).

Kontejnerem aktivního dokumentu můžete rozšiřovat rámec přidáním IOleCommandTarget.Umožňuje přijímat příkazy, které pocházejí stejným způsobem toto rozhraní povolit kontejneru stejné příkazy odeslat v uživatelském rozhraní aktivního dokumentu (například Nový soubor, otevřených, Uložit jako, Tisk; Upravit kopii, Vložit, zpěta jiné) do aktivního dokumentu.Další informace naleznete v Příkaz cíle.

Viz také

Koncepty

Uzavření aktivního dokumentu