개체 맵 매크로
이러한 매크로는 개체 맵 및 항목을 정의합니다.
속성 | 설명 |
---|---|
DECLARE_OBJECT_DESCRIPTION | 개체 맵에 입력할 클래스 개체의 텍스트 설명을 지정할 수 있습니다. |
OBJECT_ENTRY_AUTO | 개체 맵에 ATL 개체를 입력하고, 레지스트리를 업데이트하고, 개체의 인스턴스를 만듭니다. |
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO | 개체를 등록하고 초기화해야 하지만 CoCreateInstance 를 통해 외부적으로 생성할 수 없도록 지정할 수 있습니다. |
요구 사항
헤더: atlcom.h
DECLARE_OBJECT_DESCRIPTION
클래스 개체에 대한 텍스트 설명을 지정할 수 있습니다.
DECLARE_OBJECT_DESCRIPTION( x )
매개 변수
x
[in] 클래스 개체의 설명입니다.
설명
ATL은 OBJECT_ENTRY_AUTO 매크로를 통해 개체 맵에 이 설명을 입력합니다.
DECLARE_OBJECT_DESCRIPTION CComCoClass::GetObjectDescription 메서드를 재정의하는 데 사용할 수 있는 함수를 구현 GetObjectDescription
합니다.
함수는 GetObjectDescription
.에서 호출됩니다 IComponentRegistrar::GetComponents
. IComponentRegistrar
은 DLL에서 개별 구성 요소를 등록 및 등록 취소할 수 있는 Automation 인터페이스입니다. ATL 프로젝트 마법사를 사용하여 구성 요소 등록자 개체를 만들면 마법사에서 인터페이스를 IComponentRegistrar
자동으로 구현합니다. IComponentRegistrar
는 일반적으로 Microsoft Transaction Server에서 사용됩니다.
ATL 프로젝트 마법사에 대한 자세한 내용은 ATL 프로젝트 만들기 문서를 참조하세요.
예시
class ATL_NO_VTABLE CMyDescribedClass :
public CComObjectRoot,
public CComCoClass<CMyDescribedClass, &CLSID_MyDescribedClass>
{
public:
CMyDescribedClass()
{
}
// Override CComCoClass::GetObjectDescription
DECLARE_OBJECT_DESCRIPTION("My Described Object 1.0")
};
OBJECT_ENTRY_AUTO
개체 맵에 ATL 개체를 입력하고, 레지스트리를 업데이트하고, 개체의 인스턴스를 만듭니다.
OBJECT_ENTRY_AUTO( clsid, class )
매개 변수
clsid
[in] C++ 클래스에서 구현하는 COM 클래스의 CLSID입니다.
class
[in] clsid로 표시되는 COM 클래스를 구현하는 C++ 클래스의 이름입니다.
설명
개체 항목 매크로는 클래스 등록, 초기화 및 만들기를 지원하도록 프로젝트의 전역 범위에 배치됩니다.
OBJECT_ENTRY_AUTO 자동으로 생성된 ATL 개체 맵에 이 개체에 대한 작성자 클래스 및 클래스 팩터리 작성자 클래스 CreateInstance
함수의 함수 포인터를 입력합니다. CAtlComModule::RegisterServer가 호출되면 개체 맵의 각 개체에 대한 시스템 레지스트리가 업데이트됩니다.
아래 표에서는 개체 맵에 추가된 정보를 이 매크로의 두 번째 매개 변수로 지정된 클래스에서 가져오는 방법을 설명합니다.
에 대한 정보 | 에서 획득 |
---|---|
COM 등록 | 레지스트리 매크로 |
클래스 팩터리 만들기 | 클래스 팩터리 매크로 |
인스턴스 만들기 | 집계 매크로 |
구성 요소 범주 등록 | 범주 매크로 |
클래스 수준 초기화 및 정리 | ObjectMain |
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO
개체를 등록하고 초기화해야 하지만 CoCreateInstance
를 통해 외부적으로 생성할 수 없도록 지정할 수 있습니다.
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO( clsid, class )
매개 변수
clsid
[in] C++ 클래스에서 구현하는 COM 클래스의 CLSID입니다.
class
[in] clsid로 표시되는 COM 클래스를 구현하는 C++ 클래스의 이름입니다.
설명
개체 항목 매크로는 클래스 등록, 초기화 및 만들기를 지원하도록 프로젝트의 전역 범위에 배치됩니다.
OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO 개체를 등록하고 초기화하도록 지정할 수 있지만(자세한 내용은 OBJECT_ENTRY_AUTO 참조) 통해 CoCreateInstance
만들 수 없습니다.