Как создать анонимные функции IDispatch с ATL? - PullRequest
3 голосов
/ 06 февраля 2011

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

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

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

1 Ответ

2 голосов
/ 06 февраля 2011

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

...