クリップボードにテキストを貼り付ける

解説

 クリップボードにデータをコピーするには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;
}

カテゴリー「VC++ TIPS」 のエントリー