Makra rejestru
Te makra definiują przydatną bibliotekę typów i obiekty rejestru.
Nazwa/nazwisko | opis |
---|---|
_ATL_STATIC_REGISTRY | Wskazuje, że kod rejestracji obiektu ma znajdować się w obiekcie, aby uniknąć zależności od ATL.DLL. |
DECLARE_LIBID | Umożliwia atl uzyskanie libid biblioteki typów. |
DECLARE_NO_REGISTRY | Unika domyślnej rejestracji ATL. |
DECLARE_REGISTRY | Wprowadza lub usuwa wpis obiektu głównego w rejestrze systemowym. |
DECLARE_REGISTRY_APPID_RESOURCEID | Określa informacje wymagane do automatycznego zarejestrowania identyfikatora appid. |
DECLARE_REGISTRY_RESOURCE | Znajduje nazwany zasób i uruchamia w nim skrypt rejestru. |
DECLARE_REGISTRY_RESOURCEID | Znajduje zasób zidentyfikowany przez numer identyfikatora i uruchamia w nim skrypt rejestru. |
Wymagania
Nagłówek: atlcom.h
_ATL_STATIC_REGISTRY
Symbol wskazujący, że kod rejestracji obiektu ma znajdować się w obiekcie, aby uniknąć zależności od ATL.DLL.
#define _ATL_STATIC_REGISTRY
Uwagi
Podczas definiowania ATL_STATIC_REGISTRY należy użyć następującego kodu:
#ifdef _ATL_STATIC_REGISTRY
#include <statreg.h>
#endif
DECLARE_LIBID
Umożliwia atl uzyskanie libid biblioteki typów.
DECLARE_LIBID( libid )
Parametry
libid
Identyfikator GUID biblioteki typów.
Uwagi
Użyj DECLARE_LIBID w klasie pochodnej CAtlModuleT
.
Przykład
Nieprzywiązane projekty ATL generowane przez kreatora będą miały przykład użycia tego makra.
DECLARE_NO_REGISTRY
Użyj DECLARE_NO_REGISTRY, jeśli chcesz uniknąć domyślnej rejestracji ATL dla klasy, w której pojawia się to makro.
DECLARE_NO_REGISTRY()
DECLARE_REGISTRY
Wprowadza rejestrację klasy standardowej w rejestrze systemowym lub usuwa ją z rejestru systemowego.
DECLARE_REGISTRY(
class,
pid,
vpid,
nid,
flags )
Parametry
class
[in] Uwzględnione w celu zapewnienia zgodności z poprzednimi wersjami.
Pid
[in] LPCTSTR, który jest identyfikatorem programu specyficznym dla wersji.
vpid
[in] LPCTSTR, który jest identyfikatorem programu niezależnego od wersji.
Nid
[in] UINT, który jest indeksem ciągu zasobu w rejestrze do użycia jako opis programu.
Flagi
[in] DWORD zawierający model wątków programu w rejestrze. Musi być jedną z następujących wartości: THREADFLAGS_APARTMENT, THREADFLAGS_BOTH lub AUTPRXFLAG.
Uwagi
Rejestracja standardowa składa się z identyfikatora CLSID, identyfikatora programu, identyfikatora programu niezależnego od wersji, ciągu opisu i modelu wątku.
Podczas tworzenia obiektu lub kontrolki przy użyciu Kreatora dodawania klas ATL kreator automatycznie implementuje obsługę rejestru opartego na skryptach i dodaje makro DECLARE_REGISTRY_RESOURCEID do plików. Jeśli nie chcesz obsługiwać rejestru opartego na skryptach, musisz zastąpić to makro DECLARE_REGISTRY. DECLARE_REGISTRY wstawia tylko pięć podstawowych kluczy opisanych powyżej do rejestru. Musisz ręcznie napisać kod, aby wstawić inne klucze do rejestru.
DECLARE_REGISTRY_APPID_RESOURCEID
Określa informacje wymagane do automatycznego zarejestrowania identyfikatora appid.
DECLARE_REGISTRY_APPID_RESOURCEID(
resid,
appid )
Parametry
Resid
Identyfikator zasobu pliku rgs zawierający informacje o identyfikatorze appid.
appid
Identyfikator GUID.
Uwagi
Użyj DECLARE_REGISTRY_APPID_RESOURCEID w klasie pochodnej CAtlModuleT
.
Przykład
Klasy dodane do projektów ATL za pomocą Kreatora dodawania kodu klasy będą miały przykład użycia tego makra.
DECLARE_REGISTRY_RESOURCE
Pobiera nazwany zasób zawierający plik rejestru i uruchamia skrypt w celu wprowadzenia obiektów do rejestru systemowego lub usunięcia ich z rejestru systemowego.
DECLARE_REGISTRY_RESOURCE( x )
Parametry
x
[in] Identyfikator ciągu zasobu.
Uwagi
Po utworzeniu obiektu lub kontrolki przy użyciu Kreatora projektu ATL kreator automatycznie zaimplementuje obsługę rejestru opartego na skryptach i doda makro DECLARE_REGISTRY_RESOURCEID, które jest podobne do DECLARE_REGISTRY_RESOURCE , do plików.
Możesz statycznie połączyć się ze składnikiem rejestru ATL (rejestratorem) w celu uzyskania zoptymalizowanego dostępu do rejestru. Aby statycznie połączyć się z kodem rejestratora, dodaj następujący wiersz do pliku pch.h (stdafx.h w programie Visual Studio 2017 i starszych):
#define _ATL_STATIC_REGISTRY
Jeśli chcesz, aby atl zastępował wartości zastępcze w czasie wykonywania, nie należy określać makra DECLARE_REGISTRY_RESOURCE ani DECLARE_REGISTRY_RESOURCEID. Zamiast tego utwórz tablicę _ATL_REGMAP_ENTRIES
struktur, w której każdy wpis zawiera symbol zastępczy zmiennej sparowany z wartością w celu zastąpienia symbolu zastępczego w czasie wykonywania. Następnie wywołaj metodę CAtlModule::UpdateRegistryFromResourceD lub CAtlModule::UpdateRegistryFromResourceS, przekazując tablicę. Spowoduje to dodanie wszystkich wartości zastępczych w _ATL_REGMAP_ENTRIES
strukturach do mapy zastępczej Rejestratora.
Aby uzyskać więcej informacji na temat zastępowalnych parametrów i skryptów, zobacz artykuł Składnik rejestru ATL (Rejestrator).
DECLARE_REGISTRY_RESOURCEID
Tak samo jak DECLARE_REGISTRY_RESOURCE z tą różnicą, że używa wygenerowanej przez kreatora funkcji UINT do identyfikowania zasobu, a nie nazwy ciągu.
DECLARE_REGISTRY_RESOURCEID( x )
Parametry
x
[in] Wygenerowany przez kreatora identyfikator zasobu.
Uwagi
Po utworzeniu obiektu lub kontrolki przy użyciu Kreatora projektu ATL kreator automatycznie zaimplementuje obsługę rejestru opartego na skryptach i doda makro DECLARE_REGISTRY_RESOURCEID do plików.
Możesz statycznie połączyć się ze składnikiem rejestru ATL (rejestratorem) w celu uzyskania zoptymalizowanego dostępu do rejestru. Aby statycznie połączyć się z kodem rejestratora, dodaj następujący wiersz do pliku stdafx.h (pch.h w programie Visual Studio 2019 i nowszych):
#define _ATL_STATIC_REGISTRY
Jeśli chcesz, aby atl zastępował wartości zastępcze w czasie wykonywania, nie należy określać makra DECLARE_REGISTRY_RESOURCE ani DECLARE_REGISTRY_RESOURCEID. Zamiast tego utwórz tablicę _ATL_REGMAP_ENTRIES
struktur, w której każdy wpis zawiera symbol zastępczy zmiennej sparowany z wartością w celu zastąpienia symbolu zastępczego w czasie wykonywania. Następnie wywołaj metodę CAtlModule::UpdateRegistryFromResourceD lub CAtlModule::UpdateRegistryFromResourceS, przekazując tablicę. Spowoduje to dodanie wszystkich wartości zastępczych w _ATL_REGMAP_ENTRIES
strukturach do mapy zastępczej Rejestratora.
Aby uzyskać więcej informacji na temat zastępowalnych parametrów i skryptów, zobacz artykuł Składnik rejestru ATL (Rejestrator).