:crash:
что же я делаю неправильно?
имеем событийный интерфейс (оставил только существенное)...
dispinterface _IPlateDataEvents
{
properties:
methods:
[id(1), helpstring("Fired when plate size or labeling changed")]
HRESULT onChange();
};
теперь пишем класс для подключения к событиям
#pragma once
#import "GenericPlateData.tlb" no_namespace
[event_receiver(com)]
class PlateDataEventsReceiver
{
public:
PlateDataEventsReceiver() {}
virtual ~PlateDataEventsReceiver() {}
void hook(IUnknown* pSource)
{
__hook(&_IPlateDataEvents::onChange, pSource, &PlateDataEventsReceiver::onChange);
}
HRESULT onChange() { return S_OK; }
};
и тут компилятор нам выдаёт
error C3731: incompatible event 'HRESULT _IPlateDataEvents::onChange(void)' and handler 'HRESULT PlateDataEventsReceiver::onChange(void)'; event source and event handler must have the same event type
The event type of '_IPlateDataEvents' is 'native'.
The event type of 'PlateDataEventsReceiver' is 'COM'.
действительно, в .tli и .tlh _IPlateDataEvents объявлен как простой интерфейс, что же делать?