Sdílet prostřednictvím


Registrace

Když chce uživatel vložit položku OLE do aplikace, zobrazí ole seznam typů objektů, ze které si můžete vybrat. OLE získá tento seznam z databáze registrace systému, která obsahuje informace poskytované všemi serverovými aplikacemi. Když se server zaregistruje sám, položky, které vloží do databáze pro registraci systému (Registr), popisují každý typ objektu, který poskytuje, přípony souborů a cestu k sobě, mimo jiné informace.

Rozhraní a knihovny DLL systému OLE používají tento registr k určení typů položek OLE, které jsou v systému k dispozici. Knihovny DLL systému OLE také používají tento registr k určení, jak spustit serverovou aplikaci při aktivaci propojeného nebo vloženého objektu.

Tento článek popisuje, co každá serverová aplikace musí dělat, když je nainstalovaná, a pokaždé, když se spustí.

Podrobné informace o databázi registrace systému a formátu souborů .reg použitých k jeho aktualizaci naleznete v referenční dokumentaci programátora OLE.

Instalace serveru

Při první instalaci serverové aplikace by se měly zaregistrovat všechny typy položek OLE, které podporuje. Server také může aktualizovat databázi registrace systému pokaždé, když se spustí jako samostatná aplikace. Tím se databáze registrace aktualizuje, pokud se přesune spustitelný soubor serveru.

Poznámka

Aplikace MFC vygenerované průvodcem aplikací se automaticky zaregistrují při jejich spuštění jako samostatné aplikace.

Pokud chcete zaregistrovat aplikaci během instalace, použijte program RegEdit.exe. Pokud do aplikace zahrnete instalační program, spusťte instalační program RegEdit /S appname.reg. (Příznak /S označuje bezobslužnou operaci, tj. nezobrazuje dialogové okno, které hlásí úspěšné dokončení příkazu.) V opačném případě požádejte uživatele, aby ručně spustil RegEdit.

Poznámka

Soubor .reg vytvořený průvodcem aplikací neobsahuje úplnou cestu ke spustitelnému souboru. Instalační program musí buď upravit soubor .reg tak, aby zahrnoval úplnou cestu ke spustitelnému souboru, nebo upravit proměnnou prostředí PATH tak, aby zahrnovala instalační adresář.

RegEdit sloučí obsah textového souboru .reg do registrační databáze. Pokud chcete ověřit databázi nebo ji opravit, použijte editor registru. Dbejte na to, abyste se vyhnuli odstranění základních položek OLE.

Inicializace serveru

Když vytvoříte serverovou aplikaci pomocí průvodce aplikací, průvodce automaticky dokončí všechny úlohy inicializace. Tato část popisuje, co musíte udělat, když serverovou aplikaci napíšete ručně.

Když serverovou aplikaci spustí aplikace typu kontejner, systémové knihovny DLL OLE přidají do příkazového řádku serveru možnost /Embedding. Chování serverové aplikace se liší v závislosti na tom, jestli byl spuštěný kontejnerem, takže první věc, kterou má aplikace provést při zahájení spuštění, zkontroluje možnost /Embedding nebo -Embedding na příkazovém řádku. Pokud tento přepínač existuje, načtěte jinou sadu prostředků, které zobrazují server jako místní aktivní nebo plně otevřený. Další informace naleznete v tématu Nabídky a prostředky: Doplňky serveru.

Serverová aplikace by měla také volat jeho CWinApp::RunEmbedded funkci pro analýzu příkazového řádku. Pokud vrátí nenulovou hodnotu, aplikace by neměla zobrazit své okno, protože byla spuštěna z aplikace kontejneru, ne jako samostatná aplikace. Tato funkce aktualizuje položku serveru v databázi registrace systému a zavolá RegisterAll za vás členskou funkci, která provede registraci instance.

Při spuštění serverové aplikace musíte zajistit, aby mohl provádět registraci instance. Registrace instance informuje systémové knihovny DLL OLE, že server je aktivní a připravený přijímat požadavky z kontejnerů. Nepřidá položku do registrační databáze. Proveďte registraci instance serveru voláním ConnectTemplate členské funkce definované .COleTemplateServer Tím se CDocTemplate objekt propojí s objektem COleTemplateServer .

Funkce ConnectTemplate má tři parametry: CLSID serveru, ukazatel na CDocTemplate objekt a příznak označující, jestli server podporuje více instancí. Miniserver musí být schopný podporovat více instancí, to znamená, že musí být možné, aby několik instancí serveru běžel současně, jeden pro každý kontejner. Proto při spuštění miniserveru předejte pro tento příznak hodnotu TRUE .

Pokud píšete miniserver, podle definice se vždy spustí kontejnerem. Přesto byste měli příkazový řádek analyzovat a zkontrolovat možnost /Embedding. Absence této možnosti na příkazovém řádku znamená, že se uživatel pokusil spustit miniserver jako samostatnou aplikaci. Pokud k tomu dojde, zaregistrujte server v databázi pro registraci systému a zobrazte okno se zprávou informující uživatele o spuštění miniserveru z aplikace kontejneru.

Viz také

OLE
Servery
CWinApp::RunAutomated
CWinApp::RunEmbedded
COleTemplateServer – třída