CAtlExeModuleT 클래스
이 클래스는 애플리케이션의 모듈을 나타냅니다.
구문
template <class T>
class ATL_NO_VTABLE CAtlExeModuleT : public CAtlModuleT<T>
매개 변수
T
에서 파생된 CAtlExeModuleT
클래스입니다.
멤버
공용 생성자
속성 | 설명 |
---|---|
CAtlExeModuleT::CAtlExeModuleT | 생성자입니다. |
CAtlExeModuleT::~CAtlExeModuleT | 소멸자입니다. |
공용 메서드
이름 | 설명 |
---|---|
CAtlExeModuleT::InitializeCom | COM을 초기화합니다. |
CAtlExeModuleT::P arseCommandLine | 명령줄을 구문 분석하고 필요한 경우 등록을 수행합니다. |
CAtlExeModuleT::P ostMessageLoop | 이 메서드는 메시지 루프가 종료된 직후에 호출됩니다. |
CAtlExeModuleT::P reMessageLoop | 이 메서드는 메시지 루프를 입력하기 직전에 호출됩니다. |
CAtlExeModuleT::RegisterClassObjects | 클래스 개체를 등록합니다. |
CAtlExeModuleT::RevokeClassObjects | 클래스 개체를 취소합니다. |
CAtlExeModuleT::Run | 이 메서드는 EXE 모듈에서 코드를 실행하여 메시지 루프를 초기화하고, 실행하고, 정리합니다. |
CAtlExeModuleT::RunMessageLoop | 이 메서드는 메시지 루프를 실행합니다. |
CAtlExeModuleT::UninitializeCom | COM을 초기화하지 않습니다. |
CAtlExeModuleT::Unlock | 모듈의 잠금 수를 줄입니다. |
CAtlExeModuleT::WinMain | 이 메서드는 EXE를 실행하는 데 필요한 코드를 구현합니다. |
공용 데이터 멤버
속성 | 설명 |
---|---|
CAtlExeModuleT::m_bDelayShutdown | 모듈을 종료하는 데 지연이 있어야 함을 나타내는 플래그입니다. |
CAtlExeModuleT::m_dwPause | 종료하기 전에 모든 개체가 해제되도록 하는 데 사용되는 일시 중지 값입니다. |
CAtlExeModuleT::m_dwTimeOut | 모듈의 언로드를 지연하는 데 사용되는 시간 제한 값입니다. |
설명
CAtlExeModuleT
는 EXE(애플리케이션)의 모듈을 나타내며 EXE 만들기, 명령줄 처리, 클래스 개체 등록, 메시지 루프 실행 및 종료 후 정리를 지원하는 코드를 포함합니다.
이 클래스는 EXE 서버의 COM 개체가 지속적으로 만들어지고 제거될 때 성능을 향상하도록 설계되었습니다. 마지막 COM 개체가 해제된 후 EXE는 CAtlExeModuleT::m_dwTimeOut 데이터 멤버로 지정된 기간 동안 대기합니다. 이 기간 동안 활동이 없으면(즉, COM 개체가 만들어지지 않음) 종료 프로세스가 시작됩니다.
CAtlExeModuleT::m_bDelayShutdown 데이터 멤버는 EXE가 위에서 정의한 메커니즘을 사용해야 하는지 여부를 결정하는 데 사용되는 플래그입니다. false로 설정하면 모듈이 즉시 종료됩니다.
ATL의 모듈에 대한 자세한 내용은 ATL 모듈 클래스를 참조 하세요.
상속 계층 구조
CAtlExeModuleT
요구 사항
헤더: atlbase.h
CAtlExeModuleT::CAtlExeModuleT
생성자입니다.
CAtlExeModuleT() throw();
설명
EXE 모듈을 초기화할 수 없는 경우 WinMain은 추가 처리 없이 즉시 반환됩니다.
CAtlExeModuleT::~CAtlExeModuleT
소멸자입니다.
~CAtlExeModuleT() throw();
설명
할당된 모든 리소스를 해제합니다.
CAtlExeModuleT::InitializeCom
COM을 초기화합니다.
static HRESULT InitializeCom() throw();
Return Value
성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.
설명
이 메서드는 생성자에서 호출되며 기본 구현과 다른 방식으로 COM을 초기화하도록 재정의할 수 있습니다. 기본 구현은 호출 CoInitializeEx(NULL, COINIT_MULTITHREADED)
하거나 CoInitialize(NULL)
프로젝트 구성에 따라 달라집니다.
이 메서드를 재정의하려면 일반적으로 CAtlExeModuleT::UninitializeCom을 재정의해야 합니다.
CAtlExeModuleT::m_bDelayShutdown
모듈을 종료하는 데 지연이 있어야 함을 나타내는 플래그입니다.
bool m_bDelayShutdown;
설명
자세한 내용은 CAtlExeModuleT 개요를 참조하세요.
CAtlExeModuleT::m_dwPause
모든 개체가 종료되기 전에 사라지도록 하는 데 사용되는 일시 중지 값입니다.
DWORD m_dwPause;
설명
CAtlExeModuleT::InitializeCom을 호출한 후 이 값을 변경하여 서버를 종료하기 위한 일시 중지 값으로 사용되는 밀리초 수를 설정합니다. 기본값은 1000밀리초입니다.
CAtlExeModuleT::m_dwTimeOut
모듈의 언로드를 지연하는 데 사용되는 시간 제한 값입니다.
DWORD m_dwTimeOut;
설명
CAtlExeModuleT::InitializeCom을 호출한 후 이 값을 변경하여 서버를 종료하기 위한 제한 시간 값으로 사용되는 밀리초 수를 정의합니다. 기본값은 5000밀리초입니다. 자세한 내용은 CAtlExeModuleT 개요를 참조하세요.
CAtlExeModuleT::P arseCommandLine
명령줄을 구문 분석하고 필요한 경우 등록을 수행합니다.
bool ParseCommandLine(LPCTSTR lpCmdLine, HRESULT* pnRetCode) throw();
매개 변수
lpCmdLine
애플리케이션에 전달된 명령줄입니다.
pnRetCode
등록에 해당하는 HRESULT입니다(발생한 경우).
Return Value
애플리케이션이 계속 실행되어야 하는 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.
설명
이 메서드는 CAtlExeModuleT::WinMain에서 호출되며 명령줄 스위치를 처리하도록 재정의할 수 있습니다. 기본 구현은 /RegServer 및 /UnRegServer 명령줄 인수를 확인하고 등록 또는 등록 취소를 수행합니다.
CAtlExeModuleT::P ostMessageLoop
이 메서드는 메시지 루프가 종료된 직후에 호출됩니다.
HRESULT PostMessageLoop() throw();
Return Value
성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.
설명
사용자 지정 애플리케이션 정리를 수행하려면 이 메서드를 재정의합니다. 기본 구현에서는 CAtlExeModuleT::RevokeClassObjects를 호출 합니다.
CAtlExeModuleT::P reMessageLoop
이 메서드는 메시지 루프를 입력하기 직전에 호출됩니다.
HRESULT PreMessageLoop(int nShowCmd) throw();
매개 변수
nShowCmd
WinMain에서 nShowCmd 매개 변수로 전달된 값입니다.
Return Value
성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.
설명
애플리케이션에 대한 사용자 지정 초기화 코드를 추가하려면 이 메서드를 재정의합니다. 기본 구현은 클래스 개체를 등록합니다.
CAtlExeModuleT::RegisterClassObjects
다른 애플리케이션에서 연결할 수 있도록 클래스 개체를 OLE에 등록합니다.
HRESULT RegisterClassObjects(DWORD dwClsContext, DWORD dwFlags) throw();
매개 변수
dwClsContext
클래스 개체를 실행할 컨텍스트를 지정합니다. 가능한 값은 CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER 또는 CLSCTX_LOCAL_SERVER.
dwFlags
클래스 개체에 대한 연결 형식을 결정합니다. 가능한 값은 REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE 또는 REGCLS_MULTI_SEPARATE.
Return Value
등록할 클래스가 없는 경우 S_FALSE 성공 시 S_OK 반환하거나 실패 시 오류 HRESULT를 반환합니다.
CAtlExeModuleT::RevokeClassObjects
클래스 개체를 제거합니다.
HRESULT RevokeClassObjects() throw();
Return Value
등록할 클래스가 없는 경우 S_FALSE 성공 시 S_OK 반환하거나 실패 시 오류 HRESULT를 반환합니다.
CAtlExeModuleT::Run
이 메서드는 EXE 모듈에서 코드를 실행하여 메시지 루프를 초기화하고, 실행하고, 정리합니다.
HRESULT Run(int nShowCmd = SW_HIDE) throw();
매개 변수
nShowCmd
창을 표시하는 방법을 지정합니다. 이 매개 변수는 WinMain 섹션에서 설명하는 값 중 하나일 수 있습니다. 기본값은 SW_HIDE.
Return Value
성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.
설명
이 메서드는 재정의할 수 있습니다. 그러나 실제로는 CAtlExeModuleT::P reMessageLoop, CAtlExeModuleT::RunMessageLoop 또는 CAtlExeModuleT::P ostMessageLoop을 재정의하는 것이 좋습니다.
CAtlExeModuleT::RunMessageLoop
이 메서드는 메시지 루프를 실행합니다.
void RunMessageLoop() throw();
설명
이 메서드를 재정의하여 메시지 루프의 동작을 변경할 수 있습니다.
CAtlExeModuleT::UninitializeCom
COM을 초기화하지 않습니다.
static void UninitializeCom() throw();
설명
기본적으로 이 메서드는 단순히 CoUninitialize를 호출하고 소멸자에서 호출됩니다. CAtlExeModuleT::InitializeCom을 재정의하는 경우 이 메서드를 재정 의합니다.
CAtlExeModuleT::Unlock
모듈의 잠금 수를 줄입니다.
LONG Unlock() throw();
Return Value
진단 또는 테스트에 유용할 수 있는 값을 반환합니다.
CAtlExeModuleT::WinMain
이 메서드는 EXE를 실행하는 데 필요한 코드를 구현합니다.
int WinMain(int nShowCmd) throw();
매개 변수
nShowCmd
창을 표시하는 방법을 지정합니다. 이 매개 변수는 WinMain 섹션에서 설명하는 값 중 하나일 수 있습니다.
Return Value
실행 파일의 반환 값을 반환합니다.
설명
이 메서드는 재정의할 수 있습니다. CAtlExeModuleT::P reMessageLoop, CAtlExeModuleT::P ostMessageLoop 또는 CAtlExeModuleT::RunMessageLoop을 재정의하는 경우 이 메서드를 사용하여 함수를 재정 WinMain
의할 수 있습니다.