博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Variant OLE automation
阅读量:5825 次
发布时间:2019-06-18

本文共 2267 字,大约阅读时间需要 7 分钟。

The Variant data type is the  for all .

  can contain any kind of data except fixed-length  data. 

You can use the Variant data type in place of any data type to work with data in a more flexible way. If the contents of a Variant variable are digits, they may be either the string representation of the digits or their actual value, depending on the context. 

变体类型VARIANT 其实是一个结构,结构中用一个vt成员表示数据的类型,同时真正的数据则存储在union空间中。

1.        struct VARIANT

2.        {
3.            VARTYPE vt;                     //数据类型 
4.            union
5.            {
6.                LONG            lVal;       //VT_I4 
7.                VARIANT_BOOL    boolVal     //VT_BOOL 
8.                BSTR            bstrVal;    //VT_BSTR 
9.            }
10.    };

 上面的结构为了帮助理解,实际的定义如下

typedef struct tagVARIANT {  union {    struct __tagVARIANT {      VARTYPE vt;      WORD    wReserved1;      WORD    wReserved2;      WORD    wReserved3;      union {        LONGLONG            llVal;        LONG                lVal;        ......        UINT                *puintVal;        struct __tagBRECORD {          PVOID       pvRecord;          IRecordInfo *pRecInfo;        } __VARIANT_NAME_4;      } __VARIANT_NAME_3;    } __VARIANT_NAME_2;    DECIMAL             decVal;  } __VARIANT_NAME_1;} VARIANT, *LPVARIANT, VARIANTARG, *LPVARIANTARG;

 

Variant structure

Variant date type

 COleVariant  基于  Variant

自动化技术的难点在于数据的传递。应用VARIANT type,which is a tagged union, it has a data member for the value (this is an anonymous C++ union) and a data member indicating the type of information stored in the union.

ThVARIANT type is encapsulated in the  class. The supporting CURRENCY and DATEclasses are encapsulated in the  and  classes.

_____OLE antomation

OLE, object linking and enbeding, 对象链接和嵌入。

OLE自动化:一个程序有计划的控制另一个程序的能力

OLE 控件: 小型的组件程序,可嵌入到另外的程序,提供自己专有的功能。

OLE文档:完善早期的混合文档功能,不但支持简单链接和嵌入,还支持在位激活和拖放

服务器: 通过特定的接口,将自己完成的一些功能,提供给使用自己的一些程序。 如绘图程序就是一个文档服务器。

automation 和OLE文档技术类似,允许一个应用程序 编程控制 另一个应用程序“自愿”提供的功能的技术,称为OLE自动化。                         前一个应用程序:自动化客户或控制器。另一个应用程序称为自动化服务器。

如VC 控制 excel. VC 是自动化客户。 excel 是服务器。

随着对OLD技术的要求越来越广泛,微软将其用新的标签代替,即 ActiveX.

参考

 

_____COleSafeArray       //a,用于数组

COleSafeArray derives from the OLE VARIANT structure. The OLE SAFEARRAY member functions are available through COleSafeArray, as well as a set of member functions specifically designed for one-dimensional arrays of bytes.

 

COleVariant 似乎与Variant 用法差不大,但又是两个东西。

 

转载于:https://www.cnblogs.com/aprilapril/p/3462961.html

你可能感兴趣的文章
C语言数据类型char
查看>>
Online Patching--EBS R12.2最大的改进
查看>>
Binary Search Tree Iterator leetcode
查看>>
uva-317-找规律
查看>>
Event事件的兼容性(转)
查看>>
我的2014-相对奢侈的生活
查看>>
zoj 2412 dfs 求连通分量的个数
查看>>
Java设计模式
查看>>
一文读懂 AOP | 你想要的最全面 AOP 方法探讨
查看>>
Spring Cloud 微服务分布式链路跟踪 Sleuth 与 Zipkin
查看>>
ORM数据库框架 SQLite 常用数据库框架比较 MD
查看>>
华为OJ 名字美丽度
查看>>
微信公众号与APP微信第三方登录账号打通
查看>>
onchange()事件的应用
查看>>
Windows 下最佳的 C++ 开发的 IDE 是什么?
查看>>
软件工程师成长为架构师必备的十项技能
查看>>
python 异常
查看>>
百度账号注销
查看>>
mysql-This version of MySQL doesn’t yet support ‘LIMIT & IN/ALL/ANY/SOME 错误解决
查看>>
BIEE Demo(RPD创建 + 分析 +仪表盘 )
查看>>