SetClipboardData

SetClipboardData

我的準程序員之路 2010-05-03 00:27:29 閱讀411 評論0   字號: 訂閱

  • Windows支持不同的預先定義剪切板格式,這些格式在WINDOWS.INC定義成以CF爲前綴的標識符
  • CF_TEXT以NULL結尾的ANSI字符集字符串。它在每行末尾包含一個carriage return和linefeed字符,這是最簡單的剪切板數據格式。傳送到剪切板的數據存放在整體內存塊中,並且是利用內存塊句柄進行傳送的(我將簡短地討論此項概念)。這個內存塊專供剪切板使用,建立它的程序不應該繼續使用它。
     
  • CF_OEMTEXT含有文字數據(與CF_TEXT類似)的內存塊。但是它使用的是OEM字符集。通常Windows程序不必關心這一點;它只有與在窗口中執行MS-DOS程序一起使用剪切板時纔會使用。
     
  • CF_UNICODETEXT含有Unicode文字的內存塊。與CF_TEXT類似,它在每一行的末尾包含一個carriage return和linefeed字符,以及一個NULL字符(兩個0字節)以表示數據結束。CF_UNICODETEXT只支援Windows NT。
     
  • CF_LOCALE一個國家地區標識符的句柄。表示剪切板文字使用的國別地區設定。
     

下面是兩種附加的剪切板格式,它們在概念上與CF_TEXT格式相似(也就是說,它們都是文字數據),但是它們不需要以NULL結尾,因爲格式已經定義了數據的結尾。現在已經很少使用這些格式了:

  • CF_SYLK包含Microsoft 「符號連結」數據格式的整體內存塊。這種格式用在Microsoft的Multiplan、Chart和Excel程序之間交換數據,它是一種ASCII碼格式,每一行都用carriage return和linefeed結尾。
     
  • CF_DIF包含數據交換格式(DIF)之數據的整體內存塊。這種格式是由Software Arts公司提出的,用於把數據送到VisiCalc電子表格程序中。這也是一種ASCII碼格式,每一行都使用carriage return和linefeed結尾。
     

下面三種剪切板格式與位圖有關。所謂位圖就是數據位的矩形數組,其中的數據位與輸出設備的圖素相對應。後面將詳細討論位圖以及這些位圖剪切板的格式:

  • CF_BITMAP與設備相關的位圖格式。位圖是通過位圖句柄傳送給剪切板的。同樣,在把這個位圖傳送給剪切板之後,程序不應該再繼續使用這個位圖。
     
  • CF_DIB定義一個設備無關位圖的內存塊。這種內存塊是以位圖信息結構開始的,後面跟着可用的顏色表和位圖數據位。
     
  • CF_PALETTE調色盤句柄。它通常與CF_DIB配合使用,以定義與設備相關的位圖所使用的顏色調色盤。
     

在剪切板中,還有可能以工業標準的TIFF格式儲存的位圖數據:

  • CF_TIFF含有標號圖像文件格式(TIFF)數據的整體內存塊。這種格式由Microsoft、Aldus公司和Hewlett-Packard公司以及一些硬件廠商推薦使用。這一格式可從Hewlett-Packard的網站上獲得。
     

下面是兩個metafile格式。一個metafile就是一個以二進制格式儲存的畫圖命令集:

  • CF_METAFILEPICT以舊的metafile格式存放的「圖片」。
     
  • CF_ENHMETAFILE增強型metafile(32位Windows支持的)句柄。
     

最後介紹幾個混合型的剪切板格式:

  • CF_PENDATA與Windows的筆式輸入擴充功能聯合使用。
     
  • CF_WAVE聲音(波形)文件。
     
  • CF_RIFF使用資源交換文件格式(Resource Interchange File Format)的多媒體數據。
     
  • CF_HDROP與拖放服務相關的文件列表。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章