对象映射宏

这些宏定义了对象映射和条目。

名称 描述
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 实现一个 GetObjectDescription 函数,可用于替代 CComCoClass::GetObjectDescription 方法。

GetObjectDescription 函数由 IComponentRegistrar::GetComponents 调用。 IComponentRegistrar 是一个自动化接口,可用于在 DLL 中注册和取消注册单个组件。 使用 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] 由名为 class 的 C++ 类实现的 COM 类的 CLSID。

class
[in] 实现由 clsid 表示的实现 COM 类的 C++ 类的名称。

备注

对象项宏置于项目中的全局范围内,以提供对类的注册、初始化和创建的支持。

OBJECT_ENTRY_AUTO 将此对象的创建者类和类工厂创建者类 CreateInstance 函数的函数指针输入到自动生成的 ATL 对象映射中。 调用 CAtlComModule::RegisterServer 时,它会更新对象映射中每个对象的系统注册表。

下表介绍了如何从作为这个宏的第二个参数给出的类中获取添加到对象映射的信息。

信息 从 获取的
COM 注册 注册表宏
类工厂创建 类工厂宏
实例创建 聚合宏
组件类别注册 分类宏
类级初始化和清理 ObjectMain

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO

允许你指定应该注册和初始化对象,但不应可经由 CoCreateInstance 在外部创建对象。

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO( clsid, class )

参数

clsid
[in] 由名为 class 的 C++ 类实现的 COM 类的 CLSID。

class
[in] 实现由 clsid 表示的实现 COM 类的 C++ 类的名称。

备注

对象项宏置于项目中的全局范围内,以提供对类的注册、初始化和创建的支持。

OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO 允许指定应注册并初始化对象(请参阅 OBJECT_ENTRY_AUTO 了解详细信息),但它不应可经由 CoCreateInstance 创建。

另请参阅