Sdílet prostřednictvím


Kontejnery: Pokročilé funkce

Tento článek popisuje kroky nezbytné začlenit do stávající aplikace kontejneru volitelný upřesňující funkce.Tyto funkce jsou:

  • Aplikace, která je kontejner i server

  • Propojení OLE vložený objekt

Vytváření aplikace kontejneru Server

Aplikace kontejneru server je aplikace, která funguje jako kontejner i server.Microsoft Word pro Windows je příkladem.Dokumenty Word pro Windows můžete vložit do jiných aplikací a položek můžete vkládat i do dokumentů aplikace Word pro Windows.Proces úprav aplikace kontejneru kontejner a celý server (nelze vytvořit v aplikaci kontejneru/miniserver kombinace) je podobný proces vytváření celého serveru.

V článku servery: implementace serveru uvádí několik úloh potřebných k implementaci serverové aplikace.Pokud převést aplikace kontejneru kontejner/serverové aplikaci, pak stačí provést některé z těchto úloh, přidání kódu do kontejneru.Následující seznam obsahuje důležité věci vzít v úvahu:

  • Kód kontejneru již vytvořené pomocí Průvodce aplikace inicializuje Podsystém OLE.Chcete-li změnit nebo přidat něco pro podporu nebudete potřebovat.

  • Všude, kde je základní třída třídy dokumentu COleDocument, změnit základní třídy pro COleServerDoc.

  • Přepsat COleClientItem::CanActivate Chcete-li zabránit úpravu položek v místě, zatímco samotný server používá k úpravám na místě.

    Například MFC OLE vzorku OCLIENT obsahuje vložené položky vytvořené v aplikaci kontejneru server.Otevřete aplikaci OCLIENT a na místě upravit položky vytvořené v aplikaci kontejneru server.Při úpravě položky aplikace, rozhodujete, chcete-li vložit položku vytvořen vzorek MFC OLE HIERSVR.Chcete-li to provést, nelze použít místní aktivace.Plně HIERSVR Chcete-li aktivovat tuto položku otevřete.Vzhledem k tomu, že knihovny Microsoft Foundation Class nepodporuje tuto funkci OLE, potlačení COleClientItem::CanActivate umožňuje vyhledat tuto situaci a zabránit možné chybu běhu v aplikaci.

Pokud vytváříte novou aplikaci a chcete, aby fungoval jako aplikace kontejneru server, zvolte možnost v dialogovém okně Možnosti OLE v Průvodci aplikace a tato podpora bude vytvořena automaticky.Další informace naleznete v článku Přehled: vytváření kontejneru ovládací prvek ActiveX.Informace o ukázky knihovny MFC naleznete v tématu ukázky knihovny MFC.

Všimněte si, že aplikace MDI nelze vložit do sebe sama.Aplikace, která je na kontejner serveru nelze vložit do samotné, pokud je aplikace SDI.

Odkazy na vložené objekty

Odkazy na vložené objekty funkce umožňuje uživateli vytvořit dokument s propojení OLE pro objekt OLE v aplikaci kontejneru.Například vytvořte dokument obsahující vložené tabulky aplikace word procesoru.Pokud vaše aplikace podporuje odkazy na vložené objekty, může vložit odkaz do tabulky obsažené v dokumentu textového procesoru.Tato funkce umožňuje aplikacím použít informace obsažené v tabulce bez znalosti, pokud textový procesor původně pochází.

Propojení vložených objektů v aplikaci

  1. Odvození třídy v dokumentu z COleLinkingDoc místo COleDocument.

  2. Vytvoření ID třídy OLE (CLSID) pro vaši aplikaci pomocí součástí OLE vývojové nástroje Generátor ID třídy.

  3. Zaregistrujte aplikaci OLE.

  4. Vytvořit COleTemplateServer objekt členem třídě aplikace.

  5. Ve třídě aplikace InitInstance členské funkce, postupujte takto:

    • Připojení vašeho COleTemplateServer objekt do dokumentu šablony voláním objektu ConnectTemplate členské funkce.

    • Volat COleTemplateServer::RegisterAll členské funkce k registraci všech tříd objektů OLE systému.

    • Call COleTemplateServer::UpdateRegistry.Jediný parametr UpdateRegistry by měla být OAT_CONTAINER Pokud aplikace není spuštěna s přepínačem / vložený".To registruje aplikaci jako kontejner, který podporuje odkazy na vložené objekty.

      Pokud aplikace spuštěna s přepínačem / vložený", nesmí vykazovat jeho hlavní okno podobné serverové aplikaci.

Vzorek knihovny MFC OLE OCLIENT implementuje tuto funkci.Příklad způsobu provedení naleznete InitInstance funkce OCLIENT.Soubor CPP ukázkové aplikace.

Viz také

Koncepty

Kontejnery

Servery