win-ffi 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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