以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();
}
}