共用方式為


物件對應巨集

這些宏會定義物件對應和專案。

名稱 描述
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]C++ 類別所實作之 COM 類別的 CLSID,名為 類別

class
[in]實作 clsid 表示之 COM 類別的 C++ 類別名稱。

備註

物件進入巨集會放在專案的全域範圍,以支援註冊、初始化和建立類別。

OBJECT_ENTRY_AUTO將此物件的建立者類別和 class-Factory 建立者類別 CreateInstance 函式的函式指標輸入至自動產生的 ATL 物件對應中。 呼叫 CAtlComModule::RegisterServer ,它會更新物件對應中每個物件的系統登錄。

下表描述如何從指定類別取得新增至物件對應的資訊,做為這個宏的第二個參數。

的資訊 從 取得
COM 註冊 登錄巨集
類別處理站建立 Class Factory 宏
實例建立 匯總宏
元件類別註冊 分類巨集
類別層級初始化和清除 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 建立物件。

另請參閱

巨集