Aracılığıyla paylaş


Kayıt Defteri Makroları

Bu makrolar yararlı tür kitaplığını ve kayıt defteri olanaklarını tanımlar.

Veri Akışı Adı Açıklama
_ATL_STATIC_REGISTRY ATL.DLL bağımlılığını önlemek için nesnenizin kayıt kodunun nesnede olmasını istediğinizi gösterir.
DECLARE_LIBID ATL'nin tür kitaplığının libidini alması için bir yol sağlar.
DECLARE_NO_REGISTRY Varsayılan ATL kaydını önler.
DECLARE_REGISTRY Ana nesnenin girdisini sistem kayıt defterine girer veya kaldırır.
DECLARE_REGISTRY_APPID_RESOURCEID Appid'yi otomatik olarak kaydetmek için gereken bilgileri belirtir.
DECLARE_REGISTRY_RESOURCE Adlandırılmış kaynağı bulur ve içinde kayıt defteri betiğini çalıştırır.
DECLARE_REGISTRY_RESOURCEID Kimlik numarasıyla tanımlanan kaynağı bulur ve içinde kayıt defteri betiğini çalıştırır.

Gereksinimler

Üst bilgi: atlcom.h

_ATL_STATIC_REGISTRY

ATL.DLL bağımlılığını önlemek için nesnenizin kayıt kodunun nesnede olmasını istediğinizi gösteren simge.

#define _ATL_STATIC_REGISTRY

Açıklamalar

ATL_STATIC_REGISTRY tanımlarken aşağıdaki kodu kullanmanız gerekir:

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

DECLARE_LIBID

ATL'nin tür kitaplığının libidini alması için bir yol sağlar.

DECLARE_LIBID( libid )

Parametreler

libid
Tür kitaplığının GUID'i.

Açıklamalar

Türetilmiş bir CAtlModuleTsınıfta DECLARE_LIBID kullanın.

Örnek

Özniteliksiz sihirbaz tarafından oluşturulan ATL projeleri, bu makronun kullanımına bir örnek içerir.

DECLARE_NO_REGISTRY

Bu makronun görüntülendiği sınıf için varsayılan ATL kaydından kaçınmak istiyorsanız DECLARE_NO_REGISTRY kullanın.

DECLARE_NO_REGISTRY()

DECLARE_REGISTRY

Standart sınıf kaydını sistem kayıt defterine girer veya sistem kayıt defterinden kaldırır.

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

Parametreler

class
[in] Geriye dönük uyumluluk için dahil.

Pıd
[in] Sürüme özgü program tanımlayıcısı olan bir LPCTSTR.

vpid
[in] Sürümden bağımsız bir program tanımlayıcısı olan bir LPCTSTR.

Nıd
[in] Programın açıklaması olarak kullanılacak kayıt defterindeki kaynak dizesinin dizini olan bir UINT.

Bayrak
[in] Kayıt defterinde programın iş parçacığı modelini içeren bir DWORD. Şu değerlerden biri olmalıdır: THREADFLAGS_APARTMENT, THREADFLAGS_BOTH veya AUTPRXFLAG.

Açıklamalar

Standart kayıt CLSID, program kimliği, sürümden bağımsız program kimliği, açıklama dizesi ve iş parçacığı modelinden oluşur.

ATL Sınıf Ekleme Sihirbazı'nı kullanarak bir nesne veya denetim oluşturduğunuzda, sihirbaz betik tabanlı kayıt defteri desteğini otomatik olarak uygular ve DECLARE_REGISTRY_RESOURCEID makrosunu dosyalarınıza ekler. Betik tabanlı kayıt defteri desteği istemiyorsanız, bu makroyu DECLARE_REGISTRY ile değiştirmeniz gerekir. DECLARE_REGISTRY yalnızca yukarıda açıklanan beş temel anahtarı kayıt defterine ekler. Kayıt defterine başka anahtarlar eklemek için el ile kod yazmanız gerekir.

DECLARE_REGISTRY_APPID_RESOURCEID

Appid'yi otomatik olarak kaydetmek için gereken bilgileri belirtir.

DECLARE_REGISTRY_APPID_RESOURCEID(
    resid,
    appid )

Parametreler

Resid
Appid hakkında bilgi içeren .rgs dosyasının kaynak kimliği.

appid
A GUID.

Açıklamalar

Türetilmiş bir CAtlModuleTsınıfta DECLARE_REGISTRY_APPID_RESOURCEID kullanın.

Örnek

Sınıf Kodu Ekleme sihirbazıyla ATL projelerine eklenen sınıfların bu makroyu kullanma örneği olacaktır.

DECLARE_REGISTRY_RESOURCE

Kayıt defteri dosyasını içeren adlandırılmış kaynağı alır ve sistem kayıt defterine nesne girmek veya bunları sistem kayıt defterinden kaldırmak için betiği çalıştırır.

DECLARE_REGISTRY_RESOURCE( x )

Parametreler

x
[in] Kaynağınızın dize tanımlayıcısı.

Açıklamalar

ATL Proje Sihirbazı'nı kullanarak bir nesne veya denetim oluşturduğunuzda, sihirbaz betik tabanlı kayıt defteri desteğini otomatik olarak uygular ve dosyalarınıza DECLARE_REGISTRY_RESOURCE benzer DECLARE_REGISTRY_RESOURCEID makrosunu ekler.

İyileştirilmiş kayıt defteri erişimi için ATL Kayıt Defteri Bileşeni (Kayıt Şirketi) ile statik olarak bağlantı oluşturabilirsiniz. Kayıt şirketi koduna statik olarak bağlanmak için pch.h dosyanıza (Visual Studio 2017 ve önceki sürümlerde stdafx.h) aşağıdaki satırı ekleyin:

#define _ATL_STATIC_REGISTRY

ATL'nin çalışma zamanında değiştirme değerlerini değiştirmesini istiyorsanız, DECLARE_REGISTRY_RESOURCE veya DECLARE_REGISTRY_RESOURCEID makroyu belirtmeyin. Bunun yerine, her girişin _ATL_REGMAP_ENTRIES çalışma zamanında yer tutucuyu değiştirmek için bir değerle eşleştirilmiş bir değişken yer tutucusu içerdiği bir yapı dizisi oluşturun. Ardından diziyi geçirerek CAtlModule::UpdateRegistryFromResourceD veya CAtlModule::UpdateRegistryFromResourceS'u çağırın. Bu işlem, yapılardaki _ATL_REGMAP_ENTRIES tüm değiştirme değerlerini Kayıt Şirketinin değiştirme haritasına ekler.

Değiştirilebilir parametreler ve betik oluşturma hakkında daha fazla bilgi için ATL Kayıt Defteri Bileşeni (Kayıt Şirketi) makalesine bakın.

DECLARE_REGISTRY_RESOURCEID

DECLARE_REGISTRY_RESOURCE ile aynıdır ancak kaynağı tanımlamak için dize adı yerine sihirbaz tarafından oluşturulan bir UINT kullanır.

DECLARE_REGISTRY_RESOURCEID( x )

Parametreler

x
[in] Kaynağınızın sihirbaz tarafından oluşturulan tanımlayıcısı.

Açıklamalar

ATL Proje Sihirbazı'nı kullanarak bir nesne veya denetim oluşturduğunuzda, sihirbaz betik tabanlı kayıt defteri desteğini otomatik olarak uygular ve DECLARE_REGISTRY_RESOURCEID makrosunu dosyalarınıza ekler.

İyileştirilmiş kayıt defteri erişimi için ATL Kayıt Defteri Bileşeni (Kayıt Şirketi) ile statik olarak bağlantı oluşturabilirsiniz. Kayıt şirketi koduna statik olarak bağlanmak için stdafx.h dosyanıza (Visual Studio 2019 ve sonraki sürümlerde pch.h) aşağıdaki satırı ekleyin:

#define _ATL_STATIC_REGISTRY

ATL'nin çalışma zamanında değiştirme değerlerini değiştirmesini istiyorsanız, DECLARE_REGISTRY_RESOURCE veya DECLARE_REGISTRY_RESOURCEID makroyu belirtmeyin. Bunun yerine, her girişin _ATL_REGMAP_ENTRIES çalışma zamanında yer tutucuyu değiştirmek için bir değerle eşleştirilmiş bir değişken yer tutucusu içerdiği bir yapı dizisi oluşturun. Ardından diziyi geçirerek CAtlModule::UpdateRegistryFromResourceD veya CAtlModule::UpdateRegistryFromResourceS'u çağırın. Bu işlem, yapılardaki _ATL_REGMAP_ENTRIES tüm değiştirme değerlerini Kayıt Şirketinin değiştirme haritasına ekler.

Değiştirilebilir parametreler ve betik oluşturma hakkında daha fazla bilgi için ATL Kayıt Defteri Bileşeni (Kayıt Şirketi) makalesine bakın.

Ayrıca bkz.

Makrolar