Кто может подсказать, почему не происходит подключение Connection Point в программе на ВСВ?
Интерфейс
ISenderEvents сгенерирован Builder-ом при создании Automation Object с включенным Generate event support code.
Sink Клиента :
class TEvSink :
public TEventDispatcher <TEvSink,&DIID_ISenderEvents>
{
public:
HRESULT ConnectTo() {HRESULT hr= ConnectEvents(m_pSender);};
HRESULT InvokeEvent(DISPID id,TVariant * params) { ...... } ;
};
ISender *m_pSender;
При выполнении ConnectEvents(m_pSender) получаю hr =0x80004002 (
E_NOINTERFACE)
Интерфейс ISenderEvents присутствует а списке базовых классов для Impl:
class ATL_NO_VTABLE TSenderImpl :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<TSenderImpl, &CLSID_Sender>,
public IConnectionPointContainerImpl<TSenderImpl>,
public TEvents_Sender<TSenderImpl>, /* ~= DIID_ISenderEvents */
public ISender,
{ ......};
BEGIN_OBJECT_MAP(ObjectMap)
OBJECT_ENTRY(CLSID_Sender, TSenderImpl)
END_OBJECT_MAP()
***COM объект инициализируется и работает