Немного погуглив обнаружил отличный wrapper для IDispatch by Mike Morearty. Позволяет намного упростить жизнь:
CDispatchPtr htmldoc = ...;
_bstr_t html = htmldoc.Get("body").Get("innerHTML");
htmldoc.Put("title", "New Title");
htmldoc.Get("body").Get("firstChild").Invoke("insertAdjacentText", "afterBegin", "hello world");
Надо будет еще в дополнение к нему написать wrapper для COM-коллекций в STL-совместимые контейнеры.
PS. Хотя в этом IDispatch wrapper-е явно не сказано про лицензию, но по почте Майк ответил "you're free to use the code, and to modify it."
1 комментарий:
В ATL есть уже готовая специализация CComPtr для диспатча:
template <>
class CComPtr : public CComPtrBase
Отправить комментарий