Hello, "Lyvra"
> Есть некий интерфейс IInterface1 который необходимо реализовать для СОМ-объекта —
> public IDispatchImpl<IInterface1 , &IID_IInterface1, &LIBID_Interface1>.
> Сам объект передается во внешний мир как IDispatch, т.е. он должен выдавать IDispatch при ::QueryInterface(IID_IDispatch, ...) — COM_INTERFACE_ENTRY(IDispatch)
>
> Вопрос — как без лишних телодвижений реализовать IDispatch для СОМ-объекта, притом что не хотелось бы заносить его в Idl файл (т.е. у этого СОМ нет своего интерфейса).
>
> Я это сделал через: public IDispatchImpl<IDispatch, &IID_IDispatch, NULL>, но что-то как-то криво это выглядит.
Поддержка IDispatch уже предоставляется в IDispatchImpl<IInterface1 , &IID_IInterface1, &LIBID_Interface1>. Делать дополнительное описание IDispatchImpl<IDispatch, &IID_IDispatch, NULL> не нужно. Само собой, что COM_INTERFACE_ENTRY(IDispatch) должно присутствовать
Posted via RSDN NNTP Server 1.8 beta
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.