消費者是否有任何方法可以枚舉給定COM對象實現的所有接口?如何檢測COM對象實現的所有接口?
回答
如果您只是想知道消費者可以調用哪些方法,則可以嘗試使用IDispatch/IDispatchEx。
在COM中,IUnknown上的QueryInterface方法不需要公開它可能返回的接口。你根據自己的IID要求一個,你要麼不明白。 QI在特定COM對象中的實現差異很大,但它應該遵循微軟在這裏描述的模式 - http://msdn.microsoft.com/en-us/library/ms682521%28VS.85%29.aspx。
Dependency Walker可能做的工作你...
http://theircorp.byethost11.com/index.php?vw=TypeLib是考察TBL文件的免費工具。
Dependency Walker是否有這個功能? –
Dependency Walker將不會顯示接口,因爲唯一的導出是DllGetClassObject,DllRegisterServer等(用於DLL託管的COM)。
正如weismat所說,您可以檢查TLB文件。許多COM對象在可執行文件的資源部分包含嵌入的typelib。使用諸如資源黑客之類的工具,您可以提取TLB並使用LoadTypeLib COM函數獲取指向ITypeLib接口的指針(當然,您可以直接使用LoadTypeLib/LoadTypeLibEx與COM或EXE DLL)。
通過此接口,您可以遍歷其中包含的類型。
儘管如此,評估TLB的內容不會公開有關COM對象可能使用的任何專用接口的信息。 –
私人COM接口不會出現,你是對的。 –
- 1. 如果COM對象實現接口,如何使用JIntegra檢查Java?
- 2. 測試對象是否實現接口
- 3. 檢測實現接口的對象的類
- 4. 檢查對象是否實現接口
- 5. 動態檢測TypeScript中的對象實現接口
- 6. NUnit - 如何測試實現特定接口的所有類
- 7. Java接口實現對象?
- 8. 返回實現接口的所有通用列表對象
- 9. nhibernate查詢實現接口的所有對象
- 10. com對象和接口
- 11. 該對象如何檢查實現了接口
- 12. IUnknown接口 - 用於COM \ COM +對象?
- 13. 如何獲取對象是實例的所有接口和類?
- 14. 如何檢查接口對象是否實現另一個接口?
- 15. 如何找到實現一個接口和調用方法的所有對象
- 16. JavaScript的檢查,如果對象實現HTMLAnchorElement接口
- 17. 實現接口的對象的方法?
- 18. C++運行時檢查,如果對象實現了接口
- 19. ArrayList與實現接口的對象
- 20. 實現接口的類和genric對象
- 21. Tensorflow對象檢測API不檢測所有對象
- 22. 如何自動檢測Arduino COM端口?
- 23. 查找類實現的所有接口
- 24. JMockit:嘲笑接口的所有實現
- 25. 調用實現接口的所有類
- 26. 檢索對象的列表,實現給定的接口
- 27. 如何自動檢測連接到COM端口的設備
- 28. 實現一個簡單的COM對象
- 29. 檢索實現多個程序集接口的對象
- 30. 測試在Java中實現接口的所有類
如果記不清楚,使用IDispatch/IDispatchEx,您將在IDL中捕獲oleautomation屬性的接口。 –