以ASCII编码的文本为例:
复制操作:
char sc[]="要复制的文本";
HGLOBAL hmem=NULL;
if (OpenClipboard()) //是否成功打开剪帖板
{
if (EmptyClipboard())//清空成功,则继续
{
hmem=GlobalAlloc(GHND,sizeof(sc));//memalloc strlen+1 \0
char* pmem= (char*)GlobalLock(hmem);
memcpy(pmem,sc,sizeof(sc));
// SetClipboardData()
SetClipboardData(CF_TEXT,hmem);
GlobalUnlock(hmem);
}
//关闭剪贴板
CloseClipboard();
}
粘贴操作:
//一、 判断剪贴数据格式是否是我们需要的
HGLOBAL hmem=NULL;
char s[256]="";
if (IsClipboardFormatAvailable(CF_TEXT)) //CF_UNICODETEXT
{
//二、 打开剪贴板
if (OpenClipboard())
{
//三、 获取剪贴板句柄
hmem=GetClipboardData(CF_TEXT);
if (hmem)
{
//四、 锁定全局内存获取缓冲区指针,
char* ps=(char*)GlobalLock(hmem);
//取出数据
memcpy(s,ps,GlobalSize(hmem));
//五、 关闭剪贴板,以使其它程序可以访问,释放掉内存锁
GlobalUnlock(hmem);
}
CloseClipboard();
}
}