分享方式:


物件對應巨集

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

名稱 描述
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建立物件。

另請參閱

巨集