1:A程序使用OLE剪切板,作为数据发送
//获得关键字
CTime time;
time=CTime::GetCurrentTime(); //获得当前时间
strDownFlag=_wtoi(time.Format("%d%H%M%S")); //将日,时,分,秒转换为关键字
//将关键字使用自定义格式做为拖放源
UINT format = RegisterClipboardFormat(_T("MY_FORMAT"));
HGLOBAL clipbuffer;
clipbuffer = GlobalAlloc(GMEM_MOVEABLE | GMEM_SHARE | GMEM_ZEROINIT | GMEM_DISCARDABLE, sizeof(strDownFlag));
long * buffer=(long*)GlobalLock(clipbuffer);
*buffer = strDownFlag; //保存到内存
GlobalUnlock(clipbuffer);
//设置拖放
m_DataSource.CacheGlobalData(format, clipbuffer);
m_DataSource.DoDragDrop();
2:B程序接收OLE剪切板数据,处理后发送数据到标准剪切板
//判断剪切板格式
HGLOBAL hMem;
UINT format = RegisterClipboardFormat(_T("MY_FORMAT"));
UINT reformat=RegisterClipboardFormat(_T(