windows_user32.go 6.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. //go:build windows
  2. package yu_sys
  3. import (
  4. _ "unsafe"
  5. )
  6. //go:cgo_import_dynamic IsClipboardFormatAvailable IsClipboardFormatAvailable "user32.dll"
  7. //go:linkname IsClipboardFormatAvailable IsClipboardFormatAvailable
  8. var IsClipboardFormatAvailable Address
  9. //go:cgo_import_dynamic OpenClipboard OpenClipboard "user32.dll"
  10. //go:linkname OpenClipboard OpenClipboard
  11. var OpenClipboard Address
  12. //go:cgo_import_dynamic CloseClipboard CloseClipboard "user32.dll"
  13. //go:linkname CloseClipboard CloseClipboard
  14. var CloseClipboard Address
  15. //go:cgo_import_dynamic EmptyClipboard EmptyClipboard "user32.dll"
  16. //go:linkname EmptyClipboard EmptyClipboard
  17. var EmptyClipboard Address
  18. //go:cgo_import_dynamic GetClipboardData GetClipboardData "user32.dll"
  19. //go:linkname GetClipboardData GetClipboardData
  20. var GetClipboardData Address
  21. //go:cgo_import_dynamic SetClipboardData SetClipboardData "user32.dll"
  22. //go:linkname SetClipboardData SetClipboardData
  23. var SetClipboardData Address
  24. //go:cgo_import_dynamic MessageBoxW MessageBoxW "user32.dll"
  25. //go:linkname MessageBoxW MessageBoxW
  26. var MessageBoxW Address
  27. func MessageBox(title string, text string) {
  28. MessageBoxW.Call(0, S{Unicode, text}, S{Unicode, title}, 0)
  29. }
  30. const (
  31. // 摘自:https://learn.microsoft.com/zh-cn/windows/win32/dataxchg/standard-clipboard-formats
  32. CF_BITMAP = 2 // 位图 (HBITMAP) 的句柄。
  33. CF_DIB = 8 // 包含 BITMAPINFO 结构的内存对象,后跟位图位。
  34. CF_DIBV5 = 17 // 包含 BITMAPV5HEADER 结构的内存对象,后跟位图颜色空间信息和位图位。
  35. CF_DIF = 5 // Software Arts 的数据交换格式。
  36. CF_DSPBITMAP = 0x0082 // 与专用格式关联的位图显示格式。 hMem 参数必须是可以以位图格式显示的数据的句柄,而不是专用格式的数据。
  37. CF_DSPENHMETAFILE = 0x008E // 与专用格式关联的增强型图元文件显示格式。 hMem 参数必须是可以以增强型图元文件格式显示的数据的句柄,而不是专用格式的数据。
  38. CF_DSPMETAFILEPICT = 0x0083 // 与专用格式关联的图元文件图片显示格式。 hMem 参数必须是可以以图元文件图片格式显示的数据的句柄,而不是专用格式的数据。
  39. CF_DSPTEXT = 0x0081 // 与专用格式关联的文本显示格式。 hMem 参数必须是可以以文本格式显示的数据的句柄,而不是专用格式的数据。
  40. CF_ENHMETAFILE = 14 // 增强型图元文件的句柄 (HENHMETAFILE) 。
  41. CF_GDIOBJFIRST = 0x0300 // 应用程序定义的 GDI 对象剪贴板格式的整数值范围的开头。 范围的末尾为 CF_GDIOBJLAST。清空剪贴板时,不会使用 GlobalFree 函数自动删除与此范围内剪贴板格式关联的句柄。 此外,在此范围内使用值时, hMem 参数不是 GDI 对象的句柄,而是由 GlobalAlloc 函数使用 GMEM_MOVEABLE 标志分配的句柄。
  42. CF_GDIOBJLAST = 0x03FF // 请参阅 CF_GDIOBJFIRST。
  43. CF_HDROP = 15 // 类型 HDROP 的句柄,用于标识文件列表。 应用程序可以通过将句柄传递给 DragQueryFile 函数来检索有关文件的信息。
  44. CF_LOCALE = 16 // 数据是 HGLOBAL () 与剪贴板中的文本关联的区域设置标识符 (LCID) 的句柄。 关闭剪贴板时,如果剪贴板包含 CF_TEXT 数据但没有 CF_LOCALE 数据,系统会自动将 CF_LOCALE 格式设置为当前输入语言。 可以使用 CF_LOCALE 格式将不同的区域设置与剪贴板文本相关联。从剪贴板粘贴文本的应用程序可以检索此格式,以确定用于生成文本的字符集。请注意,剪贴板不支持多个字符集中的纯文本。 若要实现此目的,请改用带格式的文本数据类型,例如 RTF。系统使用与 CF_LOCALE 关联的代码页从 CF_TEXT 隐式转换为 CF_UNICODETEXT。 因此,使用正确的代码页表进行转换。
  45. CF_METAFILEPICT = 3 // METAFILEPICT 结构定义的图元文件图片格式的句柄。 通过 DDE 传递 CF_METAFILEPICT 句柄时,负责删除 hMem 的应用程序还应释放 CF_METAFILEPICT 句柄引用的图元文件。
  46. CF_OEMTEXT = 7 // 包含 OEM 字符集中字符的文本格式。 每行以回车符/换行符 (CR-LF) 组合结束。 null 字符表示数据结束。
  47. CF_OWNERDISPLAY = 0x0080 // 所有者显示格式。 剪贴板所有者必须显示和更新剪贴板查看器窗口,并接收 WM_ASKCBFORMATNAME、 WM_HSCROLLCLIPBOARD、 WM_PAINTCLIPBOARD、 WM_SIZECLIPBOARD和 WM_VSCROLLCLIPBOARD 消息。 hMem 参数必须为 NULL。
  48. CF_PALETTE = 9 // 调色板的句柄。 每当应用程序在依赖于或假定调色板的剪贴板中放置数据时,它也应该将调色板放在剪贴板上。如果剪贴板包含 CF_PALETTE (逻辑调色板) 格式的数据,则应用程序应使用 SelectPalette 和 RealizePalette 函数实现 (剪贴板中) 任何其他数据与该逻辑调色板进行比较。显示剪贴板数据时,剪贴板始终使用剪贴板上采用 CF_PALETTE 格式的任何对象作为其当前调色板。
  49. CF_PENDATA = 10 // Microsoft Windows for Pen Computing 的笔扩展的数据。
  50. CF_PRIVATEFIRST = 0x0200 // 专用剪贴板格式的整数值范围的开头。 范围以 CF_PRIVATELAST结尾。 与专用剪贴板格式关联的句柄不会自动释放;剪贴板所有者必须释放此类句柄,通常是为了响应 WM_DESTROYCLIPBOARD 消息。
  51. CF_PRIVATELAST = 0x02FF // 请参阅 CF_PRIVATEFIRST。
  52. CF_RIFF = 11 // 表示的音频数据比以 CF_WAVE 标准波形格式表示的音频数据更为复杂。
  53. CF_SYLK = 4 // Microsoft 符号链接 (SYLK) 格式。
  54. CF_TEXT = 1 // 文本格式。 每行以回车符/换行符 (CR-LF) 组合结束。 null 字符表示数据结束。 将此格式用于 ANSI 文本。
  55. CF_TIFF = 6 // 标记图像文件格式。
  56. CF_UNICODETEXT = 13 // Unicode 文本格式。 每行以回车符/换行符 (CR-LF) 组合结束。 null 字符表示数据结束。
  57. CF_WAVE = 12 // 表示其中一种标准波形的音频数据,例如 11 kHz 或 22 kHz PCM。
  58. )