visual c++读书笔记

来源:互联网 发布:php ini loaded file 编辑:程序博客网 时间:2024/05/01 16:27

利用MFC实现统一数据的传输:

COleDataSource:当想使用数据来源时,我们可以构造一个COleDataSource对象,他实现了IDataObject接口。这个类建立并管理存储在高速cache中的数据格式的集合。下面是一些重要的函数:

void CacheData( CLIPFROMAT cfFormat, STGMEDIUM *lpstgMedium, FORMATETC *lpFormatEtc = NULL )这个函数为数据传输在数据对象的高速缓存中插入一个元素。

void CacheGlobalData(CLIPFORMAT cfFormat, HGLOBAL hGlobal, FORMATETC *lpFormatEtc = NULL)  该函数是第一个函数的特殊版本,我们可以调用它传递全局内存中的数据。

DROPEFFECT DoDragDrop(DWORD dwEffects = DROPEFFECT_COPY I DROPEFFECT_MOVE | DROPEFFECT_LINK, LPCRECT lpRectStartDrag = NULL, COleDropSource *pDropSource = Null )                        当对一个数据来源进行操作的时候我们可以调用这个函数。

void SetClipBoard(void ) 该函数在windows剪切板上放置一个数据来源。

COleDataObject:这个类是数据对象传输的目的地。过程:首先构造一个空的COleDataObject对象,然后调用AttachClipBoard,它将调用公用的OleGetClipBoard,使m_lpDataObject 数据成员指向来源数据对象,并且可以访问他的格式。  如果需要在全局内存中长期访问数据,可以考虑调用GetGlobalData()

void BeginEnumFormats(void);

Bool GetNextFormat( FORMATETC* lpFormatEtc );这两个函数允许通过包含在数据对象中的格式进行迭代。首先调用第一个函数,然后接着调用第二个函数,直到返回值为fales。

BOOL GetData(CLIPFORMAT cfFormat, STGMEDIUM *lpstgMedium, FORMATETC *lpFormatEtc = Null)这个函数调用IDataObject::GetData .

HGLOBAL GetGlobalDATA( CLIPFORMAT cfFormat, FORMATETC *lpFormatEtc = Null )如果知道所请求的格式和全局内存是兼容的,这个函数对所选内存快进行备份,并给出一个句柄HGLOBAL。而且必须 稍后释放他。

BOOL IsDataAvailable(CLIPFORMAT cfFormat , FORMATETC *lpFormatEtc = Null)函数用来测试数据对象中包含的是否是指定的格式。

原创粉丝点击