Kelas CComModule
Pada ATL 7.0, CComModule
tidak digunakan lagi: lihat Kelas Modul ATL untuk detail selengkapnya.
Penting
Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.
class CComModule : public _ATL_MODULE
Nama | Deskripsi |
---|---|
CComModule::GetClassObject | Membuat objek CLSID tertentu. Hanya untuk DLL. |
CComModule::GetModuleInstance | Menampilkan m_hInst . |
CComModule::GetResourceInstance | Menampilkan m_hInstResource . |
CComModule::GetTypeLibInstance | Menampilkan m_hInstTypeLib . |
CComModule::Init | Menginisialisasi anggota data. |
CComModule::RegisterClassHelper | Memasukkan pendaftaran kelas standar objek di registri sistem. |
CComModule::RegisterClassObjects | Mendaftarkan objek kelas. Hanya untuk EXEs. |
CComModule::RegisterServer | Memperbarui registri sistem untuk setiap objek di peta objek. |
CComModule::RegisterTypeLib | Mendaftarkan pustaka jenis. |
CComModule::RevokeClassObjects | Mencabut objek kelas. Hanya untuk EXEs. |
CComModule::Term | Merilis anggota data. |
CComModule::UnregisterClassHelper | Menghapus pendaftaran kelas standar objek dari registri sistem. |
CComModule::UnregisterServer | Membatalkan pendaftaran setiap objek di peta objek. |
CComModule::UpdateRegistryClass | Mendaftarkan atau membatalkan pendaftaran kelas standar objek. |
CComModule::UpdateRegistryFromResourceD | Menjalankan skrip yang terkandung dalam sumber daya tertentu untuk mendaftarkan atau membatalkan pendaftaran objek. |
CComModule::UpdateRegistryFromResourceS | Secara statis menautkan ke Komponen Registri ATL. Menjalankan skrip yang terkandung dalam sumber daya tertentu untuk mendaftarkan atau membatalkan pendaftaran objek. |
Nama | Deskripsi |
---|---|
CComModule::m_csObjMap | Memastikan akses yang disinkronkan ke informasi peta objek. |
CComModule::m_csTypeInfoHolder | Memastikan akses yang disinkronkan ke informasi pustaka jenis. |
CComModule::m_csWindowCreate | Memastikan akses yang disinkronkan ke informasi kelas jendela dan data statis yang digunakan selama pembuatan jendela. |
CComModule::m_hInst | Berisi handel ke instans modul. |
CComModule::m_hInstResource | Secara default, berisi handel ke instans modul. |
CComModule::m_hInstTypeLib | Secara default, berisi handel ke instans modul. |
CComModule::m_pObjMap | Menunjuk ke peta objek yang dikelola oleh instans modul. |
Catatan
Kelas ini tidak digunakan lagi, dan wizard pembuatan kode ATL sekarang menggunakan kelas turunan CAtlAutoThreadModule dan CAtlModule . Lihat Kelas Modul ATL untuk informasi selengkapnya. Informasi berikut adalah untuk digunakan dengan aplikasi yang dibuat dengan rilis ATL yang lebih lama. CComModule
masih merupakan bagian dari ATL untuk kemampuan mundur.
CComModule
mengimplementasikan modul server COM, memungkinkan klien untuk mengakses komponen modul. CComModule
mendukung modul DLL (dalam proses) dan EXE (lokal).
CComModule
Instans menggunakan peta objek untuk mempertahankan sekumpulan definisi objek kelas. Peta objek ini diimplementasikan sebagai array _ATL_OBJMAP_ENTRY
struktur, dan berisi informasi untuk:
Memasukkan dan menghapus deskripsi objek di registri sistem.
Membuat instans objek melalui pabrik kelas.
Membangun komunikasi antara klien dan objek akar dalam komponen.
Melakukan manajemen seumur hidup objek kelas.
Saat Anda menjalankan APPWizard COM ATL, wizard secara otomatis menghasilkan , instans _Module
CComModule
global atau kelas yang berasal darinya. Untuk informasi selengkapnya tentang Wizard Proyek ATL, lihat artikel Membuat Proyek ATL.
Selain CComModule
, ATL menyediakan CComAutoThreadModule, yang mengimplementasikan modul model apartemen untuk EXEs dan layanan Windows. Dapatkan modul Anda dari CComAutoThreadModule
kapan Anda ingin membuat objek di beberapa apartemen.
CComModule
Header: atlbase.h
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
HRESULT GetClassObject(
REFCLSID rclsid,
REFIID riid,
LPVOID* ppv) throw();
rclsid
[di] CLSID objek yang akan dibuat.
riid
[masuk] IID antarmuka yang diminta .
ppv
[out] Penunjuk ke penunjuk antarmuka yang diidentifikasi oleh riid. Jika objek tidak mendukung antarmuka ini, ppv diatur ke NULL.
Nilai HRESULT standar.
Membuat objek CLSID yang ditentukan dan mengambil penunjuk antarmuka ke objek ini.
GetClassObject
hanya tersedia untuk DLL.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
HINSTANCE GetModuleInstance() throw();
HINSTANCE mengidentifikasi modul ini.
Mengembalikan anggota data m_hInst .
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
HINSTANCE GetResourceInstance() throw();
SEBUAH HINSTANCE.
Mengembalikan anggota data m_hInstResource .
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
HINSTANCE GetTypeLibInstance() const throw();
SEBUAH HINSTANCE.
Mengembalikan anggota data m_hInstTypeLib .
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
HRESULT Init(
_ATL_OBJMAP_ENTRY* p,
HINSTANCE h,
const GUID* plibid = NULL) throw();
p
[di] Penunjuk ke array entri peta objek.
h
[di] HINSTANCE diteruskan ke DLLMain
atau WinMain
.
plibid
[di] Penunjuk ke LIBID pustaka jenis yang terkait dengan proyek.
Nilai HRESULT standar.
Menginisialisasi semua anggota data.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
CRITICAL_SECTION m_csObjMap;
Memastikan akses yang disinkronkan ke peta objek.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
CRITICAL_SECTION m_csTypeInfoHolder;
Memastikan akses yang disinkronkan ke pustaka jenis.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
CRITICAL_SECTION m_csWindowCreate;
Memastikan akses yang disinkronkan ke informasi kelas jendela dan ke data statis yang digunakan selama pembuatan jendela.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
HINSTANCE m_hInst;
Berisi handel ke instans modul.
Metode Init diatur m_hInst
ke handel yang diteruskan ke DLLMain
atau WinMain
.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
HINSTANCE m_hInstResource;
Secara default, berisi handel ke instans modul.
Metode Init diatur m_hInstResource
ke handel yang diteruskan ke DLLMain
atau WinMain
. Anda dapat secara eksplisit mengatur m_hInstResource
ke handel ke sumber daya.
Metode GetResourceInstance mengembalikan handel yang disimpan di m_hInstResource
.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
HINSTANCE m_hInstTypeLib;
Secara default, berisi handel ke instans modul.
Metode Init diatur m_hInstTypeLib
ke handel yang diteruskan ke DLLMain
atau WinMain
. Anda dapat secara eksplisit mengatur m_hInstTypeLib
ke handel ke pustaka jenis.
Metode GetTypeLibInstance mengembalikan handel yang disimpan di m_hInstTypeLib
.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
_ATL_OBJMAP_ENTRY* m_pObjMap;
Menunjuk ke peta objek yang dikelola oleh instans modul.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
ATL_DEPRECATED HRESULT RegisterClassHelper(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
UINT nDescID,
DWORD dwFlags);
clsid
[di] CLSID objek yang akan didaftarkan.
lpszProgID
[di] ProgID yang terkait dengan objek .
lpszVerIndProgID
[di] ProgID independen versi yang terkait dengan objek .
nDescID
[di] Pengidentifikasi sumber daya string untuk deskripsi objek.
dwFlags
[di] Menentukan model utas yang akan dimasukkan dalam registri. Nilai yang mungkin THREADFLAGS_APARTMENT, THREADFLAGS_BOTH, atau AUTPRXFLAG.
Nilai HRESULT standar.
Memasukkan pendaftaran kelas standar objek di registri sistem.
Metode UpdateRegistryClass memanggil RegisterClassHelper
.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();
dwClsContext
[di] Menentukan konteks di mana objek kelas akan dijalankan. Nilai yang mungkin CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, atau CLSCTX_LOCAL_SERVER. Untuk deskripsi nilai-nilai ini, lihat CLSCTX di Windows SDK.
dwFlags
[di] Menentukan jenis koneksi ke objek kelas. Nilai yang mungkin REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE, atau REGCLS_MULTI_SEPARATE. Untuk deskripsi nilai-nilai ini, lihat REGCLS di Windows SDK.
Nilai HRESULT standar.
Mendaftarkan objek kelas EXE dengan OLE sehingga aplikasi lain dapat terhubung ke objek tersebut. Metode ini hanya tersedia untuk EXE.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
HRESULT RegisterServer(
BOOL bRegTypeLib = FALSE,
const CLSID* pCLSID = NULL) throw();
bRegTypeLib
[di] Menunjukkan apakah pustaka jenis akan didaftarkan. Nilai defaultnya adalah FALSE.
pCLSID
[di] Arahkan ke CLSID objek yang akan didaftarkan. Jika NULL (nilai default), semua objek dalam peta objek akan didaftarkan.
Nilai HRESULT standar.
Bergantung pada parameter pCLSID , perbarui registri sistem untuk satu objek kelas atau untuk semua objek di peta objek.
Jika bRegTypeLib TRUE, informasi pustaka jenis juga akan diperbarui.
Lihat OBJECT_ENTRY_AUTO untuk informasi tentang cara menambahkan entri ke peta objek.
RegisterServer
akan dipanggil secara otomatis oleh DLLRegisterServer
untuk DLL atau untuk WinMain
eksekusi EXE dengan /RegServer
opsi baris perintah.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
HRESULT RegisterTypeLib() throw();
HRESULT RegisterTypeLib(LPCTSTR lpszIndex) throw();
lpszIndex
[di] String dalam format "\\N"
, di mana N
adalah indeks bilangan bulat dari sumber daya TYPELIB.
Nilai HRESULT standar.
Menambahkan informasi tentang pustaka jenis ke registri sistem.
Jika instans modul berisi beberapa jenis pustaka, gunakan versi kedua metode ini untuk menentukan pustaka jenis mana yang harus digunakan.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
HRESULT RevokeClassObjects() throw();
Nilai HRESULT standar.
Menghapus objek kelas. Metode ini hanya tersedia untuk EXE.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
void Term() throw();
Merilis semua anggota data.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
ATL_DEPRECATED HRESULT UnregisterClassHelper(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID);
clsid
[di] CLSID objek yang akan dibatalkan pendaftarannya.
lpszProgID
[di] ProgID yang terkait dengan objek .
lpszVerIndProgID
[di] ProgID independen versi yang terkait dengan objek .
Nilai HRESULT standar.
Menghapus pendaftaran kelas standar objek dari registri sistem.
Metode UpdateRegistryClass memanggil UnregisterClassHelper
.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
HRESULT UnregisterServer(const CLSID* pCLSID = NULL) throw ();
inline HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID* pCLSID = NULL) throw ();
bUnRegTypeLib
Jika TRUE, pustaka jenis juga tidak terdaftar.
pCLSID
Menunjuk ke CLSID objek yang tidak terdaftar. Jika NULL (nilai default), semua objek dalam peta objek akan tidak terdaftar.
Nilai HRESULT standar.
Bergantung pada parameter pCLSID , membatalkan pendaftaran objek kelas tunggal atau semua objek di peta objek.
UnregisterServer
akan dipanggil secara otomatis oleh DLLUnregisterServer
untuk DLL atau untuk WinMain
eksekusi EXE dengan /UnregServer
opsi baris perintah.
Lihat OBJECT_ENTRY_AUTO untuk informasi tentang cara menambahkan entri ke peta objek.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
ATL_DEPRECATED HRESULT UpdateRegistryClass(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
UINT nDescID,
DWORD dwFlags,
BOOL bRegister);
ATL_DEPRECATED HRESULT UpdateRegistryClass(
const CLSID& clsid,
LPCTSTR lpszProgID,
LPCTSTR lpszVerIndProgID,
LPCTSTR szDesc,
DWORD dwFlags,
BOOL bRegister);
clsid
CLSID objek yang akan didaftarkan atau tidak terdaftar.
lpszProgID
ProgID yang terkait dengan objek .
lpszVerIndProgID
ProgID independen versi yang terkait dengan objek .
nDescID
Pengidentifikasi sumber daya string untuk deskripsi objek.
szDesc
String yang berisi deskripsi objek.
dwFlags
Menentukan model utas yang akan dimasukkan dalam registri. Nilai yang mungkin THREADFLAGS_APARTMENT, THREADFLAGS_BOTH, atau AUTPRXFLAG.
bRegister
Menunjukkan apakah objek harus didaftarkan.
Nilai HRESULT standar.
Jika bRegister TRUE, metode ini memasukkan pendaftaran kelas standar objek di registri sistem.
Jika bRegister FALSE, bRegister akan menghapus pendaftaran objek.
Tergantung pada nilai bRegister, UpdateRegistryClass
panggilan baik RegisterClassHelper atau UnregisterClassHelper.
Dengan menentukan makro DECLARE_REGISTRY , UpdateRegistryClass
akan dipanggil secara otomatis ketika peta objek Anda diproses.
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
virtual HRESULT UpdateRegistryFromResourceD(
LPCTSTR lpszRes,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
virtual HRESULT UpdateRegistryFromResourceD(
UINT nResID,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw ();
lpszRes
[di] Nama sumber daya.
nResID
[di] ID sumber daya.
bRegister
[di] Menunjukkan apakah objek harus didaftarkan.
pMapEntries
[di] Penunjuk ke nilai penyimpanan peta pengganti yang terkait dengan parameter skrip yang dapat diganti. ATL secara otomatis menggunakan %MODULE%
. Untuk menggunakan parameter tambahan yang dapat diganti, lihat Keterangan untuk detailnya. Jika tidak, gunakan nilai default NULL.
Nilai HRESULT standar.
Menjalankan skrip yang terkandung dalam sumber daya yang ditentukan oleh lpszRes atau nResID.
Jika bRegister TRUE, metode ini mendaftarkan objek dalam registri sistem; jika tidak, ia membatalkan pendaftaran objek.
Dengan menentukan makro DECLARE_REGISTRY_RESOURCE atau DECLARE_REGISTRY_RESOURCEID , UpdateRegistryFromResourceD
akan dipanggil secara otomatis saat peta objek Anda diproses.
Catatan
Untuk 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 UpdateRegistryFromResourceD
, meneruskan array untuk parameter pMapEntries . Ini menambahkan semua nilai pengganti dalam _ATL_REGMAP_ENTRIES
struktur ke peta penggantian Registrar.
Catatan
Untuk menautkan secara statis ke Komponen Registri ATL (Registrar), lihat UpdateRegistryFromResourceS.
Untuk informasi selengkapnya tentang parameter dan pembuatan skrip yang dapat diganti, lihat artikel Komponen Registri ATL (Pencatat).
Pada ATL 7.0, CComModule
sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.
virtual HRESULT UpdateRegistryFromResourceS(
LPCTSTR lpszRes,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
virtual HRESULT UpdateRegistryFromResourceS(
UINT nResID,
BOOL bRegister,
struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();
lpszRes
[di] Nama sumber daya.
nResID
[di] ID sumber daya.
bRegister
[di] Menunjukkan apakah skrip sumber daya harus didaftarkan.
pMapEntries
[di] Penunjuk ke nilai penyimpanan peta pengganti yang terkait dengan parameter skrip yang dapat diganti. ATL secara otomatis menggunakan %MODULE%
. Untuk menggunakan parameter tambahan yang dapat diganti, lihat Keterangan untuk detailnya. Jika tidak, gunakan nilai default NULL.
Nilai HRESULT standar.
Mirip dengan UpdateRegistryFromResourceD kecuali UpdateRegistryFromResourceS
membuat tautan statis ke Komponen Registri ATL (Registrar).
UpdateRegistryFromResourceS
akan dipanggil secara otomatis ketika peta objek Anda diproses, asalkan Anda menambahkan #define _ATL_STATIC_REGISTRY
ke pch.h (stdafx.h di Visual Studio 2017 dan yang lebih lama).
Catatan
Untuk 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 UpdateRegistryFromResourceS
, meneruskan array untuk parameter pMapEntries . 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).