Шаг 31 - Com карта ATL

31_1.gif (14098 b)

Вы разрабатываете COM объект используя ATL. Ваш компонент реализует два интерфейса с именами ISimple и IComplex. Оба эти интерфейса Dual(двойные). Вы хотите, чтобы ISample можно было использовать в VBS.

Какую Com карту Вы должны выбрать для интерфейса?

Правильный ответ А. Во-первых, мы должны объявить двойной интерфейс. А это можно сделать макросами либо COM_INTERFACE_ENTRY2 либо COM_INTERFACE_ENTRY2_IID. Причина в том, что для VB, VBS нужен IDispatch. Так что остается всего два варианта А и D. Они совершенно равнозначны, да вот только с вариантом D проблемы. Данный макрос описан как

COM_INTERFACE_ENTRY2_IID( iid, x, x2 )

Не хватает третьего параметра с именем второго интерфейса. Значит объявление не правильное и остается вариант A.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 08.09.2002