解説
クリップボードにデータをコピーするにはSetClipboardDataを使う。渡すデータはGlobalAllocで確保したメモリにコピーするが、GlobalFreeする必要はない。
ソースコード
bool SetTextToClipboard(LPCSTR pszText)
{
char *lpszPtr;
bool bRet;
HGLOBAL hMem;
if(pszText == NULL)
return false;
if(!::OpenClipboard(NULL))
return NULL;
hMem = ::GlobalAlloc(GHND,strlen(pszText) + 1);
lpszPtr = (char*)::GlobalLock(hMem);
strcpy(lpszPtr,pszText);
::GlobalUnlock(hMem);
::EmptyClipboard();
if(::SetClipboardData(CF_TEXT,hMem) == NULL)
bRet = false;
else
bRet = true;
::CloseClipboard();
if(bRet == false)
::GlobalFree(hMem);
return bRet;
}
