이러한 매크로는 개체 맵 및 항목을 정의합니다.
| 속성 | 설명 |
|---|---|
| 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만들 수 없습니다.