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é CAtlModuleT
tří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é CAtlModuleT
tří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).