2011-11-07 45 views
8

我有一個後期綁定的COM對象(My.COMInterface),它在完成處理時引發一個事件。如何從VB6代碼中使用該事件?如何從後期綁定的COM對象中使用事件?

如果我是早期綁定,我會將我的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++橋來處理事件,如this MSDN article描述。我希望有一個更簡單的方法!

+0

+1。除了MSDN文章中描述的內容之外,我不知道任何其他方式。你有沒有注意到關於使用VBScript的文章中的部分?您可以使用[Microsoft腳本控制](http://www.microsoft.com/downloads/details.aspx?familyid=d7e31492-2595-49e6-8c02-1426fec693ac&displaylang=en)與VB6進行VBScript橋接通信。關於使用VB6腳本控件的教程http://msdn.microsoft.com/en-us/library/aa227421(VS.60).aspx – MarkJ

回答

3

如果它是一個普通的COM對象,我還沒有在本地VB6中看到任何方式。 但是,如果對象是控件,則可以使用VBControlExtender接口和ObjectEvent事件。

+0

簡單的COM對象恐怕。看起來這是不可能的,這是一個恥辱 - 爲什麼在VBScript中很容易,但在VB6本身不可能?! –

+0

我沒有意識到VBScript支持它的後期綁定對象。你如何爲事件分配一個處理程序? – Deanna

+0

@Deanna請參閱RB的問題「Windows腳本宿主解決方案」一節中提供的[鏈接](http://msdn.microsoft.com/zh-cn/magazine/cc301508.aspx)中的代碼, – MarkJ