词条 | 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。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。