我正在学习 Microsoft OLE 自动化和 COM,它使用 VARIANT 来传递数据。我读过它是联合数据结构,但没有找到足够的信息。
由于我是自动化和 COM 的新手,这对我了解更多关于 VARIANT 会有帮助吗?
我正在学习 Microsoft OLE 自动化和 COM,它使用 VARIANT 来传递数据。我读过它是联合数据结构,但没有找到足够的信息。
由于我是自动化和 COM 的新手,这对我了解更多关于 VARIANT 会有帮助吗?
COM 自动化定义了一组类型,它知道如何通过线程或进程边界进行编组。
这意味着如果您将接口限制为仅使用这些类型,并且您使用类型库描述您的接口(大多数开发工具,例如 Visual Studio,会自动执行此操作),则不需要自定义代理/存根。
这些类型在此处描述:VARENUM Enumeration。
VARIANT类型本身就是一种自动化类型,它是一个可以包含任何其他自动化类型的结构。
COM 自动化出现在 Visual Basic 开发环境中(直到版本 6,VB.NET 之前的版本)。VB/VBA 定义了相同的类型(包括Variant
)。
VARIANT 的长度为 16 个字节。前两个字节定义了变体持有的数据类型:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms221170(v=vs.85).aspx
VARIANT 的后半部分保存变量的内容。欲了解更多信息:
https://msdn.microsoft.com/en-gb/library/windows/desktop/ms221627(v=vs.85).aspx