Как мне сделать ConnectionPoint в Delphi? - PullRequest
0 голосов
/ 11 декабря 2008

Я пишу DLL, которая общается с Excel через интерфейс IDispatch. Из VBA я передаю вариант, содержащий Application.Caller, из которого я рисую указатель IDispatch через .pDispVal.

Я хотел бы знать, как запросить интерфейс через указатель IDispatch. Я хочу настроить контейнер точки подключения и оттуда найти точку подключения к Excel. Конечная цель состоит в том, чтобы связать вещи с событием Calculate в Excel и иметь возможность манипулировать данными Excel.

Ответы [ 2 ]

1 голос
/ 12 декабря 2008

Я бы порекомендовал бесконечные превосходные COM-учебники Бин Ли (Delphi) на http://www.techvanguards.com/, которые включают главы, полностью посвященные IConnectionPoint и связанным с ними механизмам .

Он также предлагает бесплатный инструмент для генерации кода EventSink.

Тем не менее, у меня есть сильное чувство, что это вообще не нужно, если все, что вы хотите сделать, это реагировать на событие, вызванное объектом Excel Application. Вы пробовали просто использовать объекты-обертки, которые сгенерировал для вас импортер Delphi Type Library? Конечно, вы также можете написать свои собственные обертки.

Опять же, я еще не написал никаких надстроек для Excel - но я пишу надстройки для Outlook и Word для жизни, и Excel действительно не должен сильно отличаться в этом отношении.

1 голос
/ 11 декабря 2008
...