다음을 통해 공유


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 모듈 클래스를 참조 하세요.

상속 계층 구조

_ATL_MODULE

CAtlModule

CAtlModuleT

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 의할 수 있습니다.

참고 항목

ATLDuck 샘플
CAtlModuleT 클래스
CAtlDllModuleT 클래스
클래스 개요