Hi *,

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');
or
intf := CreateComObject(CLASS_ScSamlightClientCtrl) as _DSamlight_client_ctrl_ocx;
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:

var
  v1: OLEVariant;
  v2: ScSamlightClientCtrl;
  v: variant;
  ax: TActiveXContainer;
  disp: IDispatch;
  i: integer;

begin
  v1 := CreateOLEObject('SCAPS.ScSamlightClientCtrl');
  i := v1.scIsRunning;  // exception here

  v2 := CoScSamlightClientCtrl.Create;
  i := v2.scIsRunning;  // exception here

  ax := TActiveXContainer.Create(Self);
  //ax.OleClassName := 'SCAPS.ScSamlightClientCtrl';
CoCreateInstance(CLASS_ScSamlightClientCtrl, nil, CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER, IDispatch, disp);
  ax.ComServer:=disp;
  ax.Active := True;
  v := disp;
  i := v.scIsRunning;  // exception here

So in every case it returns exception when I try call first time interface method ...
I am not familiar with ActiveX technology so I have no idea what is wrong ?

-Laco.

--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus-ide.org
http://lists.lazarus-ide.org/listinfo/lazarus

Reply via email to