windows剪切板api

来源:互联网 发布:范磊主讲c语言视频教 编辑:程序博客网 时间:2024/05/22 00:30
 

Windows 剪切板API详解

(一) ChangeClipboardChain 
将剪贴的连接从一个句柄转到下一个句柄。 
BOOL ChangeClipboardChain( 
HWND hWndRemove, // handle to window to remove 
HWND hWndNewNext // handle to next window 
); 
(1)hWndRemove表 示第一个窗口的句柄(断开)。 
(2)hWndNewNext表示第二个窗口的句柄(连接)。 
注意,在使用之前应该使用 SetClipboardViewer事先进行窗口句柄的连接。 
(二)CloseClipboard 
关闭剪贴板。 
BOOL CloseClipboard(VOID)//VOID意思是空白。 
本函数没有参数,事先应该用OpenClipboard函数打开过剪贴 板。 
(三)CountClipboardFormats 
不管剪贴板是什么格式,全部转化为数据格式。 
int CountClipboardFormats(VOID) 
本函数没有参数。 
(四)EmptyClipboard 
清空剪贴 板。 
BOOL EmptyClipboard(VOID) 
本函数没有参数。 
(五)EnumClipboardFormats 
使剪贴板内的格式转变成指定格式。 
UINT EnumClipboardFormats( 
UINT format // specifies a known available clipboard format 
); 
其中format表示的是将要转化 成的格式。该参数的意义可参照后面。 
(六)GetClipboardData 
获取剪贴板内的数据。 
HANDLE GetClipboardData( 
UINT uFormat // clipboard format 
); 
其中 format表示的是剪贴板内数据的格式。该参数的意义可参照后面。 
(七)GetClipboardFormatName 
获取剪贴板 内数据格式的名称。 
int GetClipboardFormatName( 
UINT format, // clipboard format to retrieve 
LPTSTR lpszFormatName, // address of buffer for name 
int cchMaxCount // length of name string in characters 
); 
(1)format 表示的意义同前,应该是不事先规定格式; 
(2)lpszFormatName表示的是格式名称地址; 
(3)cchMaxCount剪 贴板内数据的长度。 
(八)GetClipboardOwner 
获取当前剪贴板是属于哪一个窗口的句柄。 
HWND GetClipboardOwner(VOID) 
返回那个窗口的句柄。 
(九)GetClipboardSequenceNumber 
返回剪贴板序号。 
DWORD GetClipboardSequenceNumber(VOID) 
(十)GetClipboardViewer 
返回剪贴板属于窗口的句柄。 
HWND GetClipboardViewer(VOID) 
(十 一)GetOpenClipboardWindow 
返回打开剪贴板的那个窗口句柄。 
HWND GetOpenClipboardWindow(VOID) 
(十二)GetPriorityClipboardFormat 
int GetPriorityClipboardFormat( 
UINT *paFormatPriorityList, // address of priority list 
int cFormats // number of entries in list 
); 
(十三)IsClipboardFormatAvailable 
判断剪贴板的格式。 
BOOL IsClipboardFormatAvailable( 
UINT format // clipboard format 
); 
其中format表示的是剪贴板内数据的格式。该参数的意义可参照后面。 
(十四)OpenClipboard 
打开剪贴板。 
BOOL OpenClipboard( 
HWND hWndNewOwner // handle to window opening clipboard 
); 
返回剪贴板的句柄。 
(十五)RegisterClipboardFormat 
注册新的剪贴板格式。 
UINT RegisterClipboardFormat( 
LPCTSTR lpszFormat // address of name string 
); 
lpszFormat新的剪贴板格式名称。 
(十六)SetClipboardData 
设置剪贴板内的数据。 
HANDLE SetClipboardData( 
UINT uFormat, // clipboard format 
HANDLE hMem // data handle 
); 
uFormat 表示的是要放进剪贴板数据的格式; 
hMem表示数据的地址指针。 
(十七)SetClipboardViewer 
将剪贴板内 容连接到窗口。 
HWND SetClipboardViewer( 
HWND hWndNewViewer // handle to clipboard viewer window 
); 

参数1为剪切板的数据格式,可以是以下格式:

CF_TEXT以NULL结尾的ANSI字符集字符串。它在每行末尾包含一个carriage return和linefeed字符,这是最简单的剪切板数据格式CF_OEMTEXT含有文字数据(与CF_TEXT类似)的内存块。但是它使用的是OEM字符集。CF_UNICODETEXT含有Unicode文字的内存快。与CF_TEXT类似,它在每一行的末尾包含一个carriage return和linefeed字符,以及一个NULL字符(两个0字节)以表示数据结束。CF_UNICODETEXT针对UNICONDE格式CF_SYLK包含Microsoft 「符号连结」数据格式的整体内存块。这种格式用在Microsoft的Multiplan、Chart和Excel程序之间交换数据,它是一种ASCII码格式。CF_DIF包含数据交换格式(DIF)之数据的整体内存块。用于把数据送到VisiCalc电子表格程序中。这也是一种ASCII码格式CF_BITMAP与设备相关的位图格式。位图是通过位图句柄传送给剪贴簿的。CF_DIB定义一个设备无关位图的内存块。CF_PALETTE调色盘句柄。CF_METAFILEPICT以旧的metafile格式存放的「图片」。CF_ENHMETAFILE增强型metafile(32位Windows支持的)句柄。CF_PENDATA与Windows的笔式输入扩充功能联合使用CF_WAVE声音(波形)文件。CF_RIFF使用资源交换文件格式(Resource Interchange File Format)的多媒体数据。CF_HDROP与拖放服务相关的文件列表。

该数据表使用谷歌自动翻译完成,如果英文较好,可查看MSDN文档:Standard Clipboard Formats(Windows)


0 0
原创粉丝点击