CAtlExeModuleT – třída
Tato třída představuje modul pro aplikaci.
Syntaxe
template <class T>
class ATL_NO_VTABLE CAtlExeModuleT : public CAtlModuleT<T>
Parametry
T
Vaše třída odvozená z CAtlExeModuleT
.
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CAtlExeModuleT::CAtlExeModuleT | Konstruktor |
CAtlExeModuleT::~CAtlExeModuleT | Destruktor. |
Veřejné metody
Název | Popis |
---|---|
CAtlExeModuleT::InitializeCom | Inicializuje com. |
CAtlExeModuleT::P arseCommandLine | Parsuje příkazový řádek a v případě potřeby provede registraci. |
CAtlExeModuleT::P ostMessageLoop | Tato metoda se volá okamžitě po ukončení smyčky zpráv. |
CAtlExeModuleT::P reMessageLoop | Tato metoda se volá bezprostředně před zadáním smyčky zprávy. |
CAtlExeModuleT::RegisterClassObjects | Zaregistruje objekt třídy. |
CAtlExeModuleT::RevokeClassObjects | Odvolá objekt třídy. |
CAtlExeModuleT::Run | Tato metoda spustí kód v modulu EXE pro inicializaci, spuštění smyčky zpráv a vyčištění. |
CAtlExeModuleT::RunMessageLoop | Tato metoda spustí smyčku zpráv. |
CAtlExeModuleT::UninitializeCom | Neinicializuje com. |
CAtlExeModuleT::Unlock | Sníží počet zámků modulu. |
CAtlExeModuleT::WinMain | Tato metoda implementuje kód potřebný ke spuštění exe. |
Veřejné datové členy
Název | Popis |
---|---|
CAtlExeModuleT::m_bDelayShutdown | Příznak označující, že by mělo dojít ke zpoždění vypnutí modulu. |
CAtlExeModuleT::m_dwPause | Hodnota pozastavení použitá k zajištění uvolnění všech objektů před vypnutím. |
CAtlExeModuleT::m_dwTimeOut | Hodnota časového limitu použitá ke zpoždění uvolnění modulu. |
Poznámky
CAtlExeModuleT
představuje modul pro aplikaci (EXE) a obsahuje kód, který podporuje vytvoření exe, zpracování příkazového řádku, registraci objektů třídy, spuštění smyčky zprávy a čištění při ukončení.
Tato třída je navržena tak, aby zlepšila výkon, když objekty COM na exe serveru jsou neustále vytvářeny a zničeny. Po uvolnění posledního objektu COM exe počká na dobu trvání určenou CAtlExeModuleT::m_dwTimeOut datový člen. Pokud během tohoto období nedojde k žádné aktivitě (to znamená, že se nevytvořily žádné objekty COM), zahájí se proces vypnutí.
CAtlExeModuleT ::m_bDelayShutdown datový člen je příznak, který slouží k určení, zda má exe použít mechanismus definovaný výše. Pokud je nastavená na false, modul se okamžitě ukončí.
Další informace o modulech v ATL najdete v tématu Třídy modulů ATL.
Hierarchie dědičnosti
CAtlExeModuleT
Požadavky
Hlavička: atlbase.h
CAtlExeModuleT::CAtlExeModuleT
Konstruktor
CAtlExeModuleT() throw();
Poznámky
Pokud modul EXE nelze inicializovat, WinMain se okamžitě vrátí bez dalšího zpracování.
CAtlExeModuleT::~CAtlExeModuleT
Destruktor.
~CAtlExeModuleT() throw();
Poznámky
Uvolní všechny přidělené prostředky.
CAtlExeModuleT::InitializeCom
Inicializuje com.
static HRESULT InitializeCom() throw();
Návratová hodnota
Vrátí S_OK při úspěchu nebo chybu HRESULT při selhání.
Poznámky
Tato metoda je volána z konstruktoru a lze ji přepsat inicializovat com způsobem jiným než výchozí implementace. Výchozí implementace buď volá CoInitializeEx(NULL, COINIT_MULTITHREADED)
, nebo CoInitialize(NULL)
v závislosti na konfiguraci projektu.
Přepsání této metody obvykle vyžaduje přepsání CAtlExeModuleT::UninitializeCom.
CAtlExeModuleT::m_bDelayShutdown
Příznak označující, že by mělo dojít ke zpoždění vypnutí modulu.
bool m_bDelayShutdown;
Poznámky
Podrobnosti najdete v přehledu CAtlExeModuleT .
CAtlExeModuleT::m_dwPause
Hodnota pozastavení použitá k zajištění, že všechny objekty jsou před vypnutím pryč.
DWORD m_dwPause;
Poznámky
Tuto hodnotu po volání CAtlExeModuleT::InitializeCom nastavte počet milisekund použitých jako hodnota pozastavení pro vypnutí serveru. Výchozí hodnota je 1000 milisekund.
CAtlExeModuleT::m_dwTimeOut
Hodnota časového limitu použitá ke zpoždění uvolnění modulu.
DWORD m_dwTimeOut;
Poznámky
Tuto hodnotu po volání CAtlExeModuleT::InitializeCom definujte počet milisekund použitých jako hodnota časového limitu pro vypnutí serveru. Výchozí hodnota je 5000 milisekund. Další podrobnosti najdete v přehledu CAtlExeModuleT.
CAtlExeModuleT::P arseCommandLine
Parsuje příkazový řádek a v případě potřeby provede registraci.
bool ParseCommandLine(LPCTSTR lpCmdLine, HRESULT* pnRetCode) throw();
Parametry
lpCmdLine
Příkazový řádek předaný aplikaci.
pnRetCode
HRESULT odpovídající registraci (pokud proběhlo).
Návratová hodnota
Vrátí hodnotu true, pokud má aplikace pokračovat ve spuštění, jinak nepravda.
Poznámky
Tato metoda je volána z CAtlExeModuleT::WinMain a lze přepsat pro zpracování přepínačů příkazového řádku. Výchozí implementace kontroluje argumenty příkazového řádku /RegServer a /UnRegServer a provádí registraci nebo zrušení registrace.
CAtlExeModuleT::P ostMessageLoop
Tato metoda se volá okamžitě po ukončení smyčky zpráv.
HRESULT PostMessageLoop() throw();
Návratová hodnota
Vrátí S_OK při úspěchu nebo chybu HRESULT při selhání.
Poznámky
Tuto metodu přepište, aby se provedlo vyčištění vlastní aplikace. Výchozí implementace volá CAtlExeModuleT::RevokeClassObjects.
CAtlExeModuleT::P reMessageLoop
Tato metoda se volá bezprostředně před zadáním smyčky zprávy.
HRESULT PreMessageLoop(int nShowCmd) throw();
Parametry
nShowCmd
Hodnota předaná jako nShowCmd parametr v WinMain.
Návratová hodnota
Vrátí S_OK při úspěchu nebo chybu HRESULT při selhání.
Poznámky
Přepište tuto metodu pro přidání vlastního inicializačního kódu pro aplikaci. Výchozí implementace registruje objekty třídy.
CAtlExeModuleT::RegisterClassObjects
Zaregistruje objekt třídy v OLE, aby se k němu mohly připojit jiné aplikace.
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();
Parametry
dwClsContext
Určuje kontext, ve kterém má být objekt třídy spuštěn. Možné hodnoty jsou CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER nebo CLSCTX_LOCAL_SERVER.
dwFlags
Určuje typy připojení k objektu třídy. Možné hodnoty jsou REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE nebo REGCLS_MULTI_SEPARATE.
Návratová hodnota
Vrátí S_OK při úspěchu, S_FALSE, pokud nebyly žádné třídy k registraci, nebo chyba HRESULT při selhání.
CAtlExeModuleT::RevokeClassObjects
Odebere objekt třídy.
HRESULT RevokeClassObjects() throw();
Návratová hodnota
Vrátí S_OK při úspěchu, S_FALSE, pokud nebyly žádné třídy k registraci, nebo chyba HRESULT při selhání.
CAtlExeModuleT::Run
Tato metoda spustí kód v modulu EXE pro inicializaci, spuštění smyčky zpráv a vyčištění.
HRESULT Run(int nShowCmd = SW_HIDE) throw();
Parametry
nShowCmd
Určuje způsob zobrazení okna. Tento parametr může být jednou z hodnot probíraných v části WinMain . Výchozí hodnota je SW_HIDE.
Návratová hodnota
Vrátí S_OK při úspěchu nebo chybu HRESULT při selhání.
Poznámky
Tuto metodu lze přepsat. V praxi je však lepší přepsat CAtlExeModuleT::P reMessageLoop, CAtlExeModuleT::RunMessageLoop nebo CAtlExeModuleT::P ostMessageLoop .
CAtlExeModuleT::RunMessageLoop
Tato metoda spustí smyčku zpráv.
void RunMessageLoop() throw();
Poznámky
Tuto metodu lze přepsat, aby se změnilo chování smyčky zpráv.
CAtlExeModuleT::UninitializeCom
Neinicializuje com.
static void UninitializeCom() throw();
Poznámky
Ve výchozím nastavení tato metoda jednoduše volá CoUninitialize a je volána z destruktoru. Tuto metodu přepište, pokud přepíšete CAtlExeModuleT::InitializeCom.
CAtlExeModuleT::Unlock
Sníží počet zámků modulu.
LONG Unlock() throw();
Návratová hodnota
Vrátí hodnotu, která může být užitečná pro diagnostiku nebo testování.
CAtlExeModuleT::WinMain
Tato metoda implementuje kód potřebný ke spuštění exe.
int WinMain(int nShowCmd) throw();
Parametry
nShowCmd
Určuje způsob zobrazení okna. Tento parametr může být jednou z hodnot probíraných v části WinMain .
Návratová hodnota
Vrátí návratovou hodnotu spustitelného souboru.
Poznámky
Tuto metodu lze přepsat. Pokud přepisujete CAtlExeModuleT::P reMessageLoop, CAtlExeModuleT::P ostMessageLoop nebo CAtlExeModuleT::RunMessageLoop neposkytuje dostatečnou flexibilitu, je možné přepsat WinMain
funkci pomocí této metody.
Viz také
Ukázka ATLDuck
CAtlModuleT – třída
CAtlDllModuleT – třída
Přehled třídy