2010-11-30 113 views
0

假設我是introduced a COM interface and don't want any third party to use it。我完全控制了COM組件和保存接口定義的IDL文件的來源。我的COM組件將需要從那個接口編組東西,所以I'll need to either implement IMarshal or provide a typelib or provide a proxy/stub代理/存根是否暴露接口?

顯然,如果我提供一個typelib,任何人都可以檢查它並找到我的界面是什麼以及如何使用它。這不是我想要的。

如果我使用代理/存根?它會暴露界面,並讓任何人檢查它或將保持界面細節隱藏?

回答

1

不幸的是,這是不可能的。 COM的想法是客戶可以發現組件和接口。

在之前的工作中,我從事過數字版權應用程序的開發工作,並且在那裏我們故意不使用COM來讓人們更難以使用我們的應用程序。我們不得不建立我們自己的組件基礎設施(除了其他安全措施外)。

+0

我不能同意你的看法。如果沒有編組,只通過使用早期綁定來實現內部工作是微不足道的 - 那麼客戶端就不需要在運行時知道接口。我們這樣做,它的工作。 – sharptooth 2010-11-30 09:16:24