在处理WM_PAINT讯息处理期间,通过使用常规的OpenClipboard、GetClipboardData和CloseClipboard呼叫可以读取剪贴簿的内容。
当某个程式想从剪贴簿浏览器链中删除它自己时,它必须呼叫ChangeClipboardChain。这个函式接收脱离浏览器链的程式之视窗代号,和下一个剪贴簿浏览器的视窗代号:
当程式呼叫ChangeClipboardChain时,Windows发送WM_CHANGECBCHAIN讯息给目前的剪贴簿浏览器。wParam参数是从链中移除它自己的那个浏览器视窗代号(ChangeClipboardChain的第一个参数),lParam是从链中移除自己後的下一个剪贴簿浏览器的视窗代号(ChangeClipboardChain的第二个参数)。
当程式接收到WM_CHANGECBCHAIN讯息时,必须检查wParam是否等於已经储存的hwndNextViewer的值。如果是这样,程式必须设定hwndNextViewer为lParam。这项工作保证将来的WM_DRAWCLIPBOARD讯息不会发送给从剪贴簿浏览器链中删除了自己的视窗。如果wParam不等於hwndNextViewer ,并且hwndNextViewer不为NULL,则把讯息送到下一个剪贴簿浏览器。
不一定要使用else if叙述,它只用於保证hwndNextViewer为非NULL的值。hwndNextViewer的值为NULL时,执行这段程式码的程式就是链中最後一个浏览器,而这是不可能的。
当程式快结束时,如果它仍然在剪贴簿浏览器链中,则必须