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,85 @@
1
+ require 'win-ffi/enums/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+ WindowStyle = enum :window_style,
6
+ [
7
+ :BORDER, 0x00800000, # has a thin-line border.
8
+
9
+ :CAPTION, 0x00C00000, # has a title bar (includes the WS_BORDER style). :BORDER | :DLGFRAME
10
+
11
+ :CHILD, 0x40000000, # is a child window. A window with this style cannot have a menu bar. This style
12
+ # cannot be used with the WS_POPUP style.
13
+
14
+ :CHILDWINDOW, 0x40000000, # Same as the WS_CHILD style.
15
+
16
+ :CLIPCHILDREN, 0x02000000, # Excludes the area occupied by child windows when drawing occurs within the parent
17
+ # window. This style is used when creating the parent window.
18
+
19
+ :CLIPSIBLINGS, 0x04000000, # Clips child windows relative to each other; that is, when a particular child
20
+ # window receives a WM_PAINT message, the WS_CLIPSIBLINGS style clips all other overlapping child windows out of
21
+ # the region of the child window to be updated. If WS_CLIPSIBLINGS is not specified and child windows overlap, it
22
+ # is possible, when drawing within the client area of a child window, to draw within the client area of a
23
+ # neighboring child window.
24
+
25
+ :DISABLED, 0x08000000, # is initially disabled. A disabled window cannot receive input from the user. To
26
+ # change this after a window has been created, use the EnableWindow function.
27
+
28
+ :DLGFRAME, 0x00400000, #has a border of a style typically used with dialog boxes. A window with this style
29
+ # cannot have a title bar. [Doesn't work]
30
+
31
+ :GROUP, 0x00020000, # is the first control of a group of controls. The group consists of this first
32
+ # control and all controls defined after it, up to the next control with the WS_GROUP style. The first control
33
+ # in each group usually has the WS_TABSTOP style so that the user can move from group to group. The user can
34
+ # subsequently change the keyboard focus from one control in the group to the next control in the group by using
35
+ # the direction keys. You can turn this style on and off to change dialog box navigation. To change this style
36
+ # after a window has been created, use the SetWindowLong function.
37
+
38
+ :HSCROLL, 0x00100000, # has a horizontal scroll bar.
39
+
40
+ :ICONIC, 0x20000000, # is initially minimized. Same as the WS_MINIMIZE style.
41
+
42
+ :MAXIMIZE, 0x01000000, # is initially maximized.
43
+
44
+ :MAXIMIZEBOX, 0x00010000, # has a maximize button. Cannot be combined with the WS_EX_CONTEXTHELP style. The
45
+ # WS_SYSMENU style must also be specified.
46
+
47
+ :MINIMIZE, 0x20000000, # is initially minimized. Same as the :ICONIC style.
48
+
49
+ :MINIMIZEBOX, 0x00020000, # has a minimize button. Cannot be combined with the WS_EX_CONTEXTHELP style. The
50
+ # WS_SYSMENU style must also be specified.
51
+
52
+ :OVERLAPPED, 0x00000000, # is an overlapped window. An overlapped window has a title bar and a border.
53
+ # Same as the WS_TILED style.
54
+
55
+ :OVERLAPPEDWINDOW, 0x00CF0000, # is an overlapped window. Same as the :TILEDWINDOW style.
56
+
57
+ :POPUP, 0x80000000, #s is a pop-up window. This style cannot be used with the :CHILD style.
58
+
59
+ :POPUPWINDOW, 0x80880000, # is a pop-up window. The WS_CAPTION and WS_POPUPWINDOW styles must be combined to
60
+ # make menu visible.
61
+
62
+ :SIZEBOX, 0x00040000, # has a sizing border. Same as the :THICKFRAME style.
63
+
64
+ :SYSMENU, 0x00080000, # has a window menu on its title bar. [ The :CAPTION style must also be specified. ]->should
65
+
66
+ :TABSTOP, 0x00010000, # is a control that can receive the keyboard focus when the user presses the TAB
67
+ # key. Pressing the TAB key changes the keyboard focus to the next control with the WS_TABSTOP style. You can turn
68
+ # this style on and off to change dialog box navigation. To change this style after a window has been created, use
69
+ # the SetWindowLong function. For user-created windows and modeless dialogs to work with tab stops, alter the
70
+ # message loop to call the IsDialogMessage function.
71
+
72
+ :THICKFRAME, 0x00040000, # has a sizing border. Same as the :SIZEBOX style.
73
+
74
+ :TILED, 0x00000000, # is an overlapped window. An overlapped window has a title bar and a border. Same
75
+ # as the :OVERLAPPED style.
76
+
77
+ :TILEDWINDOW, 0x00CF0000, # is an overlapped window. Same as the :OVERLAPPEDWINDOW style.
78
+
79
+ :VISIBLE, 0x10000000, # is initially visible. This style can be turned on and off by using the ShowWindow
80
+ # or SetWindowPos function.
81
+
82
+ :VSCROLL, 0x00200000 # has a vertical scroll bar.
83
+ ]
84
+ end
85
+ end
@@ -0,0 +1,98 @@
1
+ require 'win-ffi/enums/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+ WindowStyleEx = enum :window_style_ex,
6
+ [
7
+ :ACCEPTFILES, 0x00000010, # accepts drag-drop files.
8
+
9
+ :APPWINDOW, 0x00040000, # Forces a top-level window onto the taskbar when the window is visible.
10
+
11
+ :CLIENTEDGE, 0x00000200, # has a border with a sunken edge.
12
+
13
+ :COMPOSITED, 0x02000000, # Paints all descendants of a window in bottom-to-top painting order using
14
+ # double-buffering. For more information, see Remarks. This cannot be used if the window has a class style of
15
+ # either :OWNDC or :CLASSDC.
16
+
17
+ :CONTEXTHELP, 0x00000400, # The title bar of the window includes a question mark. When the user clicks the
18
+ # question mark, the cursor changes to a question mark with a pointer. If the user then clicks a child window, the
19
+ # child receives a WM_HELP message. The child window should pass the message to the parent window procedure, which
20
+ # should call the WinHelp function using the HELP_WM_HELP command. The Help application displays a pop-up window
21
+ # that typically contains help for the child window.
22
+ #WS_EX_CONTEXTHELP cannot be used with the :MAXIMIZEBOX or :MINIMIZEBOX styles.
23
+
24
+ :CONTROLPARENT, 0x00010000, # contains child windows that should take part in dialog box navigation. If this
25
+ # style is specified, the dialog manager recurses into children of this window when performing navigation
26
+ # operations such as handling the TAB key, an arrow key, or a keyboard mnemonic.
27
+
28
+ :DLGMODALFRAME, 0x00000001, # has a double border; the window can, optionally, be created with a title bar by
29
+ # specifying the WS_CAPTION style in the dwStyle parameter.
30
+
31
+ :LAYERED, 0x00080000, # is a layered window. This style cannot be used if the window has a class style of
32
+ # either CS_OWNDC or CS_CLASSDC.
33
+
34
+ :LAYOUTRTL, 0x00400000, # If the shell language is Hebrew, Arabic, or another language that supports
35
+ # reading order alignment, the horizontal origin of the window is on the right edge. Increasing horizontal values
36
+ # advance to the left.
37
+
38
+ :LEFT, 0x00000000, #has generic left-aligned properties. This is the default.
39
+
40
+ :LEFTSCROLLBAR, 0x00004000, #If the shell language is Hebrew, Arabic, or another language that supports reading
41
+ # order alignment, the vertical scroll bar (if present) is to the left of the client area. For other languages,
42
+ # the style is ignored.
43
+
44
+ :LTRREADING, 0x00000000, #text is displayed using left-to-right reading-order properties. This is the
45
+ # default.
46
+
47
+ :MDICHILD, 0x00000040, #is a MDI child window.
48
+
49
+ :NOACTIVATE, 0x08000000, #A top-level window created with this style does not become the foreground window
50
+ # when the user clicks it. The system does not bring this window to the foreground when the user minimizes or
51
+ # closes the foreground window. To activate the window, use the SetActiveWindow or SetForegroundWindow function.
52
+ # The window does not appear on the taskbar by default. To force the window to appear on the taskbar, use the
53
+ # WS_EX_APPWINDOW style.
54
+
55
+ :NOINHERITLAYOUT, 0x00100000, # does not pass its window layout to its child windows.
56
+
57
+ :NOPARENTNOTIFY, 0x00000004, # The child window created with this style does not send the WM_PARENTNOTIFY message
58
+ # to its parent window when it is created or destroyed.
59
+
60
+ :OVERLAPPEDWINDOW, 0x00000300, # is an overlapped window.
61
+
62
+ :PALETTEWINDOW, 0x00000188, # is palette window, which is a modeless dialog box that presents an array of
63
+ # commands.
64
+
65
+ :RIGHT, 0x00001000, # has generic "right-aligned" properties. This depends on the window class.
66
+ # This style has an effect only if the shell language is Hebrew, Arabic, or another language that supports
67
+ # reading-order alignment; otherwise, the style is ignored. Using the WS_EX_RIGHT style for static or edit
68
+ # controls has the same effect as using the SS_RIGHT or ES_RIGHT style, respectively. Using this style with
69
+ # button controls has the same effect as using BS_RIGHT and BS_RIGHTBUTTON styles.
70
+
71
+ :RIGHTSCROLLBAR, 0x00000000, # The vertical scroll bar (if present) is to the right of the client area. This is
72
+ # the default.
73
+
74
+ :RTLREADING, 0x00002000, # If the shell language is Hebrew, Arabic, or another language that supports
75
+ # reading-order alignment, the window text is displayed using right-to-left reading-order properties. For other
76
+ # languages, the style is ignored.
77
+
78
+ :STATICEDGE, 0x00020000, # has a three-dimensional border style intended to be used for items that do not
79
+ # accept user input.
80
+
81
+ :TOOLWINDOW, 0x00000080, # is intended to be used as a floating toolbar. A tool window has a title bar that
82
+ # is shorter than a normal title bar, and the window title is drawn using a smaller font. A tool window does not
83
+ # appear in the taskbar or in the dialog that appears when the user presses ALT+TAB. If a tool window has a system
84
+ # menu, its icon is not displayed on the title bar. However, you can display the system menu by right-clicking or
85
+ # by typing ALT+SPACE.
86
+
87
+ :TOPMOST, 0x00000008, # should be placed above all non-topmost windows and should stay above them, even
88
+ # when the window is deactivated. To add or remove this style, use the SetWindowPos function.
89
+
90
+ :TRANSPARENT, 0x00000020, # should not be painted until siblings beneath the window (that were created by the
91
+ # same thread) have been painted. The window appears transparent because the bits of underlying sibling windows
92
+ # have already been painted.
93
+ #To achieve transparency without these restrictions, use the SetWindowRgn function.
94
+
95
+ :WINDOWEDGE, 0x00000100 #has a border with a raised edge.
96
+ ]
97
+ end
98
+ end
@@ -0,0 +1,37 @@
1
+ require 'win-ffi/enums/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+ SystemMenuComand = enum :system_menu_command,
6
+ [
7
+ :SIZE, 0xF000,
8
+ :MOVE, 0xF010,
9
+ :MINIMIZE, 0xF020,
10
+ :MAXIMIZE, 0xF030,
11
+ :NEXTWINDOW, 0xF040,
12
+ :PREVWINDOW, 0xF050,
13
+ :CLOSE, 0xF060,
14
+ :VSCROLL, 0xF070,
15
+ :HSCROLL, 0xF080,
16
+ :MOUSEMENU, 0xF090,
17
+ :KEYMENU, 0xF100,
18
+ :ARRANGE, 0xF110,
19
+ :RESTORE, 0xF120,
20
+ :TASKLIST, 0xF130,
21
+ :SCREENSAVE, 0xF140,
22
+ :HOTKEY, 0xF150,
23
+ :DEFAULT, 0xF160,
24
+ :MONITORPOWER, 0xF170,
25
+ :CONTEXTHELP, 0xF180,
26
+ :SEPARATOR, 0xF00F,
27
+ ]
28
+
29
+ #if(WINVER >= 0x0600)
30
+ #define SCF_ISSECURE 0x00000001
31
+ #endif /* WINVER >= 0x0600 */
32
+ if WindowsVersion >= :vista
33
+ SystemMenuComand.instance_variable_get(:@kv_map)[:ISSECURE] = 0x00000001
34
+ SystemMenuComand.instance_variable_get(:@kv_map)[0x00000001] = :ISSECURE
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,300 @@
1
+ require 'win-ffi/enums/user32'
2
+
3
+ module WinFFI
4
+ module User32
5
+ SystemMetricsFlags = enum :system_metrics,
6
+ [
7
+ :ARRANGE, 56, # The flags that specify how the system arranged
8
+ # minimized windows For more information, see the Remarks section in this topic.
9
+ :CLEANBOOT, 67,
10
+ # The value that specifies how the system is started:
11
+ # 0 Normal boot
12
+ # 1 Fail-safe boot
13
+ # 2 Fail-safe with network boot
14
+ # A fail-safe boot (also called SafeBoot, Safe Mode, or Clean Boot)
15
+ # bypasses the user startup files.
16
+ :CMONITORS, 80, # The number of display monitors on a desktop. For
17
+ # more information, see the Remarks section in this topic.
18
+ :CMOUSEBUTTONS, 43, # The number of buttons on a mouse, or zero if no
19
+ # mouse is installed.
20
+ :CONVERTIBLESLATEMODE, 0x2003, # Reflects the state of the laptop or
21
+ # slate mode, 0 for Slate Mode and non-zero otherwise. When this
22
+ # system metric changes, the system sends a broadcast message via
23
+ # WM_SETTINGCHANGE with "ConvertibleSlateMode" in the LPARAM.
24
+ :CXBORDER, 5, # The width of a window border, in pixels. This is
25
+ # equivalent to the :CXEDGE value for windows with the 3-D look.
26
+ :CXCURSOR, 13, # The width of a cursor, in pixels. The system cannot
27
+ # create cursors of other sizes.
28
+ :CXDLGFRAME, 7, # This value is the same as :CXFIXEDFRAME.
29
+ :CXDOUBLECLK, 36, # The width of the rectangle around the location of
30
+ # a first click in a double-click sequence, in pixels. The second
31
+ # click must occur within the rectangle that is defined by
32
+ # :CXDOUBLECLK and :CYDOUBLECLK for the system to consider the two
33
+ # clicks a double-click. The two clicks must also occur within a
34
+ # specified time. To set the width of the double-click rectangle, call
35
+ # SystemParametersInfo with SPI_SETDOUBLECLKWIDTH.
36
+ :CXDRAG, 68, # The number of pixels on either side of a mouse-down
37
+ # point that the mouse pointer can move before a drag operation begins
38
+ # This allows the user to click and release the mouse button easily
39
+ # without unintentionally starting a drag operation. If this value is
40
+ # negative, it is subtracted from the left of the mouse-down point and
41
+ # added to the right of it.
42
+ :CXEDGE, 45, # The width of a 3-D border, in pixels. This metric is
43
+ # the 3-D counterpart of :CXBORDER.
44
+ :CXFIXEDFRAME, 7, # The thickness of the frame around the perimeter of
45
+ # a window that has a caption but is not sizable, in pixels.
46
+ # :CXFIXEDFRAME is the height of the horizontal border, and
47
+ # :CYFIXEDFRAME is the width of the vertical border. This value is the
48
+ # same as :CXDLGFRAME.
49
+ :CXFOCUSBORDER, 83, # The width of the left and right edges of the
50
+ # focus rectangle that the DrawFocusRect draws. This value is in pixels.
51
+ # Windows 2000: This value is not supported.
52
+ :CXFRAME, 32, # This value is the same as :CXSIZEFRAME.
53
+ :CXFULLSCREEN, 16, # The width of the client area for a full-screen
54
+ # window on the primary display monitor, in pixels. To get the
55
+ # coordinates of the portion of the screen that is not obscured by the
56
+ # system taskbar or by application desktop toolbars, call the
57
+ # SystemParametersInfo function with the SPI_GETWORKAREA value.
58
+ :CXHSCROLL, 21, # The width of the arrow bitmap on a horizontal scroll
59
+ # bar, in pixels.
60
+ :CXHTHUMB, 10, # The width of the thumb box in a horizontal scroll bar,
61
+ # in pixels.
62
+ :CXICON, 11, # The default width of an icon, in pixels. The LoadIcon
63
+ # function can load only icons with the dimensions that :CXICON and
64
+ # :CYICON specifies.
65
+ :CXICONSPACING, 38, # The width of a grid cell for items in large icon
66
+ # view, in pixels. Each item fits into a rectangle of size
67
+ # :CXICONSPACING by :CYICONSPACING when arranged. This value is always
68
+ # greater than or equal to :CXICON.
69
+ :CXMAXIMIZED, 61, # The default width, in pixels, of a maximized
70
+ # top-level window, on the primary display monitor.
71
+ :CXMAXTRACK, 59, # The default maximum width of a window that has a
72
+ # caption and sizing borders, in pixels. This metric refers to the
73
+ # entire desktop. The user cannot drag the window frame to a size
74
+ # larger than these dimensions. A window can override this value by
75
+ # processing the WM_GETMINMAXINFO message.
76
+ :CXMENUCHECK, 71, # The width of the default menu check-mark bitmap,
77
+ # in pixels.
78
+ :CXMENUSIZE, 54, # The width of menu bar buttons, such as the child
79
+ # window close button that is used in the multiple document interface,
80
+ # in pixels.
81
+ :CXMIN, 28, # The minimum width of a window, in pixels.
82
+ :CXMINIMIZED, 57, # The width of a minimized window, in pixels.
83
+ :CXMINSPACING, 47, # The width of a grid cell for a minimized window,
84
+ # in pixels. Each minimized window fits into a rectangle this size
85
+ # when arranged. This # value is always greater than or equal to
86
+ # :CXMINIMIZED.
87
+ :CXMINTRACK, 34, # The minimum tracking width of a window, in pixels.
88
+ # The user cannot drag the window frame to a size smaller than these
89
+ # dimensions. A window can override this value by processing the
90
+ # WM_GETMINMAXINFO message.
91
+ :CXPADDEDBORDER, 92, # The amount of border padding for captioned
92
+ # windows, in pixels.
93
+ # Windows XP/2000: This value is not supported.
94
+ :CXSCREEN, 0, # The width of the screen of the primary display monitor,
95
+ # in pixels. This is the same value obtained by calling GetDeviceCaps
96
+ # as follows: GetDeviceCaps( hdcPrimaryMonitor, HORZRES).
97
+ :CXSIZE, 30, # The width of a button in a window caption or title bar,
98
+ # in pixels
99
+ :CXSIZEFRAME, 32, # The thickness of the sizing border around the
100
+ # perimeter of a window that can be resized, in pixels. :CXSIZEFRAME
101
+ # is the width of the horizontal border, and :CYSIZEFRAME is the
102
+ # height of the vertical border. This value is the same as :CXFRAME.
103
+ :CXSMICON, 49, # The recommended width of a small icon, in pixels.
104
+ # Small icons typically appear in window captions and in small icon view.
105
+ :CXSMSIZE, 52, # The width of small caption buttons, in pixels.
106
+ :CXVIRTUALSCREEN, 78, # The width of the virtual screen, in pixels.
107
+ # The virtual screen is the bounding rectangle of all display monitors
108
+ # The :XVIRTUALSCREEN metric is the coordinates for the left side of
109
+ # the virtual screen.
110
+ :CXVSCROLL, 2, # The width of a vertical scroll bar, in pixels.
111
+ :CYBORDER, 6, #The height of a window border, in pixels. This is
112
+ # equivalent to the :CYEDGE value for windows with the 3-D look.
113
+ :CYCAPTION, 4, # The height of a caption area, in pixels.
114
+ :CYCURSOR, 14, # The height of a cursor, in pixels. The system cannot
115
+ # create cursors of other sizes.
116
+ :CYDLGFRAME, 8, # This value is the same as :CYFIXEDFRAME.
117
+ :CYDOUBLECLK, 37, # The height of the rectangle around the location of
118
+ # a first click in a double-click sequence, in pixels. The second click
119
+ # must occur within the rectangle defined by :CXDOUBLECLK and
120
+ # :CYDOUBLECLK for the system to consider the two clicks a
121
+ # double-click. The two clicks must also occur within a specified
122
+ # time. To set the height of the double-click rectangle,
123
+ # call SystemParametersInfo with SPI_SETDOUBLECLKHEIGHT.
124
+ :CYDRAG, 69, # The number of pixels above and below a mouse-down point
125
+ # that the mouse pointer can move before a drag operation begins. This
126
+ # allows the user to click and release the mouse button easily without
127
+ # unintentionally starting a drag operation. If this value is negative,
128
+ # it is subtracted from above the mouse-down point and added below it.
129
+ :CYEDGE, 46, # The height of a 3-D border, in pixels. This is the 3-D
130
+ # counterpart of :CYBORDER.
131
+ :CYFIXEDFRAME, 8, # The thickness of the frame around the perimeter of
132
+ # a window that has a caption but is not sizable, in pixels.
133
+ # :CXFIXEDFRAME is the height of the horizontal border, and
134
+ # :CYFIXEDFRAME is the width of the vertical border. This value is the
135
+ # same as :CYDLGFRAME.
136
+ :CYFOCUSBORDER, 84, # The height of the top and bottom edges of the
137
+ # focus rectangle drawn by DrawFocusRect. This value is in pixels.
138
+ # Windows 2000: This value is not supported.
139
+ :CYFRAME, 33, # This value is the same as :CYSIZEFRAME.
140
+ :CYFULLSCREEN, 17, # The height of the client area for a full-screen
141
+ # window on the primary display monitor, in pixels. To get the
142
+ # coordinates of the portion of the screen not obscured by the system
143
+ # taskbar or by application desktop toolbars, call the
144
+ # SystemParametersInfo function with the SPI_GETWORKAREA value.
145
+ :CYHSCROLL, 3, # The height of a horizontal scroll bar, in pixels.
146
+ :CYICON, 12, # The default height of an icon, in pixels. The LoadIcon
147
+ # function can load only icons with the dimensions :CXICON and :CYICON
148
+ :CYICONSPACING, 39, # The height of a grid cell for items in large
149
+ # icon view, in pixels. Each item fits into a rectangle of size
150
+ # :CXICONSPACING by :CYICONSPACING when arranged. This value is always
151
+ # greater than or equal to :CYICON.
152
+ :CYKANJIWINDOW, 18, # For double byte character set versions of the
153
+ # system, this is the height of the Kanji window at the bottom of the
154
+ # screen, in pixels.
155
+ :CYMAXIMIZED, 62, # The default height, in pixels, of a maximized
156
+ # top-level window on the primary display monitor.
157
+ :CYMAXTRACK, 60, # The default maximum height of a window that has a
158
+ # caption and sizing borders, in pixels. This metric refers to the
159
+ # entire desktop. The user cannot drag the window frame to a size
160
+ # larger than these dimensions. A window can override this value by
161
+ # processing the WM_GETMINMAXINFO message.
162
+ :CYMENU, 15, # The height of a single-line menu bar, in pixels.
163
+ :CYMENUCHECK, 72, # The height of the default menu check-mark bitmap,
164
+ # in pixels.
165
+ :CYMENUSIZE, 55, # The height of menu bar buttons, such as the child
166
+ # window close button that is used in the multiple document interface,
167
+ # in pixels.
168
+ :CYMIN, 29, # The minimum height of a window, in pixels.
169
+ :CYMINIMIZED, 58, # The height of a minimized window, in pixels.
170
+ :CYMINSPACING, 48, # The height of a grid cell for a minimized window,
171
+ # in pixels.Each minimized window fits into a rectangle this size
172
+ # when arranged. This value is always greater than or equal to
173
+ # :CYMINIMIZED.
174
+ :CYMINTRACK, 35, # The minimum tracking height of a window, in pixels.
175
+ # The user cannot drag the window frame to a size smaller than these
176
+ # dimensions. A window can override this value by processing the
177
+ # WM_GETMINMAXINFO message.
178
+ :CYSCREEN, 1, # The height of the screen of the primary display
179
+ # monitor, in pixels. This is the same value obtained by calling
180
+ # GetDeviceCaps as follows: GetDeviceCaps( hdcPrimaryMonitor, VERTRES)
181
+ :CYSIZE, 31, # The height of a button in a window caption or title
182
+ # bar, in pixels.
183
+ :CYSIZEFRAME, 33, # The thickness of the sizing border around the
184
+ # perimeter of a window that can be resized, in pixels. :CXSIZEFRAME
185
+ # is the width of the horizontal border, and :CYSIZEFRAME is the
186
+ # height of the vertical border. This value is the same as :CYFRAME.
187
+ :CYSMCAPTION, 51, # The height of a small caption, in pixels.
188
+ :CYSMICON, 50, # The recommended height of a small icon, in pixels.
189
+ # Small icons typically appear in window captions and in small icon view.
190
+ :CYSMSIZE, 53, # The height of small caption buttons, in pixels.
191
+ :CYVIRTUALSCREEN, 79, # The height of the virtual screen, in pixels.
192
+ # The virtual screen is the bounding rectangle of all display monitors.
193
+ # The :YVIRTUALSCREEN metric is the coordinates for the top of the virtual screen.
194
+ :CYVSCROLL, 20, # The height of the arrow bitmap on a vertical scroll
195
+ # bar, in pixels.
196
+ :CYVTHUMB, 9, # The height of the thumb box in a vertical scroll bar,
197
+ # in pixels.
198
+ :DBCSENABLED, 42, # Nonzero if User32.dll supports DBCS; otherwise, 0.
199
+ :DEBUG, 22, # Nonzero if the debug version of User.exe is installed;
200
+ # otherwise, 0.
201
+ :DIGITIZER, 94, # Nonzero if the current operating system is Windows 7
202
+ # or Windows Server 2008 R2 and the Tablet PC Input service is started;
203
+ # otherwise, 0. The return value is a bitmask that specifies the type
204
+ # of digitizer input supported by the device. For more information,
205
+ # see Remarks.
206
+ # Windows Server 2008, Windows Vista, and Windows XP/2000: This value
207
+ # is not supported.
208
+ :IMMENABLED, 82, # Nonzero if Input Method Manager/Input Method Editor
209
+ # features are enabled; otherwise, 0. :IMMENABLED indicates whether
210
+ # the system is ready to use a Unicode-based IME on a Unicode
211
+ # application. To ensure that a language-dependent IME works, check
212
+ # :DBCSENABLED and the system ANSI code page. Otherwise the
213
+ # ANSI-to-Unicode conversion may not be performed correctly, or some
214
+ # components like fonts or registry settings may not be present.
215
+ :MAXIMUMTOUCHES, 95, # Nonzero if there are digitizers in the system;
216
+ # otherwise, 0. :MAXIMUMTOUCHES returns the aggregate maximum of the
217
+ # maximum number of contacts supported by every digitizer in the
218
+ # system. If the system has only single-touch digitizers, the return
219
+ # value is 1. If the system has multi-touch digitizers, the return
220
+ # value is the number of simultaneous contacts the hardware can provide.
221
+ # Windows Server 2008, Windows Vista, and Windows XP/2000: This value
222
+ # is not supported.
223
+ :MEDIACENTER, 87, # Nonzero if the current operating system is the
224
+ # Windows XP, Media Center Edition, 0 if not.
225
+ :MENUDROPALIGNMENT, 40, # Nonzero if drop-down menus are right-aligned
226
+ # with the corresponding menu-bar item; 0 if the menus are left-aligned.
227
+ :MIDEASTENABLED, 74, # Nonzero if the system is enabled for Hebrew and
228
+ # Arabic languages, 0 if not.
229
+ :MOUSEPRESENT, 19, # Nonzero if a mouse is installed; otherwise, 0.
230
+ # This value is rarely zero, because of support for virtual mice and
231
+ # because some systems detect the presence of the port instead of the
232
+ # presence of a mouse.
233
+ :MOUSEHORIZONTALWHEELPRESENT, 91, # Nonzero if a mouse with a
234
+ # horizontal scroll wheel is installed; otherwise 0.
235
+ :MOUSEWHEELPRESENT, 75, # Nonzero if a mouse with a vertical scroll
236
+ # wheel is installed; otherwise 0.
237
+ :NETWORK, 63, # The least significant bit is set if a network is
238
+ # present; otherwise, it is cleared. The other bits are reserved for
239
+ # future use.
240
+ :PENWINDOWS, 41, # Nonzero if the Microsoft Windows for Pen computing
241
+ # extensions are installed; zero otherwise.
242
+ :REMOTECONTROL, 0x2001, # This system metric is used in a Terminal
243
+ # Services environment to determine if the current Terminal Server
244
+ # session is being remotely controlled. Its value is nonzero if the
245
+ # current session is remotely controlled; otherwise, 0.
246
+ # You can use terminal services management tools such as Terminal
247
+ # Services Manager (tsadmin.msc) and shadow.exe to control a remote
248
+ # session. When a session is being remotely controlled, another user
249
+ # can view the contents of that session and potentially interact with
250
+ # it.
251
+ :REMOTESESSION, 0x1000, # This system metric is used in a Terminal
252
+ # Services environment. If the calling process is associated with a
253
+ # Terminal Services client session, the return value is nonzero. If
254
+ # the calling process is associated with the Terminal Services console
255
+ # session, the return value is 0.
256
+ # Windows Server 2003 and Windows XP: The console session is not
257
+ # necessarily the physical console. For more information, see
258
+ # WTSGetActiveConsoleSessionId.
259
+ :SAMEDISPLAYFORMAT, 81, # Nonzero if all the display monitors have the
260
+ # same color format, otherwise, 0. Two displays can have the same bit
261
+ # depth, but different color formats. For example, the red, green, and
262
+ # blue pixels can be encoded with different numbers of bits, or those
263
+ # bits can be located in different places in a pixel color value.
264
+ :SECURE, 44, # This system metric should be ignored; it always returns
265
+ # 0.
266
+ :SERVERR2, 89, # The build number if the system is Windows Server 2003
267
+ # R2; otherwise, 0.
268
+ :SHOWSOUNDS, 70, # Nonzero if the user requires an application to
269
+ # present information visually in situations where it would otherwise
270
+ # present the information only in audible form; otherwise, 0.
271
+ :SHUTTINGDOWN, 0x2000, # Nonzero if the current session is shutting
272
+ # down; otherwise, 0. Windows 2000: This value is not supported.
273
+ :SLOWMACHINE, 73, # Nonzero if the computer has a low-end (slow)
274
+ # processor; otherwise, 0.
275
+ :STARTER, 88, # Nonzero if the current operating system is Windows 7
276
+ # Starter Edition, Windows Vista Starter, or Windows XP Starter
277
+ # Edition; otherwise, 0.
278
+ :SWAPBUTTON, 23, # Nonzero if the meanings of the left and right mouse
279
+ # buttons are swapped; otherwise, 0.
280
+ :SYSTEMDOCKED, 0x2004, # Reflects the state of the docking mode, 0 for
281
+ # Undocked Mode and non-zero otherwise. When this system metric
282
+ # changes, the system sends a broadcast message via WM_SETTINGCHANGE
283
+ # with "SystemDockMode" in the LPARAM.
284
+ :TABLETPC, 86, # Nonzero if the current operating system is the
285
+ # Windows XP Tablet PC edition or if the current operating system is
286
+ # Windows Vista or Windows 7 and the Tablet PC Input service is
287
+ # started; otherwise, 0. The :DIGITIZER setting indicates the type of
288
+ # digitizer input supported by a device running Windows 7 or Windows
289
+ # Server 2008 R2. For more information, see Remarks.
290
+ :XVIRTUALSCREEN, 76, # The coordinates for the left side of the
291
+ # virtual screen. The virtual screen is the bounding rectangle of all
292
+ # display monitors. The :CXVIRTUALSCREEN metric is the width of the
293
+ # virtual screen.
294
+ :YVIRTUALSCREEN, 77, # The coordinates for the top of the virtual
295
+ # screen. The virtual screen is the bounding rectangle of all display
296
+ # monitors. The :CYVIRTUALSCREEN metric is the height of the virtual
297
+ # screen.
298
+ ]
299
+ end
300
+ end