Sdílet prostřednictvím


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

Jméno popis
CAtlExeModuleT::CAtlExeModuleT Konstruktor
CAtlExeModuleT::~CAtlExeModuleT Destruktor.

Veřejné metody

Jméno 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

Jméno 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

_ATL_MODULE

CAtlModule

CAtlModuleT

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

Vrácená 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).

Vrácená 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();

Vrácená 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.

Vrácená 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.

Vrácená 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();

Vrácená 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.

Vrácená 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();

Vrácená 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 .

Vrácená 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