2011-02-06 2 views
3

Есть простой способ создать класс, производный от IDispatch, и которая может быть передана в API, как это (это C++):Как создать анонимные функции IDispatch с помощью ATL?

pDOM2->attachEvent(CComBSTR("event"), new DispatchFunction); 

Я знаю, как создать C объект ++, который обрабатывать Invoke с оплошностью значения 0, но всегда очень сложно реализовать все IDispatch вручную. Мне было интересно, есть ли у ATL стандартный способ сделать это, поскольку он довольно распространен.

ответ

2

По умолчанию ATL создает «автодуальные» классы COM. Они поддерживают как раннее связывание , так и IDispatch. Вы увидите IDispatchImpl <> в своем списке наследования. Вы объявляете оплошность в IDL. Никакой дополнительной работы не требуется.

+0

Вы правы, мне всегда было интересно, есть ли поддержка, и на самом деле я знал все, что мне нужно, не видя этого. Благодарю. –