2011-09-22 58 views
0

我在VisualBasic 6中編寫了一個ActiveX控件,它將用作某個第三方框架的插件。框架期望我的控件暴露一些屬性和方法。這一切似乎運作良好,除了我的一個屬性似乎被忽略。我可以監視對VisualBasic 6 ActiveX控件的COM調用嗎?

在C++中,我可以將調試語句放入IDispatch::GetIDsOfNamesIDispatch::Invoke的重新實現中,以查看框架試圖訪問哪些成員 - 也許文檔是錯誤的,並且期望使用不同的屬性名稱。

是否有可能在Visual Basic 6中監視對COM屬性/方法的訪問?

回答

3

最簡單的方法是在有問題的方法/屬性中添加某種形式的日誌記錄。我不認爲你可以掛鉤較低級別的COM調用。 對於日誌記錄,可以使用OutputDebugString()

+0

對,我正在使用OutputDebugString。但是,如何查詢調試輸出以防某些屬性被查詢?畢竟,這個屬性在我的VisualBasic 6代碼中是一個普通的'public FooProperty As String'。 –

+0

明確地將其作爲公共屬性而不是公共變量。 '公共財產獲取Wibble()作爲字符串'(和'公共財產讓Wibble(ByVal NewWibble作爲字符串)'如果你想它是可寫的) – Deanna

+0

啊,非常好 - 這似乎工作!我不知道這是可能的,謝謝! –

2

這裏有一個相當老的'Hardcore Visual Basic'書,教你如何在VB5/6中實現IUnknown,IDispatch等。

+0

有趣!感謝提到這一點,我一定會看看! –

相關問題