Bagikan melalui


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.

Sintaks

class CComModule : public _ATL_MODULE

Anggota

Metode Publik

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.

Anggota Data Publik

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.

Keterangan

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

Hierarki Warisan

_ATL_MODULE

CAtlModule

CAtlModuleT

CComModule

Persyaratan

Header: atlbase.h

CComModule::GetClassObject

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

HRESULT GetClassObject(
    REFCLSID rclsid,
    REFIID riid,
    LPVOID* ppv) throw();

Parameter

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.

Tampilkan Nilai

Nilai HRESULT standar.

Keterangan

Membuat objek CLSID yang ditentukan dan mengambil penunjuk antarmuka ke objek ini.

GetClassObject hanya tersedia untuk DLL.

CComModule::GetModuleInstance

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

HINSTANCE GetModuleInstance() throw();

Tampilkan Nilai

HINSTANCE mengidentifikasi modul ini.

Keterangan

Mengembalikan anggota data m_hInst .

CComModule::GetResourceInstance

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

HINSTANCE GetResourceInstance() throw();

Tampilkan Nilai

SEBUAH HINSTANCE.

Keterangan

Mengembalikan anggota data m_hInstResource .

CComModule::GetTypeLibInstance

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

HINSTANCE GetTypeLibInstance() const throw();

Tampilkan Nilai

SEBUAH HINSTANCE.

Keterangan

Mengembalikan anggota data m_hInstTypeLib .

CComModule::Init

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();

Parameter

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.

Tampilkan Nilai

Nilai HRESULT standar.

Keterangan

Menginisialisasi semua anggota data.

CComModule::m_csObjMap

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

CRITICAL_SECTION m_csObjMap;

Keterangan

Memastikan akses yang disinkronkan ke peta objek.

CComModule::m_csTypeInfoHolder

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

CRITICAL_SECTION m_csTypeInfoHolder;

Keterangan

Memastikan akses yang disinkronkan ke pustaka jenis.

CComModule::m_csWindowCreate

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

CRITICAL_SECTION m_csWindowCreate;

Keterangan

Memastikan akses yang disinkronkan ke informasi kelas jendela dan ke data statis yang digunakan selama pembuatan jendela.

CComModule::m_hInst

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

HINSTANCE m_hInst;

Keterangan

Berisi handel ke instans modul.

Metode Init diatur m_hInst ke handel yang diteruskan ke DLLMain atau WinMain.

CComModule::m_hInstResource

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

HINSTANCE m_hInstResource;

Keterangan

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.

CComModule::m_hInstTypeLib

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

HINSTANCE m_hInstTypeLib;

Keterangan

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.

CComModule::m_pObjMap

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

_ATL_OBJMAP_ENTRY* m_pObjMap;

Keterangan

Menunjuk ke peta objek yang dikelola oleh instans modul.

CComModule::RegisterClassHelper

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

Parameter

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.

Tampilkan Nilai

Nilai HRESULT standar.

Keterangan

Memasukkan pendaftaran kelas standar objek di registri sistem.

Metode UpdateRegistryClass memanggil RegisterClassHelper.

CComModule::RegisterClassObjects

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();

Parameter

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.

Tampilkan Nilai

Nilai HRESULT standar.

Keterangan

Mendaftarkan objek kelas EXE dengan OLE sehingga aplikasi lain dapat terhubung ke objek tersebut. Metode ini hanya tersedia untuk EXE.

CComModule::RegisterServer

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

HRESULT RegisterServer(
    BOOL bRegTypeLib = FALSE,
    const CLSID* pCLSID = NULL) throw();

Parameter

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.

Tampilkan Nilai

Nilai HRESULT standar.

Keterangan

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.

CComModule::RegisterTypeLib

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

HRESULT RegisterTypeLib() throw();
HRESULT RegisterTypeLib(LPCTSTR lpszIndex) throw();

Parameter

lpszIndex
[di] String dalam format "\\N", di mana N adalah indeks bilangan bulat dari sumber daya TYPELIB.

Tampilkan Nilai

Nilai HRESULT standar.

Keterangan

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.

CComModule::RevokeClassObjects

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

HRESULT RevokeClassObjects() throw();

Tampilkan Nilai

Nilai HRESULT standar.

Keterangan

Menghapus objek kelas. Metode ini hanya tersedia untuk EXE.

CComModule::Term

Pada ATL 7.0, CComModule sudah usang: lihat Kelas Modul ATL untuk detail selengkapnya.

void Term() throw();

Keterangan

Merilis semua anggota data.

CComModule::UnregisterClassHelper

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

Parameter

Clsid
[di] CLSID objek yang akan dibatalkan pendaftarannya.

lpszProgID
[di] ProgID yang terkait dengan objek .

lpszVerIndProgID
[di] ProgID independen versi yang terkait dengan objek .

Tampilkan Nilai

Nilai HRESULT standar.

Keterangan

Menghapus pendaftaran kelas standar objek dari registri sistem.

Metode UpdateRegistryClass memanggil UnregisterClassHelper.

CComModule::UnregisterServer

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 ();

Parameter

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.

Tampilkan Nilai

Nilai HRESULT standar.

Keterangan

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.

CComModule::UpdateRegistryClass

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

Parameter

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.

Tampilkan Nilai

Nilai HRESULT standar.

Keterangan

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.

CComModule::UpdateRegistryFromResourceD

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 ();

Parameter

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.

Tampilkan Nilai

Nilai HRESULT standar.

Keterangan

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

CComModule::UpdateRegistryFromResourceS

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();

Parameter

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.

Tampilkan Nilai

Nilai HRESULT standar.

Keterangan

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

Baca juga

Gambaran Umum Kelas