Ir al contenido


Foto

Ayuda con Objetos COM


  • Por favor identifícate para responder
No hay respuestas en este tema

#1 Khronos

Khronos

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 56 mensajes

Escrito 05 agosto 2009 - 03:14

Hola, estoy empezando a trabajar con los objectos COM y tengo un problemilla a la hora de registrar el objeto:



delphi
  1. library kCom;
  2.  
  3. uses
  4.   ComServ,
  5.   ComDe_TLB in 'ComDe_TLB.pas',
  6.   UMain in 'UMain.pas' {SomeThing: CoClass};
  7.  
  8. exports
  9.   DllGetClassObject,
  10.   DllCanUnloadNow,
  11.   DllRegisterServer,
  12.   DllUnregisterServer;
  13.  
  14. {$R *.TLB}
  15.  
  16. {$R *.RES}
  17.  
  18. begin
  19. end.






delphi
  1. unit UMain;
  2.  
  3. {$WARN SYMBOL_PLATFORM OFF}
  4.  
  5. interface
  6.  
  7. uses
  8.   Windows, ActiveX, Classes, ComObj, ComDe_TLB, StdVcl, Dialogs;
  9.  
  10. type
  11.   TSomeThing = class(TTypedComObject, ISomeThing)
  12.   protected
  13.     procedure ShowString(const S: String);
  14.   end;
  15.  
  16. implementation
  17.  
  18. uses ComServ;
  19.  
  20. procedure TSomeThing.ShowString(const S: string);
  21. begin
  22.   showmessage(s);
  23. end;
  24.  
  25. initialization
  26.   TTypedComObjectFactory.Create(ComServer, TSomeThing, Class_SomeThing,
  27.     ciMultiInstance, tmApartment);
  28. end.



Voy a Run > Register ActiveX Server y lo instala.

Ahora me gustarí­a poder llamarlo desde otra aplicación o mediante un script. Utilicé otras veces la función CreateOleObject pero no se como implementarla para usar mi objeto Com.



delphi
  1. uses ComObj;
  2. ...
  3.  
  4. var
  5. Obj: Variant;
  6. begin
  7. Obj:= CreateOleObject('kCom'); //Aquí­ suelta el error
  8. end;



Espero que me puedan ayudar, saludos.
  • 0




IP.Board spam blocked by CleanTalk.