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ı