Класс CAtlExeModuleTCAtlExeModuleT Class

Этот класс представляет модуль для приложения.This class represents the module for an application.

СинтаксисSyntax

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

ПараметрыParameters

TT
Класс, производный от CAtlExeModuleT .Your class derived from CAtlExeModuleT.

ЭлементыMembers

Открытые конструкторыPublic Constructors

nameName ОписаниеDescription
CAtlExeModuleT:: CAtlExeModuleTCAtlExeModuleT::CAtlExeModuleT Конструктор.The constructor.
CAtlExeModuleT:: ~ CAtlExeModuleTCAtlExeModuleT::~CAtlExeModuleT ДеструкторThe destructor.

Открытые методыPublic Methods

nameName ОписаниеDescription
CAtlExeModuleT:: ИнитиализекомCAtlExeModuleT::InitializeCom Инициализирует COM.Initializes COM.
CAtlExeModuleT::P АрсекоммандлинеCAtlExeModuleT::ParseCommandLine Анализирует командную строку и при необходимости выполняет регистрацию.Parses the command line and performs registration if necessary.
CAtlExeModuleT::P ОстмессажелупCAtlExeModuleT::PostMessageLoop Этот метод вызывается сразу после завершения работы цикла сообщений.This method is called immediately after the message loop exits.
CAtlExeModuleT::P РемессажелупCAtlExeModuleT::PreMessageLoop Этот метод вызывается непосредственно перед входом в цикл обработки сообщений.This method is called immediately before entering the message loop.
CAtlExeModuleT:: РегистерклассобжектсCAtlExeModuleT::RegisterClassObjects Регистрирует объект класса.Registers the class object.
CAtlExeModuleT:: РевокеклассобжектсCAtlExeModuleT::RevokeClassObjects Отменяет объект класса.Revokes the class object.
CAtlExeModuleT:: RunCAtlExeModuleT::Run Этот метод выполняет код в модуле EXE для инициализации, выполнения цикла обработки сообщений и очистки.This method executes code in the EXE module to initialize, run the message loop, and clean up.
CAtlExeModuleT:: РунмессажелупCAtlExeModuleT::RunMessageLoop Этот метод выполняет цикл обработки сообщений.This method executes the message loop.
CAtlExeModuleT:: УнинитиализекомCAtlExeModuleT::UninitializeCom Отменяет инициализацию COM.Uninitializes COM.
CAtlExeModuleT:: UnlockCAtlExeModuleT::Unlock Уменьшает счетчик блокировок модуля.Decrements the module's lock count.
CAtlExeModuleT:: WinMainCAtlExeModuleT::WinMain Этот метод реализует код, необходимый для запуска EXE.This method implements the code required to run an EXE.

Открытые члены данныхPublic Data Members

ИмяName ОписаниеDescription
CAtlExeModuleT:: m_bDelayShutdownCAtlExeModuleT::m_bDelayShutdown Флаг, указывающий на задержку завершения работы модуля.A flag indicating that there should be a delay shutting down the module.
CAtlExeModuleT:: m_dwPauseCAtlExeModuleT::m_dwPause Значение паузы, используемое для обеспечения освобождения всех объектов до завершения работы.A pause value used to ensure all objects are released before shutdown.
CAtlExeModuleT:: m_dwTimeOutCAtlExeModuleT::m_dwTimeOut Значение времени ожидания, используемое для задержки выгрузки модуля.A time-out value used to delay the unloading of the module.

КомментарииRemarks

CAtlExeModuleT представляет модуль для приложения (EXE) и содержит код, который поддерживает создание EXE-файла, обработку командной строки, регистрацию объектов класса, выполнение цикла обработки сообщений и очистку при выходе.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.

Этот класс предназначен для повышения производительности при постоянном создании и удалении COM-объектов на сервере EXE.This class is designed to improve performance when COM objects in the EXE server are continually created and destroyed. После освобождения последнего объекта COM EXE-файл ожидает длительности, заданной элементом данных CAtlExeModuleT:: m_dwTimeOut .After the last COM object is released, the EXE waits for a duration specified by the CAtlExeModuleT::m_dwTimeOut data member. Если в течение этого периода действия не выполняются (то есть объекты COM не создаются), инициируется процесс завершения работы.If there is no activity during this period (that is, no COM objects are created), the shutdown process is initiated.

Элемент данных CAtlExeModuleT:: m_bDelayShutdown — это флаг, используемый для определения того, должен ли EXE-файл использовать механизм, определенный выше.The CAtlExeModuleT::m_bDelayShutdown data member is a flag used to determine if the EXE should use the mechanism defined above. Если задано значение false, модуль немедленно завершит работу.If it is set to false, then the module will terminate immediately.

Дополнительные сведения о модулях в ATL см. в разделе Классы модулей ATL.For more information on modules in ATL, see ATL Module Classes.

Иерархия наследованияInheritance Hierarchy

_ATL_MODULE_ATL_MODULE

катлмодулеCAtlModule

катлмодулетCAtlModuleT

CAtlExeModuleT

ТребованияRequirements

Заголовок: atlbase. hHeader: atlbase.h

CAtlExeModuleT:: CAtlExeModuleTCAtlExeModuleT::CAtlExeModuleT

Конструктор.The constructor.

CAtlExeModuleT() throw();

КомментарииRemarks

Если не удалось инициализировать модуль EXE, то WinMain немедленно вернется без дальнейшей обработки.If the EXE module could not be initialized, WinMain will immediately return without further processing.

CAtlExeModuleT:: ~ CAtlExeModuleTCAtlExeModuleT::~CAtlExeModuleT

ДеструкторThe destructor.

~CAtlExeModuleT() throw();

КомментарииRemarks

Освобождает все выделенные ресурсы.Frees all allocated resources.

CAtlExeModuleT:: ИнитиализекомCAtlExeModuleT::InitializeCom

Инициализирует COM.Initializes COM.

static HRESULT InitializeCom() throw();

Возвращаемое значениеReturn Value

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.Returns S_OK on success, or an error HRESULT on failure.

КомментарииRemarks

Этот метод вызывается из конструктора и может быть переопределен для инициализации COM способом, отличным от реализации по умолчанию.This method is called from the constructor and can be overridden to initialize COM in a manner different from the default implementation. Реализация по умолчанию либо вызывает, CoInitializeEx(NULL, COINIT_MULTITHREADED) либо в CoInitialize(NULL) зависимости от конфигурации проекта.The default implementation either calls CoInitializeEx(NULL, COINIT_MULTITHREADED) or CoInitialize(NULL) depending on the project configuration.

Для переопределения этого метода обычно требуется переопределение CAtlExeModuleT:: унинитиализеком.Overriding this method normally requires overriding CAtlExeModuleT::UninitializeCom.

CAtlExeModuleT:: m_bDelayShutdownCAtlExeModuleT::m_bDelayShutdown

Флаг, указывающий на задержку завершения работы модуля.A flag indicating that there should be a delay shutting down the module.

bool m_bDelayShutdown;

КомментарииRemarks

Дополнительные сведения см. в обзоре CAtlExeModuleT .See the CAtlExeModuleT Overview for details.

CAtlExeModuleT:: m_dwPauseCAtlExeModuleT::m_dwPause

Значение паузы, используемое для проверки того, что все объекты исчезают перед завершением работы.A pause value used to ensure all objects are gone before shutdown.

DWORD m_dwPause;

КомментарииRemarks

Измените это значение после вызова CAtlExeModuleT:: инитиализеком , чтобы задать количество миллисекунд, используемых в качестве значения приостановки для завершения работы сервера.Change this value after calling CAtlExeModuleT::InitializeCom to set the number of milliseconds used as the pause value for shutting down the server. Значение по умолчанию — 1000 миллисекунд.The default value is 1000 milliseconds.

CAtlExeModuleT:: m_dwTimeOutCAtlExeModuleT::m_dwTimeOut

Значение времени ожидания, используемое для задержки выгрузки модуля.A time-out value used to delay the unloading of the module.

DWORD m_dwTimeOut;

КомментарииRemarks

Измените это значение после вызова CAtlExeModuleT:: инитиализеком , чтобы определить количество миллисекунд, использованных в качестве значения времени ожидания при завершении работы сервера.Change this value after calling CAtlExeModuleT::InitializeCom to define the number of milliseconds used as the time-out value for shutting down the server. Значение по умолчанию — 5000 миллисекунд.The default value is 5000 milliseconds. Дополнительные сведения см. в обзоре CAtlExeModuleT .See the CAtlExeModuleT Overview for more details.

CAtlExeModuleT::P АрсекоммандлинеCAtlExeModuleT::ParseCommandLine

Анализирует командную строку и при необходимости выполняет регистрацию.Parses the command line and performs registration if necessary.

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

ПараметрыParameters

лпкмдлинеlpCmdLine
Командная строка, передаваемая приложению.The command line passed to the application.

пнреткодеpnRetCode
Значение HRESULT, соответствующее регистрации (если оно было принято).The HRESULT corresponding to the registration (if it took place).

Возвращаемое значениеReturn Value

Возвращает значение true, если приложение должно продолжать работу; в противном случае — значение false.Return true if the application should continue to run, otherwise false.

КомментарииRemarks

Этот метод вызывается из CAtlExeModuleT:: WinMain и может быть переопределен для управления параметрами командной строки.This method is called from CAtlExeModuleT::WinMain and can be overridden to handle command-line switches. Реализация по умолчанию проверяет аргументы командной строки /regserver и /UnRegServer и выполняет регистрацию или отмену регистрации.The default implementation checks for /RegServer and /UnRegServer command-line arguments and performs registration or unregistration.

CAtlExeModuleT::P ОстмессажелупCAtlExeModuleT::PostMessageLoop

Этот метод вызывается сразу после завершения работы цикла сообщений.This method is called immediately after the message loop exits.

HRESULT PostMessageLoop() throw();

Возвращаемое значениеReturn Value

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.Returns S_OK on success, or an error HRESULT on failure.

КомментарииRemarks

Переопределите этот метод для выполнения пользовательской очистки приложения.Override this method to perform custom application cleanup. Реализация по умолчанию вызывает CAtlExeModuleT:: ревокеклассобжектс.The default implementation calls CAtlExeModuleT::RevokeClassObjects.

CAtlExeModuleT::P РемессажелупCAtlExeModuleT::PreMessageLoop

Этот метод вызывается непосредственно перед входом в цикл обработки сообщений.This method is called immediately before entering the message loop.

HRESULT PreMessageLoop(int nShowCmd) throw();

ПараметрыParameters

ншовкмдnShowCmd
Значение, передаваемое в качестве параметра ншовкмд в WinMain.The value passed as the nShowCmd parameter in WinMain.

Возвращаемое значениеReturn Value

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.Returns S_OK on success, or an error HRESULT on failure.

КомментарииRemarks

Переопределите этот метод, чтобы добавить пользовательский код инициализации для приложения.Override this method to add custom initialization code for the application. Реализация по умолчанию регистрирует объекты класса.The default implementation registers the class objects.

CAtlExeModuleT:: РегистерклассобжектсCAtlExeModuleT::RegisterClassObjects

Регистрирует объект класса в OLE, чтобы другие приложения могли подключаться к нему.Registers the class object with OLE so other applications can connect to it.

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

ПараметрыParameters

двклсконтекстdwClsContext
Задает контекст, в котором будет выполняться объект класса.Specifies the context in which the class object is to be run. Возможные значения: CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER или CLSCTX_LOCAL_SERVER.Possible values are CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER, or CLSCTX_LOCAL_SERVER.

dwFlagsdwFlags
Определяет типы соединения с объектом класса.Determines the connection types to the class object. Возможные значения: REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE или REGCLS_MULTI_SEPARATE.Possible values are REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE, or REGCLS_MULTI_SEPARATE.

Возвращаемое значениеReturn Value

Возвращает S_OK при успешном выполнении, S_FALSE, если отсутствуют классы для регистрации, или ошибку HRESULT при сбое.Returns S_OK on success, S_FALSE if there were no classes to register, or an error HRESULT on failure.

CAtlExeModuleT:: РевокеклассобжектсCAtlExeModuleT::RevokeClassObjects

Удаляет объект класса.Removes the class object.

HRESULT RevokeClassObjects() throw();

Возвращаемое значениеReturn Value

Возвращает S_OK при успешном выполнении, S_FALSE, если отсутствуют классы для регистрации, или ошибку HRESULT при сбое.Returns S_OK on success, S_FALSE if there were no classes to register, or an error HRESULT on failure.

CAtlExeModuleT:: RunCAtlExeModuleT::Run

Этот метод выполняет код в модуле EXE для инициализации, выполнения цикла обработки сообщений и очистки.This method executes code in the EXE module to initialize, run the message loop, and clean up.

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

ПараметрыParameters

ншовкмдnShowCmd
Указывает способ отображения окна.Specifies how the window is to be shown. Этот параметр может принимать одно из значений, описанных в разделе WinMain .This parameter can be one of the values discussed in the WinMain section. Значение по умолчанию — SW_HIDE.Defaults to SW_HIDE.

Возвращаемое значениеReturn Value

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.Returns S_OK on success, or an error HRESULT on failure.

КомментарииRemarks

Этот метод можно переопределить.This method can be overridden. Однако на практике лучше переопределить CAtlExeModuleT::P ремессажелуп, CAtlExeModuleT:: рунмессажелупили CAtlExeModuleT::P остмессажелуп .However, in practice is it better to override CAtlExeModuleT::PreMessageLoop, CAtlExeModuleT::RunMessageLoop, or CAtlExeModuleT::PostMessageLoop instead.

CAtlExeModuleT:: РунмессажелупCAtlExeModuleT::RunMessageLoop

Этот метод выполняет цикл обработки сообщений.This method executes the message loop.

void RunMessageLoop() throw();

КомментарииRemarks

Этот метод можно переопределить, чтобы изменить поведение цикла обработки сообщений.This method can be overridden to change the behavior of the message loop.

CAtlExeModuleT:: УнинитиализекомCAtlExeModuleT::UninitializeCom

Отменяет инициализацию COM.Uninitializes COM.

static void UninitializeCom() throw();

КомментарииRemarks

По умолчанию этот метод просто вызывает метод CoUninitialize и вызывается из деструктора.By default this method simply calls CoUninitialize and is called from the destructor. Переопределите этот метод при переопределении CAtlExeModuleT:: инитиализеком.Override this method if you override CAtlExeModuleT::InitializeCom.

CAtlExeModuleT:: UnlockCAtlExeModuleT::Unlock

Уменьшает счетчик блокировок модуля.Decrements the module's lock count.

LONG Unlock() throw();

Возвращаемое значениеReturn Value

Возвращает значение, которое может быть полезно для диагностики или тестирования.Returns a value which may be useful for diagnostics or testing.

CAtlExeModuleT:: WinMainCAtlExeModuleT::WinMain

Этот метод реализует код, необходимый для запуска EXE.This method implements the code required to run an EXE.

int WinMain(int nShowCmd) throw();

ПараметрыParameters

ншовкмдnShowCmd
Указывает способ отображения окна.Specifies how the window is to be shown. Этот параметр может принимать одно из значений, описанных в разделе WinMain .This parameter can be one of the values discussed in the WinMain section.

Возвращаемое значениеReturn Value

Возвращает возвращаемое значение исполняемого объекта.Returns the executable's return value.

КомментарииRemarks

Этот метод можно переопределить.This method can be overridden. Если переопределение CAtlExeModuleT::P ремессажелуп, CAtlExeModuleT::P остмессажелупили CAtlExeModuleT:: рунмессажелуп не предоставляет достаточно гибкости, можно переопределить WinMain функцию с помощью этого метода.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.

См. также разделSee also

Пример ATLDuckATLDuck Sample
Класс КатлмодулетCAtlModuleT Class
Класс CAtlDllModuleTCAtlDllModuleT Class
Общие сведения о классахClass Overview