自动复制内容到剪贴板

松树宣布到现在日头条:

#ifndef __HSS_AUTO_CLIPBOARD_HSS__
#define __HSS_AUTO_CLIPBOARD_HSS__

/*********************************************************************************
*  2012-10-30
自动复制内容到剪贴板

  用法:

  复制:
  auto_clipboard a(hwnd, psz);

  粘贴:
  CString sz;
葡京网站spj3355,  auto_clipboard::GetText(sz);
***************************************************************************/

class auto_clipboard
{
public:
    auto_clipboard(HWND hwnd, LPCTSTR pszText)
    {
        if (::OpenClipboard(hwnd))
        {
            ::EmptyClipboard();

            HANDLE hMem = ::GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE
, strlen(pszText)+1);
            if (hMem)
            {
                char* pszMem = (char*)(::GlobalLock(hMem));
                if (pszMem)
                {
                    strcpy(pszMem, pszText);
                    ::GlobalUnlock(hMem);
                    SetClipboardData(CF_TEXT, hMem);
                }
                ::GlobalFree(hMem);
            }
            CloseClipboard();
        }
    }

    ~auto_clipboard()
    {
    }

   
/*************************************************************************
    * auto_clipboard    :    2014年12月2日
    * CString sz        :   
   
**************************************************************************/
#ifdef __AFX_H__
    static BOOL GetText(CString& sz)
    {
        if (!OpenClipboard(0))        
            return FALSE;

        HANDLE hClip = GetClipboardData(CF_TEXT);

        if (hClip == 0)
        {
            CloseClipboard();
            return FALSE;
        }

        LPVOID pRes = (LPVOID)GlobalLock(hClip);

        if (pRes == 0)
        {
            CloseClipboard();
            return FALSE;
        }

        sz = (char*)pRes;

        GlobalUnlock(hClip);

        CloseClipboard();

        return TRUE;
    }
#endif
};

#endif