Klasa CAtlExeModuleTCAtlExeModuleT Class

Ta klasa reprezentuje moduł aplikacji.This class represents the module for an application.

SkładniaSyntax

template <class T>
class ATL_NO_VTABLE CAtlExeModuleT : public CAtlModuleT<T>

ParametryParameters

TT
Klasa pochodna CAtlExeModuleT .Your class derived from CAtlExeModuleT.

Elementy członkowskieMembers

Konstruktory publicznePublic Constructors

NazwaName OpisDescription
CAtlExeModuleT::CAtlExeModuleTCAtlExeModuleT::CAtlExeModuleT Konstruktor.The constructor.
CAtlExeModuleT:: ~ CAtlExeModuleTCAtlExeModuleT::~CAtlExeModuleT Destruktor.The destructor.

Metody publicznePublic Methods

NazwaName OpisDescription
CAtlExeModuleT::InitializeComCAtlExeModuleT::InitializeCom Inicjuje model COM.Initializes COM.
CAtlExeModuleT::P arseCommandLineCAtlExeModuleT::ParseCommandLine Analizuje wiersz polecenia i przeprowadza rejestrację w razie potrzeby.Parses the command line and performs registration if necessary.
CAtlExeModuleT::P ostMessageLoopCAtlExeModuleT::PostMessageLoop Ta metoda jest wywoływana natychmiast po zakończeniu pętli komunikatów.This method is called immediately after the message loop exits.
CAtlExeModuleT::P reMessageLoopCAtlExeModuleT::PreMessageLoop Ta metoda jest wywoływana bezpośrednio przed wprowadzeniem pętli komunikatów.This method is called immediately before entering the message loop.
CAtlExeModuleT::RegisterClassObjectsCAtlExeModuleT::RegisterClassObjects Rejestruje obiekt klasy.Registers the class object.
CAtlExeModuleT::RevokeClassObjectsCAtlExeModuleT::RevokeClassObjects Odwołuje obiekt klasy.Revokes the class object.
CAtlExeModuleT:: RunCAtlExeModuleT::Run Ta metoda wykonuje kod w module EXE, aby inicjować, uruchamiać pętlę komunikatów i czyścić.This method executes code in the EXE module to initialize, run the message loop, and clean up.
CAtlExeModuleT::RunMessageLoopCAtlExeModuleT::RunMessageLoop Ta metoda wykonuje pętlę komunikatów.This method executes the message loop.
CAtlExeModuleT::UninitializeComCAtlExeModuleT::UninitializeCom Inicjuje model COM.Uninitializes COM.
CAtlExeModuleT:: UnlockCAtlExeModuleT::Unlock Zmniejsza liczbę blokad modułu.Decrements the module's lock count.
CAtlExeModuleT:: WinMainCAtlExeModuleT::WinMain Ta metoda implementuje kod wymagany do uruchomienia pliku EXE.This method implements the code required to run an EXE.

Publiczne elementy członkowskie danychPublic Data Members

NazwaName OpisDescription
CAtlExeModuleT:: m_bDelayShutdownCAtlExeModuleT::m_bDelayShutdown Flaga wskazująca, że należy zamknąć moduł.A flag indicating that there should be a delay shutting down the module.
CAtlExeModuleT:: m_dwPauseCAtlExeModuleT::m_dwPause Wartość wstrzymania używana do upewnienia się, że wszystkie obiekty zostały wydane przed zamknięciem.A pause value used to ensure all objects are released before shutdown.
CAtlExeModuleT:: m_dwTimeOutCAtlExeModuleT::m_dwTimeOut Wartość limitu czasu używana do opóźniania zwalniania modułu.A time-out value used to delay the unloading of the module.

UwagiRemarks

CAtlExeModuleT reprezentuje moduł dla aplikacji (EXE) i zawiera kod, który obsługuje tworzenie pliku EXE, przetwarzanie wiersza polecenia, rejestrowanie obiektów klasy, uruchamianie pętli komunikatów i czyszczenie przy zamykaniu.CAtlExeModuleT represents the module for an application (EXE) and contains code that supports creating an EXE, processing the command line, registering class objects, running the message loop, and cleaning up on exit.

Ta klasa została zaprojektowana w celu zwiększenia wydajności, gdy obiekty COM na serwerze EXE są ciągle tworzone i niszczone.This class is designed to improve performance when COM objects in the EXE server are continually created and destroyed. Po wydaniu ostatniego obiektu COM, plik EXE czeka przez czas określony przez element członkowski danych CAtlExeModuleT:: m_dwTimeOut .After the last COM object is released, the EXE waits for a duration specified by the CAtlExeModuleT::m_dwTimeOut data member. Jeśli w tym okresie nie ma żadnych działań (oznacza to, że żadne obiekty COM nie są tworzone), proces zamykania zostanie zainicjowany.If there is no activity during this period (that is, no COM objects are created), the shutdown process is initiated.

Element członkowski danych CAtlExeModuleT:: m_bDelayShutdown jest flagą używaną do ustalenia, czy exe powinien używać mechanizmu zdefiniowanego powyżej.The CAtlExeModuleT::m_bDelayShutdown data member is a flag used to determine if the EXE should use the mechanism defined above. Jeśli wartość jest równa false, moduł zostanie natychmiast zakończony.If it is set to false, then the module will terminate immediately.

Aby uzyskać więcej informacji na temat modułów w ATL, zobacz klasy modułów ATL.For more information on modules in ATL, see ATL Module Classes.

Hierarchia dziedziczeniaInheritance Hierarchy

_ATL_MODULE_ATL_MODULE

CAtlModuleCAtlModule

CAtlModuleTCAtlModuleT

CAtlExeModuleT

WymaganiaRequirements

Nagłówek: atlbase. hHeader: atlbase.h

CAtlExeModuleT::CAtlExeModuleTCAtlExeModuleT::CAtlExeModuleT

Konstruktor.The constructor.

CAtlExeModuleT() throw();

UwagiRemarks

Jeśli nie można zainicjować modułu EXE, WinMain natychmiast zwróci bez przetwarzania.If the EXE module could not be initialized, WinMain will immediately return without further processing.

CAtlExeModuleT:: ~ CAtlExeModuleTCAtlExeModuleT::~CAtlExeModuleT

Destruktor.The destructor.

~CAtlExeModuleT() throw();

UwagiRemarks

Zwalnia wszystkie przydzieloną zasoby.Frees all allocated resources.

CAtlExeModuleT::InitializeComCAtlExeModuleT::InitializeCom

Inicjuje model COM.Initializes COM.

static HRESULT InitializeCom() throw();

Wartość zwracanaReturn Value

Zwraca S_OK po powodzeniu lub błąd HRESULT w przypadku niepowodzenia.Returns S_OK on success, or an error HRESULT on failure.

UwagiRemarks

Ta metoda jest wywoływana z konstruktora i można ją zastąpić, aby zainicjować COM w sposób inny niż domyślna.This method is called from the constructor and can be overridden to initialize COM in a manner different from the default implementation. Domyślna implementacja albo w CoInitializeEx(NULL, COINIT_MULTITHREADED) zależności od CoInitialize(NULL) konfiguracji projektu.The default implementation either calls CoInitializeEx(NULL, COINIT_MULTITHREADED) or CoInitialize(NULL) depending on the project configuration.

Zastąpienie tej metody zwykle wymaga przesłaniania CAtlExeModuleT:: UninitializeCom.Overriding this method normally requires overriding CAtlExeModuleT::UninitializeCom.

CAtlExeModuleT:: m_bDelayShutdownCAtlExeModuleT::m_bDelayShutdown

Flaga wskazująca, że należy zamknąć moduł.A flag indicating that there should be a delay shutting down the module.

bool m_bDelayShutdown;

UwagiRemarks

Aby uzyskać szczegółowe informacje, zobacz Omówienie usługi CAtlExeModuleT .See the CAtlExeModuleT Overview for details.

CAtlExeModuleT:: m_dwPauseCAtlExeModuleT::m_dwPause

Wartość wstrzymania używana do upewnienia się, że wszystkie obiekty zostały utracone przed zamknięciem.A pause value used to ensure all objects are gone before shutdown.

DWORD m_dwPause;

UwagiRemarks

Zmień tę wartość po wywołaniu CAtlExeModuleT:: InitializeCom , aby ustawić liczbę milisekund użytą jako wartość wstrzymania na potrzeby zamykania serwera.Change this value after calling CAtlExeModuleT::InitializeCom to set the number of milliseconds used as the pause value for shutting down the server. Wartość domyślna to 1000 milisekund.The default value is 1000 milliseconds.

CAtlExeModuleT:: m_dwTimeOutCAtlExeModuleT::m_dwTimeOut

Wartość limitu czasu używana do opóźniania zwalniania modułu.A time-out value used to delay the unloading of the module.

DWORD m_dwTimeOut;

UwagiRemarks

Zmień tę wartość po wywołaniu CAtlExeModuleT:: InitializeCom , aby określić liczbę milisekund użytych jako wartość limitu czasu na potrzeby zamykania serwera.Change this value after calling CAtlExeModuleT::InitializeCom to define the number of milliseconds used as the time-out value for shutting down the server. Wartość domyślna to 5000 milisekund.The default value is 5000 milliseconds. Aby uzyskać więcej informacji, zobacz Omówienie CAtlExeModuleT .See the CAtlExeModuleT Overview for more details.

CAtlExeModuleT::P arseCommandLineCAtlExeModuleT::ParseCommandLine

Analizuje wiersz polecenia i przeprowadza rejestrację w razie potrzeby.Parses the command line and performs registration if necessary.

bool ParseCommandLine(LPCTSTR lpCmdLine, HRESULT* pnRetCode) throw();

ParametryParameters

lpCmdLinelpCmdLine
Wiersz polecenia przeszedł do aplikacji.The command line passed to the application.

pnRetCodepnRetCode
WYNIK HRESULT odpowiadający rejestracji (jeśli miało miejsce).The HRESULT corresponding to the registration (if it took place).

Wartość zwracanaReturn Value

Zwróć wartość true, jeśli aplikacja powinna nadal działać, w przeciwnym razie false.Return true if the application should continue to run, otherwise false.

UwagiRemarks

Ta metoda jest wywoływana z CAtlExeModuleT:: WinMain i można ją zastąpić, aby obsługiwała przełączniki wiersza polecenia.This method is called from CAtlExeModuleT::WinMain and can be overridden to handle command-line switches. Domyślna implementacja dla argumentów wiersza polecenia /regserver i przełącznikiem/unregserver i przeprowadza rejestrację lub Wyrejestrowanie.The default implementation checks for /RegServer and /UnRegServer command-line arguments and performs registration or unregistration.

CAtlExeModuleT::P ostMessageLoopCAtlExeModuleT::PostMessageLoop

Ta metoda jest wywoływana natychmiast po zakończeniu pętli komunikatów.This method is called immediately after the message loop exits.

HRESULT PostMessageLoop() throw();

Wartość zwracanaReturn Value

Zwraca S_OK po powodzeniu lub błąd HRESULT w przypadku niepowodzenia.Returns S_OK on success, or an error HRESULT on failure.

UwagiRemarks

Zastąp tę metodę, aby przeprowadzić oczyszczanie aplikacji niestandardowych.Override this method to perform custom application cleanup. Domyślne wywołania implementacji CAtlExeModuleT:: RevokeClassObjects.The default implementation calls CAtlExeModuleT::RevokeClassObjects.

CAtlExeModuleT::P reMessageLoopCAtlExeModuleT::PreMessageLoop

Ta metoda jest wywoływana bezpośrednio przed wprowadzeniem pętli komunikatów.This method is called immediately before entering the message loop.

HRESULT PreMessageLoop(int nShowCmd) throw();

ParametryParameters

nShowCmdnShowCmd
Wartość przeniesiona jako parametr nShowCmd w WinMain.The value passed as the nShowCmd parameter in WinMain.

Wartość zwracanaReturn Value

Zwraca S_OK po powodzeniu lub błąd HRESULT w przypadku niepowodzenia.Returns S_OK on success, or an error HRESULT on failure.

UwagiRemarks

Zastąp tę metodę, aby dodać niestandardowy kod inicjujący dla aplikacji.Override this method to add custom initialization code for the application. Domyślna implementacja rejestruje obiekty klas.The default implementation registers the class objects.

CAtlExeModuleT::RegisterClassObjectsCAtlExeModuleT::RegisterClassObjects

Rejestruje obiekt klasy za pomocą OLE, tak aby inne aplikacje mogły się z nim połączyć.Registers the class object with OLE so other applications can connect to it.

HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();

ParametryParameters

dwClsContextdwClsContext
Określa kontekst, w którym obiekt klasy ma być uruchamiany.Specifies the context in which the class object is to be run. Możliwe wartości to CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER lub CLSCTX_LOCAL_SERVER.Possible values are CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, or CLSCTX_LOCAL_SERVER.

flagiDWdwFlags
Określa typy połączeń do obiektu klasy.Determines the connection types to the class object. Możliwe wartości to REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE lub REGCLS_MULTI_SEPARATE.Possible values are REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE, or REGCLS_MULTI_SEPARATE.

Wartość zwracanaReturn Value

Zwraca S_OK po powodzeniu, S_FALSE, jeśli nie ma żadnych klas do zarejestrowania, lub błąd HRESULT w przypadku niepowodzenia.Returns S_OK on success, S_FALSE if there were no classes to register, or an error HRESULT on failure.

CAtlExeModuleT::RevokeClassObjectsCAtlExeModuleT::RevokeClassObjects

Usuwa obiekt Class.Removes the class object.

HRESULT RevokeClassObjects() throw();

Wartość zwracanaReturn Value

Zwraca S_OK po powodzeniu, S_FALSE, jeśli nie ma żadnych klas do zarejestrowania, lub błąd HRESULT w przypadku niepowodzenia.Returns S_OK on success, S_FALSE if there were no classes to register, or an error HRESULT on failure.

CAtlExeModuleT:: RunCAtlExeModuleT::Run

Ta metoda wykonuje kod w module EXE, aby inicjować, uruchamiać pętlę komunikatów i czyścić.This method executes code in the EXE module to initialize, run the message loop, and clean up.

HRESULT Run(int nShowCmd = SW_HIDE) throw();

ParametryParameters

nShowCmdnShowCmd
Określa sposób wyświetlania okna.Specifies how the window is to be shown. Ten parametr może być jedną z wartości omówionych w sekcji WinMain .This parameter can be one of the values discussed in the WinMain section. Wartość domyślna to SW_HIDE.Defaults to SW_HIDE.

Wartość zwracanaReturn Value

Zwraca S_OK po powodzeniu lub błąd HRESULT w przypadku niepowodzenia.Returns S_OK on success, or an error HRESULT on failure.

UwagiRemarks

Tę metodę można zastąpić.This method can be overridden. Jednakże w przypadku lepiej przesłonić CAtlExeModuleT::P remessageloop, CAtlExeModuleT:: RunMessageLooplub CAtlExeModuleT::P ostmessageloop .However, in practice is it better to override CAtlExeModuleT::PreMessageLoop, CAtlExeModuleT::RunMessageLoop, or CAtlExeModuleT::PostMessageLoop instead.

CAtlExeModuleT::RunMessageLoopCAtlExeModuleT::RunMessageLoop

Ta metoda wykonuje pętlę komunikatów.This method executes the message loop.

void RunMessageLoop() throw();

UwagiRemarks

Tę metodę można zastąpić, aby zmienić zachowanie pętli komunikatów.This method can be overridden to change the behavior of the message loop.

CAtlExeModuleT::UninitializeComCAtlExeModuleT::UninitializeCom

Inicjuje model COM.Uninitializes COM.

static void UninitializeCom() throw();

UwagiRemarks

Domyślnie ta metoda wywołuje CoUninitialize i jest wywoływana z destruktora.By default this method simply calls CoUninitialize and is called from the destructor. Zastąp tę metodę, jeśli zastąpisz CAtlExeModuleT:: InitializeCom.Override this method if you override CAtlExeModuleT::InitializeCom.

CAtlExeModuleT:: UnlockCAtlExeModuleT::Unlock

Zmniejsza liczbę blokad modułu.Decrements the module's lock count.

LONG Unlock() throw();

Wartość zwracanaReturn Value

Zwraca wartość, która może być przydatna w przypadku diagnostyki lub testowania.Returns a value which may be useful for diagnostics or testing.

CAtlExeModuleT:: WinMainCAtlExeModuleT::WinMain

Ta metoda implementuje kod wymagany do uruchomienia pliku EXE.This method implements the code required to run an EXE.

int WinMain(int nShowCmd) throw();

ParametryParameters

nShowCmdnShowCmd
Określa sposób wyświetlania okna.Specifies how the window is to be shown. Ten parametr może być jedną z wartości omówionych w sekcji WinMain .This parameter can be one of the values discussed in the WinMain section.

Wartość zwracanaReturn Value

Zwraca wartość zwracaną przez plik wykonywalny.Returns the executable's return value.

UwagiRemarks

Tę metodę można zastąpić.This method can be overridden. Jeśli przesłaniasz CAtlExeModuleT::P remessageloop, CAtlExeModuleT::P ostmessagelooplub CAtlExeModuleT:: RunMessageLoop nie zapewnia wystarczającej elastyczności, można przesłonić WinMain funkcję za pomocą tej metody.If overriding CAtlExeModuleT::PreMessageLoop, CAtlExeModuleT::PostMessageLoop, or CAtlExeModuleT::RunMessageLoop doesn't provide enough flexibility, it's possible to override the WinMain function using this method.

Zobacz teżSee also

Przykład ATLDuckATLDuck Sample
Klasa CAtlModuleTCAtlModuleT Class
Klasa CAtlDllModuleTCAtlDllModuleT Class
Przegląd klasClass Overview