Pregunta

Estoy escribiendo una DLL que se comunica con Excel a través de su interfaz IDispatch.Desde VBA paso una variante que contiene Application.Caller desde donde dibujo el puntero IDispatch a través de .pDispVal.

Lo que me gustaría saber es cómo consultar la interfaz a través de ese puntero IDispatch.Quiero configurar un contenedor de puntos de conexión y desde allí encontrar un punto de conexión con Excel.El objetivo final es vincular las cosas al evento Calcular de Excel y poder manipular los datos de Excel.

¿Fue útil?

Solución

Recomendaría los excelentes tutoriales COM (Delphi) de Binh Ly en http://www.techvanguards.com/ que incluye capítulos íntegramente dedicados a IConnectionPoint y mecanismos relacionados.

También ofrece una herramienta gratuita para generar código EventSink.

Aún así, tengo la fuerte sensación de que esto no debería ser necesario en absoluto si todo lo que quieres hacer es reaccionar a un evento desencadenado por Excel. Application objeto.¿Ha intentado simplemente utilizar los objetos contenedores que genera el importador de la biblioteca de tipos de Delphi?Por supuesto, también puedes escribir tus propios envoltorios.

Por otra parte, todavía no he escrito ningún complemento para Excel, pero sí escribo complementos para Outlook y Word para ganarme la vida y Excel realmente no debería ser muy diferente en este sentido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top