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,49 @@
1
+ module WinFFI
2
+ module Shell32
3
+ #HICON WINAPI DuplicateIcon(
4
+ # _Reserved_ HINSTANCE hInst,
5
+ # _In_ HICON hIcon )
6
+ attach_function 'DuplicateIcon', [:hinstance, :hicon], :hicon
7
+
8
+ #HICON WINAPI ExtractAssociatedIcon(
9
+ # _Reserved_ HINSTANCE hInst,
10
+ # _Inout_ LPTSTR lpIconPath,
11
+ # _Inout_ WORD *lpiIcon )
12
+ attach_function 'ExtractAssociatedIconA', [:hinstance, :string, :pointer], :hicon
13
+ attach_function 'ExtractAssociatedIconW', [:hinstance, :string, :pointer], :hicon
14
+
15
+ #HICON WINAPI ExtractIcon(
16
+ # _Reserved_ HINSTANCE hInst,
17
+ # _In_ LPCTSTR lpszExeFileName,
18
+ # _In_ UINT nIconIndex )
19
+ attach_function 'ExtractIconA', [:hinstance, :string, :uint], :hicon
20
+ attach_function 'ExtractIconW', [:hinstance, :string, :uint], :hicon
21
+
22
+ #UINT WINAPI ExtractIconEx(
23
+ # _In_ LPCTSTR lpszFile,
24
+ # _In_ int nIconIndex,
25
+ # _Out_opt_ HICON *phiconLarge,
26
+ # _Out_opt_ HICON *phiconSmall,
27
+ # _In_ UINT nIcons )
28
+ attach_function 'ExtractIconExA', [:string, :int, :pointer, :pointer, :uint], :uint
29
+ attach_function 'ExtractIconExW', [:string, :int, :pointer, :pointer, :uint], :uint
30
+
31
+ begin
32
+ require 'win-ffi/enums/lr'
33
+
34
+ #[This function is not intended for general use. It may be altered or unavailable in subsequent versions of Windows.]
35
+ #UINT WINAPI PrivateExtractIcons(
36
+ # _In_ LPCTSTR lpszFile,
37
+ # _In_ int nIconIndex,
38
+ # _In_ int cxIcon,
39
+ # _In_ int cyIcon,
40
+ # _Out_opt_ HICON *phicon,
41
+ # _Out_opt_ UINT *piconid,
42
+ # _In_ UINT nIcons,
43
+ # _In_ UINT flags )
44
+ attach_function 'PrivateExtractIconsA', [:string, :int, :int, :int, :hicon, :pointer, :uint, LR], :uint
45
+ attach_function 'PrivateExtractIconsW', [:string, :int, :int, :int, :hicon, :pointer, :uint, LR], :uint
46
+ rescue FFI::NotFoundError
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,84 @@
1
+ module WinFFI
2
+ module Shutdown
3
+ extend LibBase
4
+
5
+ ffi_lib 'Advapi32'
6
+
7
+ #BOOL WINAPI AbortSystemShutdown( _In_opt_ LPTSTR lpMachineName )
8
+ attach_function 'AbortSystemShutdownA', [:buffer_in], :bool
9
+ attach_function 'AbortSystemShutdownW', [:buffer_in], :bool
10
+
11
+ begin
12
+ #DWORD WINAPI InitiateShutdown(
13
+ # _In_opt_ LPTSTR lpMachineName,
14
+ # _In_opt_ LPTSTR lpMessage,
15
+ # _In_ DWORD dwGracePeriod,
16
+ # _In_ DWORD dwShutdownFlags,
17
+ # _In_ DWORD dwReason )
18
+ attach_function 'InitiateShutdownA', [:buffer_in, :buffer_in, :dword, :dowrd, :dword], :dword
19
+ attach_function 'InitiateShutdownW', [:buffer_in, :buffer_in, :dword, :dowrd, :dword], :dword
20
+ rescue FFI::NotFoundError
21
+ # Windows Vista or later
22
+ end
23
+
24
+ begin
25
+ #BOOL WINAPI InitiateSystemShutdown(
26
+ # _In_opt_ LPTSTR lpMachineName,
27
+ # _In_opt_ LPTSTR lpMessage,
28
+ # _In_ DWORD dwTimeout,
29
+ # _In_ BOOL bForceAppsClosed,
30
+ # _In_ BOOL bRebootAfterShutdown )
31
+ attach_function 'InitiateSystemShutdownA', [:buffer_in, :buffer_in, :dword, :bool, :bool], :bool
32
+ attach_function 'InitiateSystemShutdownA', [:buffer_in, :buffer_in, :dword, :bool, :bool], :bool
33
+
34
+ #BOOL WINAPI InitiateSystemShutdownEx(
35
+ # _In_opt_ LPTSTR lpMachineName,
36
+ # _In_opt_ LPTSTR lpMessage,
37
+ # _In_ DWORD dwTimeout,
38
+ # _In_ BOOL bForceAppsClosed,
39
+ # _In_ BOOL bRebootAfterShutdown,
40
+ # _In_ DWORD dwReason )
41
+ attach_function 'InitiateSystemShutdownExA', [:buffer_in, :buffer_in, :dword, :bool, :bool, :dword], :bool
42
+ attach_function 'InitiateSystemShutdownExW', [:buffer_in, :buffer_in, :dword, :bool, :bool, :dword], :bool
43
+ rescue FFI::NotFoundError
44
+ # Windows XP or later
45
+ end
46
+
47
+ ffi_lib 'user32'
48
+
49
+ begin
50
+
51
+ #BOOL WINAPI ExitWindowsEx(
52
+ # _In_ UINT uFlags,
53
+ # _In_ DWORD dwReason )
54
+ attach_function 'ExitWindowsEx', [:uint, :dword], :bool
55
+
56
+ #BOOL WINAPI LockWorkStation(void)
57
+ attach_function 'LockWorkStation', [], :bool
58
+
59
+ rescue FFI::NotFoundError
60
+ # Windows XP or later
61
+ end
62
+
63
+ begin
64
+
65
+ #BOOL WINAPI ShutdownBlockReasonCreate(
66
+ # _In_ HWND hWnd,
67
+ # _In_ LPCWSTR pwszReason )
68
+ attach_function 'ShutdownBlockReasonCreate', [:hwnd, :buffer_in], :bool
69
+
70
+ #BOOL WINAPI ShutdownBlockReasonDestroy( _In_ HWND hWnd )
71
+ attach_function 'ShutdownBlockReasonDestroy', [:hwnd], :bool
72
+
73
+ #BOOL WINAPI ShutdownBlockReasonQuery(
74
+ # _In_ HWND hWnd,
75
+ # _Out_opt_ LPWSTR pwszBuff,
76
+ # _Inout_ DWORD *pcchBuff )
77
+ attach_function 'ShutdownBlockReasonQuery', [:hwnd , :buffer_out, :buffer_inout], :bool
78
+
79
+ rescue
80
+ # Window Vista or later
81
+ end
82
+
83
+ end
84
+ end
@@ -0,0 +1,230 @@
1
+ module WinFFI
2
+ module Thread
3
+ extend LibBase
4
+
5
+ SYNCHRONIZE = 0x00100000
6
+ THREAD_ALL_ACCESS = 0x1F03FF
7
+ THREAD_DIRECT_IMPERSONATION = 0x0200
8
+ THREAD_GET_CONTEXT = 0x0008
9
+ THREAD_IMPERSONATE = 0x0100
10
+ THREAD_QUERY_INFORMATION = 0x0040
11
+ THREAD_SET_CONTEXT = 0x0010
12
+ THREAD_SET_INFORMATION = 0x0020
13
+ THREAD_SET_THREAD_TOKEN = 0x0080
14
+ THREAD_SUSPEND_RESUME = 0x0002
15
+ THREAD_TERMINATE = 0x0001
16
+
17
+ THREAD_PRIORITY_ABOVE_NORMAL = 1
18
+ THREAD_PRIORITY_BELOW_NORMAL = -1
19
+ THREAD_PRIORITY_HIGHEST = 2
20
+ THREAD_PRIORITY_IDLE = -15
21
+ THREAD_PRIORITY_LOWEST = -2
22
+ THREAD_PRIORITY_NORMAL = 0
23
+ THREAD_PRIORITY_TIME_CRITICAL = 15
24
+
25
+ if WindowsVersion >= 7
26
+
27
+ ffi_lib 'Avrt'
28
+
29
+ #BOOL WINAPI AvRevertMmThreadCharacteristics( _In_ HANDLE AvrtHandle )
30
+ attach_function 'AvRevertMmThreadCharacteristics', [:handle], :bool
31
+
32
+ #BOOL WINAPI AvRtCreateThreadOrderingGroup(
33
+ # _Out_ PHANDLE Context,
34
+ # _In_ PLARGE_INTEGER Period,
35
+ # _Inout_ GUID *ThreadOrderingGuid,
36
+ # _In_opt_ PLARGE_INTEGER Timeout )
37
+ attach_function 'AvRtCreateThreadOrderingGroup', [:pointer, :pointer, :pointer, :pointer], :bool
38
+
39
+ #BOOL WINAPI AvRtCreateThreadOrderingGroupEx(
40
+ # _Out_ PHANDLE Context,
41
+ # _In_ PLARGE_INTEGER Period,
42
+ # _Inout_ GUID *ThreadOrderingGuid,
43
+ # _In_opt_ PLARGE_INTEGER Timeout,
44
+ # _In_ LPCTSTR TaskName )
45
+ attach_function 'AvRtCreateThreadOrderingGroupExA', [:pointer, :pointer, :pointer, :pointer, :string], :bool
46
+ attach_function 'AvRtCreateThreadOrderingGroupExW', [:pointer, :pointer, :pointer, :pointer, :string], :bool
47
+
48
+ #BOOL WINAPI AvRtDeleteThreadOrderingGroup( _In_ HANDLE Context )
49
+ attach_function 'AvRtDeleteThreadOrderingGroup', [:handle], :bool
50
+
51
+ #BOOL WINAPI AvRtJoinThreadOrderingGroup(
52
+ # _Out_ PHANDLE Context,
53
+ # _In_ GUID *ThreadOrderingGuid,
54
+ # _In_ BOOL Before )
55
+ attach_function 'AvRtJoinThreadOrderingGroup', [:pointer, :pointer, :bool], :bool
56
+
57
+ #BOOL WINAPI AvRtWaitOnThreadOrderingGroup( _In_ HANDLE Context )
58
+ attach_function 'AvRtWaitOnThreadOrderingGroup', [:handle], :bool
59
+
60
+ #HANDLE WINAPI AvSetMmMaxThreadCharacteristics(
61
+ # _In_ LPCTSTR FirstTask,
62
+ # _In_ LPCTSTR SecondTask,
63
+ # _Inout_ LPDWORD TaskIndex )
64
+ attach_function 'AvSetMmMaxThreadCharacteristicsA', [:string, :string, :pointer], :handle
65
+ attach_function 'AvSetMmMaxThreadCharacteristicsW', [:string, :string, :pointer], :handle
66
+
67
+ #HANDLE WINAPI AvSetMmThreadCharacteristics(
68
+ # _In_ LPCTSTR TaskName,
69
+ # _Inout_ LPDWORD TaskIndex )
70
+ attach_function 'AvSetMmThreadCharacteristicsA', [:string, :pointer], :handle
71
+ attach_function 'AvSetMmThreadCharacteristicsW', [:string, :pointer], :handle
72
+
73
+ #BOOL WINAPI AvSetMmThreadPriority(
74
+ # _In_ HANDLE AvrtHandle,
75
+ # _In_ AVRT_PRIORITY Priority )
76
+ attach_function 'AvSetMmThreadPriority', [:handle, :int], :bool
77
+
78
+ end
79
+
80
+ ffi_lib 'kernel32'
81
+
82
+ #HANDLE WINAPI CreateRemoteThread(
83
+ # _In_ HANDLE hProcess,
84
+ # _In_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
85
+ # _In_ SIZE_T dwStackSize,
86
+ # _In_ LPTHREAD_START_ROUTINE lpStartAddress,
87
+ # _In_ LPVOID lpParameter,
88
+ # _In_ DWORD dwCreationFlags,
89
+ # _Out_ LPDWORD lpThreadId )
90
+ attach_function 'CreateRemoteThread', [:handle, :pointer, :size_t, :pointer, :pointer, :dword, :pointer], :handle
91
+
92
+ #HANDLE WINAPI CreateThread(
93
+ # _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
94
+ # _In_ SIZE_T dwStackSize,
95
+ # _In_ LPTHREAD_START_ROUTINE lpStartAddress,
96
+ # _In_opt_ LPVOID lpParameter,
97
+ # _In_ DWORD dwCreationFlags,
98
+ # _Out_opt_ LPDWORD lpThreadId )
99
+ attach_function 'CreateThread', [:pointer, :size_t, :pointer, :pointer, :dword, :pointer], :handle
100
+
101
+ #VOID WINAPI ExitThread( _In_ DWORD dwExitCode )
102
+ attach_function 'ExitThread', [:dword], :void
103
+
104
+ #HANDLE WINAPI GetCurrentThread(void)
105
+ attach_function 'GetCurrentThread', [], :handle
106
+
107
+ #DWORD WINAPI GetCurrentThreadId(void)
108
+ attach_function 'GetCurrentThreadId', [], :ulong
109
+
110
+ #BOOL WINAPI GetExitCodeThread(
111
+ # _In_ HANDLE hThread,
112
+ # _Out_ LPDWORD lpExitCode )
113
+ attach_function 'GetExitCodeThread', [:handle, :pointer], :bool
114
+
115
+ #int WINAPI GetThreadPriority( _In_ HANDLE hThread )
116
+ attach_function 'GetThreadPriority', [:handle], :int
117
+
118
+ #BOOL WINAPI GetThreadPriorityBoost(
119
+ # _In_ HANDLE hThread,
120
+ # _Out_ PBOOL pDisablePriorityBoost )
121
+ attach_function 'GetThreadPriorityBoost', [:pointer, :pointer], :bool
122
+
123
+ #BOOL WINAPI GetThreadTimes(
124
+ # _In_ HANDLE hThread,
125
+ # _Out_ LPFILETIME lpCreationTime,
126
+ # _Out_ LPFILETIME lpExitTime,
127
+ # _Out_ LPFILETIME lpKernelTime,
128
+ # _Out_ LPFILETIME lpUserTime )
129
+ attach_function 'GetThreadTimes', [:handle, :pointer, :pointer, :pointer, :pointer], :bool
130
+
131
+ #HANDLE WINAPI OpenThread(
132
+ # _In_ DWORD dwDesiredAccess,
133
+ # _In_ BOOL bInheritHandle,
134
+ # _In_ DWORD dwThreadId )
135
+ attach_function 'OpenThread', [:dword, :bool, :dword], :handle
136
+
137
+ #DWORD WINAPI ResumeThread( _In_ HANDLE hThread )
138
+ attach_function 'ResumeThread', [:handle], :dword
139
+
140
+ #DWORD_PTR WINAPI SetThreadAffinityMask(
141
+ # _In_ HANDLE hThread,
142
+ # _In_ DWORD_PTR dwThreadAffinityMask )
143
+ attach_function 'SetThreadAffinityMask', [:handle, :pointer], :ulong
144
+
145
+ #DWORD WINAPI SetThreadIdealProcessor(
146
+ # _In_ HANDLE hThread,
147
+ # _In_ DWORD dwIdealProcessor )
148
+ attach_function 'SetThreadIdealProcessor', [:handle, :dword], :dword
149
+
150
+ #BOOL WINAPI SetThreadPriority(
151
+ # _In_ HANDLE hThread,
152
+ # _In_ int nPriority )
153
+ attach_function 'SetThreadPriority', [:handle, :int], :bool
154
+
155
+ #BOOL WINAPI SetThreadPriorityBoost(
156
+ # _In_ HANDLE hThread,
157
+ # _In_ BOOL DisablePriorityBoost )
158
+ attach_function 'SetThreadPriorityBoost', [:handle, :bool], :bool
159
+
160
+ #VOID WINAPI Sleep( _In_ DWORD dwMilliseconds )
161
+ attach_function 'Sleep', [:dword], :void
162
+
163
+ #DWORD WINAPI SleepEx(
164
+ # _In_ DWORD dwMilliseconds,
165
+ # _In_ BOOL bAlertable )
166
+ attach_function 'SleepEx', [:dword, :bool], :dword
167
+
168
+ #DWORD WINAPI SuspendThread( _In_ HANDLE hThread )
169
+ attach_function 'SuspendThread', [:handle], :dword
170
+
171
+ #BOOL WINAPI SwitchToThread(void)
172
+ attach_function 'SwitchToThread', [], :bool
173
+
174
+ #BOOL WINAPI TerminateThread(
175
+ # _Inout_ HANDLE hThread,
176
+ # _In_ DWORD dwExitCode )
177
+ attach_function 'TerminateThread', [:handle, :dword], :bool
178
+
179
+ #DWORD WINAPI TlsAlloc(void)
180
+ attach_function 'TlsAlloc', [], :dword
181
+
182
+ #BOOL WINAPI TlsFree( _In_ DWORD dwTlsIndex )
183
+ attach_function 'TlsFree', [:dword], :bool
184
+
185
+ #LPVOID WINAPI TlsGetValue( _In_ DWORD dwTlsIndex )
186
+ attach_function 'TlsGetValue', [:dword], :pointer
187
+
188
+ #BOOL WINAPI TlsSetValue(
189
+ # _In_ DWORD dwTlsIndex,
190
+ # _In_opt_ LPVOID lpTlsValue )
191
+ attach_function 'TlsSetValue', [:dword, :pointer], :bool
192
+
193
+ if WindowsVersion >= 7
194
+
195
+ #HANDLE CreateRemoteThreadEx(
196
+ # _In_ HANDLE hProcess,
197
+ # _In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
198
+ # _In_ SIZE_T dwStackSize,
199
+ # _In_ LPTHREAD_START_ROUTINE lpStartAddress,
200
+ # _In_opt_ LPVOID lpParameter,
201
+ # _In_ DWORD dwCreationFlags,
202
+ # _In_opt_ LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList,
203
+ # _Out_opt_ LPDWORD lpThreadId )
204
+ attach_function 'CreateRemoteThreadEx', [:handle, :pointer, :size_t, :pointer, :pointer, :dword, :pointer, :pointer], :bool
205
+ end
206
+
207
+ if WindowsVersion >= :xp
208
+
209
+ ffi_lib 'user32'
210
+
211
+ #BOOL WINAPI AttachThreadInput(
212
+ # _In_ DWORD idAttach,
213
+ # _In_ DWORD idAttachTo,
214
+ # _In_ BOOL fAttach )
215
+ attach_function 'AttachThreadInput', [:dword, :dword, :bool], :bool
216
+
217
+ if WindowsVersion.sp >= 1
218
+
219
+ ffi_lib 'kernel32'
220
+
221
+ #BOOL WINAPI GetThreadIOPendingFlag(
222
+ # _In_ HANDLE hThread,
223
+ # _Inout_ PBOOL lpIOIsPending )
224
+ attach_function 'GetThreadIOPendingFlag', [:ulong, :pointer], :bool
225
+
226
+ end
227
+
228
+ end
229
+ end
230
+ end
@@ -0,0 +1,23 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/enums/user32/pointer_input_type'
4
+
5
+ module WinFFI
6
+ module User32
7
+ #BOOL WINAPI RegisterPointerInputTarget(
8
+ # _In_ HWND hwnd,
9
+ # _In_ POINTER_INPUT_TYPE pointerType )
10
+ attach_function 'RegisterPointerInputTarget', [:hwnd, PointerInputType], :bool
11
+
12
+ #TODO
13
+ #LRESULT CALLBACK SoundSentryProc(
14
+ # DWORD dwMillisec,
15
+ # DWORD fdwEffect )
16
+
17
+
18
+ #BOOL WINAPI UnregisterPointerInputTarget(
19
+ # _In_ HWND hwnd,
20
+ # _In_ POINTER_INPUT_TYPE pointerType )
21
+ attach_function 'UnregisterPointerInputTarget', [:hwnd, PointerInputType], :bool
22
+ end
23
+ end
@@ -0,0 +1,19 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+ #BOOL WINAPI GetUserObjectSecurity(
6
+ # _In_ HANDLE hObj,
7
+ # _In_ PSECURITY_INFORMATION pSIRequested,
8
+ # _Inout_opt_ PSECURITY_DESCRIPTOR pSD,
9
+ # _In_ DWORD nLength,
10
+ # _Out_ LPDWORD lpnLengthNeeded )
11
+ attach_function 'GetUserObjectSecurity', [:handle, :pointer, :pointer, :dword, :pointer], :bool
12
+
13
+ #BOOL WINAPI SetUserObjectSecurity(
14
+ # _In_ HANDLE hObj,
15
+ # _In_ PSECURITY_INFORMATION pSIRequested,
16
+ # _In_ PSECURITY_DESCRIPTOR pSID )
17
+ attach_function 'SetUserObjectSecurity', [:handle, :pointer, :pointer], :bool
18
+ end
19
+ end
@@ -0,0 +1,11 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+ #HBITMAP LoadBitmap(
6
+ # _In_ HINSTANCE hInstance,
7
+ # _In_ LPCTSTR lpBitmapName )
8
+ attach_function 'LoadBitmapA', [:hinstance, :string], :hbitmap
9
+ attach_function 'LoadBitmapW', [:hinstance, :string], :hbitmap
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/enums/color_types'
4
+
5
+ module WinFFI
6
+ module User32
7
+ # HBRUSH GetSysColorBrush( _In_ int nIndex )
8
+ attach_function 'GetSysColorBrush', [ColorTypes], :int
9
+ end
10
+ end
@@ -0,0 +1,36 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+ #BOOL WINAPI CreateCaret(
6
+ # _In_ HWND hWnd,
7
+ # _In_opt_ HBITMAP hBitmap,
8
+ # _In_ int nWidth,
9
+ # _In_ int nHeight )
10
+ attach_function 'CreateCaret', [:hwnd, :hbitmap, :int, :int], :bool
11
+
12
+ #BOOL WINAPI DestroyCaret(void)
13
+ attach_function 'DestroyCaret', [], :bool
14
+
15
+ #UINT WINAPI GetCaretBlinkTime(void)
16
+ attach_function 'GetCaretBlinkTime', [], :uint
17
+
18
+ #BOOL WINAPI GetCaretPos( _Out_ LPPOINT lpPoint )
19
+ attach_function 'GetCaretPos', [POINT.ptr], :bool
20
+
21
+ #BOOL WINAPI HideCaret( _In_opt_ HWND hWnd )
22
+ attach_function 'HideCaret', [:hwnd], :bool
23
+
24
+ #BOOL WINAPI SetCaretBlinkTime( _In_ UINT uMSeconds )
25
+ attach_function 'SetCaretBlinkTime', [:uint], :bool
26
+
27
+ #BOOL WINAPI SetCaretPos(
28
+ # _In_ int X,
29
+ # _In_ int Y )
30
+ attach_function 'SetCaretPos', [:int, :int], :bool
31
+
32
+ #BOOL WINAPI ShowCaret( _In_opt_ HWND hWnd )
33
+ attach_function 'ShowCaret', [:hwnd], :bool
34
+
35
+ end
36
+ end
@@ -0,0 +1,84 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/enums/user32/clipboard_formats'
4
+
5
+ module WinFFI
6
+ module User32
7
+
8
+ #BOOL WINAPI ChangeClipboardChain(
9
+ # _In_ HWND hWndRemove,
10
+ # _In_ HWND hWndNewNext )
11
+ attach_function 'ChangeClipboardChain', [:hwnd, :hwnd], :bool
12
+
13
+ #BOOL WINAPI CloseClipboard(void)
14
+ attach_function 'CloseClipboard', [], :bool
15
+
16
+ #int WINAPI CountClipboardFormats(void)
17
+ attach_function 'CountClipboardFormats', [], :int
18
+
19
+ #BOOL WINAPI EmptyClipboard(void)
20
+ attach_function 'EmptyClipboard', [:bool], :void
21
+
22
+ #UINT WINAPI EnumClipboardFormats( _In_ UINT format )
23
+ attach_function 'EnumClipboardFormats', [:uint], :uint
24
+
25
+ #HANDLE WINAPI GetClipboardData( _In_ UINT uFormat )
26
+ attach_function 'GetClipboardData', [:uint], :handle
27
+
28
+ #int WINAPI GetClipboardFormatName(
29
+ # _In_ UINT format,
30
+ # _Out_ LPTSTR lpszFormatName,
31
+ # _In_ int cchMaxCount )
32
+ attach_function 'GetClipboardFormatNameA', [:uint, :string, :int], :int
33
+ attach_function 'GetClipboardFormatNameW', [:uint, :string, :int], :int
34
+
35
+ #HWND WINAPI GetClipboardOwner(void)
36
+ attach_function 'GetClipboardOwner',[], :hwnd
37
+
38
+ #DWORD WINAPI GetClipboardSequenceNumber(void)
39
+ attach_function 'GetClipboardSequenceNumber', [], :dword
40
+
41
+ #HWND WINAPI GetClipboardViewer(void)
42
+ attach_function 'GetClipboardViewer', [], :hwnd
43
+
44
+ #HWND WINAPI GetOpenClipboardWindow(void)
45
+ attach_function 'GetOpenClipboardWindow', [], :hwnd
46
+
47
+ #int WINAPI GetPriorityClipboardFormat(
48
+ # _In_ UINT *paFormatPriorityList,
49
+ # _In_ int cFormats )
50
+ attach_function 'GetPriorityClipboardFormat', [ClipboardFormats, :int], :int
51
+
52
+ #BOOL WINAPI IsClipboardFormatAvailable( _In_ UINT format )
53
+ attach_function 'IsClipboardFormatAvailable', [:uint], :bool
54
+
55
+ #BOOL WINAPI OpenClipboard( _In_opt_ HWND hWndNewOwner )
56
+ attach_function 'OpenClipboard', [:hwnd], :bool
57
+
58
+ #UINT WINAPI RegisterClipboardFormat( _In_ LPCTSTR lpszFormat )
59
+ attach_function 'RegisterClipboardFormatA', [:string], :uint
60
+ attach_function 'RegisterClipboardFormatW', [:string], :uint
61
+
62
+ #HANDLE WINAPI SetClipboardData(
63
+ # _In_ UINT uFormat,
64
+ # _In_opt_ HANDLE hMem )
65
+ attach_function 'SetClipboardData', [:uint, :handle], :handle
66
+
67
+ #HWND WINAPI SetClipboardViewer( _In_ HWND hWndNewViewer )
68
+ attach_function 'SetClipboardViewer', [:hwnd], :hwnd
69
+
70
+ if WindowsVersion >= :vista
71
+ #BOOL WINAPI AddClipboardFormatListener( _In_ HWND hwnd )
72
+ attach_function 'AddClipboardFormatListener', [:hwnd], :bool
73
+
74
+ #BOOL WINAPI GetUpdatedClipboardFormats(
75
+ # _Out_ PUINT lpuiFormats,
76
+ # _In_ UINT cFormats,
77
+ # _Out_ PUINT pcFormatsOut )
78
+ attach_function 'GetUpdatedClipboardFormats', [:pointer, :uint, :pointer], :bool
79
+
80
+ #BOOL WINAPI RemoveClipboardFormatListener( _In_ HWND hwnd )
81
+ attach_function 'RemoveClipboardFormatListener', [:hwnd], :bool
82
+ end
83
+ end
84
+ end
@@ -0,0 +1,23 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+ #BOOL CheckDlgButton(
6
+ # _In_ HWND hDlg,
7
+ # _In_ int nIDButton,
8
+ # _In_ UINT uCheck )
9
+ attach_function 'CheckDlgButton', [:hwnd, :int, :uint], :bool
10
+
11
+ #BOOL CheckRadioButton(
12
+ # _In_ HWND hDlg,
13
+ # _In_ int nIDFirstButton,
14
+ # _In_ int nIDLastButton,
15
+ # _In_ int nIDCheckButton )
16
+ attach_function 'CheckRadioButton', [:hwnd, :int, :int, :int], :bool
17
+
18
+ #UINT IsDlgButtonChecked(
19
+ # _In_ HWND hDlg,
20
+ # _In_ int nIDButton )
21
+ attach_function 'IsDlgButtonChecked', [:hwnd, :int], :uint
22
+ end
23
+ end
@@ -0,0 +1,29 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ require 'win-ffi/structs/user32/controls/combobox_info'
4
+
5
+ module WinFFI
6
+ module User32
7
+ #int DlgDirListComboBox(
8
+ # _In_ HWND hDlg,
9
+ # _Inout_ HWND lpPathSpec,
10
+ # _In_ int nIDComboBox,
11
+ # _In_ int nIDStaticPath,
12
+ # _In_ UINT uFiletype )
13
+ attach_function 'DlgDirListComboBoxA', [:hwnd, :string, :int, :int, :uint], :int
14
+ attach_function 'DlgDirListComboBoxW', [:hwnd, :string, :int, :int, :uint], :int
15
+
16
+ #BOOL DlgDirSelectComboBoxEx(
17
+ # _In_ HWND hDlg,
18
+ # _Out_ LPTSTR lpString,
19
+ # _In_ int nCount,
20
+ # _In_ int nIDComboBox )
21
+ attach_function 'DlgDirSelectComboBoxExA', [:hwnd, :string, :int, :int], :bool
22
+ attach_function 'DlgDirSelectComboBoxExW', [:hwnd, :string, :int, :int], :bool
23
+
24
+ #BOOL GetComboBoxInfo(
25
+ # _In_ HWND hwndCombo,
26
+ # _Out_ PCOMBOBOXINFO pcbi )
27
+ attach_function 'GetComboBoxInfo', [:hwnd, COMBOBOXINFO.ptr], :bool
28
+ end
29
+ end
@@ -0,0 +1,25 @@
1
+ require 'win-ffi/functions/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+ #int DlgDirList(
6
+ # _In_ HWND hDlg,
7
+ # _Inout_ LPTSTR lpPathSpec,
8
+ # _In_ int nIDListBox,
9
+ # _In_ int nIDStaticPath,
10
+ # _In_ UINT uFileType )
11
+ attach_function 'DlgDirListA', [:hwnd, :string, :int, :int, :uint], :int
12
+ attach_function 'DlgDirListW', [:hwnd, :string, :int, :int, :uint], :int
13
+
14
+ #BOOL DlgDirSelectEx(
15
+ # _In_ HWND hDlg,
16
+ # _Out_ LPTSTR lpString,
17
+ # _In_ int nCount,
18
+ # _In_ int nIDListBox )
19
+ attach_function 'DlgDirSelectExA', [:hwnd, :string, :int, :int], :bool
20
+ attach_function 'DlgDirSelectExW', [:hwnd, :string, :int, :int], :bool
21
+
22
+ #DWORD GetListBoxInfo( _In_ HWND hwnd )
23
+ attach_function 'GetListBoxInfo', [:hwnd], :dword
24
+ end
25
+ end