向剪切板存放一段数据:
CStringA strInfo;
strInfo.Format("向剪切板存入的数据,成功了吗?");
string strInfoA = strInfo.GetBuffer();
if(::OpenClipboard(GetHWND())) //打开剪切板
{
HGLOBAL hClipBuffer = NULL;
char *lpBuffer = NULL;
EmptyClipboard();
hClipBuffer = GlobalAlloc(GMEM_DDESHARE, strInfoA.size() + 1); //分配内存
if (!hClipBuffer) {
CloseClipboard();
return FALSE;
}
lpBuffer = (char *)GlobalLock(hClipBuffer); //加锁获取内存空间指针
if (!lpBuffer) {
CloseClipboard();
return FALSE;
}
strcpy_s(lpBuffer, strInfoA.size() + 1, strInfoA.c_str()); //存入数据
GlobalUnlock(hClipBuffer); //解除锁
SetClipboardData(CF_TEXT, hClipBuffer); //设置剪切板数据
CloseClipboard(); //关闭剪切板
}