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,48 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/structs/rect'
4
+ require 'win-ffi/structs/user32/draw_text_params'
5
+
6
+ module WinFFI
7
+ module User32
8
+ #int DrawText(
9
+ # _In_ HDC hDC,
10
+ # _Inout_ LPCTSTR lpchText,
11
+ # _In_ int nCount,
12
+ # _Inout_ LPRECT lpRect,
13
+ # _In_ UINT uFormat )
14
+ attach_function 'DrawTextA', [:hdc, :string, :int, RECT.ptr, :uint], :int
15
+ attach_function 'DrawTextW', [:hdc, :string, :int, RECT.ptr, :uint], :int
16
+
17
+ #int DrawTextEx(
18
+ # _In_ HDC hdc,
19
+ # _Inout_ LPTSTR lpchText,
20
+ # _In_ int cchText,
21
+ # _Inout_ LPRECT lprc,
22
+ # _In_ UINT dwDTFormat,
23
+ # _In_ LPDRAWTEXTPARAMS lpDTParams )
24
+ attach_function 'DrawTextExA', [:hdc, :string, :int, RECT.ptr, :uint, DRAWTEXTPARAMS.ptr], :int
25
+ attach_function 'DrawTextExW', [:hdc, :string, :int, RECT.ptr, :uint, DRAWTEXTPARAMS.ptr], :int
26
+
27
+ #DWORD GetTabbedTextExtent(
28
+ # _In_ HDC hDC,
29
+ # _In_ LPCTSTR lpString,
30
+ # _In_ int nCount,
31
+ # _In_ int nTabPositions,
32
+ # _In_ const LPINT lpnTabStopPositions )
33
+ attach_function 'GetTabbedTextExtentA', [:hdc, :string, :int, :int, :pointer], :dword
34
+ attach_function 'GetTabbedTextExtentW', [:hdc, :string, :int, :int, :pointer], :dword
35
+
36
+ #LONG TabbedTextOut(
37
+ # _In_ HDC hDC,
38
+ # _In_ int X,
39
+ # _In_ int Y,
40
+ # _In_ LPCTSTR lpString,
41
+ # _In_ int nCount,
42
+ # _In_ int nTabPositions,
43
+ # _In_ const LPINT lpnTabStopPositions,
44
+ # _In_ int nTabOrigin )
45
+ attach_function 'TabbedTextOutA', [:hdc, :int, :int, :string, :int, :int, :pointer, :int], :long
46
+ attach_function 'TabbedTextOutW', [:hdc, :int, :int, :string, :int, :int, :pointer, :int], :long
47
+ end
48
+ end
@@ -0,0 +1,69 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/enums/user32/touch_injection_flags'
4
+
5
+ require 'win-ffi/structs/rect'
6
+ require 'win-ffi/structs/user32/touch_hit_testing_input'
7
+ require 'win-ffi/structs/user32/touch_hit_testing_proximity_evaluation'
8
+
9
+ module WinFFI
10
+ module User32
11
+ #BOOL WINAPI CloseTouchInputHandle( _In_ HTOUCHINPUT hTouchInput )
12
+ attach_function 'CloseTouchInputHandle', [:pointer], :bool
13
+
14
+ #BOOL WINAPI GetTouchInputInfo(
15
+ # _In_ HTOUCHINPUT hTouchInput,
16
+ # _In_ UINT cInputs,
17
+ # _Out_ PTOUCHINPUT pInputs,
18
+ # _In_ int cbSize )
19
+ attach_function 'GetTouchInputInfo', [:pointer, :uint, :pointer, :int], :bool
20
+
21
+ #BOOL WINAPI IsTouchWindow(
22
+ # _In_ HWND hWnd,
23
+ # _Out_opt_ PULONG pulFlags )
24
+ attach_function 'IsTouchWindow', [:hwnd, :pointer], :bool
25
+
26
+ #BOOL WINAPI RegisterTouchWindow(
27
+ # _In_ HWND hWnd,
28
+ # _In_ ULONG ulFlags )
29
+ attach_function 'RegisterTouchWindow', [:hwnd, :ulong], :bool
30
+
31
+ #BOOL WINAPI UnregisterTouchWindow( _In_ HWND hWnd )
32
+ attach_function 'UnregisterTouchWindow', [:hwnd], :bool
33
+
34
+ if WindowsVersion >= 8
35
+
36
+ #WINUSERAPI BOOL WINAPI EvaluateProximityToPolygon(
37
+ # UINT32 numVertices,
38
+ # _In_ const TOUCH_HIT_TESTING_INPUT *pHitTestingInput,
39
+ # _Out_ TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval )
40
+ attach_function 'EvaluateProximityToPolygon', [:uint, POINT.ptr, :pointer], :bool
41
+
42
+ #WINUSERAPI BOOL WINAPI EvaluateProximityToRect(
43
+ # _In_ const RECT *controlBoundingBox,
44
+ # _In_ const TOUCH_HIT_TESTING_INPUT *pHitTestingInput,
45
+ # _Out_ TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval )
46
+ attach_function 'EvaluateProximityToRect', [RECT.ptr, :pointer, :pointer], :bool
47
+
48
+ #BOOL InitializeTouchInjection(
49
+ # _In_ UINT32 maxCount,
50
+ # _In_ DWORD dwMode )
51
+ attach_function 'InitializeTouchInjection', [:uint32, TouchInjectionFlags], :bool
52
+
53
+ #BOOL InjectTouchInput(
54
+ # _In_ UINT32 count,
55
+ # _In_ const POINTER_TOUCH_INFO *contacts )
56
+ attach_function 'InjectTouchInput', [:uint32, :pointer], :bool
57
+
58
+ #WINUSERAPI LRESULT WINAPI PackTouchHitTestingProximityEvaluation(
59
+ # _In_ const TOUCH_HIT_TESTING_INPUT *pHitTestingInput,
60
+ # _In_ const TOUCH_HIT_TESTING_PROXIMITY_EVALUATION *pProximityEval )
61
+ attach_function 'PackTouchHitTestingProximityEvaluation', [TOUCH_HIT_TESTING_INPUT.ptr, TOUCH_HIT_TESTING_PROXIMITY_EVALUATION.ptr], :lresult
62
+
63
+ #WINUSERAPI BOOL WINAPI RegisterTouchHitTestingWindow(
64
+ # _In_ HWND hwnd,
65
+ # _In_ ULONG value )
66
+ attach_function 'RegisterTouchHitTestingWindow', [:hwnd, :ulong], :bool
67
+ end
68
+ end
69
+ end
@@ -0,0 +1,22 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+ #BOOL ClientToScreen(
6
+ # _In_ HWND hWnd,
7
+ # _Inout_ LPPOINT lpPoint )
8
+ attach_function 'ClientToScreen', [:hwnd, POINT.ptr], :bool
9
+
10
+ #int MapWindowPoints(
11
+ # _In_ HWND hWndFrom,
12
+ # _In_ HWND hWndTo,
13
+ # _Inout_ LPPOINT lpPoints,
14
+ # _In_ UINT cPoints )
15
+ attach_function 'MapWindowPoints', [:hwnd, :hwnd, POINT.ptr, :uint], :int
16
+
17
+ #BOOL ScreenToClient(
18
+ # _In_ HWND hWnd,
19
+ # LPPOINT lpPoint )
20
+ attach_function 'ScreenToClient', [:hwnd, POINT.ptr], :bool
21
+ end
22
+ end
@@ -0,0 +1,15 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require_relative '../../../enums/user32/window/system_parameters_info_action'
4
+
5
+ module WinFFI
6
+ module User32
7
+ #BOOL WINAPI SystemParametersInfo(
8
+ # _In_ UINT uiAction,
9
+ # _In_ UINT uiParam,
10
+ # _Inout_ PVOID pvParam,
11
+ # _In_ UINT fWinIni )
12
+ attach_function 'SystemParametersInfoA', [SystemParametersInfoAction, :uint, :pointer, :uint], :bool
13
+ attach_function 'SystemParametersInfoW', [SystemParametersInfoAction, :uint, :pointer, :uint], :bool
14
+ end
15
+ end
@@ -0,0 +1,167 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/enums/user32/window/message_box_flags'
4
+ require 'win-ffi/enums/user32/window/message_box_return'
5
+
6
+ require 'win-ffi/structs/user32/window/dlg_template'
7
+ require 'win-ffi/structs/user32/msg'
8
+ require 'win-ffi/structs/user32/window/msgbox_params'
9
+
10
+ module WinFFI
11
+ module User32
12
+ #HWND WINAPI CreateDialogIndirectParam(
13
+ # _In_opt_ HINSTANCE hInstance,
14
+ # _In_ LPCDLGTEMPLATE lpTemplate,
15
+ # _In_opt_ HWND hWndParent,
16
+ # _In_opt_ DLGPROC lpDialogFunc,
17
+ # _In_ LPARAM lParamInit )
18
+ attach_function 'CreateDialogIndirectParamA', [:hinstance, DLGTEMPLATE.ptr, :hwnd, :pointer, :lparam], :hwnd
19
+ attach_function 'CreateDialogIndirectParamW', [:hinstance, DLGTEMPLATE.ptr, :hwnd, :pointer, :lparam], :hwnd
20
+
21
+ #HWND WINAPI CreateDialogParam(
22
+ # _In_opt_ HINSTANCE hInstance,
23
+ # _In_ LPCTSTR lpTemplateName,
24
+ # _In_opt_ HWND hWndParent,
25
+ # _In_opt_ DLGPROC lpDialogFunc,
26
+ # _In_ LPARAM dwInitParam )
27
+ attach_function 'CreateDialogParamA', [:hinstance, :pointer, :hwnd, :pointer, :lparam], :hwnd
28
+ attach_function 'CreateDialogParamW', [:hinstance, :pointer, :hwnd, :pointer, :lparam], :hwnd
29
+
30
+ #LRESULT WINAPI DefDlgProcA(
31
+ # _In_ HWND hDlg,
32
+ # _In_ UINT Msg,
33
+ # _In_ WPARAM wParam,
34
+ # _In_ LPARAM lParam )
35
+ attach_function 'DefDlgProcA', [:hwnd, :uint, :wparam, :lparam], :lresult
36
+ attach_function 'DefDlgProcW', [:hwnd, :uint, :wparam, :lparam], :lresult
37
+
38
+ #INT_PTR WINAPI DialogBoxIndirectParam(
39
+ # _In_opt_ HINSTANCE hInstance,
40
+ # _In_ LPCDLGTEMPLATE hDialogTemplate,
41
+ # _In_opt_ HWND hWndParent,
42
+ # _In_opt_ DLGPROC lpDialogFunc,
43
+ # _In_ LPARAM dwInitParam )
44
+ attach_function 'DialogBoxIndirectParamA', [:hinstance, DLGTEMPLATE.ptr, :hwnd, :pointer, :lparam], :int
45
+ attach_function 'DialogBoxIndirectParamW', [:hinstance, DLGTEMPLATE.ptr, :hwnd, :pointer, :lparam], :int
46
+
47
+ #INT_PTR WINAPI DialogBoxParam(
48
+ # _In_opt_ HINSTANCE hInstance,
49
+ # _In_ LPCTSTR lpTemplateName,
50
+ # _In_opt_ HWND hWndParent,
51
+ # _In_opt_ DLGPROC lpDialogFunc,
52
+ # _In_ LPARAM dwInitParam )
53
+ attach_function 'DialogBoxParamA', [:hinstance, :buffer_in, :hwnd, :pointer, :lparam], :int
54
+ attach_function 'DialogBoxParamW', [:hinstance, :buffer_in, :hwnd, :pointer, :lparam], :int
55
+
56
+ #TODO
57
+ #INT_PTR CALLBACK DialogProc(
58
+ # _In_ HWND hwndDlg,
59
+ # _In_ UINT uMsg,
60
+ # _In_ WPARAM wParam,
61
+ # _In_ LPARAM lParam )
62
+ callback :DialogProc, [:hwnd, :uint, :wparam, :lparam], :int
63
+
64
+ #BOOL WINAPI EndDialog(
65
+ # _In_ HWND hDlg,
66
+ # _In_ INT_PTR nResult )
67
+ attach_function 'EndDialog', [:hwnd, :int], :bool
68
+
69
+ #LONG WINAPI GetDialogBaseUnits(void)
70
+ attach_function 'GetDialogBaseUnits', [], :long
71
+
72
+ #int WINAPI GetDlgCtrlID( _In_ HWND hwndCtl )
73
+ attach_function 'GetDlgCtrlID', [:hwnd], :int
74
+
75
+ #HWND WINAPI GetDlgItem(
76
+ # _In_opt_ HWND hDlg,
77
+ # _In_ int nIDDlgItem )
78
+ attach_function 'GetDlgItem', [:hwnd, :int], :hwnd
79
+
80
+ #UINT WINAPI GetDlgItemInt(
81
+ # _In_ HWND hDlg,
82
+ # _In_ int nIDDlgItem,
83
+ # _Out_opt_ BOOL *lpTranslated,
84
+ # _In_ BOOL bSigned )
85
+ attach_function 'GetDlgItemInt', [:hwnd, :int, :pointer, :bool], :uint
86
+
87
+ #UINT WINAPI GetDlgItemText(
88
+ # _In_ HWND hDlg,
89
+ # _In_ int nIDDlgItem,
90
+ # _Out_ LPTSTR lpString,
91
+ # _In_ int nMaxCount )
92
+ attach_function 'GetDlgItemTextA', [:hwnd, :int, :pointer, :bool], :uint
93
+ attach_function 'GetDlgItemTextW', [:hwnd, :int, :pointer, :bool], :uint
94
+
95
+ #HWND WINAPI GetNextDlgGroupItem(
96
+ # _In_ HWND hDlg,
97
+ # _In_opt_ HWND hCtl,
98
+ # _In_ BOOL bPrevious )
99
+ attach_function 'GetNextDlgGroupItem', [:hwnd, :hwnd, :bool], :hwnd
100
+
101
+ #HWND WINAPI GetNextDlgTabItem(
102
+ # _In_ HWND hDlg,
103
+ # _In_opt_ HWND hCtl,
104
+ # _In_ BOOL bPrevious )
105
+ attach_function 'GetNextDlgTabItem', [:hwnd, :hwnd, :bool], :hwnd
106
+
107
+ #BOOL WINAPI IsDialogMessage(
108
+ # _In_ HWND hDlg,
109
+ # _In_ LPMSG lpMsg )
110
+ attach_function 'IsDialogMessage', [:hwnd, MSG.ptr], :bool
111
+ attach_function 'IsDialogMessageA', [:hwnd, MSG.ptr], :bool
112
+ attach_function 'IsDialogMessageW', [:hwnd, MSG.ptr], :bool
113
+
114
+
115
+ #BOOL WINAPI MapDialogRect(
116
+ # _In_ HWND hDlg,
117
+ # _Inout_ LPRECT lpRect )
118
+ attach_function 'MapDialogRect', [:hwnd, RECT.ptr], :bool
119
+
120
+ #BOOL WINAPI MessageBeep( _In_ UINT uType )
121
+ attach_function 'MessageBeep', [MessageBoxFlags], :bool
122
+
123
+ #int WINAPI MessageBox(
124
+ # __in_opt HWND hWnd,
125
+ # __in_opt LPCTSTR lpText,
126
+ # __in_opt LPCTSTR lpCaption,
127
+ # __in UINT uType)
128
+ attach_function 'MessageBoxA', [:hwnd, :buffer_in, :buffer_in, MessageBoxFlags], :int
129
+ attach_function 'MessageBoxW', [:hwnd, :buffer_in, :buffer_in, MessageBoxFlags], :int
130
+
131
+ #int WINAPI MessageBoxEx(
132
+ # _In_opt_ HWND hWnd,
133
+ # _In_opt_ LPCTSTR lpText,
134
+ # _In_opt_ LPCTSTR lpCaption,
135
+ # _In_ UINT uType,
136
+ # _In_ WORD wLanguageId )
137
+ attach_function 'MessageBoxExA', [:hwnd, :buffer_in, :buffer_in, MessageBoxFlags, :word], :int
138
+ attach_function 'MessageBoxExW', [:hwnd, :buffer_in, :buffer_in, MessageBoxFlags, :word], :int
139
+
140
+ #int WINAPI MessageBoxIndirect( _In_ const LPMSGBOXPARAMS lpMsgBoxParams )
141
+ attach_function 'MessageBoxIndirectA', [MSGBOXPARAMS.ptr], :int
142
+ attach_function 'MessageBoxIndirectW', [MSGBOXPARAMS.ptr], :int
143
+
144
+ #LRESULT WINAPI SendDlgItemMessage(
145
+ # _In_ HWND hDlg,
146
+ # _In_ int nIDDlgItem,
147
+ # _In_ UINT Msg,
148
+ # _In_ WPARAM wParam,
149
+ # _In_ LPARAM lParam )
150
+ attach_function 'SendDlgItemMessageA', [:hwnd, :int, :uint, :wparam, :lparam], :lresult
151
+ attach_function 'SendDlgItemMessageW', [:hwnd, :int, :uint, :wparam, :lparam], :lresult
152
+
153
+ #BOOL WINAPI SetDlgItemInt(
154
+ # _In_ HWND hDlg,
155
+ # _In_ int nIDDlgItem,
156
+ # _In_ UINT uValue,
157
+ # _In_ BOOL bSigned )
158
+ attach_function 'SetDlgItemInt', [:hwnd, :int, :uint, :bool], :bool
159
+
160
+ #BOOL WINAPI SetDlgItemText(
161
+ # _In_ HWND hDlg,
162
+ # _In_ int nIDDlgItem,
163
+ # _In_ LPCTSTR lpString )
164
+ attach_function 'SetDlgItemTextA', [:hwnd, :int, :buffer_in], :bool
165
+ attach_function 'SetDlgItemTextW', [:hwnd, :int, :buffer_in], :bool
166
+ end
167
+ end
@@ -0,0 +1,245 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/enums/user32/window/menu_flags'
4
+ require 'win-ffi/enums/user32/append_menu_flags'
5
+ require 'win-ffi/enums/user32/window/track_popup_menu_flags'
6
+
7
+ require 'win-ffi/structs/user32/window/menubar_info'
8
+ require 'win-ffi/structs/user32/window/menu_info'
9
+ require 'win-ffi/structs/user32/window/menu_item_info'
10
+ require 'win-ffi/structs/user32/window/menu_item_template'
11
+ require 'win-ffi/structs/user32/window/tpm_params'
12
+
13
+ module WinFFI
14
+ module User32
15
+ #BOOL WINAPI AppendMenu(
16
+ # _In_ HMENU hMenu,
17
+ # _In_ UINT uFlags,
18
+ # _In_ UINT_PTR uIDNewItem,
19
+ # _In_opt_ LPCTSTR lpNewItem )
20
+ attach_function 'AppendMenuA', [:hmenu, AppendMenuFlags, :uint, :pointer], :bool
21
+ attach_function 'AppendMenuW', [:hmenu, AppendMenuFlags, :uint, :pointer], :bool
22
+
23
+ #DWORD WINAPI CheckMenuItem(
24
+ # _In_ HMENU hmenu,
25
+ # _In_ UINT uIDCheckItem,
26
+ # _In_ UINT uCheck )
27
+ attach_function 'CheckMenuItem', [:hmenu, :uint, :uint], :dword
28
+
29
+ #BOOL WINAPI CheckMenuRadioItem(
30
+ # _In_ HMENU hmenu,
31
+ # _In_ UINT idFirst,
32
+ # _In_ UINT idLast,
33
+ # _In_ UINT idCheck,
34
+ # _In_ UINT uFlags )
35
+ attach_function 'CheckMenuRadioItem', [:hmenu, :uint, :uint, :uint, :uint], :bool
36
+
37
+ #HMENU WINAPI CreateMenu(void)
38
+ attach_function 'CreateMenu', [], :hmenu
39
+
40
+ #HMENU WINAPI CreatePopupMenu(void)
41
+ attach_function 'CreatePopupMenu', [], :hmenu
42
+
43
+ #BOOL WINAPI DeleteMenu(
44
+ # _In_ HMENU hMenu,
45
+ # _In_ UINT uPosition,
46
+ # _In_ UINT uFlags )
47
+ attach_function 'DeleteMenu', [:hmenu, :uint, :uint], :bool
48
+
49
+ #BOOL WINAPI DestroyMenu( _In_ HMENU hMenu )
50
+ attach_function 'DestroyMenu', [:hmenu], :bool
51
+
52
+ #BOOL WINAPI DrawMenuBar( _In_ HWND hWnd )
53
+ attach_function 'DrawMenuBar', [:hwnd], :bool
54
+
55
+ #BOOL WINAPI EnableMenuItem(
56
+ # _In_ HMENU hMenu,
57
+ # _In_ UINT uIDEnableItem,
58
+ # _In_ UINT uEnable )
59
+ attach_function 'EnableMenuItem', [:hmenu, :uint, :uint], :bool
60
+
61
+ #BOOL WINAPI EndMenu(void)
62
+ attach_function 'EndMenu', [], :bool
63
+
64
+ #HMENU WINAPI GetMenu( _In_ HWND hWnd )
65
+ attach_function 'GetMenu', [:hwnd], :hmenu
66
+
67
+ #BOOL WINAPI GetMenuBarInfo(
68
+ # _In_ HWND hwnd,
69
+ # _In_ LONG idObject,
70
+ # _In_ LONG idItem,
71
+ # _Inout_ PMENUBARINFO pmbi )
72
+ attach_function 'GetMenuBarInfo', [:hwnd, :long, :long, MENUBARINFO.ptr], :bool
73
+
74
+ #LONG WINAPI GetMenuCheckMarkDimensions(void)
75
+ attach_function 'GetMenuCheckMarkDimensions', [], :long
76
+
77
+ #UINT WINAPI GetMenuDefaultItem(
78
+ # _In_ HMENU hMenu,
79
+ # _In_ UINT fByPos,
80
+ # _In_ UINT gmdiFlags )
81
+ attach_function 'GetMenuDefaultItem', [:hmenu, :uint, :uint], :uint
82
+
83
+ #BOOL WINAPI GetMenuInfo(
84
+ # _In_ HMENU hmenu,
85
+ # _Inout_ LPMENUINFO lpcmi )
86
+ attach_function 'GetMenuInfo', [:hmenu, MENUINFO.ptr], :bool
87
+
88
+ #int WINAPI GetMenuItemCount( _In_opt_ HMENU hMenu )
89
+ attach_function 'GetMenuItemCount', [:hmenu], :int
90
+
91
+ #UINT WINAPI GetMenuItemID(
92
+ # _In_ HMENU hMenu,
93
+ # _In_ int nPos )
94
+ attach_function 'GetMenuItemID', [:hmenu, :int], :uint
95
+
96
+ #BOOL WINAPI GetMenuItemInfo(
97
+ # _In_ HMENU hMenu,
98
+ # _In_ UINT uItem,
99
+ # _In_ BOOL fByPosition,
100
+ # _Inout_ LPMENUITEMINFO lpmii )
101
+ attach_function 'GetMenuItemInfoA', [:hmenu, :uint, :bool, MENUITEMINFO.ptr], :bool
102
+ attach_function 'GetMenuItemInfoW', [:hmenu, :uint, :bool, MENUITEMINFO.ptr], :bool
103
+
104
+ #BOOL WINAPI GetMenuItemRect(
105
+ # _In_opt_ HWND hWnd,
106
+ # _In_ HMENU hMenu,
107
+ # _In_ UINT uItem,
108
+ # _Out_ LPRECT lprcItem )
109
+ attach_function 'GetMenuItemRect', [:hwnd, :hmenu, :uint, RECT.ptr], :bool
110
+
111
+ #UINT WINAPI GetMenuState(
112
+ # _In_ HMENU hMenu,
113
+ # _In_ UINT uId,
114
+ # _In_ UINT uFlags )
115
+ attach_function 'GetMenuState', [:hmenu, :uint, :uint], :uint
116
+
117
+ #int WINAPI GetMenuString(
118
+ # _In_ HMENU hMenu,
119
+ # _In_ UINT uIDItem,
120
+ # _Out_opt_ LPTSTR lpString,
121
+ # _In_ int nMaxCount,
122
+ # _In_ UINT uFlag )
123
+ attach_function 'GetMenuStringA', [:hmenu, :uint, :string, :int, :uint], :int
124
+ attach_function 'GetMenuStringW', [:hmenu, :uint, :string, :int, :uint], :int
125
+
126
+ #HMENU WINAPI GetSubMenu(
127
+ # _In_ HMENU hMenu,
128
+ # _In_ int nPos )
129
+ attach_function 'GetSubMenu', [:hmenu, :int], :hmenu
130
+
131
+ #HMENU WINAPI GetSystemMenu(
132
+ # _In_ HWND hWnd,
133
+ # _In_ BOOL bRevert )
134
+ attach_function 'GetSystemMenu', [:hwnd, :bool], :hmenu
135
+
136
+ #BOOL WINAPI HiliteMenuItem(
137
+ # _In_ HWND hwnd,
138
+ # _In_ HMENU hmenu,
139
+ # _In_ UINT uItemHilite,
140
+ # _In_ UINT uHilite )
141
+ attach_function 'HiliteMenuItem', [:hwnd, :hmenu, :uint, :uint], :bool
142
+
143
+ #BOOL WINAPI InsertMenu(
144
+ # _In_ HMENU hMenu,
145
+ # _In_ UINT uPosition,
146
+ # _In_ UINT uFlags,
147
+ # _In_ UINT_PTR uIDNewItem,
148
+ # _In_opt_ LPCTSTR lpNewItem )
149
+ attach_function 'InsertMenuA', [:hmenu, :uint, MenuFlags, :ulong, :string], :bool
150
+ attach_function 'InsertMenuW', [:hmenu, :uint, MenuFlags, :ulong, :string], :bool
151
+
152
+ #BOOL WINAPI InsertMenuItem(
153
+ # _In_ HMENU hMenu,
154
+ # _In_ UINT uItem,
155
+ # _In_ BOOL fByPosition,
156
+ # _In_ LPCMENUITEMINFO lpmii )
157
+ attach_function 'InsertMenuItemA', [:hmenu, :uint, :bool, MENUITEMINFO.ptr], :bool
158
+ attach_function 'InsertMenuItemW', [:hmenu, :uint, :bool, MENUITEMINFO.ptr], :bool
159
+
160
+ #BOOL WINAPI IsMenu( _In_ HMENU hMenu )
161
+ attach_function 'IsMenu', [:hmenu], :bool
162
+
163
+ #HMENU WINAPI LoadMenu(
164
+ # _In_opt_ HINSTANCE hInstance,
165
+ # _In_ LPCTSTR lpMenuName )
166
+ attach_function 'LoadMenuA', [:hinstance, :string], :hmenu
167
+ attach_function 'LoadMenuW', [:hinstance, :string], :hmenu
168
+
169
+ #HMENU WINAPI LoadMenuIndirect( _In_ const MENUTEMPLATE *lpMenuTemplate )
170
+ attach_function 'LoadMenuIndirectA', [MENUITEMTEMPLATE.ptr], :hmenu
171
+ attach_function 'LoadMenuIndirectW', [MENUITEMTEMPLATE.ptr], :hmenu
172
+
173
+ #int WINAPI MenuItemFromPoint(
174
+ # _In_opt_ HWND hWnd,
175
+ # _In_ HMENU hMenu,
176
+ # _In_ POINT ptScreen )
177
+ attach_function 'MenuItemFromPoint', [:hwnd, :hmenu, POINT], :int
178
+
179
+ #BOOL WINAPI ModifyMenu(
180
+ # _In_ HMENU hMnu,
181
+ # _In_ UINT uPosition,
182
+ # _In_ UINT uFlags,
183
+ # _In_ UINT_PTR uIDNewItem,
184
+ # _In_opt_ LPCTSTR lpNewItem )
185
+ attach_function 'ModifyMenuA', [:hmenu, :uint, MenuFlags, :uint, :string], :bool
186
+ attach_function 'ModifyMenuW', [:hmenu, :uint, MenuFlags, :uint, :string], :bool
187
+
188
+ #BOOL WINAPI RemoveMenu(
189
+ # _In_ HMENU hMenu,
190
+ # _In_ UINT uPosition,
191
+ # _In_ UINT uFlags )
192
+ attach_function 'RemoveMenu', [:hmenu, :uint, :uint], :bool
193
+
194
+ #BOOL WINAPI SetMenu(
195
+ # _In_ HWND hWnd,
196
+ # _In_opt_ HMENU hMenu )
197
+ attach_function 'SetMenu', [:hwnd, :hmenu], :bool
198
+
199
+ #BOOL WINAPI SetMenuDefaultItem(
200
+ # _In_ HMENU hMenu,
201
+ # _In_ UINT uItem,
202
+ # _In_ UINT fByPos )
203
+ attach_function 'SetMenuDefaultItem', [:hmenu, :uint, :uint], :bool
204
+
205
+ #BOOL WINAPI SetMenuInfo(
206
+ # _In_ HMENU hmenu,
207
+ # _In_ LPCMENUINFO lpcmi )
208
+ attach_function 'SetMenuInfo', [:hmenu, MENUINFO.ptr], :bool
209
+
210
+ #BOOL WINAPI SetMenuItemBitmaps(
211
+ # _In_ HMENU hMenu,
212
+ # _In_ UINT uPosition,
213
+ # _In_ UINT uFlags,
214
+ # _In_opt_ HBITMAP hBitmapUnchecked,
215
+ # _In_opt_ HBITMAP hBitmapChecked )
216
+ attach_function 'SetMenuItemBitmaps', [:hmenu, :uint, MenuFlags, :hbitmap, :hbitmap], :bool
217
+
218
+ #BOOL WINAPI SetMenuItemInfo(
219
+ # _In_ HMENU hMenu,
220
+ # _In_ UINT uItem,
221
+ # _In_ BOOL fByPosition,
222
+ # _In_ LPMENUITEMINFO lpmii )
223
+ attach_function 'SetMenuItemInfoA', [:hmenu, :uint, :bool, MENUITEMINFO.ptr], :bool
224
+ attach_function 'SetMenuItemInfoW', [:hmenu, :uint, :bool, MENUITEMINFO.ptr], :bool
225
+
226
+ #BOOL WINAPI TrackPopupMenu(
227
+ # _In_ HMENU hMenu,
228
+ # _In_ UINT uFlags,
229
+ # _In_ int x,
230
+ # _In_ int y,
231
+ # _In_ int nReserved,
232
+ # _In_ HWND hWnd,
233
+ # _In_opt_ const RECT *prcRect )
234
+ attach_function 'TrackPopupMenu', [:hmenu, TrackPopupMenuFlags, :int, :int, :int, :hwnd, RECT.ptr], :bool
235
+
236
+ #BOOL WINAPI TrackPopupMenuEx(
237
+ # _In_ HMENU hmenu,
238
+ # _In_ UINT fuFlags,
239
+ # _In_ int x,
240
+ # _In_ int y,
241
+ # _In_ HWND hwnd,
242
+ # _In_opt_ LPTPMPARAMS lptpm )
243
+ attach_function 'TrackPopupMenuEx', [:hmenu, TrackPopupMenuFlags, :int, :int, :hwnd, TPMPARAMS.ptr], :bool
244
+ end
245
+ end