Implementace duálního rozhraní
Můžete implementovat duální rozhraní pomocí IDispatchImpl třídy, která poskytuje výchozí implementaci IDispatch
metod v duálním rozhraní. Další informace naleznete v tématu Implementace rozhraní IDispatch.
Chcete-li použít tuto třídu:
Definujte své duální rozhraní v knihovně typů.
Odvozujte třídu ze specializace
IDispatchImpl
(předání informací o rozhraní a knihovně typů jako argumentů šablony).Přidejte položku (nebo položky) do mapy COM, aby bylo vystaveno duální rozhraní prostřednictvím
QueryInterface
.Implementujte vtable část rozhraní ve vaší třídě.
Ujistěte se, že knihovna typů obsahující definici rozhraní je k dispozici pro objekty za běhu.
Průvodce jednoduchým objektem ATL
Pokud chcete vytvořit nové rozhraní a novou třídu pro její implementaci, můžete použít dialogové okno Přidat třídu ATL a pak Průvodce jednoduchým objektem ATL.
Průvodce implementací rozhraní
Pokud máte existující rozhraní, můžete pomocí Průvodce implementací rozhraní přidat potřebnou základní třídu, položky mapování modelu COM a implementace kostru metody do existující třídy.
Poznámka:
Možná budete muset upravit vygenerovanou základní třídu tak, aby hlavní a podverze knihovny typů byly předány jako argumenty šablony základní IDispatchImpl
třídě. Průvodce implementací rozhraní nekontroluje číslo verze knihovny typů za vás.
Implementace IDispatch
Základní třídu můžete použít IDispatchImpl
k poskytnutí implementace dispinterface pouze zadáním příslušné položky v mapě MODELU COM (pomocí COM_INTERFACE_ENTRY2 nebo COM_INTERFACE_ENTRY_IID makra), pokud máte knihovnu typů popisující odpovídající duální rozhraní. Rozhraní je poměrně běžné implementovat IDispatch
tímto způsobem, například. Průvodce jednoduchým objektem ATL a Průvodce implementací rozhraní předpokládají, že chcete tímto způsobem implementovat IDispatch
, takže do mapy přidají příslušnou položku.
Poznámka:
ATL nabízí třídy IDispEventImpl a IDispEventSimpleImpl , které vám pomůžou implementovat dispinterfaces bez nutnosti knihovny typů obsahující definici kompatibilního duálního rozhraní.