2011-11-07 27 views
8

Tôi có một đối tượng COM bị ràng buộc trễ (My.COMInterface) sẽ tăng sự kiện khi nó xử lý xong. Làm thế nào để tiêu thụ sự kiện đó từ mã VB6?Làm cách nào để sử dụng các sự kiện từ đối tượng COM bị ràng buộc trễ?

Nếu tôi đã sớm ràng buộc, tôi sẽ khai báo đối tượng COM của tôi là WithEvents và viết một trình xử lý sự kiện bình thường. Làm thế nào tôi có thể đạt được điều này bằng cách sử dụng cuối ràng buộc?

đang hiện tại:

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 

Cách duy nhất mà tôi biết để làm điều đó hiện đang viết một C/C++ cầu để xử lý các sự kiện, như được mô tả trong this MSDN article. Tôi hy vọng cho một phương pháp đơn giản hơn!

+0

+1. Tôi không biết bất kỳ cách nào ngoài những gì được mô tả trong bài viết MSDN. Bạn có nhận thấy phần trong bài viết về cách sử dụng VBScript không? Bạn có thể có một cầu VBScript giao tiếp với VB6 bằng cách sử dụng [Microsoft Script Control] (http://www.microsoft.com/downloads/details.aspx?familyid=d7e31492-2595-49e6-8c02-1426fec693ac&displaylang=en). Hướng dẫn về cách sử dụng điều khiển tập lệnh từ VB6 http://msdn.microsoft.com/en-us/library/aa227421(VS.60).aspx – MarkJ

Trả lời

3

Nếu đó là đối tượng COM đơn giản, tôi chưa thấy bất kỳ cách nào trong VB6 gốc. Tuy nhiên, nếu đối tượng là điều khiển, bạn có thể sử dụng giao diện VBControlExtender và sự kiện ObjectEvent.

+0

đối tượng COM đồng bằng Tôi sợ. Hình như điều này sẽ không thể là một sự xấu hổ - tại sao nó dễ dàng trong VBScript, nhưng không thể tự nhiên cho VB6? !! –

+0

Tôi đã không nhận ra VBScript hỗ trợ nó cho đối tượng bị ràng buộc trễ. Làm thế nào để bạn chỉ định một xử lý cho một sự kiện? – Deanna

+0

@Deanna Xem mã trong [link] (http://msdn.microsoft.com/en-us/magazine/cc301508.aspx) được cung cấp trong câu hỏi của RB, trong phần "giải pháp Máy chủ Windows Script" – MarkJ

Các vấn đề liên quan