COM_INTERFACE_ENTRY makrolar

Bu makrolar, com eşlemeye nesnenin arabirimleri QueryInterfacetarafından erişilebilecek şekilde girin. com harita girişlerin sırası sipariş arabirimleri QueryInterface sırasında bir eşleşen IID için kontrol edilecek olan.

Arabirimleri QueryInterface aracılığıyla duyurmak istediği her nesne kendi com göster olmalıdır. com harita ile makro BEGIN_COM_MAPbaşlar. Aşağıdakilerden birini veya birkaçını COM_INTERFACE_ENTRY makrolar ile arabirim girişleri eklenir ve harita ile end_com_map makro tamamlanır. Örneğin:

BEGI&N_COM_MAP(CMyObject)
 nbsp;  COM_INTERFACE_ENTRY(IDispatch)
    COM_INTERFACE_ENTRY(IMyObject)
END_COM_MAP)

Atl görmek commap örnek için giriş makroları kullanarak com farklı türleri örnekleri göster.

Not com harita ilk girdiye com eşlemeyi içeren nesne bir arabirim olmalıdır. Böylece, birlikte hangi noktada Aranacak farklı bir nesne com Haritası neden COM_INTERFACE_ENTRY_CHAIN, com eşleme girdilerini başlatılamıyor nerede COM_INTERFACE_ENTRY_CHAIN (COtherObject) , nesnenin com haritada görünür. İsterseniz başka bir nesne com Haritası ilk arama, bir arabirim girdisi için IUnknown , com eşlemesine eklemek, daha sonra diğer nesnenin com göster zincir. Örneğin:

BEGI&N_COM_MAP(CThisObject)
 nbsp; COM_INTERFACE_ENTRY(IUnknown)
   COM_INTERFACE_ENTRY_CHAIN(COtherObject)
END_COM_MAP)

Dikkat nbsp; Sürüm 3.0, atl derleyici anahtar sözcüğü kullanan __uuidof ( ilgili IID için belirli bir sınıf almak için sınıf ) . Sürüm 3.0 etkili COM_I&NTERFACE_ENTRY makrolardaki değişiklikleri nedeniyle, artık sadece başlığını kullanan, bu arabirim için eşleşen IID'leri tanımlayan bir kütüphane de bağlamak yerine arabirimi dahil. Bu değişiklik, başlık daha önce MIDL eski bir sürümü ile oluşturulmuşsa veya el kodlu olduğunu ve uygun şekilde işaretlenmemiş sorunlara neden olabilir. Eğer bildirim arabirimi başlığını işaretlenmemiş ile ilişkili bir __declspec ( UUID ), sonra da girişimi için bu arabirimi başarısız olur __uuidof anahtar sözcüğünü kullanın. Bu yeni davranış sorunları gidermek için inşa ayarlarınızı _ATL_NO_UUIDOF tanımlanarak eski (atl 2.x) COM_INTERFACE_ENTRY makrolar için dönebilirsiniz.

Kullanılabilir giriş makroları şunlardır:

Com göster girdi makroları

COM_INTERFACE_ENTRY
COM_INTERFACE_ENTRY_IID
COM_INTERFACE_ENTRY2
COM_INTERFACE_ENTRY2_IID
COM_INTERFACE_ENTRY_FUNC
COM_INTERFACE_ENTRY_FUNC_BLIND
COM_INTERFACE_ENTRY_TEAR_OFF
COM_INTERFACE_ENTRY_CACHED_TEAR_OFF
COM_INTERFACE_ENTRY_AGGREGATE
COM_INTERFACE_ENTRY_AGGREGATE_BLIND
COM_INTERFACE_ENTRY_AUTOAGGREGATE
COM_INTERFACE_ENTRY_AUTOAGGREGATE_BLIND
COM_INTERFACE_ENTRY_CHAIN
COM_INTERFACE_ENTRY_BREAK
COM_INTERFACE_ENTRY_NOINTERFACE

Atl makrolar ve Global Functions

Index