toplamlar
Nesnenin CLSID tarafından belirtilen nesneyi toplandığını gösterir.
Sözdizimi
[ aggregates(clsid, variable_name) ]
Parametreler
clsid
Birleştirilebilir nesnenin CLSID'sini belirtir.
variable_name
Eklenecek değişkenin adı. Bu değişken, toplanan nesnenin öğesini içerir IUnknown
.
Açıklamalar
Bir nesneye uygulandığında , aggregates C++ özniteliği toplanan nesne için bir dış sarmalayıcı uygular (tarafından clsid
belirtilir).
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
.
ATL Projeleri
Bu öznitelik ATL kullanan bir projede kullanılıyorsa özniteliğin davranışı değişir. İlk olarak, hedef nesnenin COM eşlemesine aşağıdaki girdi eklenir:
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND(_m_spAttrXXX, clsid)
İkincisi, DECLARE_GET_CONTROLLING_UNKNOWN makro da eklenir.
Örnek
// cpp_attr_ref_aggregates.cpp
// compile with: /LD
#define _ATL_ATTRIBUTES
#include "atlbase.h"
#include "atlcom.h"
// requires 'aggregatable.dll'
// see aggregatable attribute to create 'aggregatable.dll'
class DECLSPEC_UUID("1a8369cc-1c91-42c4-befa-5a5d8c9d2529") CMyClass;
[module (name="MYObject")];
[object, uuid("ab006d85-e754-47c5-9ef4-2744ff32a20c")]
__interface IObject
{
};
[ coclass, aggregates(__uuidof(CMyClass)),
uuid("91cb2c06-8931-432a-baac-206e55c4edfb")]
struct CObject : IObject
{
int i;
};
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
Toplama
Toplayıcı
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND