1.在剪贴板的内容发生变化时,自动弹出界面,将所有内容(所有的格式)存入文件。
2.将存在文件中的剪贴板内容设置到剪贴板中,使得剪贴板的内容和复制时的内容一模一样。

解决方案 »

  1.   

    读剪贴板:   
    COleDataObject *pDO = new COleDataObject;
    ASSERT ( AfxIsValidAddress ( pDO, sizeof(COleDataObject) ));    if ( !pDO->AttachClipboard() )
    return;

    // Determine how many formats are available on the clipboard.
    pDO->BeginEnumFormats();
    while ( pDO->GetNextFormat ( &etc ))
    {

    if ( !pDO->IsDataAvailable ( etc.cfFormat ))
    continue;

    // Get an HGLOBAL of the data.
    hgData = pDO->GetGlobalData ( etc.cfFormat );
    if ( NULL != hgData ) delete pDO;设置剪贴板:
    CLIPFORMAT cfFormat;
    COleDataSource* pSource = new COleDataSource();
    COleStreamFile file;
    sf.OpenStream(strFileName,file);//strFileName为你的文件
    DWORD len = file.GetLength();
    HGLOBAL hg = GlobalAlloc ( GMEM_MOVEABLE | GMEM_SHARE,len);
    void* pv = GlobalLock ( hg );
    ASSERT(pv != NULL);
    file.Read(pv,len);
    ::GlobalUnlock(hg); ::OpenClipboard(NULL);
    cfFormat = ::RegisterClipboardFormat(name);
    ::CloseClipboard();

             pSource->CacheGlobalData(cfFormat, hg);