Domanda

Sto scrivendo una DLL che parla di Excel tramite la sua interfaccia IDispatch. Da VBA passo in una Variante che contiene Application.Caller da cui traggo il puntatore IDispatch tramite .pDispVal.

Quello che mi piacerebbe sapere è come interrogare l'interfaccia via che puntatore IDispatch. Voglio istituire un contenitore punto di connessione, e da lì trovare un punto di connessione a Excel. L'obiettivo finale è quello di legare le cose all'evento Calcolare di Excel ed essere in grado di manipolare i dati di Excel.

È stato utile?

Soluzione

mi sento di raccomandare di Binh Ly senza tempo eccellente (Delphi) COM tutorial a http://www.techvanguards.com/ che include capitoli interamente dedicati alla IConnectionPoint e meccanismi correlati .

Si offre anche uno strumento gratuito per la generazione di codice EventSink.

Ancora, ho la netta sensazione che questo non dovrebbe essere necessario a tutti se tutto quello che vuoi fare è reagire ad un evento innescato dal Excel Application oggetto. Hai provato semplicemente utilizzando gli oggetti wrapper che l'importatore Delphi Type Library genera per te? Ovviamente si può anche scrivere i propri involucri.

Poi di nuovo, non ho effettivamente scritto eventuali componenti aggiuntivi per Excel ancora - ma ho scrivere addins per Outlook e Word per una vita e di Excel in realtà non dovrebbe essere molto diverso a questo riguardo

.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top