Bagikan melalui


Makro Registri

Makro ini menentukan jenis pustaka dan fasilitas registri yang berguna.

Nama Deskripsi
_ATL_STATIC_REGISTRY Menunjukkan bahwa Anda ingin kode pendaftaran objek Anda berada di objek untuk menghindari dependensi pada ATL.DLL.
DECLARE_LIBID Menyediakan cara bagi ATL untuk mendapatkan libid pustaka jenis.
DECLARE_NO_REGISTRY Menghindari pendaftaran ATL default.
DECLARE_REGISTRY Memasukkan atau menghapus entri objek utama dalam registri sistem.
DECLARE_REGISTRY_APPID_RESOURCEID Menentukan informasi yang diperlukan untuk mendaftarkan appid secara otomatis.
DECLARE_REGISTRY_RESOURCE Menemukan sumber daya bernama dan menjalankan skrip registri di dalamnya.
DECLARE_REGISTRY_RESOURCEID Menemukan sumber daya yang diidentifikasi oleh nomor ID dan menjalankan skrip registri di dalamnya.

Persyaratan

Header: atlcom.h

_ATL_STATIC_REGISTRY

Simbol yang menunjukkan bahwa Anda ingin kode pendaftaran objek Anda berada di objek untuk menghindari dependensi pada ATL.DLL.

#define _ATL_STATIC_REGISTRY

Keterangan

Saat Anda menentukan ATL_STATIC_REGISTRY, Anda harus menggunakan kode berikut:

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

DECLARE_LIBID

Menyediakan cara bagi ATL untuk mendapatkan libid pustaka jenis.

DECLARE_LIBID( libid )

Parameter

libid
GUID pustaka jenis.

Keterangan

Gunakan DECLARE_LIBID di CAtlModuleTkelas -turunan.

Contoh

Proyek ATL yang dihasilkan wizard non-atribut akan memiliki sampel penggunaan makro ini.

DECLARE_NO_REGISTRY

Gunakan DECLARE_NO_REGISTRY jika Anda ingin menghindari pendaftaran ATL default untuk kelas tempat makro ini muncul.

DECLARE_NO_REGISTRY()

DECLARE_REGISTRY

Memasukkan pendaftaran kelas standar ke dalam registri sistem atau menghapusnya dari registri sistem.

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

Parameter

kelas
[di] Disertakan untuk kompatibilitas mundur.

pid
[di] LPCTSTR yang merupakan pengidentifikasi program khusus versi.

vpid
[di] LPCTSTR yang merupakan pengidentifikasi program independen versi.

Nid
[di] UINT yang merupakan indeks string sumber daya dalam registri untuk digunakan sebagai deskripsi program.

flags
[di] DWORD yang berisi model utas program dalam registri. Harus salah satu nilai berikut: THREADFLAGS_APARTMENT, THREADFLAGS_BOTH, atau AUTPRXFLAG.

Keterangan

Pendaftaran standar terdiri dari CLSID, ID program, ID program independen versi, string deskripsi, dan model utas.

Saat Anda membuat objek atau kontrol menggunakan Wizard Tambah Kelas ATL, wizard secara otomatis menerapkan dukungan registri berbasis skrip dan menambahkan makro DECLARE_REGISTRY_RESOURCEID ke file Anda. Jika Anda tidak ingin dukungan registri berbasis skrip, Anda perlu mengganti makro ini dengan DECLARE_REGISTRY. DECLARE_REGISTRY hanya menyisipkan lima kunci dasar yang dijelaskan di atas ke dalam registri. Anda harus menulis kode secara manual untuk memasukkan kunci lain ke dalam registri.

DECLARE_REGISTRY_APPID_RESOURCEID

Menentukan informasi yang diperlukan untuk mendaftarkan appid secara otomatis.

DECLARE_REGISTRY_APPID_RESOURCEID(
    resid,
    appid )

Parameter

resid
Id sumber daya file .rgs yang berisi informasi tentang appid.

appid
Sebuah GUID.

Keterangan

Gunakan DECLARE_REGISTRY_APPID_RESOURCEID di CAtlModuleTkelas -turunan.

Contoh

Kelas yang ditambahkan ke proyek ATL dengan wizard Tambahkan kode Kelas akan memiliki sampel penggunaan makro ini.

DECLARE_REGISTRY_RESOURCE

Mendapatkan sumber daya bernama yang berisi file registri dan menjalankan skrip untuk memasukkan objek ke dalam registri sistem atau menghapusnya dari registri sistem.

DECLARE_REGISTRY_RESOURCE( x )

Parameter

x
[di] Pengidentifikasi string sumber daya Anda.

Keterangan

Saat Anda membuat objek atau kontrol menggunakan Wizard Proyek ATL, wizard akan secara otomatis menerapkan dukungan registri berbasis skrip dan menambahkan makro DECLARE_REGISTRY_RESOURCEID , yang mirip dengan DECLARE_REGISTRY_RESOURCE, ke file Anda.

Anda dapat secara statis menautkan dengan Komponen Registri ATL (Registrar) untuk akses registri yang dioptimalkan. Untuk menautkan secara statis ke kode Registrar, tambahkan baris berikut ke file pch.h Anda (stdafx.h di Visual Studio 2017 dan yang lebih lama):

#define _ATL_STATIC_REGISTRY

Jika Anda ingin ATL mengganti nilai pengganti pada waktu proses, jangan tentukan makro DECLARE_REGISTRY_RESOURCE atau DECLARE_REGISTRY_RESOURCEID. Sebagai gantinya, buat array _ATL_REGMAP_ENTRIES struktur, di mana setiap entri berisi tempat penampung variabel yang dipasangkan dengan nilai untuk mengganti tempat penampung pada waktu proses. Kemudian panggil CAtlModule::UpdateRegistryFromResourceD atau CAtlModule::UpdateRegistryFromResourceS, melewati array. Ini menambahkan semua nilai pengganti dalam _ATL_REGMAP_ENTRIES struktur ke peta penggantian Registrar.

Untuk informasi selengkapnya tentang parameter dan pembuatan skrip yang dapat diganti, lihat artikel Komponen Registri ATL (Pencatat).

DECLARE_REGISTRY_RESOURCEID

Sama seperti DECLARE_REGISTRY_RESOURCE kecuali menggunakan UINT yang dihasilkan wizard untuk mengidentifikasi sumber daya, bukan nama string.

DECLARE_REGISTRY_RESOURCEID( x )

Parameter

x
[di] Pengidentifikasi sumber daya yang dihasilkan wizard.

Keterangan

Saat Anda membuat objek atau kontrol menggunakan Wizard Proyek ATL, wizard akan secara otomatis menerapkan dukungan registri berbasis skrip dan menambahkan makro DECLARE_REGISTRY_RESOURCEID ke file Anda.

Anda dapat secara statis menautkan dengan Komponen Registri ATL (Registrar) untuk akses registri yang dioptimalkan. Untuk menautkan secara statis ke kode Registrar, tambahkan baris berikut ke file stdafx.h Anda (pch.h di Visual Studio 2019 dan yang lebih baru):

#define _ATL_STATIC_REGISTRY

Jika Anda ingin ATL mengganti nilai pengganti pada waktu proses, jangan tentukan makro DECLARE_REGISTRY_RESOURCE atau DECLARE_REGISTRY_RESOURCEID. Sebagai gantinya, buat array _ATL_REGMAP_ENTRIES struktur, di mana setiap entri berisi tempat penampung variabel yang dipasangkan dengan nilai untuk mengganti tempat penampung pada waktu proses. Kemudian panggil CAtlModule::UpdateRegistryFromResourceD atau CAtlModule::UpdateRegistryFromResourceS, melewati array. Ini menambahkan semua nilai pengganti dalam _ATL_REGMAP_ENTRIES struktur ke peta penggantian Registrar.

Untuk informasi selengkapnya tentang parameter dan pembuatan skrip yang dapat diganti, lihat artikel Komponen Registri ATL (Pencatat).

Lihat juga

Macro