物件對應巨集
這些宏會定義物件對應和專案。
名稱 | 描述 |
---|---|
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
建立物件。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應