Variant OLE automation
The Variant data type is the data type for all variables.
can contain any kind of data except fixed-length String 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. };
http://blog.csdn.net/hsqaihkl/article/details/9149081
上面的结构为了帮助理解,实际的定义如下
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
http://msdn.microsoft.com/en-us/library/windows/desktop/ms221627(v=vs.85).aspx
Variant date type
http://msdn.microsoft.com/en-us/library/office/gg251448.aspx
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.
The VARIANT type is encapsulated in the COleVariant class. The supporting CURRENCY and DATEclasses are encapsulated in the COleCurrency and COleDateTime classes.
_____OLE antomation
OLE, object linking and enbeding, 对象链接和嵌入。
OLE自动化:一个程序有计划的控制另一个程序的能力
OLE 控件: 小型的组件程序,可嵌入到另外的程序,提供自己专有的功能。
OLE文档:完善早期的混合文档功能,不但支持简单链接和嵌入,还支持在位激活和拖放
服务器: 通过特定的接口,将自己完成的一些功能,提供给使用自己的一些程序。 如绘图程序就是一个文档服务器。
automation 和OLE文档技术类似,允许一个应用程序 编程控制 另一个应用程序“自愿”提供的功能的技术,称为OLE自动化。 前一个应用程序:自动化客户或控制器。另一个应用程序称为自动化服务器。
如VC 控制 excel. VC 是自动化客户。 excel 是服务器。
随着对OLD技术的要求越来越广泛,微软将其用新的标签代替,即 ActiveX.
参考
http://blog.csdn.net/feijj2002_/article/details/466215
_____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 用法差不大,但又是两个东西。
Variant OLE automation的更多相关文章
- SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程'sys.sp_OACreate' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configur
参见:http://msdn.microsoft.com/zh-cn/library/ms191188(SQL.105).aspx Ole Automation Procedures 选项 [本主题为 ...
- SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程'sys.sp_OACreate' 的访问
--开启 Ole Automation Procedures sp_configure ; GO RECONFIGURE; GO sp_configure ; GO RECONFIGURE; GO E ...
- SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程 'sys.sp_OACreate' 的访问
sqlserver2008导入excel到数据库的时候报错: SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程 'sys.sp_OACreate' ...
- [转]COPY OR MOVE FILES AND FOLDERS USING OLE AUTOMATION
本文转自:http://sqlindia.com/copy-move-files-folders-using-ole-automation-sql-server/ I love playing aro ...
- (在数据库中调用webservices。)SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程'sys.sp_OACreate' 的访问
--开启 Ole Automation Procedures sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_config ...
- SQLServer访问WebServices提示:SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程'sys.sp_OACreate' 的访问
问题描述 在数据库中调用webservices, 提示:SQLServer访问WebServices提示:SQL Server 阻止了对组件 'Ole Automation Procedures' 的 ...
- PeopleSoft OLE Automation error in Workbooks.Open: ObjectDoMethod: Microsoft Excel 不能访问文件
os: WinServer 2012 R2 64位 问题描述:PeopleSoft Web端运行AE 报上图错误,AD工具直接Test正常 解决方案: 运行> dcomcnfg 这将打开组件服务 ...
- C++ VARIANT 学习小记录
一:为什么会有这个? 目前,计算机语言有很多(大哥,为什么不能就那么一样呢?),如C++.Java,此外还有JavaScript.VBScript等脚本语言,它们自立门派,各自维护自己的数据类型. C ...
- Delphi Variant oleVariant
The OleVariant type exists on both the Windows and Linux platforms. The main difference between Vari ...
随机推荐
- Linux文件操作 笔记
fstat stat lstat 原型 #include <unistd.h> #include <sys/stat.h> #include <sys/types.h&g ...
- mysql 导出慢
转: 导出 mysqldump -uroot -p discuz -e --max_allowed_packet=1048576 --net_buffer_length=16384 > dis ...
- map的应用
1.map最基本的构造函数: map<string , int >mapstring; map<int ,string >mapint; map&l ...
- 论文笔记之: Hierarchical Convolutional Features for Visual Tracking
Hierarchical Convolutional Features for Visual Tracking ICCV 2015 摘要:跟卢湖川的那个文章一样,本文也是利用深度学习各个 layer ...
- MySQL性能优化总结(转)https://yq.aliyun.com/articles/24249
摘要: 一.MySQL的主要适用场景 1.Web网站系统 2.日志记录系统 3.数据仓库系统 4.嵌入式系统 二.MySQL架构图: 三.MySQL存储引擎概述 1)MyISAM存储引擎 MyIS ...
- redis集群的一些笔记
当节点数量少于6个时候会提示如下信息,初始化一个集群的时候需要6个节点,为什么?? *** ERROR: Invalid configuration for cluster creation. *** ...
- Android学习笔记(三)
在手机应用中菜单是很重要的一部分,它能够以直观的界面让用户去选择,现在我们学习如何去新建一个菜单. 首先在res目录下新建一个menu文件夹,然后在menu文件夹下新建一个Android XML Fi ...
- MVC4.0网站发布和部署到IIS7.0上的方法
最近在研究MVC4,使用vs2010,开发的站点在发布和部署到iis7上的过程中遇到了很多问题,现在将解决的过程记录下来,以便日后参考,整个过程主要以截图形式呈现 vs2010的安装和mvc4的安装不 ...
- iOS-浅谈runtime运行时机制
一.首先,从 runtime.h头文件中找到对 class 与 object 的定义 /// An opaque type that represents an Objective-C cla ...
- 对ASP.NET运行机制之 一般处理程序ashx的学习
一般处理程序(HttpHandler)是·NET众多web组件的一种,ashx是其扩展名.其中一个httpHandler接受并处理一个http请求,类比于Java中的servlet.类比于在Java中 ...