[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:

	helpstring("_IDeviceEvents Interface")
dispinterface _IDeviceEvents
	[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!!


More information about the fpc-pascal mailing list