物件對應巨集
這些巨集會定義對象對應和專案。
名稱 | 描述 |
---|---|
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
建立物件。