剪贴簿(六)
lobalLock (hGlobal) ;
由於GlobalAlloc的GHND旗标已使整个记忆体块在配置期间被清除为零,所以不需要增加结尾的NULL 。以下叙述为记忆体块解锁:
现在就有了表示以NULL结尾的文字所在记忆体块的记忆体代号。为了把它送到剪贴簿中,打开剪贴簿并把它清空:
利用CF_TEXT识别字把记忆体代号交给剪贴簿,关闭剪贴簿:
- 在处理同一个讯息的过程中呼叫OpenClipboard和CloseClipboard。不需要时,不要打开剪贴簿。
- 不要把锁定的记忆体代号交给剪贴簿。
- 当呼叫SetClipboardData後,请不要再继续使用该记忆体块。它不再属於使用者程式,必须把代号看成是无效的。如果需要继续存取资料,可以制作资料的副本,或从剪贴簿中读取它(如下节所述)。您也可以在SetClipboardData呼叫和CloseClipboard呼叫之间继续使用记忆体块,但是不要使用传递给SetClipboardData函式的整体代号。事实上,此函式也传回一个整体代号,必需锁定这些代码以存取记忆体。在呼叫CloseClipboard之前,应先为此代号解锁。
从剪贴簿上取得文字只比把文字传送到剪贴簿上稍微复杂一些。您必须首先确定剪贴簿是否含有CF_TEXT格式的资料,最简单的方法是呼叫