对象映射宏
这些宏定义了对象映射和条目。
名称 | 描述 |
---|---|
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
创建。