win-ffi 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +36 -0
  3. data/lib/win-ffi/enums/color_types.rb +61 -0
  4. data/lib/win-ffi/enums/comctl32/init_common_controls.rb +32 -0
  5. data/lib/win-ffi/enums/comctl32/window/style/window_class_style.rb +7 -0
  6. data/lib/win-ffi/enums/comctl32.rb +5 -0
  7. data/lib/win-ffi/enums/comdlg32/find_replace.rb +28 -0
  8. data/lib/win-ffi/enums/comdlg32/font.rb +33 -0
  9. data/lib/win-ffi/enums/extended_name_format.rb +17 -0
  10. data/lib/win-ffi/enums/firmware_type.rb +12 -0
  11. data/lib/win-ffi/enums/gdi32/device_context.rb +29 -0
  12. data/lib/win-ffi/enums/gdi32/dib.rb +8 -0
  13. data/lib/win-ffi/enums/gdi32/hatch_styles.rb +15 -0
  14. data/lib/win-ffi/enums/gdi32/pfd_flags.rb +28 -0
  15. data/lib/win-ffi/enums/gdi32/pfd_layer_type.rb +7 -0
  16. data/lib/win-ffi/enums/gdi32/pfd_type.rb +7 -0
  17. data/lib/win-ffi/enums/gdi32/raster_operations.rb +22 -0
  18. data/lib/win-ffi/enums/gdi32.rb +90 -0
  19. data/lib/win-ffi/enums/kernel32/activation_context.rb +17 -0
  20. data/lib/win-ffi/enums/kernel32/computer_name_format.rb +19 -0
  21. data/lib/win-ffi/enums/kernel32/format_message_flags.rb +16 -0
  22. data/lib/win-ffi/enums/kernel32/get_module_handle_ex_flag.rb +7 -0
  23. data/lib/win-ffi/enums/kernel32/global_alloc_flags.rb +14 -0
  24. data/lib/win-ffi/enums/kernel32/handle.rb +9 -0
  25. data/lib/win-ffi/enums/kernel32/heap_flags.rb +14 -0
  26. data/lib/win-ffi/enums/kernel32/local_flags.rb +20 -0
  27. data/lib/win-ffi/enums/kernel32/memory.rb +12 -0
  28. data/lib/win-ffi/enums/kernel32/memory_flags.rb +22 -0
  29. data/lib/win-ffi/enums/kernel32/memory_protection_constants.rb +20 -0
  30. data/lib/win-ffi/enums/kernel32/set_error_mode_flags.rb +11 -0
  31. data/lib/win-ffi/enums/kernel32/sound_flags.rb +24 -0
  32. data/lib/win-ffi/enums/kernel32/volume.rb +13 -0
  33. data/lib/win-ffi/enums/kernel32.rb +5 -0
  34. data/lib/win-ffi/enums/lr.rb +48 -0
  35. data/lib/win-ffi/enums/netapi21/net_api_status.rb +25 -0
  36. data/lib/win-ffi/enums/netapi32.rb +5 -0
  37. data/lib/win-ffi/enums/system_info.rb +54 -0
  38. data/lib/win-ffi/enums/user32/append_menu_flags.rb +21 -0
  39. data/lib/win-ffi/enums/user32/border_flags.rb +29 -0
  40. data/lib/win-ffi/enums/user32/clipboard_formats.rb +31 -0
  41. data/lib/win-ffi/enums/user32/device_notify_flags.rb +17 -0
  42. data/lib/win-ffi/enums/user32/draw_caption_flags.rb +16 -0
  43. data/lib/win-ffi/enums/user32/draw_frame_control_flags.rb +15 -0
  44. data/lib/win-ffi/enums/user32/draw_frame_control_state_flags.rb +44 -0
  45. data/lib/win-ffi/enums/user32/edge_flags.rb +20 -0
  46. data/lib/win-ffi/enums/user32/feedback_type.rb +21 -0
  47. data/lib/win-ffi/enums/user32/get_ancestor_flags.rb +12 -0
  48. data/lib/win-ffi/enums/user32/icon.rb +19 -0
  49. data/lib/win-ffi/enums/user32/image.rb +12 -0
  50. data/lib/win-ffi/enums/user32/key_event_flags.rb +11 -0
  51. data/lib/win-ffi/enums/user32/keyboard_layout_flags.rb +57 -0
  52. data/lib/win-ffi/enums/user32/keyboard_modifiers.rb +16 -0
  53. data/lib/win-ffi/enums/user32/layered_window_attributes_flags.rb +12 -0
  54. data/lib/win-ffi/enums/user32/map_virtual_key.rb +22 -0
  55. data/lib/win-ffi/enums/user32/message_filter.rb +11 -0
  56. data/lib/win-ffi/enums/user32/mouse_event_flags.rb +25 -0
  57. data/lib/win-ffi/enums/user32/mouse_keys_flags.rb +16 -0
  58. data/lib/win-ffi/enums/user32/mwmo.rb +17 -0
  59. data/lib/win-ffi/enums/user32/ocr.rb +32 -0
  60. data/lib/win-ffi/enums/user32/oic.rb +26 -0
  61. data/lib/win-ffi/enums/user32/pen_flags.rb +12 -0
  62. data/lib/win-ffi/enums/user32/pen_mask.rb +14 -0
  63. data/lib/win-ffi/enums/user32/pointer_flags.rb +82 -0
  64. data/lib/win-ffi/enums/user32/pointer_input_type.rb +13 -0
  65. data/lib/win-ffi/enums/user32/process_dpi_awareness.rb +12 -0
  66. data/lib/win-ffi/enums/user32/queue_status_flags.rb +36 -0
  67. data/lib/win-ffi/enums/user32/rim.rb +12 -0
  68. data/lib/win-ffi/enums/user32/touch_injection_flags.rb +13 -0
  69. data/lib/win-ffi/enums/user32/touch_mask.rb +13 -0
  70. data/lib/win-ffi/enums/user32/user_object_information_flags.rb +22 -0
  71. data/lib/win-ffi/enums/user32/virtual_key_flags.rb +214 -0
  72. data/lib/win-ffi/enums/user32/window/animate_window_flags.rb +31 -0
  73. data/lib/win-ffi/enums/user32/window/broadcast_system_flags.rb +20 -0
  74. data/lib/win-ffi/enums/user32/window/broadcast_system_message_flags.rb +12 -0
  75. data/lib/win-ffi/enums/user32/window/combo_box_message.rb +53 -0
  76. data/lib/win-ffi/enums/user32/window/get_class_long_flags.rb +34 -0
  77. data/lib/win-ffi/enums/user32/window/get_window_flags.rb +38 -0
  78. data/lib/win-ffi/enums/user32/window/get_window_long_flags.rb +16 -0
  79. data/lib/win-ffi/enums/user32/window/menu_flags.rb +54 -0
  80. data/lib/win-ffi/enums/user32/window/message_box_flags.rb +90 -0
  81. data/lib/win-ffi/enums/user32/window/message_box_return.rb +18 -0
  82. data/lib/win-ffi/enums/user32/window/notification/button_notification.rb +20 -0
  83. data/lib/win-ffi/enums/user32/window/notification/edit_notification.rb +19 -0
  84. data/lib/win-ffi/enums/user32/window/notification/static_notification.rb +13 -0
  85. data/lib/win-ffi/enums/user32/window/peek_message_flags.rb +13 -0
  86. data/lib/win-ffi/enums/user32/window/set_window_pos_flags.rb +48 -0
  87. data/lib/win-ffi/enums/user32/window/show_window_flags.rb +41 -0
  88. data/lib/win-ffi/enums/user32/window/smto.rb +22 -0
  89. data/lib/win-ffi/enums/user32/window/style/button_control_style.rb +37 -0
  90. data/lib/win-ffi/enums/user32/window/style/combo_box_style.rb +22 -0
  91. data/lib/win-ffi/enums/user32/window/style/edit_style.rb +23 -0
  92. data/lib/win-ffi/enums/user32/window/style/static_style.rb +45 -0
  93. data/lib/win-ffi/enums/user32/window/style/window_class_style.rb +50 -0
  94. data/lib/win-ffi/enums/user32/window/style/window_style.rb +85 -0
  95. data/lib/win-ffi/enums/user32/window/style/window_style_ex.rb +98 -0
  96. data/lib/win-ffi/enums/user32/window/system_menu_command.rb +37 -0
  97. data/lib/win-ffi/enums/user32/window/system_metrics_flags.rb +300 -0
  98. data/lib/win-ffi/enums/user32/window/system_parameters_info_action.rb +225 -0
  99. data/lib/win-ffi/enums/user32/window/system_parameters_info_flags.rb +246 -0
  100. data/lib/win-ffi/enums/user32/window/track_popup_menu_flags.rb +70 -0
  101. data/lib/win-ffi/enums/user32/window/window_long.rb +22 -0
  102. data/lib/win-ffi/enums/user32/window/window_messages.rb +222 -0
  103. data/lib/win-ffi/enums/user32/window_hook.rb +56 -0
  104. data/lib/win-ffi/enums/user32.rb +5 -0
  105. data/lib/win-ffi/functions/advapi32/process.rb +33 -0
  106. data/lib/win-ffi/functions/advapi32/system_info.rb +17 -0
  107. data/lib/win-ffi/functions/comctl32/control.rb +11 -0
  108. data/lib/win-ffi/functions/comctl32/listbox.rb +20 -0
  109. data/lib/win-ffi/functions/comctl32.rb +7 -0
  110. data/lib/win-ffi/functions/comdlg32/color.rb +9 -0
  111. data/lib/win-ffi/functions/comdlg32/error.rb +6 -0
  112. data/lib/win-ffi/functions/comdlg32/find_replace.rb +9 -0
  113. data/lib/win-ffi/functions/comdlg32/font.rb +9 -0
  114. data/lib/win-ffi/functions/comdlg32.rb +7 -0
  115. data/lib/win-ffi/functions/gdi32/bitmap.rb +275 -0
  116. data/lib/win-ffi/functions/gdi32/brush.rb +54 -0
  117. data/lib/win-ffi/functions/gdi32/device_context.rb +126 -0
  118. data/lib/win-ffi/functions/gdi32/filled_shape.rb +68 -0
  119. data/lib/win-ffi/functions/gdi32/font.rb +9 -0
  120. data/lib/win-ffi/functions/gdi32/metafile.rb +173 -0
  121. data/lib/win-ffi/functions/gdi32/opengl.rb +29 -0
  122. data/lib/win-ffi/functions/gdi32/painting_drawing.rb +50 -0
  123. data/lib/win-ffi/functions/gdi32/text.rb +376 -0
  124. data/lib/win-ffi/functions/gdi32.rb +7 -0
  125. data/lib/win-ffi/functions/kernel32/activation.rb +22 -0
  126. data/lib/win-ffi/functions/kernel32/dll.rb +92 -0
  127. data/lib/win-ffi/functions/kernel32/error.rb +28 -0
  128. data/lib/win-ffi/functions/kernel32/filesystem.rb +22 -0
  129. data/lib/win-ffi/functions/kernel32/handle.rb +29 -0
  130. data/lib/win-ffi/functions/kernel32/memory.rb +478 -0
  131. data/lib/win-ffi/functions/kernel32/process.rb +359 -0
  132. data/lib/win-ffi/functions/kernel32/resource.rb +141 -0
  133. data/lib/win-ffi/functions/kernel32/sound.rb +10 -0
  134. data/lib/win-ffi/functions/kernel32/string.rb +38 -0
  135. data/lib/win-ffi/functions/kernel32/system_info.rb +183 -0
  136. data/lib/win-ffi/functions/kernel32/time.rb +220 -0
  137. data/lib/win-ffi/functions/kernel32/volume.rb +130 -0
  138. data/lib/win-ffi/functions/kernel32.rb +15 -0
  139. data/lib/win-ffi/functions/msimg32/bitmap.rb +46 -0
  140. data/lib/win-ffi/functions/msvcrt/handle.rb +13 -0
  141. data/lib/win-ffi/functions/netapi32/network_management.rb +13 -0
  142. data/lib/win-ffi/functions/netapi32.rb +7 -0
  143. data/lib/win-ffi/functions/ntdll/system_info.rb +14 -0
  144. data/lib/win-ffi/functions/secur32/system_info.rb +30 -0
  145. data/lib/win-ffi/functions/shell32/icon.rb +49 -0
  146. data/lib/win-ffi/functions/shutdown.rb +84 -0
  147. data/lib/win-ffi/functions/thread.rb +230 -0
  148. data/lib/win-ffi/functions/user32/accessibility.rb +23 -0
  149. data/lib/win-ffi/functions/user32/authorization.rb +19 -0
  150. data/lib/win-ffi/functions/user32/bitmap.rb +11 -0
  151. data/lib/win-ffi/functions/user32/brush.rb +10 -0
  152. data/lib/win-ffi/functions/user32/caret.rb +36 -0
  153. data/lib/win-ffi/functions/user32/clipboard.rb +84 -0
  154. data/lib/win-ffi/functions/user32/controls/button.rb +23 -0
  155. data/lib/win-ffi/functions/user32/controls/combobox.rb +29 -0
  156. data/lib/win-ffi/functions/user32/controls/listbox.rb +25 -0
  157. data/lib/win-ffi/functions/user32/controls/scrollbar.rb +95 -0
  158. data/lib/win-ffi/functions/user32/cursor.rb +74 -0
  159. data/lib/win-ffi/functions/user32/dde.rb +214 -0
  160. data/lib/win-ffi/functions/user32/desktop.rb +76 -0
  161. data/lib/win-ffi/functions/user32/device.rb +17 -0
  162. data/lib/win-ffi/functions/user32/device_context.rb +62 -0
  163. data/lib/win-ffi/functions/user32/display.rb +37 -0
  164. data/lib/win-ffi/functions/user32/error.rb +10 -0
  165. data/lib/win-ffi/functions/user32/filled_shape.rb +23 -0
  166. data/lib/win-ffi/functions/user32/gesture.rb +38 -0
  167. data/lib/win-ffi/functions/user32/hook.rb +123 -0
  168. data/lib/win-ffi/functions/user32/icon.rb +98 -0
  169. data/lib/win-ffi/functions/user32/input.rb +23 -0
  170. data/lib/win-ffi/functions/user32/keyboard.rb +177 -0
  171. data/lib/win-ffi/functions/user32/keyboard_accelerators.rb +37 -0
  172. data/lib/win-ffi/functions/user32/mouse.rb +60 -0
  173. data/lib/win-ffi/functions/user32/multiple_display_monitors.rb +43 -0
  174. data/lib/win-ffi/functions/user32/multiple_document_interface.rb +44 -0
  175. data/lib/win-ffi/functions/user32/painting_drawing.rb +173 -0
  176. data/lib/win-ffi/functions/user32/pointer.rb +154 -0
  177. data/lib/win-ffi/functions/user32/power.rb +28 -0
  178. data/lib/win-ffi/functions/user32/print.rb +14 -0
  179. data/lib/win-ffi/functions/user32/process.rb +30 -0
  180. data/lib/win-ffi/functions/user32/raw_input.rb +55 -0
  181. data/lib/win-ffi/functions/user32/rect.rb +67 -0
  182. data/lib/win-ffi/functions/user32/resource.rb +28 -0
  183. data/lib/win-ffi/functions/user32/shell.rb +29 -0
  184. data/lib/win-ffi/functions/user32/string.rb +98 -0
  185. data/lib/win-ffi/functions/user32/text.rb +48 -0
  186. data/lib/win-ffi/functions/user32/touch.rb +69 -0
  187. data/lib/win-ffi/functions/user32/transform.rb +22 -0
  188. data/lib/win-ffi/functions/user32/window/configuration.rb +15 -0
  189. data/lib/win-ffi/functions/user32/window/dialog.rb +167 -0
  190. data/lib/win-ffi/functions/user32/window/menu.rb +245 -0
  191. data/lib/win-ffi/functions/user32/window/message.rb +168 -0
  192. data/lib/win-ffi/functions/user32/window/properties.rb +50 -0
  193. data/lib/win-ffi/functions/user32/window/timer.rb +37 -0
  194. data/lib/win-ffi/functions/user32/window/window.rb +546 -0
  195. data/lib/win-ffi/functions/user32/window/window_class.rb +109 -0
  196. data/lib/win-ffi/functions/user32/window/window_proc.rb +29 -0
  197. data/lib/win-ffi/functions/user32/window_station.rb +39 -0
  198. data/lib/win-ffi/functions/user32.rb +161 -0
  199. data/lib/win-ffi/functions/winmm.rb +547 -0
  200. data/lib/win-ffi/functions/wtsapi32/process.rb +12 -0
  201. data/lib/win-ffi/lib_base.rb +54 -0
  202. data/lib/win-ffi/struct.rb +15 -0
  203. data/lib/win-ffi/structs/comctl32/init_common_controls_ex.rb +10 -0
  204. data/lib/win-ffi/structs/comdlg32/choose_color.rb +23 -0
  205. data/lib/win-ffi/structs/comdlg32/choose_font.rb +28 -0
  206. data/lib/win-ffi/structs/comdlg32/find_replace.rb +24 -0
  207. data/lib/win-ffi/structs/gdi32/abc.rb +9 -0
  208. data/lib/win-ffi/structs/gdi32/abcfloat.rb +10 -0
  209. data/lib/win-ffi/structs/gdi32/bitmap.rb +13 -0
  210. data/lib/win-ffi/structs/gdi32/bitmap_info.rb +11 -0
  211. data/lib/win-ffi/structs/gdi32/bitmap_info_header.rb +17 -0
  212. data/lib/win-ffi/structs/gdi32/blend_function.rb +10 -0
  213. data/lib/win-ffi/structs/gdi32/display_device.rb +12 -0
  214. data/lib/win-ffi/structs/gdi32/handle_table.rb +7 -0
  215. data/lib/win-ffi/structs/gdi32/kerning_pair.rb +9 -0
  216. data/lib/win-ffi/structs/gdi32/log_brush.rb +10 -0
  217. data/lib/win-ffi/structs/gdi32/log_font.rb +20 -0
  218. data/lib/win-ffi/structs/gdi32/meta_file_pict.rb +10 -0
  219. data/lib/win-ffi/structs/gdi32/palette_entry.rb +10 -0
  220. data/lib/win-ffi/structs/gdi32/pixel_format_descriptor.rb +57 -0
  221. data/lib/win-ffi/structs/gdi32/rgb_quad.rb +10 -0
  222. data/lib/win-ffi/structs/kernel32/actctx.rb +22 -0
  223. data/lib/win-ffi/structs/netapi32/wksta_info_100.rb +9 -0
  224. data/lib/win-ffi/structs/os_version_info.rb +10 -0
  225. data/lib/win-ffi/structs/os_version_info_ex.rb +70 -0
  226. data/lib/win-ffi/structs/paint_struct.rb +12 -0
  227. data/lib/win-ffi/structs/point.rb +10 -0
  228. data/lib/win-ffi/structs/rect.rb +28 -0
  229. data/lib/win-ffi/structs/size.rb +6 -0
  230. data/lib/win-ffi/structs/user32/controls/combobox_info.rb +13 -0
  231. data/lib/win-ffi/structs/user32/controls/scroll_info.rb +13 -0
  232. data/lib/win-ffi/structs/user32/controls/scrollbar_info.rb +13 -0
  233. data/lib/win-ffi/structs/user32/cursor_info.rb +10 -0
  234. data/lib/win-ffi/structs/user32/display_device.rb +12 -0
  235. data/lib/win-ffi/structs/user32/draw_text_params.rb +11 -0
  236. data/lib/win-ffi/structs/user32/icon_info.rb +11 -0
  237. data/lib/win-ffi/structs/user32/icon_info_ex.rb +15 -0
  238. data/lib/win-ffi/structs/user32/last_input_info.rb +8 -0
  239. data/lib/win-ffi/structs/user32/mouse_move_point.rb +10 -0
  240. data/lib/win-ffi/structs/user32/msg.rb +16 -0
  241. data/lib/win-ffi/structs/user32/pointer_info.rb +25 -0
  242. data/lib/win-ffi/structs/user32/pointer_pen_info.rb +18 -0
  243. data/lib/win-ffi/structs/user32/pointer_touch_info.rb +17 -0
  244. data/lib/win-ffi/structs/user32/raw_input_device_list.rb +10 -0
  245. data/lib/win-ffi/structs/user32/raw_input_header.rb +10 -0
  246. data/lib/win-ffi/structs/user32/touch_hit_testing_input.rb +11 -0
  247. data/lib/win-ffi/structs/user32/touch_hit_testing_proximity_evaluation.rb +8 -0
  248. data/lib/win-ffi/structs/user32/track_mouse_event.rb +10 -0
  249. data/lib/win-ffi/structs/user32/window/alt_tab_info.rb +17 -0
  250. data/lib/win-ffi/structs/user32/window/bs_info.rb +12 -0
  251. data/lib/win-ffi/structs/user32/window/create_struct.rb +22 -0
  252. data/lib/win-ffi/structs/user32/window/dlg_template.rb +13 -0
  253. data/lib/win-ffi/structs/user32/window/flashw_info.rb +11 -0
  254. data/lib/win-ffi/structs/user32/window/gui_thread_info.rb +17 -0
  255. data/lib/win-ffi/structs/user32/window/luid.rb +8 -0
  256. data/lib/win-ffi/structs/user32/window/menu_info.rb +13 -0
  257. data/lib/win-ffi/structs/user32/window/menu_item_info.rb +18 -0
  258. data/lib/win-ffi/structs/user32/window/menu_item_template.rb +9 -0
  259. data/lib/win-ffi/structs/user32/window/menubar_info.rb +12 -0
  260. data/lib/win-ffi/structs/user32/window/msgbox_params.rb +16 -0
  261. data/lib/win-ffi/structs/user32/window/non_client_metrics.rb +29 -0
  262. data/lib/win-ffi/structs/user32/window/title_bar_info.rb +9 -0
  263. data/lib/win-ffi/structs/user32/window/tpm_params.rb +8 -0
  264. data/lib/win-ffi/structs/user32/window/update_layered_window_info.rb +22 -0
  265. data/lib/win-ffi/structs/user32/window/window_placement.rb +32 -0
  266. data/lib/win-ffi/structs/user32/window/window_pos.rb +46 -0
  267. data/lib/win-ffi/structs/user32/window/wndclass.rb +19 -0
  268. data/lib/win-ffi/structs/user32/window/wndclassex.rb +40 -0
  269. data/lib/win-ffi/version.rb +3 -0
  270. data/lib/win-ffi.rb +42 -0
  271. metadata +363 -0
@@ -0,0 +1,123 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/enums/user32/window_hook'
4
+
5
+ require 'win-ffi/structs/user32/msg'
6
+
7
+ module WinFFI
8
+ module User32
9
+ #BOOL WINAPI CallMsgFilter(
10
+ # _In_ LPMSG lpMsg,
11
+ # _In_ int nCode )
12
+ attach_function 'CallMsgFilterA', [MSG.ptr, :int], :bool
13
+ attach_function 'CallMsgFilterW', [MSG.ptr, :int], :bool
14
+
15
+ #LRESULT WINAPI CallNextHookEx(
16
+ # _In_opt_ HHOOK hhk,
17
+ # _In_ int nCode,
18
+ # _In_ WPARAM wParam,
19
+ # _In_ LPARAM lParam )
20
+ attach_function 'CallNextHookEx', [:pointer, :int, :wparam, :lparam], :lresult
21
+
22
+ #LRESULT CALLBACK CallWndProc(
23
+ # _In_ int nCode,
24
+ # _In_ WPARAM wParam,
25
+ # _In_ LPARAM lParam )
26
+ CallWndProc = callback :CallWndProc, [:int, :wparma, :lparam], :lresult
27
+
28
+ #LRESULT CALLBACK CallWndRetProc(
29
+ # _In_ int nCode,
30
+ # _In_ WPARAM wParam,
31
+ # _In_ LPARAM lParam )
32
+ CallWndRetProc = callback :CallWndRetProc, [:int, :wparma, :lparam], :lresult
33
+
34
+ #LRESULT CALLBACK CBTProc(
35
+ # _In_ int nCode,
36
+ # _In_ WPARAM wParam,
37
+ # _In_ LPARAM lParam )
38
+ CBTProc = callback :CBTProc, [:int, :wparma, :lparam], :lresult
39
+
40
+ #LRESULT CALLBACK DebugProc(
41
+ # _In_ int nCode,
42
+ # _In_ WPARAM wParam,
43
+ # _In_ LPARAM lParam )
44
+ DebugProc = callback :DebugProc, [:int, :wparma, :lparam], :lresult
45
+
46
+ #DWORD CALLBACK ForegroundIdleProc(
47
+ # _In_ int code,
48
+ # DWORD wParam,
49
+ # LONG lParam )
50
+ ForegroundIdleProc = callback :ForegroundIdleProc, [:int, :wparma, :lparam], :lresult
51
+
52
+ #LRESULT CALLBACK GetMsgProc(
53
+ # _In_ int code,
54
+ # _In_ WPARAM wParam,
55
+ # _In_ LPARAM lParam )
56
+ GetMsgProc = callback :GetMsgProc, [:int, :wparma, :lparam], :lresult
57
+
58
+ #LRESULT CALLBACK JournalPlaybackProc(
59
+ # _In_ int code,
60
+ # WPARAM wParam,
61
+ # _In_ LPARAM lParam )
62
+ JournalPlaybackProc = callback :JournalPlaybackProc, [:int, :wparma, :lparam], :lresult
63
+
64
+ #LRESULT CALLBACK JournalRecordProc(
65
+ # _In_ int code,
66
+ # WPARAM wParam,
67
+ # _In_ LPARAM lParam )
68
+ JournalRecordProc = callback :JournalRecordProc, [:int, :wparma, :lparam], :lresult
69
+
70
+ #LRESULT CALLBACK KeyboardProc(
71
+ # _In_ int code,
72
+ # _In_ WPARAM wParam,
73
+ # _In_ LPARAM lParam )
74
+ KeyboardProc = callback :KeyboardProc, [:int, :wparma, :lparam], :lresult
75
+
76
+ #LRESULT CALLBACK LowLevelKeyboardProc(
77
+ # _In_ int nCode,
78
+ # _In_ WPARAM wParam,
79
+ # _In_ LPARAM lParam )
80
+ LowLevelKeyboardProc = callback :LowLevelKeyboardProc, [:int, :wparma, :lparam], :lresult
81
+
82
+ #LRESULT CALLBACK LowLevelMouseProc(
83
+ # _In_ int nCode,
84
+ # _In_ WPARAM wParam,
85
+ # _In_ LPARAM lParam )
86
+ LowLevelMouseProc = callback :LowLevelMouseProc, [:int, :wparma, :lparam], :lresult
87
+
88
+ #LRESULT CALLBACK MessageProc(
89
+ # _In_ int code,
90
+ # WPARAM wParam,
91
+ # _In_ LPARAM lParam )
92
+ MessageProc = callback :MessageProc, [:int, :wparma, :lparam], :lresult
93
+
94
+ #LRESULT CALLBACK MouseProc(
95
+ # _In_ int nCode,
96
+ # _In_ WPARAM wParam,
97
+ # _In_ LPARAM lParam )
98
+ MouseProc = callback :MouseProc, [:int, :wparma, :lparam], :lresult
99
+
100
+ #HHOOK WINAPI SetWindowsHookEx(
101
+ # _In_ int idHook,
102
+ # _In_ HOOKPROC lpfn,
103
+ # _In_ HINSTANCE hMod,
104
+ # _In_ DWORD dwThreadId )
105
+ attach_function 'SetWindowsHookExA', [WindowHook, :pointer, :pointer, :dword], :pointer
106
+ attach_function 'SetWindowsHookExW', [WindowHook, :pointer, :pointer, :dword], :pointer
107
+
108
+ #LRESULT CALLBACK ShellProc(
109
+ # _In_ int nCode,
110
+ # _In_ WPARAM wParam,
111
+ # _In_ LPARAM lParam )
112
+ ShellProc = callback :ShellProc, [:int, :wparma, :lparam], :lresult
113
+
114
+ #LRESULT CALLBACK SysMsgProc(
115
+ # _In_ int nCode,
116
+ # WPARAM wParam,
117
+ # _In_ LPARAM lParam )
118
+ SysMsgProc = callback :SysMsgProc, [:int, :wparma, :lparam], :lresult
119
+
120
+ #BOOL WINAPI UnhookWindowsHookEx( _In_ HHOOK hhk )
121
+ attach_function 'UnhookWindowsHookEx', [:pointer], :bool
122
+ end
123
+ end
@@ -0,0 +1,98 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/enums/lr'
4
+
5
+ require 'win-ffi/structs/user32/icon_info'
6
+ require 'win-ffi/structs/user32/icon_info_ex'
7
+
8
+ module WinFFI
9
+ module User32
10
+ #HICON WINAPI CopyIcon( _In_ HICON hIcon )
11
+ attach_function 'CopyIcon', [:hicon], :hicon
12
+
13
+ #HICON WINAPI CreateIcon(
14
+ # _In_opt_ HINSTANCE hInstance,
15
+ # _In_ int nWidth,
16
+ # _In_ int nHeight,
17
+ # _In_ BYTE cPlanes,
18
+ # _In_ BYTE cBitsPixel,
19
+ # _In_ const BYTE *lpbANDbits,
20
+ # _In_ const BYTE *lpbXORbits )
21
+ attach_function 'CreateIcon' , [:hinstance, :int, :int, :byte, :byte, :pointer, :pointer], :hicon
22
+
23
+ #HICON WINAPI CreateIconFromResource(
24
+ # _In_ PBYTE presbits,
25
+ # _In_ DWORD dwResSize,
26
+ # _In_ BOOL fIcon,
27
+ # _In_ DWORD dwVer )
28
+ attach_function 'CreateIconFromResource', [:pointer, :dword, :bool, :dword], :hicon
29
+
30
+ #HICON WINAPI CreateIconFromResourceEx(
31
+ # _In_ PBYTE pbIconBits,
32
+ # _In_ DWORD cbIconBits,
33
+ # _In_ BOOL fIcon,
34
+ # _In_ DWORD dwVersion,
35
+ # _In_ int cxDesired,
36
+ # _In_ int cyDesired,
37
+ # _In_ UINT uFlags )
38
+ attach_function 'CreateIconFromResourceEx', [:pointer, :dword, :bool, :dword, :int, :int, :uint], :hicon
39
+
40
+ #HICON WINAPI CreateIconIndirect( _In_ PICONINFO piconinfo )
41
+ attach_function 'CreateIconIndirect', [:pointer], :hicon
42
+
43
+ #BOOL WINAPI DrawIcon(
44
+ # _In_ HDC hDC,
45
+ # _In_ int X,
46
+ # _In_ int Y,
47
+ # _In_ HICON hIcon )
48
+ attach_function 'DrawIcon', [:hdc, :int, :int, :hicon], :bool
49
+
50
+ #BOOL WINAPI DestroyIcon( _In_ HICON hIcon )
51
+ attach_function 'DestroyIcon', [:hicon], :bool
52
+
53
+ #BOOL WINAPI DrawIconEx(
54
+ # _In_ HDC hdc,
55
+ # _In_ int xLeft,
56
+ # _In_ int yTop,
57
+ # _In_ HICON hIcon,
58
+ # _In_ int cxWidth,
59
+ # _In_ int cyWidth,
60
+ # _In_ UINT istepIfAniCur,
61
+ # _In_opt_ HBRUSH hbrFlickerFreeDraw,
62
+ # _In_ UINT diFlags )
63
+ attach_function 'DrawIconEx', [:hdc, :int, :int, :hicon, :int, :int, :uint, :hbrush, :uint], :bool
64
+
65
+ #BOOL WINAPI GetIconInfo(
66
+ # _In_ HICON hIcon,
67
+ # _Out_ PICONINFO piconinfo )
68
+ attach_function 'GetIconInfo', [:hicon, ICONINFO.ptr], :bool
69
+
70
+ if WindowsVersion >= :vista
71
+
72
+ #BOOL WINAPI GetIconInfoEx(
73
+ # _In_ HICON hIcon,
74
+ # _Inout_ PICONINFOEX piconinfoex )
75
+ attach_function 'GetIconInfoExA', [:hicon, ICONINFOEX.ptr], :bool
76
+ attach_function 'GetIconInfoExW', [:hicon, ICONINFOEX.ptr], :bool
77
+ end
78
+
79
+ #HICON LoadIcon(
80
+ # __in_opt HINSTANCE hInstance,
81
+ # __in LPCTSTR lpIconName)
82
+ attach_function 'LoadIconA', [:hinstance, :pointer], :hicon
83
+ attach_function 'LoadIconW', [:hinstance, :pointer], :hicon
84
+
85
+ #int WINAPI LookupIconIdFromDirectory(
86
+ # _In_ PBYTE presbits,
87
+ # _In_ BOOL fIcon )
88
+ attach_function 'LookupIconIdFromDirectory', [:pointer, :bool], :int
89
+
90
+ #int WINAPI LookupIconIdFromDirectoryEx(
91
+ # _In_ PBYTE presbits,
92
+ # _In_ BOOL fIcon,
93
+ # _In_ int cxDesired,
94
+ # _In_ int cyDesired,
95
+ # _In_ UINT Flags )
96
+ attach_function 'LookupIconIdFromDirectoryEx', [:pointer, :bool, :int, :int, LR], :int
97
+ end
98
+ end
@@ -0,0 +1,23 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/enums/user32/feedback_type'
4
+
5
+ module WinFFI
6
+ module User32
7
+ #BOOL WINAPI GetWindowFeedbackSetting(
8
+ # _In_ HWND hwnd,
9
+ # _In_ FEEDBACK_TYPE feedback,
10
+ # _In_ DWORD dwFlags,
11
+ # _Inout_ UINT32 *pSize,
12
+ # _Out_opt_ VOID *config )
13
+ attach_function 'GetWindowFeedbackSetting', [:hwnd, FEEDBACK_TYPE, :dword, :pointer, :pointer], :bool
14
+
15
+ #BOOL WINAPI SetWindowFeedbackSetting(
16
+ # _In_ HWND hwnd,
17
+ # _In_ FEEDBACK_TYPE feedback,
18
+ # _In_ DWORD dwFlags,
19
+ # _In_ UINT32 size,
20
+ # _In_opt_ const VOID *configuration )
21
+ attach_function 'SetWindowFeedbackSetting', [:hwnd, FEEDBACK_TYPE, :dword, :uint32, :pointer], :bool
22
+ end
23
+ end
@@ -0,0 +1,177 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/enums/user32/keyboard_layout_flags'
4
+ require 'win-ffi/enums/user32/virtual_key_flags'
5
+ require 'win-ffi/enums/user32/keyboard_modifiers'
6
+ require 'win-ffi/enums/user32/map_virtual_key'
7
+ require 'win-ffi/enums/user32/key_event_flags'
8
+
9
+ require 'win-ffi/structs/user32/last_input_info'
10
+
11
+ module WinFFI
12
+ module User32
13
+ #HKL WINAPI ActivateKeyboardLayout( _In_ HKL hkl, _In_ UINT Flags )
14
+ attach_function 'ActivateKeyboardLayout', [:hkl, KeyboardLayoutFlags], :hkl
15
+
16
+ #BOOL WINAPI BlockInput( _In_ BOOL fBlockIt )
17
+ attach_function 'BlockInput', [:bool], :bool
18
+
19
+ #BOOL WINAPI EnableWindow(
20
+ # __in HWND hWnd,
21
+ # __in BOOL bEnable)
22
+ attach_function 'EnableWindow', [:hwnd, :bool], :bool
23
+
24
+ #HWND WINAPI GetActiveWindow(void);
25
+ attach_function 'GetActiveWindow', [], :hwnd
26
+
27
+ #SHORT WINAPI GetAsyncKeyState#(_In_ int vKey)
28
+ attach_function 'GetAsyncKeyState', [VirtualKeyFlags], :short
29
+
30
+ #HWND WINAPI GetFocus(void)
31
+ attach_function 'GetFocus', [], :hwnd
32
+
33
+ #UINT WINAPI GetKBCodePage(void)
34
+ attach_function 'GetKBCodePage', [], :uint
35
+
36
+ #HKL WINAPI GetKeyboardLayout( _In_ DWORD idThread )
37
+ attach_function 'GetKeyboardLayout', [:dword], :hkl
38
+
39
+ #int WINAPI GetKeyboardLayoutList(
40
+ # _In_ int nBuff,
41
+ # _Out_ HKL *lpList )
42
+ attach_function 'GetKeyboardLayoutList', [:int, :hkl], :int
43
+
44
+ #BOOL WINAPI GetKeyboardLayoutName( _Out_ LPTSTR pwszKLID )
45
+ attach_function 'GetKeyboardLayoutNameA', [:string], :bool
46
+ attach_function 'GetKeyboardLayoutNameW', [:string], :bool
47
+
48
+ #BOOL WINAPI GetKeyboardState( _Out_ PBYTE lpKeyState )
49
+ attach_function 'GetKeyboardState', [:pointer], :bool
50
+
51
+ #int WINAPI GetKeyboardType( _In_ int nTypeFlag )
52
+ attach_function 'GetKeyboardType', [:int], :int
53
+
54
+ #int WINAPI GetKeyNameText(
55
+ # _In_ LONG lParam,
56
+ # _Out_ LPTSTR lpString,
57
+ # _In_ int cchSize )
58
+ attach_function 'GetKeyNameTextA', [:long, :string, :int], :int
59
+ attach_function 'GetKeyNameTextW', [:long, :string, :int], :int
60
+
61
+ #SHORT WINAPI GetKeyState()_In_ int nVirtKey)
62
+ attach_function 'GetKeyState', [VirtualKeyFlags], :short
63
+
64
+ #BOOL WINAPI GetLastInputInfo( _Out_ PLASTINPUTINFO plii )
65
+ attach_function 'GetLastInputInfo', [LASTINPUTINFO.ptr], :bool
66
+
67
+ #BOOL WINAPI IsWindowEnabled( _In_ HWND hWnd )
68
+ attach_function 'IsWindowEnabled', [:hwnd], :bool
69
+
70
+ #Use SendInput instead
71
+ #VOID WINAPI keybd_event(
72
+ # _In_ BYTE bVk,
73
+ # _In_ BYTE bScan,
74
+ # _In_ DWORD dwFlags,
75
+ # _In_ ULONG_PTR dwExtraInfo )
76
+ attach_function 'keybd_event', [VirtualKeyFlags, :byte, KeyEventFlags, :ulong], :void
77
+
78
+ #HKL WINAPI LoadKeyboardLayout(
79
+ # _In_ LPCTSTR pwszKLID,
80
+ # _In_ UINT Flags )
81
+ attach_function 'LoadKeyboardLayoutA', [:string, KeyboardLayoutFlags], :hkl
82
+ attach_function 'LoadKeyboardLayoutW', [:string, KeyboardLayoutFlags], :hkl
83
+
84
+ #UINT WINAPI MapVirtualKey(
85
+ # _In_ UINT uCode,
86
+ # _In_ UINT uMapType )
87
+ attach_function 'MapVirtualKeyA', [VirtualKeyFlags, MapVirtualKey], :uint
88
+ attach_function 'MapVirtualKeyW', [VirtualKeyFlags, MapVirtualKey], :uint
89
+
90
+ #UINT WINAPI MapVirtualKeyEx(
91
+ # _In_ UINT uCode,
92
+ # _In_ UINT uMapType,
93
+ # _Inout_opt_ HKL dwhkl )
94
+ attach_function 'MapVirtualKeyExA', [VirtualKeyFlags, MapVirtualKey, :hkl], :uint
95
+ attach_function 'MapVirtualKeyExW', [VirtualKeyFlags, MapVirtualKey, :hkl], :uint
96
+
97
+ #DWORD WINAPI OemKeyScan( _In_ WORD wOemChar )
98
+ attach_function 'OemKeyScan', [:word], :dword
99
+
100
+ #BOOL WINAPI RegisterHotKey(
101
+ # __in_opt HWND hWnd,
102
+ # __in int id,
103
+ # __in UINT fsModifiers,
104
+ # __in UINT vk)
105
+ attach_function 'RegisterHotKey', [:hwnd, :int, KeyboardModifiers, VirtualKeyFlags], :bool
106
+
107
+ #TODO
108
+ #UINT WINAPI SendInput(
109
+ # _In_ UINT nInputs,
110
+ # _In_ LPINPUT pInputs,
111
+ # _In_ int cbSize )
112
+ attach_function 'SendInput', [:uint, :pointer, :int], :uint
113
+
114
+ #HWND WINAPI SetActiveWindow( _In_ HWND hWnd )
115
+ attach_function 'SetActiveWindow', [:hwnd], :hwnd
116
+
117
+ #HWND WINAPI SetFocus( _In_opt_ HWND hWnd )
118
+ attach_function 'SetFocus', [:hwnd], :hwnd
119
+
120
+ #BOOL WINAPI SetKeyboardState( _In_ LPBYTE lpKeyState )
121
+ attach_function 'SetKeyboardState', [:pointer], :bool
122
+
123
+ #int WINAPI ToAscii(
124
+ # _In_ UINT uVirtKey,
125
+ # _In_ UINT uScanCode,
126
+ # _In_opt_ const BYTE *lpKeyState,
127
+ # _Out_ LPWORD lpChar,
128
+ # _In_ UINT uFlags )
129
+ attach_function 'ToAscii', [VirtualKeyFlags, :uint, :pointer, :pointer, :uint], :int
130
+
131
+ #int WINAPI ToAsciiEx(
132
+ # _In_ UINT uVirtKey,
133
+ # _In_ UINT uScanCode,
134
+ # _In_opt_ const BYTE *lpKeyState,
135
+ # _Out_ LPWORD lpChar,
136
+ # _In_ UINT uFlags,
137
+ # _In_opt_ HKL dwhkl )
138
+ attach_function 'ToAsciiEx', [VirtualKeyFlags, :uint, :pointer, :pointer, :uint, :hkl], :int
139
+
140
+ #int WINAPI ToUnicode(
141
+ # _In_ UINT wVirtKey,
142
+ # _In_ UINT wScanCode,
143
+ # _In_opt_ const BYTE *lpKeyState,
144
+ # _Out_ LPWSTR pwszBuff,
145
+ # _In_ int cchBuff,
146
+ # _In_ UINT wFlags )
147
+ attach_function 'ToUnicode', [VirtualKeyFlags, :uint, :pointer, :string, :int, :uint], :int
148
+
149
+ #int WINAPI ToUnicodeEx(
150
+ # _In_ UINT wVirtKey,
151
+ # _In_ UINT wScanCode,
152
+ # _In_ const BYTE *lpKeyState,
153
+ # _Out_ LPWSTR pwszBuff,
154
+ # _In_ int cchBuff,
155
+ # _In_ UINT wFlags,
156
+ # _In_opt_ HKL dwhkl )
157
+ attach_function 'ToUnicodeEx', [:uint, :uint, :pointer, :string, :int, :uint, :hkl], :int
158
+
159
+ #BOOL WINAPI UnloadKeyboardLayout( _In_ HKL hkl )
160
+ attach_function 'UnloadKeyboardLayout', [:hkl], :bool
161
+
162
+ #BOOL WINAPI UnregisterHotKey(
163
+ # __in_opt HWND hWnd,
164
+ # __in int id)
165
+ attach_function 'UnregisterHotKey', [:hwnd, :int], :bool
166
+
167
+ #SHORT WINAPI VkKeyScan( _In_ TCHAR ch )
168
+ attach_function 'VkKeyScanA', [:char], :short
169
+ attach_function 'VkKeyScanW', [:char], :short
170
+
171
+ #SHORT WINAPI VkKeyScanEx(
172
+ # _In_ TCHAR ch,
173
+ # _In_ HKL dwhkl )
174
+ attach_function 'VkKeyScanExA', [:char, :hkl], :short
175
+ attach_function 'VkKeyScanExW', [:char, :hkl], :short
176
+ end
177
+ end
@@ -0,0 +1,37 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/structs/user32/msg'
4
+
5
+ module WinFFI
6
+ module User32
7
+ #int WINAPI CopyAcceleratorTable(
8
+ # _In_ HACCEL hAccelSrc,
9
+ # _Out_opt_ LPACCEL lpAccelDst,
10
+ # _In_ int cAccelEntries )
11
+ attach_function 'CopyAcceleratorTableA', [:haccel, :pointer, :int], :int
12
+ attach_function 'CopyAcceleratorTableW', [:haccel, :pointer, :int], :int
13
+
14
+ #HACCEL WINAPI CreateAcceleratorTable(
15
+ # _In_ LPACCEL lpaccl,
16
+ # _In_ int cEntries )
17
+ attach_function 'CreateAcceleratorTableA', [:haccel, :int], :pointer
18
+ attach_function 'CreateAcceleratorTableW', [:haccel, :int], :pointer
19
+
20
+ #BOOL WINAPI DestroyAcceleratorTable( _In_ HACCEL hAccel )
21
+ attach_function 'DestroyAcceleratorTable', [:haccel], :bool
22
+
23
+ #HACCEL WINAPI LoadAccelerators(
24
+ # _In_opt_ HINSTANCE hInstance,
25
+ # _In_ LPCTSTR lpTableName )
26
+ attach_function 'LoadAcceleratorsA', [:hinstance, :string], :haccel
27
+ attach_function 'LoadAcceleratorsW', [:hinstance, :string], :haccel
28
+
29
+ #int WINAPI TranslateAccelerator(
30
+ # _In_ HWND hWnd,
31
+ # _In_ HACCEL hAccTable,
32
+ # _In_ LPMSG lpMsg )
33
+ attach_function 'TranslateAccelerator', [:hwnd, :haccel, MSG.ptr], :int
34
+ attach_function 'TranslateAcceleratorA', [:hwnd, :haccel, MSG.ptr], :int
35
+ attach_function 'TranslateAcceleratorW', [:hwnd, :haccel, MSG.ptr], :int
36
+ end
37
+ end
@@ -0,0 +1,60 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/enums/user32/mouse_keys_flags'
4
+ require 'win-ffi/enums/user32/mouse_event_flags'
5
+
6
+ require 'lib/win-ffi/structs/point'
7
+ require 'win-ffi/structs/user32/mouse_move_point'
8
+ require 'win-ffi/structs/user32/track_mouse_event'
9
+
10
+ module WinFFI
11
+ module User32
12
+
13
+ #BOOL WINAPI _TrackMouseEvent(
14
+ # _Inout_ LPTRACKMOUSEEVENT lpEventTrack )
15
+ #attach_function '_TrackMouseEvent', [TRACKMOUSEEVENT.ptr], :bool
16
+
17
+ #BOOL WINAPI DragDetect(
18
+ # _In_ HWND hwnd,
19
+ # _In_ POINT pt )
20
+ attach_function 'DragDetect', [:hwnd, POINT], :bool
21
+
22
+ #HWND WINAPI GetCapture(void)
23
+ attach_function 'GetCapture', [], :hwnd
24
+
25
+ #UINT WINAPI GetDoubleClickTime(void)
26
+ attach_function 'GetDoubleClickTime', [:void], :uint
27
+
28
+ #int WINAPI GetMouseMovePointsEx(
29
+ # _In_ UINT cbSize,
30
+ # _In_ LPMOUSEMOVEPOINT lppt,
31
+ # _Out_ LPMOUSEMOVEPOINT lpptBuf,
32
+ # _In_ int nBufPoints,
33
+ # _In_ DWORD resolution )
34
+ attach_function 'GetMouseMovePointsEx', [:uint, MOUSEMOVEPOINT.ptr, MOUSEMOVEPOINT.ptr, :int, :dword], :int
35
+
36
+ #VOID WINAPI mouse_event(
37
+ # _In_ DWORD dwFlags,
38
+ # _In_ DWORD dx,
39
+ # _In_ DWORD dy,
40
+ # _In_ DWORD dwData,
41
+ # _In_ ULONG_PTR dwExtraInfo )
42
+ attach_function 'mouse_event', [MouseEventFlags, :dword, :dword, :dword, :ulong], :void
43
+
44
+ #BOOL WINAPI ReleaseCapture(void)
45
+ attach_function 'ReleaseCapture', [], :bool
46
+
47
+ #HWND WINAPI SetCapture( _In_ HWND hWnd )
48
+ attach_function 'SetCapture', [:hwnd], :hwnd
49
+
50
+ #BOOL WINAPI SetDoubleClickTime( _In_ UINT uInterval )
51
+ attach_function 'SetDoubleClickTime', [:uint], :bool
52
+
53
+ #BOOL WINAPI SwapMouseButton( _In_ BOOL fSwap )
54
+ attach_function 'SwapMouseButton', [:bool], :bool
55
+
56
+ #BOOL WINAPI TrackMouseEvent( _Inout_ LPTRACKMOUSEEVENT lpEventTrack )
57
+ attach_function 'TrackMouseEvent', [TRACKMOUSEEVENT.ptr], :bool
58
+
59
+ end
60
+ end
@@ -0,0 +1,43 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/structs/rect'
4
+ require 'win-ffi/structs/point'
5
+
6
+ module WinFFI
7
+ module User32
8
+ #BOOL EnumDisplayMonitors(
9
+ # _In_ HDC hdc,
10
+ # _In_ LPCRECT lprcClip,
11
+ # _In_ MONITORENUMPROC lpfnEnum,
12
+ # _In_ LPARAM dwData )
13
+ attach_function 'EnumDisplayMonitors', [:hdc, RECT.ptr, :pointer, :lparam], :bool
14
+
15
+ #BOOL GetMonitorInfo(
16
+ # _In_ HMONITOR hMonitor,
17
+ # _Out_ LPMONITORINFO lpmi)
18
+ attach_function 'GetMonitorInfoA', [:hmonitor, :pointer], :bool
19
+ attach_function 'GetMonitorInfoW', [:hmonitor, :pointer], :bool
20
+
21
+ #BOOL CALLBACK MonitorEnumProc(
22
+ # _In_ HMONITOR hMonitor,
23
+ # _In_ HDC hdcMonitor,
24
+ # _In_ LPRECT lprcMonitor,
25
+ # _In_ LPARAM dwData )
26
+ callback 'MonitorEnumProc', [:hmonitor, :hdc, RECT.ptr, :lparam], :bool
27
+
28
+ #HMONITOR MonitorFromPoint(
29
+ # _In_ POINT pt,
30
+ # _In_ DWORD dwFlags )
31
+ attach_function 'MonitorFromPoint', [POINT.ptr, :dword], :hmonitor
32
+
33
+ #HMONITOR MonitorFromRect(
34
+ # _In_ LPCRECT lprc,
35
+ # _In_ DWORD dwFlags )
36
+ attach_function 'MonitorFromRect', [RECT.ptr, :dword], :hmonitor
37
+
38
+ #HMONITOR MonitorFromWindow(
39
+ # _In_ HWND hwnd,
40
+ # _In_ DWORD dwFlags )
41
+ attach_function 'MonitorFromWindow', [:hwnd, :dword], :hmonitor
42
+ end
43
+ end
@@ -0,0 +1,44 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/structs/user32/msg'
4
+
5
+ module WinFFI
6
+ module User32
7
+ #HWND WINAPI CreateMDIWindow(
8
+ # _In_ LPCTSTR lpClassName,
9
+ # _In_ LPCTSTR lpWindowName,
10
+ # _In_ DWORD dwStyle,
11
+ # _In_ int X,
12
+ # _In_ int Y,
13
+ # _In_ int nWidth,
14
+ # _In_ int nHeight,
15
+ # _In_opt_ HWND hWndParent,
16
+ # _In_opt_ HINSTANCE hInstance,
17
+ # _In_ LPARAM lParam )
18
+ attach_function 'CreateMDIWindowA', [:pointer, :pointer, :dword, :int, :int, :int, :int, :hwnd, :hinstance, :lparam], :hwnd
19
+ attach_function 'CreateMDIWindowW', [:pointer, :pointer, :dword, :int, :int, :int, :int, :hwnd, :hinstance, :lparam], :hwnd
20
+
21
+ #LRESULT WINAPI DefFrameProc(
22
+ # _In_ HWND hWnd,
23
+ # _In_ HWND hWndMDIClient,
24
+ # _In_ UINT uMsg,
25
+ # _In_ WPARAM wParam,
26
+ # _In_ LPARAM lParam )
27
+ attach_function 'DefFrameProcA', [:hwnd, :hwnd, :uint, :wparam, :lparam], :lresult
28
+ attach_function 'DefFrameProcW', [:hwnd, :hwnd, :uint, :wparam, :lparam], :lresult
29
+
30
+ #LRESULT WINAPI DefMDIChildProc(
31
+ # _In_ HWND hWnd,
32
+ # _In_ UINT uMsg,
33
+ # _In_ WPARAM wParam,
34
+ # _In_ LPARAM lParam )
35
+ attach_function 'DefMDIChildProcA', [:hwnd, :uint, :wparam, :lparam], :lresult
36
+ attach_function 'DefMDIChildProcW', [:hwnd, :uint, :wparam, :lparam], :lresult
37
+
38
+ #BOOL WINAPI TranslateMDISysAccel(
39
+ # _In_ HWND hWndClient,
40
+ # _In_ LPMSG lpMsg )
41
+ attach_function 'TranslateMDISysAccel', [:hwnd, MSG.ptr], :bool
42
+
43
+ end
44
+ end