COleDataObject

COleDataObject

  COleDataObject没有基类。   COleDataObject用于从一个嵌入OLE项,或从剪贴板中通过拖放操作,以不同的数据格式存取数据时的数据传输。这类数据传输具有一个数据源和一个目的地。数据源是实现为一个COleDataSource类。无论目的地应用中是否有存放在内的数据,或从剪贴板中执行一次粘贴操作,都必须建立COleDataObject类的一个对象。   该类使你能够判定数据是否以一种指定的格式存在。可以列举可用的数据格式或检查一个给定的格式是否可用,然后用首选的格式进行数据存取。对象的存取可以用几种途径,包括使用一个CFile或一个HGLOBAL或STGMEDIUM结构。   #include <afxole.h>   COleDataObject类的成员   构造函数   
COleDataObject构造一个COleDataObject对象
  操作   
AttachClipboard粘附在剪贴板中的数据对象IsDataAvailable检查数据在指定格式下是否可用GetData用指定的格式从一个附加的OLE数据对象中拷贝数据GetFileData用指定格式从一个附加的OLE数据对象中拷贝数据到一个CFile指针GetGlobalData用指定格式从一个附加的OLE数据对象中拷贝数据到一个HGLOBALBeginEnumFormats为后面一次或多次的GetNextFormat调用作准备GetNextFormat返回下一个可用的格式Attach将指定OLE数据对象附加到COleDataObjectRelease分离并释放关联的IDataObject对象Detach分离关联的IDataObject对象
  COleDataObject::Attach   void Attach( LPDATAOBJECT lpDataObject, BOOL bAutoRelease = TRUE );   参数:   
lpDataObject 一个OLE数据对象的指针。
bAutoRelease 如果销毁COleDataObject对象时需释放OLE数据对象,其值为TRUE;否则为FALSE。
  说明:   调用该函数将一个OLE数据对象和COleDataObject对象关联。   要了解更多的信息,请参阅“OLE 2程序员参考(卷1)”中的 IDataObject结构。   COleDataObject::AttachClipboard   BOOL AttachClipboard( );   返回值:如果成功,则返回非零值;否则为0。   说明:   调用该函数粘贴一个当前在剪贴板中的数据对象到COleDataObject对象。   注意:   调用该函数将封锁剪贴板直至该数据对象被释放。数据对象在COleDataObject的析构函数中释放。   COleDataObject::BeginEnumFormats   void BeginEnumFormats( );   说明:   调用该函数为后面调用GetNextFormat从项存取一系列数据格式作准备。   调用BeginEnumFormats后,该数据对象支持的第一种格式的位置被存储起来,连续地调用GetNextFormat将列举数据对象的可用格式的序列。要检查数据在给定格式下的可用性,请使用COleDataObject::IsDataAvailable。   COleDataObject::COleDataObject   COleDataObject( );   说明:   构造一个COleDataObject对象。在调用COleDataObject函数之前,必须先调用COleDataObject::Attach或COleDataObject::AttachClipboard。   注意:   既然拖放操作的其中一个参数是一个COleDataObject的一个指针,无需调用该构造函数来支持拖放操作。   COleDataObject::Detach   LPDATAOBJECT Detach( );   返回值:分离的OLE数据对象的指针。   说明:   调用该函数将COleDataObject对象从它关联的OLE数据对象中分离出来,但不释放数据对象。   COleDataObject::GetData   BOOL GetData( CLIPFORMAT cfFormat, LPSTGMEDIUM lpStgMedium, LPFORMATETC lpFormatEtc = NULL );   返回值:如果成功,则返回非零值;否则为0。   参数:   
cfFormat 数据的返回格式。该参数可以是预定义剪贴板格式的一种或WindowsRegisterClipboardFormat函数的返回值。
lpStgMedium 接收数据的一个 STGMEDIUM结构。
lpFormatEtc 一个FORMATETC结构的指针,该结构说明数据的返回格式。如果你要在用cfFormat指定的剪贴板格式外指定另外的格式,给该参数提供一个值。如果该值为NULL, 将使用FORMATETC结构的缺省值。
  说明:   调用该函数以指定格式存取数据。   COleDataObject::GetFileData   CFile* GetFileData( CLIPFORMAT cfFormat, LPFORMATETC lpFormatEtc = NULL );   返回值:   如果成功,则返回一个新的包含数据的CFile或CFile派生类的对象的指针;否则返回NULL。   参数:   
cfFormat 数据的返回格式。该参数可以是预定义剪贴板格式的一种或WindowsRegisterClipboardFormat函数的返回值。
lpFormatEtc 一个FORMATETC 结构的指针,该结构说明数据的返回格式。如果你要在用cfFormat指定的剪贴板格式外指定另外的格式,给该参数提供一个值。如果该值为NULL,将使用FORMATETC结构的缺省值。
  说明:   调用该函数创建一个CFile或CFile派生的对象,以指定格式将数据存取到一个CFile指针中。视数据存储的介质不同,则返回值指向的实际类型可能是CFile,CSharedFile或COleStreamFile。   注意:   该函数返回值存取的CFile对象属于调用者。应由调用者来删除CFile数据对象以关闭文件。   要了解更多的信息,请参阅“OLE 2程序员参考(卷1)”中的FORMATETC。要了解更多的信息,请参阅Win32文档中的RegisterClipboardFormat。   COleDataObject::GetGlobalData   HGLOBAL GetGlobalData( CLIPFORMAT cfFormat, LPFORMATETC lpFormatEtc = NULL );   返回值:   如果成功,则返回包含数据的全局内存块的句柄;否则返回NULL。   参数:   
cfFormat 数据的返回格式。该参数可以是预定义剪贴板格式的一种或Windows RegisterClipboardFormat函数的返回值。
lpFormatEtc 一个FORMATETC结构的指针,该结构说明数据的返回格式。如果你要在用cfFormat指定的剪贴板格式外指定另外的格式,给该参数提供一个值。如果该值为NULL, 将使用FORMATETC结构的缺省值。
  说明:   调用该函数分配全局内存块,以指定格式将数据存取到一个HGLOBAL中。   要了解更多的信息,请参阅“OLE 2程序员参考(卷1)”中的FORMATETC。   要了解更多的信息,请参阅Win32文档中的RegisterClipboardFormat。   COleDataObject::GetNextFormat   BOOL GetNextFormat( LPFORMATETC lpFormatEtc );   返回值:   如果有另外格式可用,则返回非零值;否则为0。   参数:   
lpFormatEtc 一个FORMATETC结构指针,用于函数返回时存取格式信息。
  说明:   重复调用该函数获取所有从项存取数据的可用格式。   调用BeginEnumFormats后,该数据对象支持的第一种格式的位置被存储起来,连续地调用GetNextFormat将列举数据对象的可用格式的序列。   使用这些函数可罗列可用格式。要检查数据在给定格式下的可用性,请使用COleDataObject::IsDataAvailable。   要了解更多的信息,请参阅“OLE 2程序员参考(卷1)”中的IEnumXXXX::Next。   COleDataObject::IsDataAvailable   BOOL IsDataAvailable( CLIPFORMAT cfFormat, LPFORMATETC lpFormatEtc = NULL );   返回值:   若数据在指定格式下可用,则返回非零值;否则为0。   参数:   
cfFormat 数据的返回格式。该参数可以是预定义剪贴板格式的一种或Windows RegisterClipboardFormat函数的返回值。
lpFormatEtc 一个FORMATETC结构的指针,该结构说明数据的返回格式。如果你要在用cfFormat指定的剪贴板格式外指定另外的格式,给该参数提供一个值。如果该值为NULL,将使用FORMATETC结构的缺省值。
  说明:   调用该函数判定特定格式是否可用于从OLE 项中存取数据。在调用GetData,GetFileData或GetGlobalData之前调用该函数是十分有用的。   COleDataObject::Release   void Release( );   说明:   调用该函数释放一个先前和COleDataObject关联的IDataObject对象的所有权。可以显式地调用Attach或AttachClipboard 或由框架将一个IDataObject对象和COleDataObject 关联。如果Attach 的 bAutoRelease参数为 FALSE, IDataObject对象将不释放。在这种情形下,调用者有责任使用IUnknown::Release释放IDataObject。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值