Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Hedef sınıfın COM eşlemesine bir arabirim girdisi ekler.
Sözdizimi
[ com_interface_entry(
com_interface_entry) ]
Parametreler
com_interface_entry
Girdinin gerçek metnini içeren bir dize. Olası değerlerin listesi için bkz . makrolar COM_INTERFACE_ENTRY.
Açıklamalar
com_interface_entry C++ özniteliği, hedef nesnenin COM arabirim eşlemesine bir karakter dizesinin kısaltılmamış içeriğini ekler. Öznitelik hedef nesneye bir kez uygulanırsa, girdi mevcut arabirim eşlemesinin başına eklenir. Öznitelik aynı hedef nesneye tekrar tekrar uygulanırsa, girişler arabirim eşlemesinin başına alındıkları sırayla eklenir.
Bu öznitelik coclass, progid veya vi_progid özniteliğinin (veya bunlardan birini gösteren başka bir özniteliğin) aynı öğeye uygulanmasını gerektirir. Tek bir öznitelik kullanılırsa, diğer ikisi otomatik olarak uygulanır. Örneğin, uygulandıysa vi_progid ve coclass uygulanırsaprogid.
com_interface_entry ilk kullanımı yeni arabirimin arabirim eşlemesinin başına eklenmesine neden olduğundan, aşağıdaki COM_INTERFACE_ENTRY türlerinden biri olmalıdır:
COM_INTERFACE_ENTRY
COM_INTERFACE_ENTRY_IID
COM_INTERFACE_ENTRY2
COM_INTERFACE_ENTRY2_IID
com_interface_entry özniteliğinin ek kullanımları desteklenen tüm COM_INTERFACE_ENTRY türlerini kullanabilir.
ATL, arabirim eşlemesindeki ilk girişi kimlik IUnknownolarak kullandığından bu kısıtlama gereklidir; bu nedenle girdi geçerli bir arabirim olmalıdır. Örneğin, arabirim eşlemesindeki ilk giriş gerçek bir COM arabirimi belirtmediğinden aşağıdaki kod örneği geçersizdir.
[ coclass, com_interface_entry =
"COM_INTERFACE_ENTRY_NOINTERFACE(IDebugTest)"
]
class CMyClass
{
};
Örnek
Aşağıdaki kod, mevcut COM arabirim eşlemesine CMyBaseClassiki girdi ekler. Birincisi standart bir arabirim, ikincisi ise arabirimi gizler IDebugTest .
// cpp_attr_ref_com_interface_entry.cpp
// compile with: /LD
#define _ATL_ATTRIBUTES
#include "atlbase.h"
#include "atlcom.h"
[module (name ="ldld")];
[ object,
uuid("7dbebed3-d636-4917-af62-c767a720a5b9")]
__interface IDebugTest{};
[ object,
uuid("2875ceac-f94b-4087-8e13-d13dc167fcfc")]
__interface IMyClass{};
[ coclass,
com_interface_entry ("COM_INTERFACE_ENTRY (IMyClass)"),
com_interface_entry ("COM_INTERFACE_ENTRY_NOINTERFACE(IDebugTest)"),
uuid("b85f8626-e76e-4775-b6a0-4826a9e94af2")
]
class CMyClass: public IMyClass, public IDebugTest
{
};
için CMyBaseClass elde edilen COM nesne eşlemesi aşağıdaki gibidir:
BEGIN_COM_MAP(CMyClass)
COM_INTERFACE_ENTRY (IMyClass)
COM_INTERFACE_ENTRY_NOINTERFACE(IDebugTest)
COM_INTERFACE_ENTRY(IMyClass)
COM_INTERFACE_ENTRY2(IDispatch, IMyClass)
COM_INTERFACE_ENTRY(IDebugTest)
COM_INTERFACE_ENTRY(IProvideClassInfo)
END_COM_MAP()
Gereksinimler
| Öznitelik bağlamı | Değer |
|---|---|
| Şunlar için geçerlidir: | class, struct |
| Tekrarlanabilir | Yes |
| Gerekli öznitelikler | Aşağıdakilerden biri veya daha fazlası: coclass, progid, veya vi_progid. |
| Geçersiz öznitelikler | Hiçbiri |
Öznitelik bağlamları hakkında daha fazla bilgi için bkz . Öznitelik Bağlamları.
Ayrıca bkz.
COM Öznitelikleri
Sınıf Öznitelikleri
Typedef, Enum, Union ve Struct Öznitelikleri