Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.
Deze klasse vertegenwoordigt de module voor een toepassing.
Syntaxis
template <class T>
class ATL_NO_VTABLE CAtlExeModuleT : public CAtlModuleT<T>
Parameterwaarden
T
Uw klasse is afgeleid van CAtlExeModuleT.
Leden
Openbare constructors
| Naam | Description |
|---|---|
| CAtlExeModuleT::CAtlExeModuleT | De constructor. |
| CAtlExeModuleT::~CAtlExeModuleT | De destructor. |
Openbare methoden
| Naam | Description |
|---|---|
| CAtlExeModuleT::InitializeCom | Initialiseert COM. |
| CAtlExeModuleT::P arseCommandLine | Parseert de opdrachtregel en voert zo nodig registratie uit. |
| CAtlExeModuleT::P ostMessageLoop | Deze methode wordt onmiddellijk aangeroepen nadat de berichtenlus is afgesloten. |
| CAtlExeModuleT::P reMessageLoop | Deze methode wordt onmiddellijk aangeroepen voordat u de berichtenlus invoert. |
| CAtlExeModuleT::RegisterClassObjects | Registreert het klasseobject. |
| CAtlExeModuleT::RevokeClassObjects | Hiermee wordt het klasseobject ingetrokken. |
| CAtlExeModuleT::Run | Met deze methode wordt code uitgevoerd in de EXE-module om de berichtlus te initialiseren, uit te voeren en op te schonen. |
| CAtlExeModuleT::RunMessageLoop | Met deze methode wordt de berichtenlus uitgevoerd. |
| CAtlExeModuleT::UninitializeCom | Com niet geïnitialiseerd. |
| CAtlExeModuleT::Unlock | Hiermee wordt het aantal vergrendelingen van de module afgerekend. |
| CAtlExeModuleT::WinMain | Met deze methode wordt de code geïmplementeerd die is vereist voor het uitvoeren van een EXE. |
Publieke dataleden
| Naam | Description |
|---|---|
| CAtlExeModuleT::m_bDelayShutdown | Een vlag die aangeeft dat er een vertraging moet zijn bij het afsluiten van de module. |
| CAtlExeModuleT::m_dwPause | Een onderbrekingswaarde die wordt gebruikt om ervoor te zorgen dat alle objecten worden vrijgegeven voordat ze worden afgesloten. |
| CAtlExeModuleT::m_dwTimeOut | Een time-outwaarde die wordt gebruikt om het lossen van de module uit te stellen. |
Opmerkingen
CAtlExeModuleT vertegenwoordigt de module voor een toepassing (EXE) en bevat code die ondersteuning biedt voor het maken van een EXE, het verwerken van de opdrachtregel, het registreren van klasseobjecten, het uitvoeren van de berichtlus en het opschonen bij afsluiten.
Deze klasse is ontworpen om de prestaties te verbeteren wanneer COM-objecten op de EXE-server voortdurend worden gemaakt en vernietigd. Nadat het laatste COM-object is uitgebracht, wacht de EXE op een duur die is opgegeven door het gegevenslid CAtlExeModuleT::m_dwTimeOut . Als er tijdens deze periode geen activiteit is (dat wil gezegd dat er geen COM-objecten worden gemaakt), wordt het afsluitproces gestart.
Het gegevenslid CAtlExeModuleT::m_bDelayShutdown is een vlag die wordt gebruikt om te bepalen of de EXE het hierboven gedefinieerde mechanisme moet gebruiken. Als deze is ingesteld op false, wordt de module onmiddellijk beëindigd.
Zie ATL-moduleklassen voor meer informatie over modules in ATL.
Overnamehiërarchie
CAtlExeModuleT
Requirements
Header: atlbase.h
CAtlExeModuleT::CAtlExeModuleT
De constructor.
CAtlExeModuleT() throw();
Opmerkingen
Als de EXE-module niet kan worden geïnitialiseerd, wordt WinMain onmiddellijk geretourneerd zonder verdere verwerking.
CAtlExeModuleT::~CAtlExeModuleT
De destructor.
~CAtlExeModuleT() throw();
Opmerkingen
Alle toegewezen resources worden vrijgemaakt.
CAtlExeModuleT::InitializeCom
Initialiseert COM.
static HRESULT InitializeCom() throw();
Retourwaarde
Retourneert S_OK bij succes of een fout HRESULT bij fout.
Opmerkingen
Deze methode wordt aangeroepen vanuit de constructor en kan worden overschreven om COM op een andere manier te initialiseren dan de standaard implementatie. De standaard implementatie roept aan CoInitializeEx(NULL, COINIT_MULTITHREADED) of CoInitialize(NULL) is afhankelijk van de projectconfiguratie.
Voor het overschrijven van deze methode is normaal gesproken het overschrijven van CAtlExeModuleT:::UninitializeCom vereist.
CAtlExeModuleT::m_bDelayShutdown
Een vlag die aangeeft dat er een vertraging moet zijn bij het afsluiten van de module.
bool m_bDelayShutdown;
Opmerkingen
Zie het overzicht van CAtlExeModuleT voor meer informatie.
CAtlExeModuleT::m_dwPause
Een onderbrekingswaarde die wordt gebruikt om ervoor te zorgen dat alle objecten zijn verdwenen voordat ze worden afgesloten.
DWORD m_dwPause;
Opmerkingen
Wijzig deze waarde na het aanroepen van CAtlExeModuleT::InitializeCom om het aantal milliseconden in te stellen dat wordt gebruikt als de onderbrekingswaarde voor het afsluiten van de server. De standaardwaarde is 1000 milliseconden.
CAtlExeModuleT::m_dwTimeOut
Een time-outwaarde die wordt gebruikt om het lossen van de module uit te stellen.
DWORD m_dwTimeOut;
Opmerkingen
Wijzig deze waarde na het aanroepen van CAtlExeModuleT::InitializeCom om het aantal milliseconden te definiëren dat wordt gebruikt als time-outwaarde voor het afsluiten van de server. De standaardwaarde is 5000 milliseconden. Zie het overzicht van CAtlExeModuleT voor meer informatie.
CAtlExeModuleT::P arseCommandLine
Parseert de opdrachtregel en voert zo nodig registratie uit.
bool ParseCommandLine(LPCTSTR lpCmdLine, HRESULT* pnRetCode) throw();
Parameterwaarden
lpCmdLine
De opdrachtregel doorgegeven aan de toepassing.
pnRetCode
Het HRESULT dat overeenkomt met de registratie (indien deze plaatsvond).
Retourwaarde
Retourneer waar als de toepassing moet blijven worden uitgevoerd, anders onwaar.
Opmerkingen
Deze methode wordt aangeroepen vanuit CAtlExeModuleT::WinMain en kan worden overschreven om opdrachtregelopties te verwerken. De standaard implementatie controleert op opdrachtregelargumenten /RegServer en /UnRegServer en voert registratie of registratie uit.
CAtlExeModuleT::P ostMessageLoop
Deze methode wordt onmiddellijk aangeroepen nadat de berichtenlus is afgesloten.
HRESULT PostMessageLoop() throw();
Retourwaarde
Retourneert S_OK bij succes of een fout HRESULT bij fout.
Opmerkingen
Overschrijf deze methode om aangepaste toepassingsopruiming uit te voeren. De standaard implementatie roept CAtlExeModuleT::RevokeClassObjects aan.
CAtlExeModuleT::P reMessageLoop
Deze methode wordt onmiddellijk aangeroepen voordat u de berichtenlus invoert.
HRESULT PreMessageLoop(int nShowCmd) throw();
Parameterwaarden
nShowCmd
De waarde die is doorgegeven als de parameter nShowCmd in WinMain.
Retourwaarde
Retourneert S_OK bij succes of een fout HRESULT bij fout.
Opmerkingen
Overschrijf deze methode om aangepaste initialisatiecode voor de toepassing toe te voegen. De standaard implementatie registreert de klasseobjecten.
CAtlExeModuleT::RegisterClassObjects
Registreert het klasseobject met OLE, zodat andere toepassingen er verbinding mee kunnen maken.
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();
Parameterwaarden
dwClsContext
Hiermee geeft u de context op waarin het klasseobject moet worden uitgevoerd. Mogelijke waarden zijn CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER of CLSCTX_LOCAL_SERVER.
dwFlags
Bepaalt de verbindingstypen voor het klasseobject. Mogelijke waarden zijn REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE of REGCLS_MULTI_SEPARATE.
Retourwaarde
Retourneert S_OK over succes, S_FALSE als er geen klassen zijn om te registreren of een fout HRESULT bij fout.
CAtlExeModuleT::RevokeClassObjects
Hiermee verwijdert u het klasseobject.
HRESULT RevokeClassObjects() throw();
Retourwaarde
Retourneert S_OK over succes, S_FALSE als er geen klassen zijn om te registreren of een fout HRESULT bij fout.
CAtlExeModuleT::Run
Met deze methode wordt code uitgevoerd in de EXE-module om de berichtlus te initialiseren, uit te voeren en op te schonen.
HRESULT Run(int nShowCmd = SW_HIDE) throw();
Parameterwaarden
nShowCmd
Hiermee geeft u op hoe het venster moet worden weergegeven. Deze parameter kan een van de waarden zijn die worden besproken in de sectie WinMain . Standaard ingesteld op SW_HIDE.
Retourwaarde
Retourneert S_OK bij succes of een fout HRESULT bij fout.
Opmerkingen
Deze methode kan worden overschreven. In de praktijk is het echter beter om CAtlExeModuleT::P reMessageLoop, CAtlExeModuleT::RunMessageLoop of CAtlExeModuleT::P ostMessageLoop te overschrijven.
CAtlExeModuleT::RunMessageLoop
Met deze methode wordt de berichtenlus uitgevoerd.
void RunMessageLoop() throw();
Opmerkingen
Deze methode kan worden overschreven om het gedrag van de berichtenlus te wijzigen.
CAtlExeModuleT::UninitializeCom
Com niet geïnitialiseerd.
static void UninitializeCom() throw();
Opmerkingen
Deze methode roept standaard CoUninitialize aan en wordt aangeroepen vanuit de destructor. Overschrijf deze methode als u CAtlExeModuleT::InitializeCom overschrijft.
CAtlExeModuleT::Unlock
Hiermee wordt het aantal vergrendelingen van de module afgerekend.
LONG Unlock() throw();
Retourwaarde
Retourneert een waarde die nuttig kan zijn voor diagnostische gegevens of tests.
CAtlExeModuleT::WinMain
Met deze methode wordt de code geïmplementeerd die is vereist voor het uitvoeren van een EXE.
int WinMain(int nShowCmd) throw();
Parameterwaarden
nShowCmd
Hiermee geeft u op hoe het venster moet worden weergegeven. Deze parameter kan een van de waarden zijn die worden besproken in de sectie WinMain .
Retourwaarde
Retourneert de retourwaarde van het uitvoerbare bestand.
Opmerkingen
Deze methode kan worden overschreven. Als CAtlExeModuleT::P reMessageLoop, CAtlExeModuleT::P ostMessageLoop of CAtlExeModuleT::RunMessageLoop onvoldoende flexibiliteit biedt, is het mogelijk om de WinMain functie met deze methode te overschrijven.
Zie ook
ATLDuck-voorbeeld
CAtlModuleT-klasse
CAtlDllModuleT-klasse
Overzicht van klassen