Как использовать события из COM-объекта с поздним связыванием?

У меня есть 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. Надеюсь на способ попроще!


person RB.    schedule 07.11.2011    source источник
comment
+1. Я не знаю другого пути, кроме описанного в статье MSDN. Вы обратили внимание на раздел в статье об использовании VBScript? У вас может быть мост VBScript для связи с VB6 с помощью Microsoft Script Control. Учебное пособие по использованию элемента управления скриптом из VB6 msdn.microsoft.com /en-us/library/aa227421(VS.60).aspx   -  person MarkJ    schedule 07.11.2011


Ответы (2)


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

person Deanna    schedule 07.11.2011
comment
Боюсь, обычный COM-объект. Похоже, это будет невозможно, что очень жаль - почему это просто в VBScript, но невозможно изначально для VB6? !! - person RB.; 07.11.2011
comment
Я не понимал, что VBScript поддерживает его для объекта с поздним связыванием. Как назначить обработчик событию? - person Deanna; 07.11.2011
comment
@Deanna См. Код в ссылке в вопросе RB в раздел решение Windows Script Host - person MarkJ; 07.11.2011

См. класс EventCollection v2.0 - добавление поддержки событий в коллекции Э. Морсилло.

Следует делать то, что хочешь, и даже больше.

person wqw    schedule 07.11.2011