2009-11-18 50 views
0

我想枚舉機器上的所有IDispatch支持對象。目前我需要知道類ID或編號是什麼,但是爲了檢查我的機器,我想知道是否可以枚舉實現IDispatch的所有對象。枚舉機器上的所有IDispatch實現對象

這甚至可能嗎?

任何幫助將不勝感激:)

回答

1

這是一個非常奇怪的請求。摩擦是在「全部」規定。通過HKCR \ Typelib鍵和LoadTypeLib()的簡單枚舉是不夠的,COM服務器不需要發佈類型庫。您實際上必須爲CoCreateInstance()創建IDispatch的coclass和QueryInterface。這不僅速度慢,而且風險也很大。

如果你解釋爲什麼你真的想要做這樣的事情,你可能會得到更好的答案。調用IDispatch :: Invoke()時沒有某種想法,這些參數意味着什麼,或者副作用可能是災難的祕訣。遠離「ReformatDrive」之類的方法名稱。

+0

在尋找IDispatch實現方面,它確實有點學術性。其他的事情我很感興趣,看看有什麼可用的,或者不好,或者有,記錄。我希望你可以創建一個IEnum *,找到它們。我假設ClassIDs都在註冊表中,或者這是否,必然,這種情況.... – Goz 2009-11-18 17:53:54

+0

我應該補充我很清楚我可能意外釋放的破壞,但同樣,我非常瞭解可以從這樣做中獲得力量...... – Goz 2009-11-18 17:57:45