다음을 통해 공유


CComModule 클래스

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조 하세요 .

Important

이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.

구문

class CComModule : public _ATL_MODULE

멤버

공용 메서드

이름 설명
CComModule::GetClassObject 지정된 CLSID의 개체를 만듭니다. DLL에만 해당합니다.
CComModule::GetModuleInstance m_hInst을(를) 반환합니다.
CComModule::GetResourceInstance m_hInstResource을(를) 반환합니다.
CComModule::GetTypeLibInstance m_hInstTypeLib을(를) 반환합니다.
CComModule::Init 데이터 멤버를 초기화합니다.
CComModule::RegisterClassHelper 시스템 레지스트리에 개체의 표준 클래스 등록을 입력합니다.
CComModule::RegisterClassObjects 클래스 개체를 등록합니다. EXE에만 해당합니다.
CComModule::RegisterServer 개체 맵의 각 개체에 대한 시스템 레지스트리를 업데이트합니다.
CComModule::RegisterTypeLib 형식 라이브러리를 등록합니다.
CComModule::RevokeClassObjects 클래스 개체를 취소합니다. EXE에만 해당합니다.
CComModule::Term 데이터 멤버를 해제합니다.
CComModule::UnregisterClassHelper 시스템 레지스트리에서 개체의 표준 클래스 등록을 제거합니다.
CComModule::UnregisterServer 개체 맵에서 각 개체의 등록을 취소합니다.
CComModule::UpdateRegistryClass 개체의 표준 클래스 등록을 등록하거나 등록 취소합니다.
CComModule::UpdateRegistryFromResourceD 지정된 리소스에 포함된 스크립트를 실행하여 개체를 등록하거나 등록 취소합니다.
CComModule::UpdateRegistryFromResourceS ATL 레지스트리 구성 요소에 정적으로 연결됩니다. 지정된 리소스에 포함된 스크립트를 실행하여 개체를 등록하거나 등록 취소합니다.

공용 데이터 멤버

속성 설명
CComModule::m_csObjMap 개체 맵 정보에 대한 동기화된 액세스를 확인합니다.
CComModule::m_csTypeInfoHolder 형식 라이브러리 정보에 대한 동기화된 액세스를 보장합니다.
CComModule::m_csWindowCreate 창을 만드는 동안 사용되는 창 클래스 정보 및 정적 데이터에 대한 동기화된 액세스를 보장합니다.
CComModule::m_hInst 모듈 인스턴스에 대한 핸들을 포함합니다.
CComModule::m_hInstResource 기본적으로 모듈 인스턴스에 대한 핸들을 포함합니다.
CComModule::m_hInstTypeLib 기본적으로 모듈 인스턴스에 대한 핸들을 포함합니다.
CComModule::m_pObjMap 모듈 인스턴스에서 유지 관리하는 개체 맵을 가리킵니다.

설명

참고 항목

이 클래스는 더 이상 사용되지 않으며 ATL 코드 생성 마법사는 이제 CAtlAutoThreadModule 및 CAtlModule 파생 클래스를 사용합니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요. 다음 정보는 이전 버전의 ATL로 만든 애플리케이션에서 사용하기 위한 것입니다. CComModule 는 여전히 이전 기능의 ATL에 속합니다.

CComModule 는 클라이언트가 모듈의 구성 요소에 액세스할 수 있도록 COM 서버 모듈을 구현합니다. CComModule 는 DLL(In-process) 및 EXE(로컬) 모듈을 모두 지원합니다.

인스턴스는 CComModule 개체 맵을 사용하여 클래스 개체 정의 집합을 유지 관리합니다. 이 개체 맵은 구조의 _ATL_OBJMAP_ENTRY 배열로 구현되며 다음 사항에 대한 정보를 포함합니다.

  • 시스템 레지스트리에서 개체 설명을 입력하고 제거합니다.

  • 클래스 팩터리를 통해 개체 인스턴스화

  • 구성 요소에서 클라이언트와 루트 개체 간의 통신을 설정합니다.

  • 클래스 개체의 수명 관리 수행

ATL COM AppWizard를 실행하면 마법사에서 파생된 전역 인스턴스 또는 클래스를 CComModule 자동으로 생성합니다_Module. ATL 프로젝트 마법사에 대한 자세한 내용은 ATL 프로젝트 만들기 문서를 참조하세요.

또한 CComModuleATL은 EXE 및 Windows 서비스에 대한 아파트 모델 모듈을 구현하는 CComAutoThreadModule을 제공합니다. 여러 아파트에서 개체를 만들려는 경우 모듈 CComAutoThreadModule 을 파생합니다.

상속 계층 구조

_ATL_MODULE

CAtlModule

CAtlModuleT

CComModule

요구 사항

헤더: atlbase.h

CComModule::GetClassObject

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

HRESULT GetClassObject(
    REFCLSID rclsid,
    REFIID riid,
    LPVOID* ppv) throw();

매개 변수

rclsid
[in] 만들 개체의 CLSID입니다.

riid
[in] 요청된 인터페이스의 IID입니다.

ppv
[out] riid로 식별되는 인터페이스 포인터에 대한 포인터입니다. 개체가 이 인터페이스 를 지원하지 않는 경우 ppv 는 NULL로 설정됩니다.

Return Value

표준 HRESULT 값입니다.

설명

지정된 CLSID의 개체를 만들고 이 개체에 대한 인터페이스 포인터를 검색합니다.

GetClassObject 는 DLL에서만 사용할 수 있습니다.

CComModule::GetModuleInstance

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

HINSTANCE GetModuleInstance() throw();

Return Value

이 모듈을 식별하는 HINSTANCE입니다.

설명

m_hInst 데이터 멤버를 반환합니다.

CComModule::GetResourceInstance

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

HINSTANCE GetResourceInstance() throw();

Return Value

HINSTANCE입니다.

설명

m_hInstResource 데이터 멤버를 반환합니다.

CComModule::GetTypeLibInstance

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

HINSTANCE GetTypeLibInstance() const throw();

Return Value

HINSTANCE입니다.

설명

m_hInstTypeLib 데이터 멤버를 반환합니다.

CComModule::Init

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

HRESULT Init(
    _ATL_OBJMAP_ENTRY* p,
    HINSTANCE h,
    const GUID* plibid = NULL) throw();

매개 변수

p
[in] 개체 맵 항목 배열에 대한 포인터입니다.

시간
[in] 또는 에 전달된 DLLMain WinMainHINSTANCE입니다.

plibid
[in] 프로젝트와 연결된 형식 라이브러리의 LIBID에 대한 포인터입니다.

Return Value

표준 HRESULT 값입니다.

설명

모든 데이터 멤버를 초기화합니다.

CComModule::m_csObjMap

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

CRITICAL_SECTION m_csObjMap;

설명

개체 맵에 대한 동기화된 액세스를 확인합니다.

CComModule::m_csTypeInfoHolder

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

CRITICAL_SECTION m_csTypeInfoHolder;

설명

형식 라이브러리에 대한 동기화된 액세스를 확인합니다.

CComModule::m_csWindowCreate

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

CRITICAL_SECTION m_csWindowCreate;

설명

창 클래스 정보 및 창 생성 중에 사용되는 정적 데이터에 대한 동기화된 액세스를 보장합니다.

CComModule::m_hInst

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

HINSTANCE m_hInst;

설명

모듈 인스턴스에 대한 핸들을 포함합니다.

Init 메서드는 전달되거나 WinMainDLLMain .m_hInst

CComModule::m_hInstResource

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

HINSTANCE m_hInstResource;

설명

기본적으로 모듈 인스턴스에 대한 핸들을 포함합니다.

Init 메서드는 전달되거나 WinMainDLLMain .m_hInstResource 리소스에 대한 핸들로 명시적으로 설정할 m_hInstResource 수 있습니다.

GetResourceInstance 메서드는 에 저장된 m_hInstResource핸들을 반환합니다.

CComModule::m_hInstTypeLib

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

HINSTANCE m_hInstTypeLib;

설명

기본적으로 모듈 인스턴스에 대한 핸들을 포함합니다.

Init 메서드는 전달되거나 WinMainDLLMain .m_hInstTypeLib 형식 라이브러리에 대한 핸들로 명시적으로 설정할 m_hInstTypeLib 수 있습니다.

GetTypeLibInstance 메서드는 에 저장된 m_hInstTypeLib핸들을 반환합니다.

CComModule::m_pObjMap

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

_ATL_OBJMAP_ENTRY* m_pObjMap;

설명

모듈 인스턴스에서 유지 관리하는 개체 맵을 가리킵니다.

CComModule::RegisterClassHelper

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

ATL_DEPRECATED HRESULT RegisterClassHelper(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID,
    UINT nDescID,
    DWORD dwFlags);

매개 변수

clsid
[in] 등록할 개체의 CLSID입니다.

lpszProgID
[in] 개체와 연결된 ProgID입니다.

lpszVerIndProgID
[in] 개체와 연결된 버전 독립적 ProgID입니다.

nDescID
[in] 개체 설명에 대한 문자열 리소스의 식별자입니다.

dwFlags
[in] 레지스트리에 입력할 스레딩 모델을 지정합니다. 가능한 값은 THREADFLAGS_APARTMENT, THREADFLAGS_BOTH 또는 AUTPRXFLAG입니다.

Return Value

표준 HRESULT 값입니다.

설명

시스템 레지스트리에 개체의 표준 클래스 등록을 입력합니다.

UpdateRegistryClass 메서드는 .를 호출합니다RegisterClassHelper.

CComModule::RegisterClassObjects

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

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

매개 변수

dwClsContext
[in] 클래스 개체를 실행할 컨텍스트를 지정합니다. 가능한 값은 CLSCTX_INPROC_SERVER, CLSCTX_INPROC_HANDLER 또는 CLSCTX_LOCAL_SERVER. 이러한 값에 대한 설명은 Windows SDK의 CLSCTX를 참조하세요.

dwFlags
[in] 클래스 개체에 대한 연결 형식을 결정합니다. 가능한 값은 REGCLS_SINGLEUSE, REGCLS_MULTIPLEUSE 또는 REGCLS_MULTI_SEPARATE. 이러한 값에 대한 설명은 Windows SDK의 REGCLS를 참조하세요.

Return Value

표준 HRESULT 값입니다.

설명

EXE 클래스 개체를 OLE에 등록하여 다른 애플리케이션에서 연결할 수 있도록 합니다. 이 메서드는 EXE에서만 사용할 수 있습니다.

CComModule::RegisterServer

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

HRESULT RegisterServer(
    BOOL bRegTypeLib = FALSE,
    const CLSID* pCLSID = NULL) throw();

매개 변수

bRegTypeLib
[in] 형식 라이브러리를 등록할지 여부를 나타냅니다. 기본값은 FALSE입니다.

pCLSID
[in] 등록할 개체의 CLSID를 가리킵니다. NULL(기본값)이면 개체 맵의 모든 개체가 등록됩니다.

Return Value

표준 HRESULT 값입니다.

설명

pCLSID 매개 변수에 따라 단일 클래스 개체 또는 개체 맵의 모든 개체에 대한 시스템 레지스트리를 업데이트합니다.

bRegTypeLib이 TRUE이면 형식 라이브러리 정보도 업데이트됩니다.

개체 맵에 항목을 추가하는 방법에 대한 자세한 내용은 OBJECT_ENTRY_AUTO 참조하세요.

RegisterServer는 명령줄 옵션을 사용하여 DLL 또는 EXE 실행에 /RegServer 대해 WinMain 자동으로 DLLRegisterServer 호출됩니다.

CComModule::RegisterTypeLib

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

HRESULT RegisterTypeLib() throw();
HRESULT RegisterTypeLib(LPCTSTR lpszIndex) throw();

매개 변수

lpszIndex
[in] 형식의 "\\N"문자열입니다. 여기서 N TYPELIB 리소스의 정수 인덱스입니다.

Return Value

표준 HRESULT 값입니다.

설명

형식 라이브러리에 대한 정보를 시스템 레지스트리에 추가합니다.

모듈 인스턴스에 여러 형식 라이브러리가 포함된 경우 이 메서드의 두 번째 버전을 사용하여 사용해야 하는 형식 라이브러리를 지정합니다.

CComModule::RevokeClassObjects

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

HRESULT RevokeClassObjects() throw();

Return Value

표준 HRESULT 값입니다.

설명

클래스 개체를 제거합니다. 이 메서드는 EXE에서만 사용할 수 있습니다.

CComModule::Term

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

void Term() throw();

설명

모든 데이터 멤버를 해제합니다.

CComModule::UnregisterClassHelper

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

ATL_DEPRECATED HRESULT UnregisterClassHelper(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID);

매개 변수

clsid
[in] 등록 취소할 개체의 CLSID입니다.

lpszProgID
[in] 개체와 연결된 ProgID입니다.

lpszVerIndProgID
[in] 개체와 연결된 버전 독립적 ProgID입니다.

Return Value

표준 HRESULT 값입니다.

설명

시스템 레지스트리에서 개체의 표준 클래스 등록을 제거합니다.

UpdateRegistryClass 메서드는 .를 호출합니다UnregisterClassHelper.

CComModule::UnregisterServer

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

HRESULT UnregisterServer(const CLSID* pCLSID = NULL) throw ();
inline HRESULT UnregisterServer(BOOL bUnRegTypeLib, const CLSID* pCLSID = NULL) throw ();

매개 변수

bUnRegTypeLib
TRUE이면 형식 라이브러리도 등록 취소됩니다.

pCLSID
등록 취소할 개체의 CLSID를 가리킵니다. NULL(기본값)이면 개체 맵의 모든 개체가 등록 취소됩니다.

Return Value

표준 HRESULT 값입니다.

설명

pCLSID 매개 변수에 따라 단일 클래스 개체 또는 개체 맵의 모든 개체의 등록을 취소합니다.

UnregisterServer는 명령줄 옵션을 사용하여 DLL 또는 EXE 실행에 /UnregServer 대해 WinMain 자동으로 DLLUnregisterServer 호출됩니다.

개체 맵에 항목을 추가하는 방법에 대한 자세한 내용은 OBJECT_ENTRY_AUTO 참조하세요.

CComModule::UpdateRegistryClass

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

ATL_DEPRECATED HRESULT UpdateRegistryClass(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID,
    UINT nDescID,
    DWORD dwFlags,
    BOOL bRegister);

ATL_DEPRECATED HRESULT UpdateRegistryClass(
    const CLSID& clsid,
    LPCTSTR lpszProgID,
    LPCTSTR lpszVerIndProgID,
    LPCTSTR szDesc,
    DWORD dwFlags,
    BOOL bRegister);

매개 변수

clsid
등록하거나 등록 취소할 개체의 CLSID입니다.

lpszProgID
개체와 연결된 ProgID입니다.

lpszVerIndProgID
개체와 연결된 버전 독립적 ProgID입니다.

nDescID
개체 설명에 대한 문자열 리소스의 식별자입니다.

szDesc
개체의 설명을 포함하는 문자열입니다.

dwFlags
레지스트리에 입력할 스레딩 모델을 지정합니다. 가능한 값은 THREADFLAGS_APARTMENT, THREADFLAGS_BOTH 또는 AUTPRXFLAG입니다.

bRegister
개체를 등록해야 하는지 여부를 나타냅니다.

Return Value

표준 HRESULT 값입니다.

설명

bRegister가 TRUE이면 이 메서드는 시스템 레지스트리에 개체의 표준 클래스 등록을 입력합니다.

bRegister가 FALSE이면 개체의 등록이 제거됩니다.

bRegister 값에 따라 RegisterClassHelper 또는 UnregisterClassHelper를 호출합니다.UpdateRegistryClass

DECLARE_REGISTRY 매크로 UpdateRegistryClass지정하면 개체 맵이 처리될 때 자동으로 호출됩니다.

CComModule::UpdateRegistryFromResourceD

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

virtual HRESULT UpdateRegistryFromResourceD(
    LPCTSTR lpszRes,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

virtual HRESULT UpdateRegistryFromResourceD(
    UINT nResID,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw ();

매개 변수

lpszRes
[in] 리소스 이름입니다.

nResID
[in] 리소스 ID입니다.

bRegister
[in] 개체를 등록해야 하는지 여부를 나타냅니다.

pMapEntries
[in] 스크립트의 대체 가능한 매개 변수와 연결된 값을 저장하는 대체 맵에 대한 포인터입니다. ATL은 자동으로 .를 사용합니다 %MODULE%. 대체 가능한 추가 매개 변수를 사용하려면 자세한 내용은 비고를 참조하세요. 그렇지 않으면 NULL 기본값을 사용합니다.

Return Value

표준 HRESULT 값입니다.

설명

lpszRes 또는 nResID로 지정된 리소스에 포함된 스크립트를 실행합니다.

bRegister가 TRUE이면 이 메서드는 시스템 레지스트리에 개체를 등록하고, 그렇지 않으면 개체의 등록을 취소합니다.

DECLARE_REGISTRY_RESOURCE 또는 DECLARE_REGISTRY_RESOURCEID 매크로 UpdateRegistryFromResourceD지정하면 개체 맵이 처리될 때 자동으로 호출됩니다.

참고 항목

런타임에 대체 값을 대체하려면 DECLARE_REGISTRY_RESOURCE 또는 DECLARE_REGISTRY_RESOURCEID 매크로를 지정하지 마세요. 대신 각 항목에 런타임에 자리 표시자를 대체할 값과 쌍을 이루는 변수 자리 표시자가 포함된 구조체 배열 _ATL_REGMAP_ENTRIES 을 만듭니다. 그런 다음 pMapEntries 매개 변수에 대한 배열을 전달하여 호출UpdateRegistryFromResourceD합니다. 이렇게 하면 구조체의 모든 대체 값이 _ATL_REGMAP_ENTRIES 등록 기관의 대체 맵에 추가됩니다.

참고 항목

ATL 레지스트리 구성 요소(등록 기관)에 정적으로 연결하려면 UpdateRegistryFromResourceS를 참조 하세요.

대체 가능한 매개 변수 및 스크립팅에 대한 자세한 내용은 ATL 레지스트리 구성 요소(등록 기관) 문서를 참조하세요.

CComModule::UpdateRegistryFromResourceS

ATL 7.0 CComModule 을 기준으로 사용되지 않습니다. 자세한 내용은 ATL 모듈 클래스를 참조하세요.

virtual HRESULT UpdateRegistryFromResourceS(
    LPCTSTR lpszRes,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

virtual HRESULT UpdateRegistryFromResourceS(
    UINT nResID,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

매개 변수

lpszRes
[in] 리소스 이름입니다.

nResID
[in] 리소스 ID입니다.

bRegister
[in] 리소스 스크립트를 등록해야 하는지 여부를 나타냅니다.

pMapEntries
[in] 스크립트의 대체 가능한 매개 변수와 연결된 값을 저장하는 대체 맵에 대한 포인터입니다. ATL은 자동으로 .를 사용합니다 %MODULE%. 대체 가능한 추가 매개 변수를 사용하려면 자세한 내용은 비고를 참조하세요. 그렇지 않으면 NULL 기본값을 사용합니다.

Return Value

표준 HRESULT 값입니다.

설명

UpdateRegistryFromResourceD와 유사하게 UpdateRegistryFromResourceS를 제외한 ATL 레지스트리 구성 요소 (등록자)에 대한 정적 링크를 만듭니다.

UpdateRegistryFromResourceSpch.h(Visual Studio 2017 및 이전 버전의 stdafx.h)에 추가 #define _ATL_STATIC_REGISTRY 하면 개체 맵이 처리될 때 자동으로 호출됩니다.

참고 항목

런타임에 대체 값을 대체하려면 DECLARE_REGISTRY_RESOURCE 또는 DECLARE_REGISTRY_RESOURCEID 매크로를 지정하지 마세요. 대신 각 항목에 런타임에 자리 표시자를 대체할 값과 쌍을 이루는 변수 자리 표시자가 포함된 구조체 배열 _ATL_REGMAP_ENTRIES 을 만듭니다. 그런 다음 pMapEntries 매개 변수에 대한 배열을 전달하여 호출UpdateRegistryFromResourceS합니다. 이렇게 하면 구조체의 모든 대체 값이 _ATL_REGMAP_ENTRIES 등록 기관의 대체 맵에 추가됩니다.

대체 가능한 매개 변수 및 스크립팅에 대한 자세한 내용은 ATL 레지스트리 구성 요소(등록 기관) 문서를 참조하세요.

참고 항목

클래스 개요