Como eu faço ConnectionPoint em Delphi?
-
21-08-2019 - |
Pergunta
Eu estou escrevendo um DLL que fala para o Excel através de sua interface IDispatch. De VBA eu passar em uma contendo Application.Caller
variante a partir da qual eu desenhar o ponteiro IDispatch através .pDispVal
.
O que eu gostaria de saber é como consultar a interface via esse ponteiro IDispatch. Eu quero criar um recipiente de ponto de conexão, e de lá encontrar um ponto de conexão para o Excel. O objetivo final é para amarrar as coisas para o evento Calculate do Excel e ser capaz de manipular os dados Excel.
Solução
Eu recomendaria Binh Ly eternamente excelente (Delphi) COM tutoriais em http://www.techvanguards.com/ , que inclui capítulos inteiramente dedicados a IConnectionPoint
e mecanismos relacionados .
Ele também oferece uma ferramenta gratuita para gerar código EventSink.
Ainda assim, eu tenho um forte sentimento de que isso não deve ser necessário em todos, se tudo que você quer fazer é reagir a um evento acionado pelo objeto Application
Excel. Já experimentou simplesmente usando os objetos de mensagens publicitárias que o importador Delphi Type Library gera para você? Você pode, naturalmente, também escrever seus próprios wrappers.
Então, novamente, eu não tenho realmente escrito quaisquer suplementos para Excel ainda -. Mas eu faço suplementos de escrita para Outlook e Word para uma vida e Excel realmente não deve ser muito diferente a este respeito
Outras dicas