Sdílet prostřednictvím


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í.

Viz také

Duální rozhraní a ATL