[Lazarus] ActiveX, TOLEControl
lacak at zoznam.sk
Thu Oct 20 10:37:03 CEST 2016
>>>> I need help with OCX component (not visual I guess), which I need
>>>> use in Lazarus application (to control another application, which
>>>> supplies this OCX control).
>>>> I have imported type library using importtl.exe (new unit was
>>>> created successfully)
>>>> Then in program I have created instance:
>>>> v := CreateOleObject('SCAPS.ScSamlightClientCtrl');
>>>> intf := CreateComObject(CLASS_ScSamlightClientCtrl) as
>>> What is the type of your V or intf variable?
>> V: OLEVariant;
>> intf: _DSamlight_client_ctrl_ocx;
>>> I am wild guessing maybe they are not proper referenced type so the
>>> object is created and then immediately freed.
>> There is something strange behind scene. I have tried various methods:
> I remember in Delphi, I sometimes have to call CoInitialize and
> Not sure if FPC has to do the same.
> Have you tried that?
I did debuging in Delphi looking at what is called and I have found,
that when I add two other lines it works!:
Unknown := CreateComObject(CLASS_ScSamlightClientCtrl);
// these two lines are necessary:
FSamlightClientCtrl := Unknown as ScSamlightClientCtrl;
I have no idea why they are needed, but may be that they perform some
initialization of component ... I also wonder if other users can suffer
from it ?
More information about the Lazarus