Bagikan melalui


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

_ATL_MODULE

CAtlModule

CAtlModuleT

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