Kelas CAtlExeModuleT
Kelas ini mewakili modul untuk aplikasi.
Sintaks
template <class T>
class ATL_NO_VTABLE CAtlExeModuleT : public CAtlModuleT<T>
Parameter
T
Kelas Anda berasal dari CAtlExeModuleT
.
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CAtlExeModuleT::CAtlExeModuleT | Konstruktor. |
CAtlExeModuleT::~CAtlExeModuleT | Destruktor. |
Metode Publik
Nama | Deskripsi |
---|---|
CAtlExeModuleT::InitializeCom | Menginisialisasi COM. |
CAtlExeModuleT::P arseCommandLine | Mengurai baris perintah dan melakukan pendaftaran jika perlu. |
CAtlExeModuleT::P ostMessageLoop | Metode ini dipanggil segera setelah perulangan pesan keluar. |
CAtlExeModuleT::P reMessageLoop | Metode ini dipanggil segera sebelum memasukkan perulangan pesan. |
CAtlExeModuleT::RegisterClassObjects | Mendaftarkan objek kelas. |
CAtlExeModuleT::RevokeClassObjects | Mencabut objek kelas. |
CAtlExeModuleT::Run | Metode ini menjalankan kode dalam modul EXE untuk menginisialisasi, menjalankan perulangan pesan, dan membersihkan. |
CAtlExeModuleT::RunMessageLoop | Metode ini menjalankan perulangan pesan. |
CAtlExeModuleT::UninitializeCom | Batalkan menginisialisasi COM. |
CAtlExeModuleT::Unlock | Mengurangi jumlah kunci modul. |
CAtlExeModuleT::WinMain | Metode ini mengimplementasikan kode yang diperlukan untuk menjalankan EXE. |
Anggota Data Publik
Nama | Deskripsi |
---|---|
CAtlExeModuleT::m_bDelayShutdown | Bendera yang menunjukkan bahwa seharusnya ada penundaan mematikan modul. |
CAtlExeModuleT::m_dwPause | Nilai jeda yang digunakan untuk memastikan semua objek dilepaskan sebelum dimatikan. |
CAtlExeModuleT::m_dwTimeOut | Nilai waktu habis yang digunakan untuk menunda pembongkaran modul. |
Keterangan
CAtlExeModuleT
mewakili modul untuk aplikasi (EXE) dan berisi kode yang mendukung pembuatan EXE, memproses baris perintah, mendaftarkan objek kelas, menjalankan perulangan pesan, dan membersihkan saat keluar.
Kelas ini dirancang untuk meningkatkan performa ketika objek COM di server EXE terus dibuat dan dihancurkan. Setelah objek COM terakhir dirilis, EXE menunggu durasi yang ditentukan oleh anggota data CAtlExeModuleT::m_dwTimeOut . Jika tidak ada aktivitas selama periode ini (yaitu, tidak ada objek COM yang dibuat), proses pematian dimulai.
Anggota data CAtlExeModuleT::m_bDelayShutdown adalah bendera yang digunakan untuk menentukan apakah EXE harus menggunakan mekanisme yang ditentukan di atas. Jika diatur ke false, maka modul akan segera berakhir.
Untuk informasi selengkapnya tentang modul di ATL, lihat Kelas Modul ATL.
Hierarki Warisan
CAtlExeModuleT
Persyaratan
Header: atlbase.h
CAtlExeModuleT::CAtlExeModuleT
Konstruktor.
CAtlExeModuleT() throw();
Keterangan
Jika modul EXE tidak dapat diinisialisasi, WinMain akan segera kembali tanpa pemrosesan lebih lanjut.
CAtlExeModuleT::~CAtlExeModuleT
Destruktor.
~CAtlExeModuleT() throw();
Keterangan
Membebaskan semua sumber daya yang dialokasikan.
CAtlExeModuleT::InitializeCom
Menginisialisasi COM.
static HRESULT InitializeCom() throw();
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
Keterangan
Metode ini dipanggil dari konstruktor dan dapat ditimpa untuk menginisialisasi COM dengan cara yang berbeda dari implementasi default. Implementasi default baik panggilan CoInitializeEx(NULL, COINIT_MULTITHREADED)
atau CoInitialize(NULL)
tergantung pada konfigurasi proyek.
Mengambil alih metode ini biasanya memerlukan penggantian CAtlExeModuleT::UninitializeCom.
CAtlExeModuleT::m_bDelayShutdown
Bendera yang menunjukkan bahwa seharusnya ada penundaan mematikan modul.
bool m_bDelayShutdown;
Keterangan
Lihat Ringkasan CAtlExeModuleT untuk detailnya.
CAtlExeModuleT::m_dwPause
Nilai jeda yang digunakan untuk memastikan semua objek hilang sebelum dimatikan.
DWORD m_dwPause;
Keterangan
Ubah nilai ini setelah memanggil CAtlExeModuleT::InitializeCom untuk mengatur jumlah milidetik yang digunakan sebagai nilai jeda untuk mematikan server. Nilai defaultnya adalah 1000 milidetik.
CAtlExeModuleT::m_dwTimeOut
Nilai waktu habis yang digunakan untuk menunda pembongkaran modul.
DWORD m_dwTimeOut;
Keterangan
Ubah nilai ini setelah memanggil CAtlExeModuleT::InitializeCom untuk menentukan jumlah milidetik yang digunakan sebagai nilai waktu habis untuk mematikan server. Nilai defaultnya adalah 5000 milidetik. Lihat Ringkasan CAtlExeModuleT untuk detail selengkapnya.
CAtlExeModuleT::P arseCommandLine
Mengurai baris perintah dan melakukan pendaftaran jika perlu.
bool ParseCommandLine(LPCTSTR lpCmdLine, HRESULT* pnRetCode) throw();
Parameter
lpCmdLine
Baris perintah diteruskan ke aplikasi.
pnRetCode
HRESULT sesuai dengan pendaftaran (jika terjadi).
Tampilkan Nilai
Kembalikan true jika aplikasi harus terus berjalan, jika tidak salah.
Keterangan
Metode ini dipanggil dari CAtlExeModuleT::WinMain dan dapat ditimpa untuk menangani sakelar baris perintah. Implementasi default memeriksa argumen baris perintah /RegServer dan /UnRegServer dan melakukan pendaftaran atau unregistrasi.
CAtlExeModuleT::P ostMessageLoop
Metode ini dipanggil segera setelah perulangan pesan keluar.
HRESULT PostMessageLoop() throw();
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
Keterangan
Ambil alih metode ini untuk melakukan pembersihan aplikasi kustom. Implementasi default memanggil CAtlExeModuleT::RevokeClassObjects.
CAtlExeModuleT::P reMessageLoop
Metode ini dipanggil segera sebelum memasukkan perulangan pesan.
HRESULT PreMessageLoop(int nShowCmd) throw();
Parameter
nShowCmd
Nilai diteruskan sebagai parameter nShowCmd di WinMain.
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
Keterangan
Ambil alih metode ini untuk menambahkan kode inisialisasi kustom untuk aplikasi. Implementasi default mendaftarkan objek kelas.
CAtlExeModuleT::RegisterClassObjects
Mendaftarkan objek kelas dengan OLE sehingga aplikasi lain dapat terhubung ke objek tersebut.
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();
Parameter
dwClsContext
Menentukan konteks di mana objek kelas akan dijalankan. Nilai yang mungkin CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, atau CLSCTX_LOCAL_SERVER.
dwFlags
Menentukan jenis koneksi ke objek kelas. Nilai yang mungkin REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE, atau REGCLS_MULTI_SEPARATE.
Tampilkan Nilai
Mengembalikan S_OK pada keberhasilan, S_FALSE jika tidak ada kelas untuk mendaftar, atau kesalahan HRESULT pada kegagalan.
CAtlExeModuleT::RevokeClassObjects
Menghapus objek kelas.
HRESULT RevokeClassObjects() throw();
Tampilkan Nilai
Mengembalikan S_OK pada keberhasilan, S_FALSE jika tidak ada kelas untuk mendaftar, atau kesalahan HRESULT pada kegagalan.
CAtlExeModuleT::Run
Metode ini menjalankan kode dalam modul EXE untuk menginisialisasi, menjalankan perulangan pesan, dan membersihkan.
HRESULT Run(int nShowCmd = SW_HIDE) throw();
Parameter
nShowCmd
Menentukan bagaimana jendela akan ditampilkan. Parameter ini dapat menjadi salah satu nilai yang dibahas di bagian WinMain . Default ke SW_HIDE.
Tampilkan Nilai
Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.
Keterangan
Metode ini dapat ditimpa. Namun, dalam praktiknya adalah lebih baik untuk mengambil alih CAtlExeModuleT::P reMessageLoop, CAtlExeModuleT::RunMessageLoop, atau CAtlExeModuleT::P ostMessageLoop sebagai gantinya.
CAtlExeModuleT::RunMessageLoop
Metode ini menjalankan perulangan pesan.
void RunMessageLoop() throw();
Keterangan
Metode ini dapat ditimpa untuk mengubah perilaku perulangan pesan.
CAtlExeModuleT::UninitializeCom
Batalkan menginisialisasi COM.
static void UninitializeCom() throw();
Keterangan
Secara default metode ini hanya memanggil CoUninitialize dan dipanggil dari destruktor. Ambil alih metode ini jika Anda mengambil alih CAtlExeModuleT::InitializeCom.
CAtlExeModuleT::Unlock
Mengurangi jumlah kunci modul.
LONG Unlock() throw();
Tampilkan Nilai
Mengembalikan nilai yang mungkin berguna untuk diagnostik atau pengujian.
CAtlExeModuleT::WinMain
Metode ini mengimplementasikan kode yang diperlukan untuk menjalankan EXE.
int WinMain(int nShowCmd) throw();
Parameter
nShowCmd
Menentukan bagaimana jendela akan ditampilkan. Parameter ini dapat menjadi salah satu nilai yang dibahas di bagian WinMain .
Tampilkan Nilai
Mengembalikan nilai pengembalian yang dapat dieksekusi.
Keterangan
Metode ini dapat ditimpa. Jika menimpa CAtlExeModuleT::P reMessageLoop, CAtlExeModuleT::P ostMessageLoop, atau CAtlExeModuleT::RunMessageLoop tidak memberikan fleksibilitas yang cukup, anda dapat mengambil alih WinMain
fungsi menggunakan metode ini.
Lihat juga
Sampel ATLDuck
Kelas CAtlModuleT
Kelas CAtlDllModuleT
Gambaran Umum Kelas