Как я использую события от COM-объекта с поздней привязкой? - PullRequest
8 голосов
/ 07 ноября 2011

У меня есть COM-объект с поздним связыванием (My.COMInterface), который вызывает событие после завершения обработки.Как использовать это событие из кода VB6?

Если бы у меня было раннее связывание, я бы объявил свой COM-объект как WithEvents и написал бы обычный обработчик событий.Как я могу добиться этого с помощью позднего связывания?

Текущий код:

Dim comObject as Object

'Function to launch Process.
Public Function LaunchProcess() As Boolean
    Set comObject = CreateObject("My.COMInterface")

    LaunchProcess= comObject.CallProcess()
    ' Once this process has finished, it will raise an event 
    ' called ProcessingFinished - how do I consume it?
End Function

Единственный способ, которым я знаю, сделать это в настоящее время - это написать C / C ++мост для обработки событий, как описано в этой статье MSDN .Я надеюсь на более простой метод!

Ответы [ 2 ]

3 голосов
/ 07 ноября 2011

Если это обычный COM-объект, я не видел никакого способа в родном VB6. Однако если объект является элементом управления, вы можете использовать интерфейс VBControlExtender и событие ObjectEvent.

1 голос
/ 07 ноября 2011

Посмотрите на EventCollection Class v2.0 - Добавить поддержку событий в Коллекции от E. Morcillo.

Должен делать то, что вы хотите и многое другое.

...