Tengo un objeto COM de última hora (My.COMInterface
) que provoca un evento cuando finaliza el procesamiento. ¿Cómo consumo ese evento desde el código VB6?¿Cómo puedo consumir eventos de un objeto COM enlazado tarde?
Si estaba vinculando anticipadamente, declararía mi objeto COM como WithEvents y escribiría un controlador de eventos normal. ¿Cómo puedo lograr esto usando el enlace tardío?
código actual:
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
La única manera que conozco para hacerlo actualmente es escribir un puente de C/C++ para controlar los eventos, como se describe en this MSDN article. ¡Estoy esperando un método más simple!
+1. No conozco otra forma además de lo que se describe en el artículo de MSDN. ¿Notaste la sección en el artículo sobre el uso de VBScript? Puede hacer que un puente de VBScript se comunique con el VB6 usando el [Microsoft Script Control] (http://www.microsoft.com/downloads/details.aspx?familyid=d7e31492-2595-49e6-8c02-1426fec693ac&displaylang=en). Tutorial sobre el uso del control de script desde VB6 http://msdn.microsoft.com/en-us/library/aa227421(VS.60).aspx – MarkJ