2011-11-07 11 views
8

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!

+0

+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

risposta

3

Se si tratta di un semplice oggetto COM, non ho visto alcun modo in VB6 nativo. Se l'oggetto era un controllo, tuttavia, è possibile utilizzare l'interfaccia VBControlExtender e l'evento ObjectEvent.

+0

Oggetto COM normale Ho paura. Sembra che questo non sia possibile, il che è un peccato: perché è facile con VBScript, ma impossibile in modo nativo per VB6? !! –

+0

Non mi ero reso conto che VBScript lo supporta per gli oggetti in ritardo. Come assegni un conduttore a un evento? – Deanna

+0

@Deanna Vedere il codice nel [collegamento] (http://msdn.microsoft.com/en-us/magazine/cc301508.aspx) fornito nella domanda di RB, nella sezione "una soluzione Windows Script Host" – MarkJ