Udostępnij za pośrednictwem


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).

Zobacz też

Makra