Ver Mensaje Individual
  #1  
Antiguo 21-08-2017
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Reputación: 14
cmfab Va por buen camino
Uso de interfaces

Hola a todos. Quisiera hacer una consulta.

He importado una DLL como un objeto COM a través de la opción de Impor Component de Delphi. hasta acá todo bien, se me genera el archivo .pas con una serie de clases y plantillas de interfaces. El problemas es que algunas las puedo usar y otras no dentro del mismo archivo generado, por ejemplo esta Interface:

Código Delphi [-]
 IAcceptor_API = interface(IDispatch)
    ['{4922B689-4FB6-42E2-A8B8-09F07AC00E90}']
    function Get_CapAdvBookmark: WordBool; safecall;
    function Get_CapApplicationID: WordBool; safecall;
    function Get_CapApplicationPN: WordBool; safecall;
    function Get_CapAssetNumber: WordBool; safecall;

puedo acceder a ella sin problemas, creando la clase de la siguiente manera:

Código Delphi [-]
CreateComObject(CLASS_Acceptor) as IAcceptor_API;

Si embargo, otra interface como esta:

Código Delphi [-]
 IAcceptorEvents = dispinterface
    ['{96CD7E9C-E83A-4C52-AA32-6834CAA33018}']
    procedure OnCalibrateFinish(sender: OleVariant; const e: _EventArgs); dispid 1;
    procedure OnCalibrateProgress(sender: OleVariant; const e: _EventArgs); dispid 2;

no puedo acceder a ella, no se si es por el tipo "dispinterface", o que está pasando que me dice que la clase no está registrada, sin embargo todas las clases e interfaces están en el mismo archivo generado durante la importación del componente, están en el registro de Windows. he revisado en la web y la segunda interface he tratado de usarla mediante este código:

Código Delphi [-]
Disp := CreateComObject(IAcceptorEvents) as IDispatch;
Dispint := IAcceptorEvents(Disp);

De igual forma me da Clase no registrada.

Alguna idea de que puede estar pasando ?. Gracias de antemano por sus atenciones
Responder Con Cita