2011-11-07 31 views
8

İşlemi tamamladığında bir olayı yükselten bir COM nesnesine (My.COMInterface) sahibim. VB6 kodundan bu olayı nasıl tüketirim?Geç bağlı bir COM nesnesinden olayları nasıl kullanırım?

Önceden bağlayıcı olsaydım, COM nesnesini WithEvents olarak bildirir ve normal bir olay işleyicisi yazardım. Geç bağlama kullanarak bunu nasıl başarabilirim?

Güncel kodu:

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 

Şu anda bunu yapmak için biliyorum tek yolu this MSDN article açıklandığı gibi, olayları işlemek için bir C/C++ köprü yazmaktır. Daha basit bir yöntem umuyorum!

+0

+1. MSDN makalesinde anlatılanların dışında hiçbir şekilde bilmiyorum. VBScript kullanımıyla ilgili makaledeki bölüm fark ettiniz mi? [Microsoft Script Control] (http://www.microsoft.com/downloads/details.aspx?familyid=d7e31492-2595-49e6-8c02-1426fec693ac&displaylang=en) kullanarak VB6 ile iletişim kurabileceğiniz bir VBScript köprüsünüz olabilir. VB6'dan komut dosyası denetimini kullanma hakkında öğretici http://msdn.microsoft.com/en-us/library/aa227421(VS.60).aspx – MarkJ

cevap

3

Düz bir COM nesnesiyse, yerel VB6'da herhangi bir yol görmedim. Nesne bir denetim ise, VBControlExtender arabirimini ve ObjectEvent olayını kullanabilirsiniz.

+0

Plain COM nesnesi Korkarım. Bu bir utanç olan mümkün olmayacak gibi görünüyor - neden VBScript içinde kolay, ama VB6 için doğal olarak imkansız ?! –

+0

VBScript'in geç bağlı nesne için desteklediğini fark etmedim. Bir etkinliğe nasıl bir eylemci atarsınız? – Deanna

+0

@Deanna "Bir Windows Komut Dosyası Sunucusu çözümü" bölümünde, RB'nin sorusunda sağlanan [link] (http://msdn.microsoft.com/en-us/magazine/cc301508.aspx) koduna bakın. – MarkJ