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,95 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/structs/user32/controls/scrollbar_info'
4
+ require 'win-ffi/structs/user32/controls/scroll_info'
5
+
6
+ module WinFFI
7
+ module User32
8
+ #BOOL EnableScrollBar(
9
+ # _In_ HWND hWnd,
10
+ # _In_ UINT wSBflags,
11
+ # _In_ UINT wArrows )
12
+ attach_function 'EnableScrollBar', [:hwnd, :uint, :uint], :bool
13
+
14
+ #BOOL GetScrollBarInfo(
15
+ # _In_ HWND hwnd,
16
+ # _In_ LONG idObject,
17
+ # _Out_ PSCROLLBARINFO psbi )
18
+ attach_function 'GetScrollBarInfo', [:hwnd, :long, SCROLLBARINFO.ptr], :bool
19
+
20
+ #BOOL GetScrollInfo(
21
+ # _In_ HWND hwnd,
22
+ # _In_ int fnBar,
23
+ # _Inout_ LPSCROLLINFO lpsi )
24
+ attach_function 'GetScrollInfo', [:hwnd, :int, SCROLLINFO.ptr], :bool
25
+
26
+ #int GetScrollPos(
27
+ # _In_ HWND hWnd,
28
+ # _In_ int nBar )
29
+ attach_function 'GetScrollPos', [:hwnd, :int], :int
30
+
31
+ #BOOL GetScrollRange(
32
+ # _In_ HWND hWnd,
33
+ # _In_ int nBar,
34
+ # _Out_ LPINT lpMinPos,
35
+ # _Out_ LPINT lpMaxPos )
36
+ attach_function 'GetScrollRange', [:hwnd, :int, :pointer, :pointer], :bool
37
+
38
+ #BOOL ScrollDC(
39
+ # _In_ HDC hDC,
40
+ # _In_ int dx,
41
+ # _In_ int dy,
42
+ # _In_ const RECT *lprcScroll,
43
+ # _In_ const RECT *lprcClip,
44
+ # _In_ HRGN hrgnUpdate,
45
+ # _Out_ LPRECT lprcUpdate )
46
+ attach_function 'ScrollDC', [:hdc, :int, :int, RECT.ptr, RECT.ptr, :hrgn, RECT.ptr], :bool
47
+
48
+ #BOOL ScrollWindow(
49
+ # _In_ HWND hWnd,
50
+ # _In_ int XAmount,
51
+ # _In_ int YAmount,
52
+ # _In_ const RECT *lpRect,
53
+ # _In_ const RECT *lpClipRect )
54
+ attach_function 'ScrollWindow', [:hwnd, :int, :int, RECT.ptr, RECT.ptr], :bool
55
+
56
+ #int ScrollWindowEx(
57
+ # _In_ HWND hWnd,
58
+ # _In_ int dx,
59
+ # _In_ int dy,
60
+ # _In_ const RECT *prcScroll,
61
+ # _In_ const RECT *prcClip,
62
+ # _In_ HRGN hrgnUpdate,
63
+ # _Out_ LPRECT prcUpdate,
64
+ # _In_ UINT flags )
65
+ attach_function 'ScrollWindowEx', [:hwnd, :int, :int, RECT.ptr, RECT.ptr, :hrgn, RECT.ptr, :uint], :int
66
+
67
+ #int SetScrollInfo(
68
+ # _In_ HWND hwnd,
69
+ # _In_ int fnBar,
70
+ # _In_ LPCSCROLLINFO lpsi,
71
+ # _In_ BOOL fRedraw )
72
+ attach_function 'SetScrollInfo', [:hwnd, :int, SCROLLINFO.ptr, :bool], :int
73
+
74
+ #int SetScrollPos(
75
+ # _In_ HWND hWnd,
76
+ # _In_ int nBar,
77
+ # _In_ int nPos,
78
+ # _In_ BOOL bRedraw )
79
+ attach_function 'SetScrollPos', [:hwnd, :int, :int, :bool], :int
80
+
81
+ #BOOL SetScrollRange(
82
+ # _In_ HWND hWnd,
83
+ # _In_ int nBar,
84
+ # _In_ int nMinPos,
85
+ # _In_ int nMaxPos,
86
+ # _In_ BOOL bRedraw )
87
+ attach_function 'SetScrollRange', [:hwnd, :int, :int, :int, :bool], :bool
88
+
89
+ #BOOL ShowScrollBar(
90
+ # _In_ HWND hWnd,
91
+ # _In_ int wBar,
92
+ # _In_ BOOL bShow )
93
+ attach_function 'ShowScrollBar', [:hwnd, :int, :bool], :bool
94
+ end
95
+ end
@@ -0,0 +1,74 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/structs/user32/cursor_info'
4
+
5
+ module WinFFI
6
+ module User32
7
+ #BOOL WINAPI ClipCursor( _In_opt_ const RECT *lpRect )
8
+ attach_function 'ClipCursor', [RECT.ptr], :bool
9
+
10
+ #HCURSOR WINAPI CopyCursor( _In_ HCURSOR pcur )
11
+ #attach_function 'CopyCursor', [:hcursor], :hcursor
12
+
13
+ #HCURSOR WINAPI CreateCursor(
14
+ # _In_opt_ HINSTANCE hInst,
15
+ # _In_ int xHotSpot,
16
+ # _In_ int yHotSpot,
17
+ # _In_ int nWidth,
18
+ # _In_ int nHeight,
19
+ # _In_ const VOID *pvANDPlane,
20
+ # _In_ const VOID *pvXORPlane )
21
+ attach_function 'CreateCursor', [:hinstance, :int, :int, :int, :int, :pointer, :pointer], :hcursor
22
+
23
+ #BOOL WINAPI DestroyCursor( _In_ HCURSOR hCursor )
24
+ attach_function 'DestroyCursor', [:hcursor], :bool
25
+
26
+ #BOOL WINAPI GetClipCursor( _Out_ LPRECT lpRect )
27
+ attach_function 'GetClipCursor', [RECT.ptr], :bool
28
+
29
+ #HCURSOR WINAPI GetCursor(void)
30
+ attach_function 'GetCursor', [], :hcursor
31
+
32
+ #BOOL WINAPI GetCursorInfo( _Inout_ PCURSORINFO pci )
33
+ attach_function 'GetCursorInfo', [CURSORINFO.ptr], :bool
34
+
35
+ #BOOL WINAPI GetCursorPos( _Out_ LPPOINT lpPoint )
36
+ attach_function 'GetCursorPos', [POINT.ptr], :bool
37
+
38
+ #HCURSOR LoadCursor(
39
+ # __in_opt HINSTANCE hInstance,
40
+ # __in LPCTSTR lpCursorName)
41
+ attach_function 'LoadCursorA', [:hinstance, :pointer], :pointer
42
+ attach_function 'LoadCursorW', [:hinstance, :pointer], :hcursor
43
+
44
+ #HCURSOR WINAPI LoadCursorFromFile( _In_ LPCTSTR lpFileName )
45
+ attach_function 'LoadCursorFromFileA', [:string], :hcursor
46
+ attach_function 'LoadCursorFromFileW', [:string], :hcursor
47
+
48
+ #HCURSOR WINAPI SetCursor( _In_opt_ HCURSOR hCursor )
49
+ attach_function 'SetCursor', [:hcursor], :hcursor
50
+
51
+ #BOOL WINAPI SetCursorPos(
52
+ # _In_ int X,
53
+ # _In_ int Y )
54
+ attach_function 'SetCursorPos', [:int, :int], :bool
55
+
56
+ #BOOL WINAPI SetSystemCursor(
57
+ # _In_ HCURSOR hcur,
58
+ # _In_ DWORD id )
59
+ attach_function 'SetSystemCursor', [:hcursor, :dword], :bool
60
+
61
+ #int WINAPI ShowCursor( _In_ BOOL bShow )
62
+ attach_function 'ShowCursor', [:bool], :int
63
+
64
+ if WindowsVersion >= :vista
65
+ #BOOL WINAPI GetPhysicalCursorPos( _Out_ LPPOINT lpPoint )
66
+ attach_function 'GetPhysicalCursorPos', [POINT.ptr], :bool
67
+
68
+ #BOOL WINAPI SetPhysicalCursorPos(
69
+ # _In_ int X,
70
+ # _In_ int Y )
71
+ attach_function 'SetPhysicalCursorPos', [:int, :int], :bool
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,214 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+ #BOOL WINAPI DdeAbandonTransaction(
6
+ # _In_ DWORD idInst,
7
+ # _In_ HCONV hConv,
8
+ # _In_ DWORD idTransaction )
9
+ attach_function 'DdeAbandonTransaction', [:dword, :hconv, :dword], :bool
10
+
11
+ #LPBYTE WINAPI DdeAccessData(
12
+ # _In_ HDDEDATA hData,
13
+ # _Out_opt_ LPDWORD pcbDataSize )
14
+ attach_function 'DdeAccessData', [:hddedata, :pointer], :pointer
15
+
16
+ #HDDEDATA WINAPI DdeAddData(
17
+ # _In_ HDDEDATA hData,
18
+ # _In_ LPBYTE pSrc,
19
+ # _In_ DWORD cb,
20
+ # _In_ DWORD cbOff )
21
+ attach_function 'DdeAddData', [:hddedata, :pointer, :dword, :dword], :pointer
22
+
23
+ #TODO
24
+ #HDDEDATA CALLBACK DdeCallback(
25
+ # _In_ UINT uType,
26
+ # _In_ UINT uFmt,
27
+ # _In_ HCONV hconv,
28
+ # _In_ HSZ hsz1,
29
+ # _In_ HSZ hsz2,
30
+ # _In_ HDDEDATA hdata,
31
+ # _In_ ULONG_PTR dwData1,
32
+ # _In_ ULONG_PTR dwData2 )
33
+
34
+ #HDDEDATA WINAPI DdeClientTransaction(
35
+ # _In_opt_ LPBYTE pData,
36
+ # _In_ DWORD cbData,
37
+ # _In_ HCONV hConv,
38
+ # _In_opt_ HSZ hszItem,
39
+ # _In_ UINT wFmt,
40
+ # _In_ UINT wType,
41
+ # _In_ DWORD dwTimeout,
42
+ # _Out_opt_ LPDWORD pdwResult )
43
+ attach_function 'DdeClientTransaction', [:pointer, :dword, :hconv, :hsz, :uint, :uint, :dword, :pointer], :hddedata
44
+
45
+ #int WINAPI DdeCmpStringHandles(
46
+ # _In_ HSZ hsz1,
47
+ # _In_ HSZ hsz2 )
48
+ attach_function 'DdeCmpStringHandles', [:hsz, :hsz], :int
49
+
50
+ #HCONV WINAPI DdeConnect(
51
+ # _In_ DWORD idInst,
52
+ # _In_ HSZ hszService,
53
+ # _In_ HSZ hszTopic,
54
+ # _In_opt_ PCONVCONTEXT pCC )
55
+ attach_function 'DdeConnect', [:dword, :hsz, :hsz, :pointer], :hconv
56
+
57
+ #HCONVLIST WINAPI DdeConnectList(
58
+ # _In_ DWORD idInst,
59
+ # _In_ HSZ hszService,
60
+ # _In_ HSZ hszTopic,
61
+ # _In_ HCONVLIST hConvList,
62
+ # _In_opt_ PCONVCONTEXT pCC )
63
+ attach_function 'DdeConnectList', [:dword, :hsz, :hsz, :pointer, :pointer], :pointer
64
+
65
+ #HDDEDATA WINAPI DdeCreateDataHandle(
66
+ # _In_ DWORD idInst,
67
+ # _In_opt_ LPBYTE pSrc,
68
+ # _In_ DWORD cb,
69
+ # _In_ DWORD cbOff,
70
+ # _In_opt_ HSZ hszItem,
71
+ # _In_ UINT wFmt,
72
+ # _In_ UINT afCmd )
73
+ attach_function 'DdeCreateDataHandle', [:dword, :pointer, :dword, :dword, :hsz, :uint, :uint], :hddedata
74
+
75
+ #HSZ WINAPI DdeCreateStringHandle(
76
+ # _In_ DWORD idInst,
77
+ # _In_ LPTSTR psz,
78
+ # _In_ int iCodePage )
79
+ attach_function 'DdeCreateStringHandleA', [:dword, :string, :int], :hsz
80
+ attach_function 'DdeCreateStringHandleW', [:dword, :string, :int], :hsz
81
+
82
+ #BOOL WINAPI DdeDisconnect( _In_ HCONV hConv )
83
+ attach_function 'DdeDisconnect', [:hconv], :bool
84
+
85
+ #BOOL WINAPI DdeDisconnectList( _In_ HCONVLIST hConvList )
86
+ attach_function 'DdeDisconnectList', [:pointer], :bool
87
+
88
+ #BOOL WINAPI DdeEnableCallback(
89
+ # _In_ DWORD idInst,
90
+ # _In_ HCONV hConv,
91
+ # _In_ UINT wCmd )
92
+ attach_function 'DdeEnableCallback', [:dword, :hconv, :uint], :bool
93
+
94
+ #BOOL WINAPI DdeFreeDataHandle( _In_ HDDEDATA hData )
95
+ attach_function 'DdeFreeDataHandle', [:hddedata], :bool
96
+
97
+ #BOOL WINAPI DdeFreeStringHandle(
98
+ # _In_ DWORD idInst,
99
+ # _In_ HSZ hsz )
100
+ attach_function 'DdeFreeStringHandle', [:dword, :hsz], :bool
101
+
102
+ #DWORD WINAPI DdeGetData(
103
+ # _In_ HDDEDATA hData,
104
+ # _Out_opt_ LPBYTE pDst,
105
+ # _In_ DWORD cbMax,
106
+ # _In_ DWORD cbOff )
107
+ attach_function 'DdeGetData', [:hddedata, :pointer, :dword, :dword], :dword
108
+
109
+ #UINT WINAPI DdeGetLastError( _In_ DWORD idInst )
110
+ attach_function 'DdeGetLastError', [:dword], :uint
111
+
112
+ #BOOL WINAPI DdeImpersonateClient( _In_ HCONV hConv )
113
+ attach_function 'DdeImpersonateClient', [:hconv], :bool
114
+
115
+ #UINT WINAPI DdeInitialize(
116
+ # _Inout_ LPDWORD pidInst,
117
+ # _In_ PFNCALLBACK pfnCallback,
118
+ # _In_ DWORD afCmd,
119
+ # _Reserved_ DWORD ulRes )
120
+ attach_function 'DdeInitializeA', [:pointer, :pointer, :dword, :dword], :uint
121
+ attach_function 'DdeInitializeW', [:pointer, :pointer, :dword, :dword], :uint
122
+
123
+ #BOOL WINAPI DdeKeepStringHandle(
124
+ # _In_ DWORD idInst,
125
+ # _In_ HSZ hsz )
126
+ attach_function 'DdeKeepStringHandle', [:dword, :hsz], :bool
127
+
128
+ #HDDEDATA WINAPI DdeNameService(
129
+ # _In_ DWORD idInst,
130
+ # _In_opt_ HSZ hsz1,
131
+ # _In_opt_ HSZ hsz2,
132
+ # _In_ UINT afCmd )
133
+ attach_function 'DdeNameService', [:dword, :hsz, :hsz, :uint], :hddedata
134
+
135
+ #BOOL WINAPI DdePostAdvise(
136
+ # _In_ DWORD idInst,
137
+ # _In_ HSZ hszTopic,
138
+ # _In_ HSZ hszItem )
139
+ attach_function 'DdePostAdvise', [:dword, :hsz, :hsz], :bool
140
+
141
+ #UINT WINAPI DdeQueryConvInfo(
142
+ # _In_ HCONV hConv,
143
+ # _In_ DWORD idTransaction,
144
+ # _Inout_ PCONVINFO pConvInfo )
145
+ attach_function 'DdeQueryConvInfo', [:hconv, :dword, :pointer], :uint
146
+
147
+ #HCONV WINAPI DdeQueryNextServer(
148
+ # _In_ HCONVLIST hConvList,
149
+ # _In_ HCONV hConvPrev )
150
+ attach_function 'DdeQueryNextServer', [:pointer, :hconv], :hconv
151
+
152
+ #DWORD WINAPI DdeQueryString(
153
+ # _In_ DWORD idInst,
154
+ # _In_ HSZ hsz,
155
+ # _Out_opt_ LPTSTR psz,
156
+ # _In_ DWORD cchMax,
157
+ # _In_ int iCodePage )
158
+ attach_function 'DdeQueryStringA', [:dword, :hsz, :pointer, :dword, :int], :dword
159
+ attach_function 'DdeQueryStringW', [:dword, :hsz, :pointer, :dword, :int], :dword
160
+
161
+ #HCONV WINAPI DdeReconnect( _In_ HCONV hConv )
162
+ attach_function 'DdeReconnect', [:hconv], :hconv
163
+
164
+ #BOOL WINAPI DdeSetQualityOfService(
165
+ # _In_ HWND hwndClient,
166
+ # _In_ const SECURITY_QUALITY_OF_SERVICE *pqosNew,
167
+ # _Out_ PSECURITY_QUALITY_OF_SERVICE pqosPrev )
168
+ attach_function 'DdeSetQualityOfService', [:hwnd, :pointer, :pointer], :bool
169
+
170
+ #BOOL WINAPI DdeSetUserHandle(
171
+ # _In_ HCONV hConv,
172
+ # _In_ DWORD id,
173
+ # _In_ DWORD_PTR hUser )
174
+ attach_function 'DdeSetUserHandle', [:hconv, :dword, :dword], :bool
175
+
176
+ #BOOL WINAPI DdeUnaccessData( _In_ HDDEDATA hData )
177
+ attach_function 'DdeUnaccessData', [:hddedata], :bool
178
+
179
+ #BOOL WINAPI DdeUninitialize( _In_ DWORD idInst )
180
+ attach_function 'DdeUninitialize', [:dword], :bool
181
+
182
+ #BOOL WINAPI FreeDDElParam(
183
+ # _In_ UINT msg,
184
+ # _In_ LPARAM lParam )
185
+ attach_function 'FreeDDElParam', [:uint, :lparam], :bool
186
+
187
+ #BOOL WINAPI ImpersonateDdeClientWindow(
188
+ # _In_ HWND hWndClient,
189
+ # _In_ HWND hWndServer )
190
+ attach_function 'ImpersonateDdeClientWindow', [:hwnd, :hwnd], :bool
191
+
192
+ #LPARAM WINAPI PackDDElParam(
193
+ # _In_ UINT msg,
194
+ # _In_ UINT_PTR uiLo,
195
+ # _In_ UINT_PTR uiHi )
196
+ attach_function 'PackDDElParam', [:uint, :ulong, :ulong], :lparam
197
+
198
+ #LPARAM WINAPI ReuseDDElParam(
199
+ # _In_ LPARAM lParam,
200
+ # _In_ UINT msgIn,
201
+ # _In_ UINT msgOut,
202
+ # _In_ UINT_PTR uiLo,
203
+ # _In_ UINT_PTR uiHi )
204
+ attach_function 'ReuseDDElParam', [:lparam, :uint, :uint, :ulong, :ulong], :lparam
205
+
206
+ #BOOL WINAPI UnpackDDElParam(
207
+ # _In_ UINT msg,
208
+ # _In_ LPARAM lParam,
209
+ # _Out_ PUINT_PTR puiLo,
210
+ # _Out_ PUINT_PTR puiHi )
211
+ attach_function 'UnpackDDElParam', [:uint, :lparam, :ulong, :ulong], :bool
212
+
213
+ end
214
+ end
@@ -0,0 +1,76 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+ #BOOL WINAPI CloseDesktop( _In_ HDESK hDesktop )
6
+ attach_function 'CloseDesktop', [:hdesk], :bool
7
+
8
+ #HDESK WINAPI CreateDesktop(
9
+ # _In_ LPCTSTR lpszDesktop,
10
+ # _Reserved_ LPCTSTR lpszDevice,
11
+ # _Reserved_ DEVMODE *pDevmode,
12
+ # _In_ DWORD dwFlags,
13
+ # _In_ ACCESS_MASK dwDesiredAccess,
14
+ # _In_opt_ LPSECURITY_ATTRIBUTES lpsa )
15
+ attach_function 'CreateDesktopA', [:string, :string, :pointer, :dword, :int, :pointer], :hdesk
16
+ attach_function 'CreateDesktopW', [:string, :string, :pointer, :dword, :int, :pointer], :hdesk
17
+
18
+ if WindowsVersion >= :vista
19
+
20
+ #HDESK WINAPI CreateDesktopEx(
21
+ # _In_ LPCTSTR lpszDesktop,
22
+ # _Reserved_ LPCTSTR lpszDevice,
23
+ # _Reserved_ DEVMODE *pDevmode,
24
+ # _In_ DWORD dwFlags,
25
+ # _In_ ACCESS_MASK dwDesiredAccess,
26
+ # _In_opt_ LPSECURITY_ATTRIBUTES lpsa,
27
+ # _In_ ULONG ulHeapSize,
28
+ # _Reserved_ PVOID pvoid)
29
+ attach_function 'CreateDesktopExA', [:string, :string, :pointer, :dword, :int, :pointer, :ulong, :pointer], :hdesk
30
+ attach_function 'CreateDesktopExW', [:string, :string, :pointer, :dword, :int, :pointer, :ulong, :pointer], :hdesk
31
+
32
+ end
33
+
34
+ #BOOL CALLBACK EnumDesktopProc(
35
+ # _In_ LPTSTR lpszDesktop,
36
+ # _In_ LPARAM lParam )
37
+ callback 'EnumDesktopProc', [:string, :lparam], :bool
38
+
39
+ #BOOL WINAPI EnumDesktops(
40
+ # _In_opt_ HWINSTA hwinsta,
41
+ # _In_ DESKTOPENUMPROC lpEnumFunc,
42
+ # _In_ LPARAM lParam )
43
+ attach_function 'EnumDesktopsA', [:hwinsta, :pointer, :lparam], :bool
44
+ attach_function 'EnumDesktopsW', [:hwinsta, :pointer, :lparam], :bool
45
+
46
+ #BOOL WINAPI EnumDesktopWindows(
47
+ # _In_opt_ HDESK hDesktop,
48
+ # _In_ WNDENUMPROC lpfn,
49
+ # _In_ LPARAM lParam )
50
+ attach_function 'EnumDesktopWindows', [:hdesk, :pointer, :lparam], :bool
51
+
52
+ #HDESK WINAPI GetThreadDesktop( _In_ DWORD dwThreadId )
53
+ attach_function 'GetThreadDesktop', [:dword], :hdesk
54
+
55
+ #HDESK WINAPI OpenDesktop(
56
+ # _In_ LPTSTR lpszDesktop,
57
+ # _In_ DWORD dwFlags,
58
+ # _In_ BOOL fInherit,
59
+ # _In_ ACCESS_MASK dwDesiredAccess )
60
+ attach_function 'OpenDesktopA', [:string, :dword, :bool, :pointer], :hdesk
61
+ attach_function 'OpenDesktopW', [:string, :dword, :bool, :pointer], :hdesk
62
+
63
+ #HDESK WINAPI OpenInputDesktop(
64
+ # _In_ DWORD dwFlags,
65
+ # _In_ BOOL fInherit,
66
+ # _In_ ACCESS_MASK dwDesiredAccess )
67
+ attach_function 'OpenInputDesktop', [:dword, :bool, :pointer], :hdesk
68
+
69
+ #BOOL WINAPI SetThreadDesktop( _In_ HDESK hDesktop )
70
+ attach_function 'SetThreadDesktop', [:hdesk], :bool
71
+
72
+ #BOOL WINAPI SwitchDesktop( _In_ HDESK hDesktop )
73
+ attach_function 'SwitchDesktop', [:hdesk], :bool
74
+
75
+ end
76
+ end
@@ -0,0 +1,17 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/enums/user32/device_notify_flags'
4
+
5
+ module WinFFI
6
+ module User32
7
+ #HDEVNOTIFY WINAPI RegisterDeviceNotification(
8
+ # _In_ HANDLE hRecipient,
9
+ # _In_ LPVOID NotificationFilter,
10
+ # _In_ DWORD Flags )
11
+ attach_function 'RegisterDeviceNotificationA', [:handle, :pointer, DeviceNotifyFlags], :pointer
12
+ attach_function 'RegisterDeviceNotificationW', [:handle, :pointer, DeviceNotifyFlags], :pointer
13
+
14
+ #BOOL WINAPI UnregisterDeviceNotification( _In_ HDEVNOTIFY Handle )
15
+ attach_function 'UnregisterDeviceNotification', [:pointer], :bool
16
+ end
17
+ end
@@ -0,0 +1,62 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/structs/user32/display_device'
4
+
5
+ module WinFFI
6
+ module User32
7
+ #LONG ChangeDisplaySettings(
8
+ # _In_ DEVMODE *lpDevMode,
9
+ # _In_ DWORD dwflags )
10
+ attach_function 'ChangeDisplaySettingsA', [:pointer, :dword], :long
11
+ attach_function 'ChangeDisplaySettingsW', [:pointer, :dword], :long
12
+
13
+ #LONG ChangeDisplaySettingsEx(
14
+ # _In_ LPCTSTR lpszDeviceName,
15
+ # _In_ DEVMODE *lpDevMode,
16
+ # HWND hwnd,
17
+ # _In_ DWORD dwflags,
18
+ # _In_ LPVOID lParam )
19
+ attach_function 'ChangeDisplaySettingsExA', [:string, :pointer, :hwnd, :dword, :pointer], :long
20
+ attach_function 'ChangeDisplaySettingsExW', [:string, :pointer, :hwnd, :dword, :pointer], :long
21
+
22
+ #BOOL EnumDisplayDevices(
23
+ # _In_ LPCTSTR lpDevice,
24
+ # _In_ DWORD iDevNum,
25
+ # _Out_ PDISPLAY_DEVICE lpDisplayDevice,
26
+ # _In_ DWORD dwFlags )
27
+ attach_function 'EnumDisplayDevicesA', [:pointer, :dword, DISPLAY_DEVICE.ptr, :dword], :bool
28
+ attach_function 'EnumDisplayDevicesW', [:pointer, :dword, DISPLAY_DEVICE.ptr, :dword], :bool
29
+
30
+ #BOOL EnumDisplaySettings(
31
+ # _In_ LPCTSTR lpszDeviceName,
32
+ # _In_ DWORD iModeNum,
33
+ # _Out_ DEVMODE *lpDevMode )
34
+ attach_function 'EnumDisplaySettingsA', [:string, :dword, :pointer], :bool
35
+ attach_function 'EnumDisplaySettingsW', [:string, :dword, :pointer], :bool
36
+
37
+ #BOOL EnumDisplaySettingsEx(
38
+ # _In_ LPCTSTR lpszDeviceName,
39
+ # _In_ DWORD iModeNum,
40
+ # _Out_ DEVMODE *lpDevMode,
41
+ # _In_ DWORD dwFlags )
42
+ attach_function 'EnumDisplaySettingsExA', [:string, :dword, :pointer, :dword], :bool
43
+ attach_function 'EnumDisplaySettingsExW', [:string, :dword, :pointer, :dword], :bool
44
+
45
+ #HDC GetDC( _In_ HWND hWnd )
46
+ attach_function 'GetDC', [:hwnd], :hdc
47
+
48
+ #HDC GetDCEx(
49
+ # _In_ HWND hWnd,
50
+ # _In_ HRGN hrgnClip,
51
+ # _In_ DWORD flags )
52
+ attach_function 'GetDCEx', [:hwnd, :hrgn, :dword], :hdc
53
+
54
+ #int ReleaseDC(
55
+ # _In_ HWND hWnd,
56
+ # _In_ HDC hDC )
57
+ attach_function 'ReleaseDC', [:hwnd, :hdc], :int
58
+
59
+ #HWND WindowFromDC( _In_ HDC hDC )
60
+ attach_function 'WindowFromDC', [:hdc], :hwnd
61
+ end
62
+ end
@@ -0,0 +1,37 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+ #LONG DisplayConfigGetDeviceInfo( _Inout_ DISPLAYCONFIG_DEVICE_INFO_HEADER *requestPacket )
6
+ attach_function 'DisplayConfigGetDeviceInfo', [:pointer], :long
7
+
8
+ #LONG DisplayConfigSetDeviceInfo( _In_ DISPLAYCONFIG_DEVICE_INFO_HEADER *setPacket )
9
+ attach_function 'DisplayConfigSetDeviceInfo', [:pointer], :long
10
+
11
+ #LONG GetDisplayConfigBufferSizes(
12
+ # _In_ UINT32 Flags,
13
+ # _Out_ UINT32 *pNumPathArrayElements,
14
+ # _Out_ UINT32 *pNumModeInfoArrayElements )
15
+ attach_function 'GetDisplayConfigBufferSizes', [:uint32, :pointer, :pointer], :long
16
+
17
+ if WindowsVersion >= 7
18
+
19
+ #LONG QueryDisplayConfig(
20
+ # _In_ UINT32 Flags,
21
+ # _Inout_ UINT32 *pNumPathArrayElements,
22
+ # _Out_ DISPLAYCONFIG_PATH_INFO *pPathInfoArray,
23
+ # _Inout_ UINT32 *pNumModeInfoArrayElements,
24
+ # _Out_ DISPLAYCONFIG_MODE_INFO *pModeInfoArray,
25
+ # _Out_opt_ DISPLAYCONFIG_TOPOLOGY_ID *pCurrentTopologyId )
26
+ attach_function 'QueryDisplayConfig', [:uint32, :pointer, :pointer, :pointer, :pointer, :pointer], :long
27
+
28
+ #LONG SetDisplayConfig(
29
+ # _In_ UINT32 numPathArrayElements,
30
+ # _In_opt_ DISPLAYCONFIG_PATH_INFO *pathArray,
31
+ # _In_ UINT32 numModeInfoArrayElements,
32
+ # _In_opt_ DISPLAYCONFIG_MODE_INFO *modeInfoArray,
33
+ # _In_ UINT32 Flags )
34
+ attach_function 'SetDisplayConfig', [:uint32, :pointer, :uint32, :pointer, :uint32], :long
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,10 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ module WinFFI
4
+ ffi_lib 'user32'
5
+
6
+ #void WINAPI SetLastErrorEx(
7
+ # _In_ DWORD dwErrCode,
8
+ # _In_ DWORD dwType )
9
+ attach_function 'SetLastErrorEx', [:dword, :dword], :void
10
+ end
@@ -0,0 +1,23 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+
6
+ # int FillRect(
7
+ # _In_ HDC hDC,
8
+ # _In_ const RECT *lprc,
9
+ # _In_ HBRUSH hbr )
10
+ attach_function 'FillRect', [:hdc, RECT.ptr, :hbrush], :int
11
+
12
+ # int FrameRect(
13
+ # _In_ HDC hDC,
14
+ # _In_ const RECT *lprc,
15
+ # _In_ HBRUSH hbr )
16
+ attach_function 'FrameRect', [:hdc, RECT.ptr, :hbrush], :int
17
+
18
+ # BOOL InvertRect(
19
+ # _In_ HDC hDC,
20
+ # _In_ const RECT *lprc )
21
+ attach_function 'InvertRect', [:hdc, RECT.ptr], :bool
22
+ end
23
+ end
@@ -0,0 +1,38 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+ if WinFFI::WindowsVersion >= 7
6
+ #BOOL WINAPI CloseGestureInfoHandle( HGESTUREINFO hGestureInfo )
7
+ attach_function 'CloseGestureInfoHandle', [:pointer], :bool
8
+
9
+ #BOOL WINAPI GetGestureConfig(
10
+ # _In_ HWND hwnd,
11
+ # _In_ DWORD dwReserved,
12
+ # _In_ DWORD dwFlags,
13
+ # _In_ PUINT pcIDs,
14
+ # _Inout_ PGESTURECONFIG pGestureConfig,
15
+ # _In_ UINT cbSize )
16
+ attach_function 'GetGestureConfig', [:hwnd, :dword, :dword, :pointer, :pointer, :uint], :bool
17
+
18
+ #BOOL WINAPI GetGestureExtraArgs(
19
+ # _In_ HGESTUREINFO hGestureInfo,
20
+ # _In_ UINT cbExtraArgs,
21
+ # _Out_ PBYTE pExtraArgs )
22
+ attach_function 'GetGestureExtraArgs', [:pointer, :uint, :pointer], :bool
23
+
24
+ #BOOL WINAPI GetGestureInfo(
25
+ # _In_ HGESTUREINFO hGestureInfo,
26
+ # _Out_ PGESTUREINFO pGestureInfo )
27
+ attach_function 'GetGestureInfo', [:pointer, :pointer], :bool
28
+
29
+ #BOOL WINAPI SetGestureConfig(
30
+ # _In_ HWND hwnd,
31
+ # _In_ DWORD dwReserved,
32
+ # _In_ UINT cIDs,
33
+ # _In_ PGESTURECONFIG pGestureConfig,
34
+ # _In_ UINT cbSize )
35
+ attach_function 'SetGestureConfig', [:hwnd, :dword, :uint, :pointer, :uint], :bool
36
+ end
37
+ end
38
+ end