oleautomation兼容数据类型和CTS的比较

时间:2010-08-11 13:01:10

标签: .net com clr

当我们在MIDL(Microsoft接口描述语言)中定义COM接口时,我们应该使用oleautomation兼容的数据类型。这些类型可以被COM感知语言识别。

突然间,.NET CTS(通用类型规范)闪现在我的脑海中。 CTS是任何.NET兼容语言必须遵守的最小类型子集。

CTS和oleautomation兼容类型不是非常相似吗? CTS是否从oleautomation兼容类型发展而来?

非常感谢。

1 个答案:

答案 0 :(得分:1)

嗯,不是真的。与oleauto兼容的类型集是相当严格的,因此与托管(值)类型的一对一映射并不特别令人惊讶。但是VARIANT,SAFEARRAY,IDispatch *和HRESULT等重要的oleauto类型没有直接映射。它们实际上可以分别映射到对象,System.Array,__ ComObject和System.Exception,这要归功于CLR中内置的COM互操作。这是CTS没有以任何方式规定的冷硬代码。