代理/存根是暴露接口?

假设我介绍了一个COM接口,并且不希望任何第三方使用它 。 我完全控制了COM组件和保存接口定义的IDL文件的来源。 我的COM组件将需要编组的东西来回接口,所以我需要实现IMarshal或提供一个typelib或提供一个代理/存根(stub) 。

显然,如果我提供一个typelib,任何人都可以检查它,并find我的界面是什么以及如何使用它。 这不是我想要的。

如果我使用代理/存根? 它会暴露的接口,让任何人检查它或将保持接口的细节隐藏?

不幸的是,这是不可能的。 COM的思想是客户端可以发现组件和接口。

在以前的工作中,我曾经在一个配备数字版权的应用程序上工作,在那里我们故意不使用COM,只是让人们更难以使用我们的应用程序。 我们必须建立我们自己的组件基础设施(除了其他安全措施外)。