2011-11-07 9 views
8

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!

+0

+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

Respuesta

3

Si se trata de un objeto COM simple, no he visto ninguna forma en el VB6 nativo. Sin embargo, si el objeto era un control, podría usar la interfaz VBControlExtender y el evento ObjectEvent.

+0

Objeto COM sencillo Me temo. Parece que esto no será posible, lo que es una pena: ¿por qué es fácil en VBScript, pero es imposible para VB6? –

+0

No me di cuenta de que VBScript lo admite para el objeto enlazado tarde. ¿Cómo se asigna un controlador a un evento? – Deanna

+0

@Deanna Consulte el código en el [enlace] (http://msdn.microsoft.com/en-us/magazine/cc301508.aspx) proporcionado en la pregunta de RB, en la sección "una solución Windows Script Host" – MarkJ

Cuestiones relacionadas