Makro Peta Objek
Makro ini menentukan peta objek dan entri.
Nama | Deskripsi |
---|---|
DECLARE_OBJECT_DESCRIPTION | Memungkinkan Anda menentukan deskripsi teks objek kelas, yang akan dimasukkan ke dalam peta objek. |
OBJECT_ENTRY_AUTO | Memasukkan objek ATL ke dalam peta objek, memperbarui registri, dan membuat instans objek. |
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO | Memungkinkan Anda menentukan bahwa objek harus didaftarkan dan diinisialisasi, tetapi seharusnya tidak dapat dikrealisasi secara eksternal melalui CoCreateInstance . |
Persyaratan
Header: atlcom.h
DECLARE_OBJECT_DESCRIPTION
Memungkinkan Anda menentukan deskripsi teks untuk objek kelas Anda.
DECLARE_OBJECT_DESCRIPTION( x )
Parameter
x
[di] Deskripsi objek kelas.
Keterangan
ATL memasukkan deskripsi ini ke dalam peta objek melalui makro OBJECT_ENTRY_AUTO .
DECLARE_OBJECT_DESCRIPTION mengimplementasikan GetObjectDescription
fungsi, yang dapat Anda gunakan untuk mengambil alih metode CComCoClass::GetObjectDescription .
Fungsi GetObjectDescription
ini dipanggil oleh IComponentRegistrar::GetComponents
. IComponentRegistrar
adalah antarmuka Automation yang memungkinkan Anda mendaftar dan membatalkan pendaftaran komponen individual dalam DLL. Saat Anda membuat objek Pencatat Komponen dengan Wizard Proyek ATL, wizard akan secara otomatis mengimplementasikan IComponentRegistrar
antarmuka. IComponentRegistrar
biasanya digunakan oleh Microsoft Transaction Server.
Untuk informasi selengkapnya tentang Wizard Proyek ATL, lihat artikel Membuat Proyek ATL.
Contoh
class ATL_NO_VTABLE CMyDescribedClass :
public CComObjectRoot,
public CComCoClass<CMyDescribedClass, &CLSID_MyDescribedClass>
{
public:
CMyDescribedClass()
{
}
// Override CComCoClass::GetObjectDescription
DECLARE_OBJECT_DESCRIPTION("My Described Object 1.0")
};
OBJECT_ENTRY_AUTO
Memasukkan objek ATL ke dalam peta objek, memperbarui registri, dan membuat instans objek.
OBJECT_ENTRY_AUTO( clsid, class )
Parameter
clsid
[di] CLSID dari kelas COM yang diimplementasikan oleh kelas C++ bernama kelas.
kelas
[di] Nama kelas C++ yang mengimplementasikan kelas COM yang diwakili oleh clsid.
Keterangan
Makro entri objek ditempatkan pada cakupan global dalam proyek untuk memberikan dukungan untuk pendaftaran, inisialisasi, dan pembuatan kelas.
OBJECT_ENTRY_AUTO memasukkan penunjuk fungsi kelas pembuat dan fungsi kelas CreateInstance
pembuat pabrik untuk objek ini ke dalam peta objek ATL yang dihasilkan secara otomatis. Ketika CAtlComModule::RegisterServer dipanggil, CAtlComModule akan memperbarui registri sistem untuk setiap objek di peta objek.
Tabel di bawah ini menjelaskan bagaimana informasi yang ditambahkan ke peta objek diperoleh dari kelas yang diberikan sebagai parameter kedua untuk makro ini.
Informasi untuk | Diperoleh dari |
---|---|
Pendaftaran COM | Makro Registri |
Pembuatan pabrik kelas | Makro Pabrik Kelas |
Pembuatan instans | Makro Agregasi |
Pendaftaran kategori komponen | Makro Kategori |
Inisialisasi dan pembersihan tingkat kelas | ObjectMain |
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO
Memungkinkan Anda menentukan bahwa objek harus didaftarkan dan diinisialisasi, tetapi seharusnya tidak dapat dikrealisasi secara eksternal melalui CoCreateInstance
.
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO( clsid, class )
Parameter
clsid
[di] CLSID dari kelas COM yang diimplementasikan oleh kelas C++ bernama kelas.
kelas
[di] Nama kelas C++ yang mengimplementasikan kelas COM yang diwakili oleh clsid.
Keterangan
Makro entri objek ditempatkan pada cakupan global dalam proyek untuk memberikan dukungan untuk pendaftaran, inisialisasi, dan pembuatan kelas.
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO memungkinkan Anda menentukan bahwa objek harus didaftarkan dan diinisialisasi (lihat OBJECT_ENTRY_AUTO untuk informasi lebih lanjut), tetapi seharusnya tidak dapat dikremasi melalui CoCreateInstance
.