PDA

Ver la Versión Completa : Uso de interfaces


cmfab
21-08-2017, 15:36:25
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:


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:

CreateComObject(CLASS_Acceptor) as IAcceptor_API;

Si embargo, otra interface como esta:

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:

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