COleDataSource类起到缓存的作用。它被用户在数据传输期间,例如剪贴板或拖放操作,为应用存放数据。
可以直接建立一个OLE数据资源。一般地,COleClientItem类 和COleServerItem 类在响应CopyToClipboard 时将会建立OLE数据资源。请参阅COleServerItem:: CopyToClipboard的简单描述。为CopyToClipboard 和DoDragDrop成员函数创建OLE数据资源时,如果要添加另外的剪贴板格式,可覆盖客户项或服务器项的OnGetClipboardData成员函数。
无论何时你准备进行数据的传输,必须先建立该类的一个对象,并用最恰当的格式将数据填写进去。插入数据的方式将直接影响是否数据可以直接提供(立即提供)或响应命令提供(延迟提供)。使用每一种剪贴板格式提供数据(和一个可选的FORMATETC结构),调用DelayRenderData。
#include <afxole.h>
COleDataSource类的成员
构造函数COleDataSource构造一个COleDataSource对象
操作CacheData使用STGMEDIUM结构以指定方式提供数据CacheGlobalData使用HGLOBAL以指定方式提供数据DoDragDrop执行拖放操作。SetClipboard放置一个COleDataSource对象到剪贴板中。Empty清空数据的COleDataSource对象FlushClipboard丢弃剪贴板中的所有数据GetClipboardOwner验证放置在剪贴板中的数据仍然存在OnRenderData作为延迟提供数据的一部分存取数据OnRenderFileData作为延迟提供数据的一部分存取数据到CFile中OnRenderGlobalData作为延迟提供数据的一部分存取数据到HGLOBAL中OnSetData替换COleDataSource对象中的数据DelayRenderData使用延迟提供方式以指定格式提供数据DelayRenderFileData以指定方式给CFile指针提供数据DelaySetData为OnSetData中支持的每一种格式调用