[fpc-pascal] support for using an activex
Roberto Padovani
padovani.r at gmail.com
Wed May 25 16:01:14 CEST 2011
2011/5/25 Ludo Brands <ludo.brands at 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
More information about the fpc-pascal
mailing list