Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ta klasa reprezentuje moduł dla aplikacji.
Składnia
template <class T>
class ATL_NO_VTABLE CAtlExeModuleT : public CAtlModuleT<T>
Parametry
T
Klasa pochodzi z klasy CAtlExeModuleT.
Elementy członkowskie
Konstruktory publiczne
| Nazwa/nazwisko | opis |
|---|---|
| CAtlExeModuleT::CAtlExeModuleT | Konstruktor. |
| CAtlExeModuleT::~CAtlExeModuleT | Destruktora. |
Metody publiczne
| Nazwa/nazwisko | opis |
|---|---|
| CAtlExeModuleT::InitializeCom | Inicjuje com. |
| CAtlExeModuleT::P arseCommandLine | Analizuje wiersz polecenia i wykonuje rejestrację w razie potrzeby. |
| CAtlExeModuleT::P ostMessageLoop | Ta metoda jest wywoływana natychmiast po zakończeniu pętli komunikatów. |
| CAtlExeModuleT::P reMessageLoop | Ta metoda jest wywoływana bezpośrednio przed wprowadzeniem pętli komunikatów. |
| CAtlExeModuleT::RegisterClassObjects | Rejestruje obiekt klasy. |
| CAtlExeModuleT::RevokeClassObjects | Odwołuje obiekt klasy. |
| CAtlExeModuleT::Run | Ta metoda wykonuje kod w module EXE, aby zainicjować, uruchomić pętlę komunikatów i wyczyścić. |
| CAtlExeModuleT::RunMessageLoop | Ta metoda wykonuje pętlę komunikatu. |
| CAtlExeModuleT::UninitializeCom | Uninitializes COM. |
| CAtlExeModuleT::Unlock | Dekrementuje liczbę blokad modułu. |
| CAtlExeModuleT::WinMain | Ta metoda implementuje kod wymagany do uruchomienia pliku EXE. |
Publiczne elementy członkowskie danych
| Nazwa/nazwisko | opis |
|---|---|
| CAtlExeModuleT::m_bDelayShutdown | Flaga wskazująca, że powinno nastąpić opóźnienie zamknięcia modułu. |
| CAtlExeModuleT::m_dwPause | Wartość wstrzymania używana do zapewnienia, że wszystkie obiekty zostaną zwolnione przed zamknięciem. |
| CAtlExeModuleT::m_dwTimeOut | Wartość limitu czasu używana do opóźnienia zwolnienia modułu. |
Uwagi
CAtlExeModuleT reprezentuje moduł dla aplikacji (EXE) i zawiera kod, który obsługuje tworzenie pliku EXE, przetwarzanie wiersza polecenia, rejestrowanie obiektów klas, uruchamianie pętli komunikatów i czyszczenie po zakończeniu.
Ta klasa została zaprojektowana w celu zwiększenia wydajności, gdy obiekty COM na serwerze EXE są stale tworzone i niszczone. Po wydaniu ostatniego obiektu COM plik EXE czeka na czas określony przez element członkowski danych CAtlExeModuleT::m_dwTimeOut . Jeśli w tym okresie nie ma żadnych działań (czyli nie są tworzone żadne obiekty COM), proces zamykania jest inicjowany.
Element członkowski danych CAtlExeModuleT::m_bDelayShutdown jest flagą używaną do określenia, czy plik EXE powinien używać mechanizmu zdefiniowanego powyżej. Jeśli zostanie ustawiona wartość false, moduł zakończy się natychmiast.
Aby uzyskać więcej informacji na temat modułów w atl, zobacz ATL Module Classes (Klasy modułów ATL).
Hierarchia dziedziczenia
CAtlExeModuleT
Wymagania
Nagłówek: atlbase.h
CAtlExeModuleT::CAtlExeModuleT
Konstruktor.
CAtlExeModuleT() throw();
Uwagi
Jeśli nie można zainicjować modułu EXE, funkcja WinMain natychmiast powróci bez dalszego przetwarzania.
CAtlExeModuleT::~CAtlExeModuleT
Destruktora.
~CAtlExeModuleT() throw();
Uwagi
Zwalnia wszystkie przydzielone zasoby.
CAtlExeModuleT::InitializeCom
Inicjuje com.
static HRESULT InitializeCom() throw();
Wartość zwracana
Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.
Uwagi
Ta metoda jest wywoływana z konstruktora i może zostać zastąpiona w celu zainicjowania modelu COM w sposób inny niż domyślna implementacja. Domyślna implementacja wywołuje wywołania CoInitializeEx(NULL, COINIT_MULTITHREADED) lub CoInitialize(NULL) w zależności od konfiguracji projektu.
Zastąpienie tej metody zwykle wymaga zastąpienia CAtlExeModuleT::UninitializeCom.
CAtlExeModuleT::m_bDelayShutdown
Flaga wskazująca, że powinno nastąpić opóźnienie zamknięcia modułu.
bool m_bDelayShutdown;
Uwagi
Aby uzyskać szczegółowe informacje, zobacz Omówienie CAtlExeModuleT.
CAtlExeModuleT::m_dwPause
Wartość wstrzymania używana do zapewnienia, że wszystkie obiekty zostały zamknięte przed zamknięciem.
DWORD m_dwPause;
Uwagi
Zmień tę wartość po wywołaniu metody CAtlExeModuleT::InitializeCom , aby ustawić liczbę milisekund używanych jako wartość wstrzymania dla zamykania serwera. Wartość domyślna to 1000 milisekund.
CAtlExeModuleT::m_dwTimeOut
Wartość limitu czasu używana do opóźnienia zwolnienia modułu.
DWORD m_dwTimeOut;
Uwagi
Zmień tę wartość po wywołaniu klasy CAtlExeModuleT::InitializeCom , aby zdefiniować liczbę milisekund używanych jako wartość limitu czasu zamknięcia serwera. Wartość domyślna to 5000 milisekund. Aby uzyskać więcej informacji, zobacz Omówienie CAtlExeModuleT.
CAtlExeModuleT::P arseCommandLine
Analizuje wiersz polecenia i wykonuje rejestrację w razie potrzeby.
bool ParseCommandLine(LPCTSTR lpCmdLine, HRESULT* pnRetCode) throw();
Parametry
lpCmdLine
Wiersz polecenia przekazany do aplikacji.
pnRetCode
HRESULT odpowiadający rejestracji (jeśli miało to miejsce).
Wartość zwracana
Zwraca wartość true, jeśli aplikacja powinna nadal działać, w przeciwnym razie wartość false.
Uwagi
Ta metoda jest wywoływana z CAtlExeModuleT::WinMain i może zostać zastąpiona do obsługi przełączników wiersza polecenia. Domyślna implementacja sprawdza /RegServer i /UnRegServer argumenty wiersza polecenia i wykonuje rejestrację lub wyrejestrowanie.
CAtlExeModuleT::P ostMessageLoop
Ta metoda jest wywoływana natychmiast po zakończeniu pętli komunikatów.
HRESULT PostMessageLoop() throw();
Wartość zwracana
Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.
Uwagi
Zastąpij tę metodę, aby wykonać niestandardowe oczyszczanie aplikacji. Domyślna implementacja wywołuje klasy CAtlExeModuleT::RevokeClassObjects.
CAtlExeModuleT::P reMessageLoop
Ta metoda jest wywoływana bezpośrednio przed wprowadzeniem pętli komunikatów.
HRESULT PreMessageLoop(int nShowCmd) throw();
Parametry
nShowCmd
Wartość przekazana jako parametr nShowCmd w systemie WinMain.
Wartość zwracana
Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.
Uwagi
Zastąpij tę metodę, aby dodać niestandardowy kod inicjowania dla aplikacji. Domyślna implementacja rejestruje obiekty klasy.
CAtlExeModuleT::RegisterClassObjects
Rejestruje obiekt klasy w obiekcie OLE, aby inne aplikacje mogły się z nim łączyć.
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();
Parametry
dwClsContext
Określa kontekst, w którym ma zostać uruchomiony obiekt klasy. Możliwe wartości to CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER lub CLSCTX_LOCAL_SERVER.
dwFlags
Określa typy połączeń z obiektem klasy. Możliwe wartości to REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE lub REGCLS_MULTI_SEPARATE.
Wartość zwracana
Zwraca S_OK powodzenia, S_FALSE jeśli nie było klas do zarejestrowania lub błąd HRESULT w przypadku niepowodzenia.
CAtlExeModuleT::RevokeClassObjects
Usuwa obiekt klasy.
HRESULT RevokeClassObjects() throw();
Wartość zwracana
Zwraca S_OK powodzenia, S_FALSE jeśli nie było klas do zarejestrowania lub błąd HRESULT w przypadku niepowodzenia.
CAtlExeModuleT::Run
Ta metoda wykonuje kod w module EXE, aby zainicjować, uruchomić pętlę komunikatów i wyczyścić.
HRESULT Run(int nShowCmd = SW_HIDE) throw();
Parametry
nShowCmd
Określa sposób wyświetlania okna. Ten parametr może być jedną z wartości omówionych w sekcji WinMain . Wartość domyślna to SW_HIDE.
Wartość zwracana
Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.
Uwagi
Tę metodę można zastąpić. Jednak w praktyce lepiej zastąpić CAtlExeModuleT::P reMessageLoop, CAtlExeModuleT::RunMessageLoop lub CAtlExeModuleT::P ostMessageLoop.
CAtlExeModuleT::RunMessageLoop
Ta metoda wykonuje pętlę komunikatu.
void RunMessageLoop() throw();
Uwagi
Tę metodę można zastąpić, aby zmienić zachowanie pętli komunikatów.
CAtlExeModuleT::UninitializeCom
Uninitializes COM.
static void UninitializeCom() throw();
Uwagi
Domyślnie ta metoda po prostu wywołuje metodę CoUninitialize i jest wywoływana z destruktora. Zastąpuj tę metodę, jeśli zastąpisz metodę CAtlExeModuleT::InitializeCom.
CAtlExeModuleT::Unlock
Dekrementuje liczbę blokad modułu.
LONG Unlock() throw();
Wartość zwracana
Zwraca wartość, która może być przydatna do diagnostyki lub testowania.
CAtlExeModuleT::WinMain
Ta metoda implementuje kod wymagany do uruchomienia pliku EXE.
int WinMain(int nShowCmd) throw();
Parametry
nShowCmd
Określa sposób wyświetlania okna. Ten parametr może być jedną z wartości omówionych w sekcji WinMain .
Wartość zwracana
Zwraca wartość zwracaną pliku wykonywalnego.
Uwagi
Tę metodę można zastąpić. Jeśli zastąpienie CAtlExeModuleT::P reMessageLoop, CAtlExeModuleT::P ostMessageLoop lub CAtlExeModuleT::RunMessageLoop nie zapewnia wystarczającej elastyczności, można zastąpić WinMain funkcję przy użyciu tej metody.
Zobacz też
Przykład ATLDuck
Klasa CAtlModuleT
Klasa CAtlDllModuleT
Omówienie klasy