Ho un oggetto COM tardivo (My.COMInterface
) che genera un evento al termine dell'elaborazione. Come posso consumare quell'evento dal codice VB6?Come si consumano eventi da un oggetto COM tardivo?
Se fossi in anticipo, dichiarerei il mio oggetto COM come WithEvents e scriverò un normale gestore di eventi. Come posso ottenere questo risultato utilizzando l'associazione tardiva?
codice attuale:
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
L'unico modo che conosco per farlo è attualmente per scrivere un ponte C/C++ per gestire gli eventi, come descritto in this MSDN article. Sto sperando in un metodo più semplice!
+1. Non conosco alcun modo oltre a quanto descritto nell'articolo MSDN. Hai notato la sezione nell'articolo sull'utilizzo di VBScript? Si potrebbe avere un bridge VBScript che comunica con il VB6 usando [Microsoft Script Control] (http://www.microsoft.com/downloads/details.aspx?familyid=d7e31492-2595-49e6-8c02-1426fec693ac&displaylang=en). Esercitazione sull'uso del controllo di script da VB6 http://msdn.microsoft.com/en-us/library/aa227421(VS.60).aspx – MarkJ