2009-11-06 25 views
5

Cuando crea una biblioteca de tipos en Delphi y crea una interfaz y la CoClass asociada, Delphi también crea declaraciones de dispinterface coincidentes.¿Para qué se utilizan las declaraciones dispinterface?

Según tengo entendido, esto se debe a que mi interfaz se deriva de IDispatch, pero pensé que TAutoObject implementa todo lo necesario para IDispatch. Entonces mi pregunta es triple:

  1. ¿Para qué se utiliza la dispinterface?
  2. ¿Por qué es necesario?
  3. ¿Cómo se usa?

Respuesta

4

TechVanguards.com es Delphi & sitio web COM con muy buen contenido. Tiene tutoriales y algunos ejemplos avanzados.
Encontrará información sobre disp interfaces y ejemplos de cómo trabajar con ellos.

+0

Este sitio está caído – EugeneK

4

COM es como VOODOO ¡usted solo debería involucrarse si está dispuesto a ser consumido por su poder!

COM realmente es un tema enormemente complicado cuando se llega a lo esencial. Sin embargo, en la superficie, una implementación como Delphis le brinda todas las herramientas que necesita para usarla de manera muy simple. Sin embargo, si está interesado en ensuciarse y ensuciarse, hay algunos libros muy buenos sobre COM que incluyen (desde una perspectiva Delphi) Delphi Com Programming.

Para simplificar realmente y tratar de responder a sus preguntas.

  1. VB no era capaz de hacer frente a IUnknown debido a las limitaciones en el uso de punteros (o algo así) por lo que Microsoft añadió despacho o disp interaces que permitió VB para interactuar con los objetos COM. Estas dispinterfaces se convirtieron en la base de los objetos Ole Automation (una rama de COM).
  2. Para dejar que VB funcione con COM
  3. Deja que Delphi haga eso por ti.
+0

VB5/6 ya no necesitan disinterfaces. VBScript/JScript do. – wqw

+0

¿cómo pueden no necesitar más disinterfaces? VB5/6 no han cambiado. No estoy seguro de entender lo que quieres decir. –

+0

:-)) VB4 sí. VB6 puede llamar a los métodos de IUnconocido solo como interfaces heredadas como una brisa. Sin embargo, no se puede convertir en Objeto. – wqw

Cuestiones relacionadas