Page 1 of 1

Duda de cuando usar TActiveX, TOleAuto y CreateObject

PostPosted: Tue Sep 27, 2022 3:11 pm
by AngelSalom
Hola amigos, estoy jugueteando con una librería comercial de controles que los distribuye como "ActiveX COM products".

Hasta ahora casi todas las pruebas las estoy haciendo con la clase TActiveX con bastante éxito aunque hay algunos que se resisten y ahí es cuando he empezado a hacer algunas pruebas.
Algunos los puedo usar con un CreateObject y otros con TOleAuto .... de aquí la duda, ¿cual es la clase / función adecuada ? ¿hay más de una forma de hacer lo mismo?

Me refiero a Cuándo usar TOleAuto, CreateObject y TActivex.

Probando el ejemplo adorick.prg de la carpeta samples de FWH veo que estas dos implementaciones dan el mismo resultado :

Code: Select all  Expand view

oRsCust := TOleAuto():New( "ADODB.Recordset" )
oRsCust := CreateObject( "ADODB.Recordset" )


¿Alguna sugerencia?
Gracias!

Re: Duda de cuando usar TActiveX, TOleAuto y CreateObject

PostPosted: Tue Sep 27, 2022 5:55 pm
by Antonio Linares
Estimado Angel,

En https://github.com/harbour/core/blob/master/contrib/xhb/xhbole.prg encuentras:
Code: Select all  Expand view
FUNCTION CreateObject( xOle, cLicense )
   RETURN TOleAuto():New( xOle,, cLicense )

luego esas dos funciones son equivalentes.

La diferencia con TActiveX es cuando creas un objeto OLE tipo control (con interface de usuario), en esos casos necesitas TActiveX

Que me corrijan si me equivoco, Harbour no da soporte de ActiveX salvo a traves del interface "AtlAxWin" y fué implementado por Mindaugas.
Basicamente la case "AtlAxWin" es una clase de control para poder soportar los controles ActiveX. Con la Clase TActiveX de FWH no necesitamos usar la capa "AtlAxWin"

Re: Duda de cuando usar TActiveX, TOleAuto y CreateObject

PostPosted: Tue Sep 27, 2022 7:37 pm
by AngelSalom
Estupendo Antonio, claro como el agua. :lol: :lol:

Re: Duda de cuando usar TActiveX, TOleAuto y CreateObject

PostPosted: Fri Sep 30, 2022 1:10 am
by Lailton
Esta 100% correcto Antonio.

Una pergunta sobre el tema, se fivewin no usa "AtlAxWin" o que usa para criar la interface con activex?

( lo pergunto por que la AtlAxWin funciona bien pero tiene limitacion y falha en algunas versiones de windows. )

Re: Duda de cuando usar TActiveX, TOleAuto y CreateObject

PostPosted: Fri Sep 30, 2022 7:33 am
by Antonio Linares
Dear Lailton,

We use a FWH new control class:

@ 0, 0 ACTIVEX oActiveX PROGID "Shell.Explorer" OF oWnd

MsgInfo( GetClassName( oActiveX:hWnd ) ) // TACTIVEX