2011/5/25 Ludo Brands <ludo.bra...@free.fr>: > Regarding the tlb to pascal "conversion", AFAIK there is no support in fpc. > Delphi is clearly better equiped to work with COM objects. > > I have also been playing around with a generic eventsink class but the > problem is that events can have parameters (and a lot do). Your suggestion > of using TNotifyEvents could work for events without parameters. You could > leave the parameter stuff to the user of the eventsink, eventually helping > him by exposing the number and type of parameters, but that means that the > user has to have a reasonable good understanding of COM, including the data > types compatible with COM marshalling. >
Thanks for the explanation. In fact, that is the reason why I called it TSimpleEventSink, meaning that it was good for simple situation. In my case, for example, the activex controls a hardware stuff which only request the user to take an action sometimes. In the C++ source code for the class Device I have: [ uuid(168F5642-5751-49F5-9AA4-B8A7A5F6A5B8), helpstring("_IDeviceEvents Interface") ] dispinterface _IDeviceEvents { properties: methods: [id(1), helpstring("method OnCommChanged")] HRESULT OnCommChanged(); [id(2), helpstring("method OnStatesChanged")] HRESULT OnStatesChanged(); [id(3), helpstring("method OnContact")] HRESULT OnContact(); [id(4), helpstring("method OnMeasUpdate")] HRESULT OnMeasUpdate(); }; where this four simple events only alert the user about a change situation; then the user takes the suitable actions. Do you think it could work for me? Now I'm trying to write by hand a minimalist tlb, looking for the definitions in the activex source code.... Thanks a lot!! Roberto _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal