Sdílet prostřednictvím


Makra registru

Tato makra definují užitečnou knihovnu typů a zařízení registru.

Název Popis
_ATL_STATIC_REGISTRY Označuje, že chcete, aby byl registrační kód objektu v objektu, aby se zabránilo závislosti na ATL.DLL.
DECLARE_LIBID Poskytuje způsob, jak ATL získat libid knihovny typů.
DECLARE_NO_REGISTRY Vyhněte se výchozí registraci ATL.
DECLARE_REGISTRY Zadá nebo odebere položku hlavního objektu v systémovém registru.
DECLARE_REGISTRY_APPID_RESOURCEID Určuje informace potřebné k automatické registraci appid.
DECLARE_REGISTRY_RESOURCE Vyhledá pojmenovaný prostředek a spustí v něm skript registru.
DECLARE_REGISTRY_RESOURCEID Vyhledá prostředek identifikovaný číslem ID a spustí v něm skript registru.

Požadavky

Hlavička: atlcom.h

_ATL_STATIC_REGISTRY

Symbol, který označuje, že chcete, aby byl objekt v registračním kódu, aby se zabránilo závislosti na ATL.DLL.

#define _ATL_STATIC_REGISTRY

Poznámky

Při definování ATL_STATIC_REGISTRY byste měli použít následující kód:

#ifdef _ATL_STATIC_REGISTRY
#include <statreg.h>
#endif

DECLARE_LIBID

Poskytuje způsob, jak ATL získat libid knihovny typů.

DECLARE_LIBID( libid )

Parametry

libid
Identifikátor GUID knihovny typů.

Poznámky

Použijte DECLARE_LIBID v odvozené CAtlModuleTtřídě.

Příklad

Projekty ATL, které nejsou vygenerované průvodcem, budou mít ukázku použití tohoto makra.

DECLARE_NO_REGISTRY

Použijte DECLARE_NO_REGISTRY, pokud se chcete vyhnout jakékoli výchozí registraci KNIHOVNY ATL pro třídu, ve které se toto makro zobrazí.

DECLARE_NO_REGISTRY()

DECLARE_REGISTRY

Zadá standardní registraci třídy do systémového registru nebo ji odebere ze systémového registru.

DECLARE_REGISTRY(
    class,
    pid,
    vpid,
    nid,
    flags )

Parametry

class
[v] Součástí je zpětná kompatibilita.

Pid
[v] LPCTSTR, který je identifikátor programu specifický pro verzi.

vpid
[v] LPCTSTR, který je identifikátor programu nezávislý na verzi.

Nid
[v] UINT, který je indexem řetězce prostředků v registru, který se použije jako popis programu.

vlajky
[v] A DWORD obsahující model vláken programu v registru. Musí to být jedna z následujících hodnot: THREADFLAGS_APARTMENT, THREADFLAGS_BOTH nebo AUTPRXFLAG.

Poznámky

Standardní registrace se skládá z CLSID, ID programu, ID programu, ID programu nezávislého na verzi, řetězce popisu a modelu vlákna.

Když vytvoříte objekt nebo ovládací prvek pomocí Průvodce přidáním třídy ATL, průvodce automaticky implementuje podporu registru založeného na skriptech a přidá do souborů DECLARE_REGISTRY_RESOURCEID makro. Pokud nechcete podporovat registr založený na skriptech, musíte toto makro nahradit DECLARE_REGISTRY. DECLARE_REGISTRY vloží do registru pouze pět základních klíčů popsaných výše. Je nutné ručně napsat kód pro vložení dalších klíčů do registru.

DECLARE_REGISTRY_APPID_RESOURCEID

Určuje informace potřebné k automatické registraci appid.

DECLARE_REGISTRY_APPID_RESOURCEID(
    resid,
    appid )

Parametry

Resid
ID prostředku souboru .rgs, který obsahuje informace o appid.

appid
IDENTIFIKÁTOR GUID.

Poznámky

Použití DECLARE_REGISTRY_APPID_RESOURCEID v odvozené CAtlModuleTtřídě.

Příklad

Třídy přidané do projektů ATL pomocí průvodce přidáním kódu třídy budou mít ukázku použití tohoto makra.

DECLARE_REGISTRY_RESOURCE

Získá pojmenovaný prostředek obsahující soubor registru a spustí skript, který buď zadá objekty do systémového registru, nebo je odebere ze systémového registru.

DECLARE_REGISTRY_RESOURCE( x )

Parametry

x
[v] Identifikátor řetězce vašeho prostředku.

Poznámky

Když vytvoříte objekt nebo ovládací prvek pomocí Průvodce projektem ATL, průvodce automaticky implementuje podporu registru založeného na skriptech a přidá do souborů DECLARE_REGISTRY_RESOURCEID makro, které se podobá DECLARE_REGISTRY_RESOURCE.

Můžete staticky propojit komponentu REGISTRU ATL (registrátora) pro optimalizovaný přístup k registru. Pokud chcete staticky propojit kód registrátora, přidejte do souboru pch.h následující řádek (stdafx.h v sadě Visual Studio 2017 a starší):

#define _ATL_STATIC_REGISTRY

Pokud chcete, aby atL v době běhu nahradila náhradní hodnoty, nezadávejte DECLARE_REGISTRY_RESOURCE ani DECLARE_REGISTRY_RESOURCEID makro. Místo toho vytvořte pole _ATL_REGMAP_ENTRIES struktur, kde každá položka obsahuje zástupný symbol proměnné spárovaný s hodnotou, která nahradí zástupný symbol za běhu. Potom zavolejte CAtlModule::UpdateRegistryFromResourceD nebo CAtlModule::UpdateRegistryFromResourceS a předejte pole. Tím se do mapy pro nahrazení registrátora přidají všechny náhradní hodnoty v _ATL_REGMAP_ENTRIES strukturách.

Další informace o nahraditelných parametrech a skriptování najdete v článku Komponenta registru ATL (registrátor).

DECLARE_REGISTRY_RESOURCEID

Stejné jako DECLARE_REGISTRY_RESOURCE s tím rozdílem, že používá k identifikaci prostředku místo názvu řetězce průvodce vygenerovaný UINT.

DECLARE_REGISTRY_RESOURCEID( x )

Parametry

x
[v] Identifikátor prostředku vygenerovaný průvodcem.

Poznámky

Když vytvoříte objekt nebo ovládací prvek pomocí Průvodce projektem ATL, průvodce automaticky implementuje podporu registru založeného na skriptech a přidá do souborů DECLARE_REGISTRY_RESOURCEID makro.

Můžete staticky propojit komponentu REGISTRU ATL (registrátora) pro optimalizovaný přístup k registru. Pokud chcete staticky propojit kód registrátora, přidejte do souboru stdafx.h následující řádek (pch.h v sadě Visual Studio 2019 a novější):

#define _ATL_STATIC_REGISTRY

Pokud chcete, aby atL v době běhu nahradila náhradní hodnoty, nezadávejte DECLARE_REGISTRY_RESOURCE ani DECLARE_REGISTRY_RESOURCEID makro. Místo toho vytvořte pole _ATL_REGMAP_ENTRIES struktur, kde každá položka obsahuje zástupný symbol proměnné spárovaný s hodnotou, která nahradí zástupný symbol za běhu. Potom zavolejte CAtlModule::UpdateRegistryFromResourceD nebo CAtlModule::UpdateRegistryFromResourceS a předejte pole. Tím se do mapy pro nahrazení registrátora přidají všechny náhradní hodnoty v _ATL_REGMAP_ENTRIES strukturách.

Další informace o nahraditelných parametrech a skriptování najdete v článku Komponenta registru ATL (registrátor).

Viz také

Makra