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.
- checksums.yaml +7 -0
- data/README.md +36 -0
- data/lib/win-ffi/enums/color_types.rb +61 -0
- data/lib/win-ffi/enums/comctl32/init_common_controls.rb +32 -0
- data/lib/win-ffi/enums/comctl32/window/style/window_class_style.rb +7 -0
- data/lib/win-ffi/enums/comctl32.rb +5 -0
- data/lib/win-ffi/enums/comdlg32/find_replace.rb +28 -0
- data/lib/win-ffi/enums/comdlg32/font.rb +33 -0
- data/lib/win-ffi/enums/extended_name_format.rb +17 -0
- data/lib/win-ffi/enums/firmware_type.rb +12 -0
- data/lib/win-ffi/enums/gdi32/device_context.rb +29 -0
- data/lib/win-ffi/enums/gdi32/dib.rb +8 -0
- data/lib/win-ffi/enums/gdi32/hatch_styles.rb +15 -0
- data/lib/win-ffi/enums/gdi32/pfd_flags.rb +28 -0
- data/lib/win-ffi/enums/gdi32/pfd_layer_type.rb +7 -0
- data/lib/win-ffi/enums/gdi32/pfd_type.rb +7 -0
- data/lib/win-ffi/enums/gdi32/raster_operations.rb +22 -0
- data/lib/win-ffi/enums/gdi32.rb +90 -0
- data/lib/win-ffi/enums/kernel32/activation_context.rb +17 -0
- data/lib/win-ffi/enums/kernel32/computer_name_format.rb +19 -0
- data/lib/win-ffi/enums/kernel32/format_message_flags.rb +16 -0
- data/lib/win-ffi/enums/kernel32/get_module_handle_ex_flag.rb +7 -0
- data/lib/win-ffi/enums/kernel32/global_alloc_flags.rb +14 -0
- data/lib/win-ffi/enums/kernel32/handle.rb +9 -0
- data/lib/win-ffi/enums/kernel32/heap_flags.rb +14 -0
- data/lib/win-ffi/enums/kernel32/local_flags.rb +20 -0
- data/lib/win-ffi/enums/kernel32/memory.rb +12 -0
- data/lib/win-ffi/enums/kernel32/memory_flags.rb +22 -0
- data/lib/win-ffi/enums/kernel32/memory_protection_constants.rb +20 -0
- data/lib/win-ffi/enums/kernel32/set_error_mode_flags.rb +11 -0
- data/lib/win-ffi/enums/kernel32/sound_flags.rb +24 -0
- data/lib/win-ffi/enums/kernel32/volume.rb +13 -0
- data/lib/win-ffi/enums/kernel32.rb +5 -0
- data/lib/win-ffi/enums/lr.rb +48 -0
- data/lib/win-ffi/enums/netapi21/net_api_status.rb +25 -0
- data/lib/win-ffi/enums/netapi32.rb +5 -0
- data/lib/win-ffi/enums/system_info.rb +54 -0
- data/lib/win-ffi/enums/user32/append_menu_flags.rb +21 -0
- data/lib/win-ffi/enums/user32/border_flags.rb +29 -0
- data/lib/win-ffi/enums/user32/clipboard_formats.rb +31 -0
- data/lib/win-ffi/enums/user32/device_notify_flags.rb +17 -0
- data/lib/win-ffi/enums/user32/draw_caption_flags.rb +16 -0
- data/lib/win-ffi/enums/user32/draw_frame_control_flags.rb +15 -0
- data/lib/win-ffi/enums/user32/draw_frame_control_state_flags.rb +44 -0
- data/lib/win-ffi/enums/user32/edge_flags.rb +20 -0
- data/lib/win-ffi/enums/user32/feedback_type.rb +21 -0
- data/lib/win-ffi/enums/user32/get_ancestor_flags.rb +12 -0
- data/lib/win-ffi/enums/user32/icon.rb +19 -0
- data/lib/win-ffi/enums/user32/image.rb +12 -0
- data/lib/win-ffi/enums/user32/key_event_flags.rb +11 -0
- data/lib/win-ffi/enums/user32/keyboard_layout_flags.rb +57 -0
- data/lib/win-ffi/enums/user32/keyboard_modifiers.rb +16 -0
- data/lib/win-ffi/enums/user32/layered_window_attributes_flags.rb +12 -0
- data/lib/win-ffi/enums/user32/map_virtual_key.rb +22 -0
- data/lib/win-ffi/enums/user32/message_filter.rb +11 -0
- data/lib/win-ffi/enums/user32/mouse_event_flags.rb +25 -0
- data/lib/win-ffi/enums/user32/mouse_keys_flags.rb +16 -0
- data/lib/win-ffi/enums/user32/mwmo.rb +17 -0
- data/lib/win-ffi/enums/user32/ocr.rb +32 -0
- data/lib/win-ffi/enums/user32/oic.rb +26 -0
- data/lib/win-ffi/enums/user32/pen_flags.rb +12 -0
- data/lib/win-ffi/enums/user32/pen_mask.rb +14 -0
- data/lib/win-ffi/enums/user32/pointer_flags.rb +82 -0
- data/lib/win-ffi/enums/user32/pointer_input_type.rb +13 -0
- data/lib/win-ffi/enums/user32/process_dpi_awareness.rb +12 -0
- data/lib/win-ffi/enums/user32/queue_status_flags.rb +36 -0
- data/lib/win-ffi/enums/user32/rim.rb +12 -0
- data/lib/win-ffi/enums/user32/touch_injection_flags.rb +13 -0
- data/lib/win-ffi/enums/user32/touch_mask.rb +13 -0
- data/lib/win-ffi/enums/user32/user_object_information_flags.rb +22 -0
- data/lib/win-ffi/enums/user32/virtual_key_flags.rb +214 -0
- data/lib/win-ffi/enums/user32/window/animate_window_flags.rb +31 -0
- data/lib/win-ffi/enums/user32/window/broadcast_system_flags.rb +20 -0
- data/lib/win-ffi/enums/user32/window/broadcast_system_message_flags.rb +12 -0
- data/lib/win-ffi/enums/user32/window/combo_box_message.rb +53 -0
- data/lib/win-ffi/enums/user32/window/get_class_long_flags.rb +34 -0
- data/lib/win-ffi/enums/user32/window/get_window_flags.rb +38 -0
- data/lib/win-ffi/enums/user32/window/get_window_long_flags.rb +16 -0
- data/lib/win-ffi/enums/user32/window/menu_flags.rb +54 -0
- data/lib/win-ffi/enums/user32/window/message_box_flags.rb +90 -0
- data/lib/win-ffi/enums/user32/window/message_box_return.rb +18 -0
- data/lib/win-ffi/enums/user32/window/notification/button_notification.rb +20 -0
- data/lib/win-ffi/enums/user32/window/notification/edit_notification.rb +19 -0
- data/lib/win-ffi/enums/user32/window/notification/static_notification.rb +13 -0
- data/lib/win-ffi/enums/user32/window/peek_message_flags.rb +13 -0
- data/lib/win-ffi/enums/user32/window/set_window_pos_flags.rb +48 -0
- data/lib/win-ffi/enums/user32/window/show_window_flags.rb +41 -0
- data/lib/win-ffi/enums/user32/window/smto.rb +22 -0
- data/lib/win-ffi/enums/user32/window/style/button_control_style.rb +37 -0
- data/lib/win-ffi/enums/user32/window/style/combo_box_style.rb +22 -0
- data/lib/win-ffi/enums/user32/window/style/edit_style.rb +23 -0
- data/lib/win-ffi/enums/user32/window/style/static_style.rb +45 -0
- data/lib/win-ffi/enums/user32/window/style/window_class_style.rb +50 -0
- data/lib/win-ffi/enums/user32/window/style/window_style.rb +85 -0
- data/lib/win-ffi/enums/user32/window/style/window_style_ex.rb +98 -0
- data/lib/win-ffi/enums/user32/window/system_menu_command.rb +37 -0
- data/lib/win-ffi/enums/user32/window/system_metrics_flags.rb +300 -0
- data/lib/win-ffi/enums/user32/window/system_parameters_info_action.rb +225 -0
- data/lib/win-ffi/enums/user32/window/system_parameters_info_flags.rb +246 -0
- data/lib/win-ffi/enums/user32/window/track_popup_menu_flags.rb +70 -0
- data/lib/win-ffi/enums/user32/window/window_long.rb +22 -0
- data/lib/win-ffi/enums/user32/window/window_messages.rb +222 -0
- data/lib/win-ffi/enums/user32/window_hook.rb +56 -0
- data/lib/win-ffi/enums/user32.rb +5 -0
- data/lib/win-ffi/functions/advapi32/process.rb +33 -0
- data/lib/win-ffi/functions/advapi32/system_info.rb +17 -0
- data/lib/win-ffi/functions/comctl32/control.rb +11 -0
- data/lib/win-ffi/functions/comctl32/listbox.rb +20 -0
- data/lib/win-ffi/functions/comctl32.rb +7 -0
- data/lib/win-ffi/functions/comdlg32/color.rb +9 -0
- data/lib/win-ffi/functions/comdlg32/error.rb +6 -0
- data/lib/win-ffi/functions/comdlg32/find_replace.rb +9 -0
- data/lib/win-ffi/functions/comdlg32/font.rb +9 -0
- data/lib/win-ffi/functions/comdlg32.rb +7 -0
- data/lib/win-ffi/functions/gdi32/bitmap.rb +275 -0
- data/lib/win-ffi/functions/gdi32/brush.rb +54 -0
- data/lib/win-ffi/functions/gdi32/device_context.rb +126 -0
- data/lib/win-ffi/functions/gdi32/filled_shape.rb +68 -0
- data/lib/win-ffi/functions/gdi32/font.rb +9 -0
- data/lib/win-ffi/functions/gdi32/metafile.rb +173 -0
- data/lib/win-ffi/functions/gdi32/opengl.rb +29 -0
- data/lib/win-ffi/functions/gdi32/painting_drawing.rb +50 -0
- data/lib/win-ffi/functions/gdi32/text.rb +376 -0
- data/lib/win-ffi/functions/gdi32.rb +7 -0
- data/lib/win-ffi/functions/kernel32/activation.rb +22 -0
- data/lib/win-ffi/functions/kernel32/dll.rb +92 -0
- data/lib/win-ffi/functions/kernel32/error.rb +28 -0
- data/lib/win-ffi/functions/kernel32/filesystem.rb +22 -0
- data/lib/win-ffi/functions/kernel32/handle.rb +29 -0
- data/lib/win-ffi/functions/kernel32/memory.rb +478 -0
- data/lib/win-ffi/functions/kernel32/process.rb +359 -0
- data/lib/win-ffi/functions/kernel32/resource.rb +141 -0
- data/lib/win-ffi/functions/kernel32/sound.rb +10 -0
- data/lib/win-ffi/functions/kernel32/string.rb +38 -0
- data/lib/win-ffi/functions/kernel32/system_info.rb +183 -0
- data/lib/win-ffi/functions/kernel32/time.rb +220 -0
- data/lib/win-ffi/functions/kernel32/volume.rb +130 -0
- data/lib/win-ffi/functions/kernel32.rb +15 -0
- data/lib/win-ffi/functions/msimg32/bitmap.rb +46 -0
- data/lib/win-ffi/functions/msvcrt/handle.rb +13 -0
- data/lib/win-ffi/functions/netapi32/network_management.rb +13 -0
- data/lib/win-ffi/functions/netapi32.rb +7 -0
- data/lib/win-ffi/functions/ntdll/system_info.rb +14 -0
- data/lib/win-ffi/functions/secur32/system_info.rb +30 -0
- data/lib/win-ffi/functions/shell32/icon.rb +49 -0
- data/lib/win-ffi/functions/shutdown.rb +84 -0
- data/lib/win-ffi/functions/thread.rb +230 -0
- data/lib/win-ffi/functions/user32/accessibility.rb +23 -0
- data/lib/win-ffi/functions/user32/authorization.rb +19 -0
- data/lib/win-ffi/functions/user32/bitmap.rb +11 -0
- data/lib/win-ffi/functions/user32/brush.rb +10 -0
- data/lib/win-ffi/functions/user32/caret.rb +36 -0
- data/lib/win-ffi/functions/user32/clipboard.rb +84 -0
- data/lib/win-ffi/functions/user32/controls/button.rb +23 -0
- data/lib/win-ffi/functions/user32/controls/combobox.rb +29 -0
- data/lib/win-ffi/functions/user32/controls/listbox.rb +25 -0
- data/lib/win-ffi/functions/user32/controls/scrollbar.rb +95 -0
- data/lib/win-ffi/functions/user32/cursor.rb +74 -0
- data/lib/win-ffi/functions/user32/dde.rb +214 -0
- data/lib/win-ffi/functions/user32/desktop.rb +76 -0
- data/lib/win-ffi/functions/user32/device.rb +17 -0
- data/lib/win-ffi/functions/user32/device_context.rb +62 -0
- data/lib/win-ffi/functions/user32/display.rb +37 -0
- data/lib/win-ffi/functions/user32/error.rb +10 -0
- data/lib/win-ffi/functions/user32/filled_shape.rb +23 -0
- data/lib/win-ffi/functions/user32/gesture.rb +38 -0
- data/lib/win-ffi/functions/user32/hook.rb +123 -0
- data/lib/win-ffi/functions/user32/icon.rb +98 -0
- data/lib/win-ffi/functions/user32/input.rb +23 -0
- data/lib/win-ffi/functions/user32/keyboard.rb +177 -0
- data/lib/win-ffi/functions/user32/keyboard_accelerators.rb +37 -0
- data/lib/win-ffi/functions/user32/mouse.rb +60 -0
- data/lib/win-ffi/functions/user32/multiple_display_monitors.rb +43 -0
- data/lib/win-ffi/functions/user32/multiple_document_interface.rb +44 -0
- data/lib/win-ffi/functions/user32/painting_drawing.rb +173 -0
- data/lib/win-ffi/functions/user32/pointer.rb +154 -0
- data/lib/win-ffi/functions/user32/power.rb +28 -0
- data/lib/win-ffi/functions/user32/print.rb +14 -0
- data/lib/win-ffi/functions/user32/process.rb +30 -0
- data/lib/win-ffi/functions/user32/raw_input.rb +55 -0
- data/lib/win-ffi/functions/user32/rect.rb +67 -0
- data/lib/win-ffi/functions/user32/resource.rb +28 -0
- data/lib/win-ffi/functions/user32/shell.rb +29 -0
- data/lib/win-ffi/functions/user32/string.rb +98 -0
- data/lib/win-ffi/functions/user32/text.rb +48 -0
- data/lib/win-ffi/functions/user32/touch.rb +69 -0
- data/lib/win-ffi/functions/user32/transform.rb +22 -0
- data/lib/win-ffi/functions/user32/window/configuration.rb +15 -0
- data/lib/win-ffi/functions/user32/window/dialog.rb +167 -0
- data/lib/win-ffi/functions/user32/window/menu.rb +245 -0
- data/lib/win-ffi/functions/user32/window/message.rb +168 -0
- data/lib/win-ffi/functions/user32/window/properties.rb +50 -0
- data/lib/win-ffi/functions/user32/window/timer.rb +37 -0
- data/lib/win-ffi/functions/user32/window/window.rb +546 -0
- data/lib/win-ffi/functions/user32/window/window_class.rb +109 -0
- data/lib/win-ffi/functions/user32/window/window_proc.rb +29 -0
- data/lib/win-ffi/functions/user32/window_station.rb +39 -0
- data/lib/win-ffi/functions/user32.rb +161 -0
- data/lib/win-ffi/functions/winmm.rb +547 -0
- data/lib/win-ffi/functions/wtsapi32/process.rb +12 -0
- data/lib/win-ffi/lib_base.rb +54 -0
- data/lib/win-ffi/struct.rb +15 -0
- data/lib/win-ffi/structs/comctl32/init_common_controls_ex.rb +10 -0
- data/lib/win-ffi/structs/comdlg32/choose_color.rb +23 -0
- data/lib/win-ffi/structs/comdlg32/choose_font.rb +28 -0
- data/lib/win-ffi/structs/comdlg32/find_replace.rb +24 -0
- data/lib/win-ffi/structs/gdi32/abc.rb +9 -0
- data/lib/win-ffi/structs/gdi32/abcfloat.rb +10 -0
- data/lib/win-ffi/structs/gdi32/bitmap.rb +13 -0
- data/lib/win-ffi/structs/gdi32/bitmap_info.rb +11 -0
- data/lib/win-ffi/structs/gdi32/bitmap_info_header.rb +17 -0
- data/lib/win-ffi/structs/gdi32/blend_function.rb +10 -0
- data/lib/win-ffi/structs/gdi32/display_device.rb +12 -0
- data/lib/win-ffi/structs/gdi32/handle_table.rb +7 -0
- data/lib/win-ffi/structs/gdi32/kerning_pair.rb +9 -0
- data/lib/win-ffi/structs/gdi32/log_brush.rb +10 -0
- data/lib/win-ffi/structs/gdi32/log_font.rb +20 -0
- data/lib/win-ffi/structs/gdi32/meta_file_pict.rb +10 -0
- data/lib/win-ffi/structs/gdi32/palette_entry.rb +10 -0
- data/lib/win-ffi/structs/gdi32/pixel_format_descriptor.rb +57 -0
- data/lib/win-ffi/structs/gdi32/rgb_quad.rb +10 -0
- data/lib/win-ffi/structs/kernel32/actctx.rb +22 -0
- data/lib/win-ffi/structs/netapi32/wksta_info_100.rb +9 -0
- data/lib/win-ffi/structs/os_version_info.rb +10 -0
- data/lib/win-ffi/structs/os_version_info_ex.rb +70 -0
- data/lib/win-ffi/structs/paint_struct.rb +12 -0
- data/lib/win-ffi/structs/point.rb +10 -0
- data/lib/win-ffi/structs/rect.rb +28 -0
- data/lib/win-ffi/structs/size.rb +6 -0
- data/lib/win-ffi/structs/user32/controls/combobox_info.rb +13 -0
- data/lib/win-ffi/structs/user32/controls/scroll_info.rb +13 -0
- data/lib/win-ffi/structs/user32/controls/scrollbar_info.rb +13 -0
- data/lib/win-ffi/structs/user32/cursor_info.rb +10 -0
- data/lib/win-ffi/structs/user32/display_device.rb +12 -0
- data/lib/win-ffi/structs/user32/draw_text_params.rb +11 -0
- data/lib/win-ffi/structs/user32/icon_info.rb +11 -0
- data/lib/win-ffi/structs/user32/icon_info_ex.rb +15 -0
- data/lib/win-ffi/structs/user32/last_input_info.rb +8 -0
- data/lib/win-ffi/structs/user32/mouse_move_point.rb +10 -0
- data/lib/win-ffi/structs/user32/msg.rb +16 -0
- data/lib/win-ffi/structs/user32/pointer_info.rb +25 -0
- data/lib/win-ffi/structs/user32/pointer_pen_info.rb +18 -0
- data/lib/win-ffi/structs/user32/pointer_touch_info.rb +17 -0
- data/lib/win-ffi/structs/user32/raw_input_device_list.rb +10 -0
- data/lib/win-ffi/structs/user32/raw_input_header.rb +10 -0
- data/lib/win-ffi/structs/user32/touch_hit_testing_input.rb +11 -0
- data/lib/win-ffi/structs/user32/touch_hit_testing_proximity_evaluation.rb +8 -0
- data/lib/win-ffi/structs/user32/track_mouse_event.rb +10 -0
- data/lib/win-ffi/structs/user32/window/alt_tab_info.rb +17 -0
- data/lib/win-ffi/structs/user32/window/bs_info.rb +12 -0
- data/lib/win-ffi/structs/user32/window/create_struct.rb +22 -0
- data/lib/win-ffi/structs/user32/window/dlg_template.rb +13 -0
- data/lib/win-ffi/structs/user32/window/flashw_info.rb +11 -0
- data/lib/win-ffi/structs/user32/window/gui_thread_info.rb +17 -0
- data/lib/win-ffi/structs/user32/window/luid.rb +8 -0
- data/lib/win-ffi/structs/user32/window/menu_info.rb +13 -0
- data/lib/win-ffi/structs/user32/window/menu_item_info.rb +18 -0
- data/lib/win-ffi/structs/user32/window/menu_item_template.rb +9 -0
- data/lib/win-ffi/structs/user32/window/menubar_info.rb +12 -0
- data/lib/win-ffi/structs/user32/window/msgbox_params.rb +16 -0
- data/lib/win-ffi/structs/user32/window/non_client_metrics.rb +29 -0
- data/lib/win-ffi/structs/user32/window/title_bar_info.rb +9 -0
- data/lib/win-ffi/structs/user32/window/tpm_params.rb +8 -0
- data/lib/win-ffi/structs/user32/window/update_layered_window_info.rb +22 -0
- data/lib/win-ffi/structs/user32/window/window_placement.rb +32 -0
- data/lib/win-ffi/structs/user32/window/window_pos.rb +46 -0
- data/lib/win-ffi/structs/user32/window/wndclass.rb +19 -0
- data/lib/win-ffi/structs/user32/window/wndclassex.rb +40 -0
- data/lib/win-ffi/version.rb +3 -0
- data/lib/win-ffi.rb +42 -0
- metadata +363 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
# User32::ClassLong
|
|
6
|
+
# Class Field Offsets
|
|
7
|
+
GetClassLongFlags = enum :get_class_long_flags,
|
|
8
|
+
[
|
|
9
|
+
:MENUNAME, -8, #Replaces the address of the menu name string. The string identifies the menu resource
|
|
10
|
+
# associated with the class.
|
|
11
|
+
|
|
12
|
+
:HBRBACKGROUND, -10, #Replaces a handle to the background brush associated with the class.
|
|
13
|
+
|
|
14
|
+
:HCURSOR, -12, #Replaces a handle to the cursor associated with the class.
|
|
15
|
+
|
|
16
|
+
:HICON, -14, #Replaces a handle to the icon associated with the class.
|
|
17
|
+
|
|
18
|
+
:HMODULE, -16, #Replaces a handle to the module that registered the class.
|
|
19
|
+
|
|
20
|
+
:CBWNDEXTRA, -18, #Sets the size, in bytes, of the extra window memory associated with each window in the
|
|
21
|
+
# class. Setting this value does not change the number of extra bytes already allocated. For information on
|
|
22
|
+
# how to access this memory, see SetWindowLong.
|
|
23
|
+
|
|
24
|
+
:CBCLSEXTRA, -20, #Sets the size, in bytes, of the extra memory associated with the class. Setting this
|
|
25
|
+
# value does not change the number of extra bytes already allocated.
|
|
26
|
+
|
|
27
|
+
:WNDPROC, -24, #Replaces the address of the window procedure associated with the class.
|
|
28
|
+
|
|
29
|
+
:STYLE, -26, #Replaces the window-class style bits.
|
|
30
|
+
|
|
31
|
+
:HICONSM, -34, #Replace a handle to the small icon associated with the class.
|
|
32
|
+
]
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
GetWindowFlags = enum :get_window_flags, [
|
|
6
|
+
:HWNDFIRST, 0, # The retrieved handle identifies the window of the same type that is highest in the Z order.
|
|
7
|
+
# If the specified window is a topmost window, the handle identifies a topmost window. If the specified window
|
|
8
|
+
# is a top-level window, the handle identifies a top-level window. If the specified window is a child window,
|
|
9
|
+
# the handle identifies a sibling window.
|
|
10
|
+
|
|
11
|
+
:HWNDLAST, 1, # The retrieved handle identifies the window of the same type that is lowest in the Z order.
|
|
12
|
+
# If the specified window is a topmost window, the handle identifies a topmost window. If the specified window
|
|
13
|
+
# is a top-level window, the handle identifies a top-level window. If the specified window is a child window,
|
|
14
|
+
# the handle identifies a sibling window.
|
|
15
|
+
|
|
16
|
+
:HWNDNEXT, 2, # The retrieved handle identifies the window below the specified window in the Z order.
|
|
17
|
+
# If the specified window is a topmost window, the handle identifies a topmost window. If the specified window
|
|
18
|
+
# is a top-level window, the handle identifies a top-level window. If the specified window is a child window,
|
|
19
|
+
# the handle identifies a sibling window.
|
|
20
|
+
|
|
21
|
+
:HWNDPREV, 3, # The retrieved handle identifies the window above the specified window in the Z order.
|
|
22
|
+
# If the specified window is a topmost window, the handle identifies a topmost window. If the specified window
|
|
23
|
+
# is a top-level window, the handle identifies a top-level window. If the specified window is a child window,
|
|
24
|
+
# the handle identifies a sibling window.
|
|
25
|
+
|
|
26
|
+
:OWNER, 4, # The retrieved handle identifies the specified window's owner window, if any. For more information,
|
|
27
|
+
# see Owned Windows.
|
|
28
|
+
|
|
29
|
+
:CHILD, 5, # The retrieved handle identifies the child window at the top of the Z order, if the specified window
|
|
30
|
+
# is a parent window; otherwise, the retrieved handle is NULL. The function examines only child windows of the
|
|
31
|
+
# specified window. It does not examine descendant windows.
|
|
32
|
+
|
|
33
|
+
:ENABLEDPOPUP, 6, # The retrieved handle identifies the enabled popup window owned by the specified window
|
|
34
|
+
# (the search uses the first such window found using :HWNDNEXT); otherwise, if there are no enabled popup
|
|
35
|
+
# windows, the retrieved handle is that of the specified window.
|
|
36
|
+
]
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
GetWindowLongFlags = enum :get_window_long_flags,
|
|
6
|
+
[
|
|
7
|
+
:WNDPROC, -4, # Retrieves the address of the window procedure, or a handle representing the address of the window procedure. You must use the CallWindowProc function to call the window procedure.
|
|
8
|
+
:HINSTANCE, -6, # Retrieves a handle to the application instance.
|
|
9
|
+
:HWNDPARENT, -8, # Retrieves a handle to the parent window, if any.
|
|
10
|
+
:ID, -12, # Retrieves the identifier of the window.
|
|
11
|
+
:STYLE, -16, # Retrieves the window styles.
|
|
12
|
+
:EXSTYLE, -20, # Retrieves the extended window styles.
|
|
13
|
+
:USERDATA, -21, # Retrieves the user data associated with the window. This data is intended for use by the application that created the window. Its value is initially zero.
|
|
14
|
+
]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
MenuFlags = enum :menu_flags,
|
|
6
|
+
[
|
|
7
|
+
:BYCOMMAND, 0x00000000,
|
|
8
|
+
:ENABLED, 0x00000000,
|
|
9
|
+
:STRING, 0x00000000,
|
|
10
|
+
:UNCHECKED, 0x00000000,
|
|
11
|
+
:INSERT, 0x00000000,
|
|
12
|
+
:UNHILITE, 0x00000000,
|
|
13
|
+
:GRAYED, 0x00000001,
|
|
14
|
+
:DISABLED, 0x00000002,
|
|
15
|
+
:BITMAP, 0x00000004,
|
|
16
|
+
:CHECKED, 0x00000008,
|
|
17
|
+
:POPUP, 0x00000010,
|
|
18
|
+
:MENUBARBREAK, 0x00000020,
|
|
19
|
+
:MENUBREAK, 0x00000040,
|
|
20
|
+
:CHANGE, 0x00000080,
|
|
21
|
+
:HILITE, 0x00000080,
|
|
22
|
+
:END, 0x00000080,
|
|
23
|
+
:OWNERDRAW, 0x00000100,
|
|
24
|
+
:APPEND, 0x00000100,
|
|
25
|
+
:DELETE, 0x00000200,
|
|
26
|
+
:USECHECKBITMAPS, 0x00000200,
|
|
27
|
+
:BYPOSITION, 0x00000400,
|
|
28
|
+
:SEPARATOR, 0x00000800,
|
|
29
|
+
:REMOVE, 0x00001000,
|
|
30
|
+
:DEFAULT, 0x00001000,
|
|
31
|
+
:SYSMENU, 0x00002000,
|
|
32
|
+
:HELP, 0x00004000,
|
|
33
|
+
:RIGHTJUSTIFY, 0x00004000,
|
|
34
|
+
:MOUSESELECT, 0x00008000
|
|
35
|
+
]
|
|
36
|
+
|
|
37
|
+
# System Objec
|
|
38
|
+
|
|
39
|
+
OBJID_WINDOW = 0x00000000
|
|
40
|
+
OBJID_SYSMENU = 0xFFFFFFFF
|
|
41
|
+
OBJID_TITLEBAR = 0xFFFFFFFE
|
|
42
|
+
OBJID_MENU = 0xFFFFFFFD
|
|
43
|
+
OBJID_CLIENT = 0xFFFFFFFC
|
|
44
|
+
OBJID_VSCROLL = 0xFFFFFFFB
|
|
45
|
+
OBJID_HSCROLL = 0xFFFFFFFA
|
|
46
|
+
OBJID_SIZEGRIP = 0xFFFFFFF9
|
|
47
|
+
OBJID_CARET = 0xFFFFFFF8
|
|
48
|
+
OBJID_CURSOR = 0xFFFFFFF7
|
|
49
|
+
OBJID_ALERT = 0xFFFFFFF6
|
|
50
|
+
OBJID_SOUND = 0xFFFFFFF5
|
|
51
|
+
OBJID_QUERYCLASSNAMEIDX = 0xFFFFFFF4
|
|
52
|
+
OBJID_NATIVEOM = 0xFFFFFFF0
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
MessageBoxFlags = enum :message_box_flags,
|
|
6
|
+
[
|
|
7
|
+
# Buttons ---------------------
|
|
8
|
+
|
|
9
|
+
:ABORTRETRYIGNORE, 0x00000002, # Push buttons: Abort, Retry, and Ignore.
|
|
10
|
+
# The message box contains three push buttons: Cancel, Try Again, Continue. Use this message box type instead of MB_ABORTRETRYIGNORE.
|
|
11
|
+
:CANCELTRYCONTINUE, 0x00000006,
|
|
12
|
+
# Adds a Help button to the message box. When the user clicks the Help button or presses F1, the system sends a
|
|
13
|
+
# WM_HELP message to the owner.
|
|
14
|
+
:HELP, 0x00004000,
|
|
15
|
+
:OK, 0x00000000, # Push button: OK. This is the default.
|
|
16
|
+
:OKCANCEL, 0x00000001, # Push buttons: OK and Cancel.
|
|
17
|
+
:RETRYCANCEL, 0x00000005, # Push buttons: Retry and Cancel.
|
|
18
|
+
:YESNO, 0x00000004, # Push buttons: Yes and No.
|
|
19
|
+
:YESNOCANCEL, 0x00000003, # Push buttons: Yes, No, and Cancel.
|
|
20
|
+
|
|
21
|
+
# Icons -----------------------
|
|
22
|
+
|
|
23
|
+
:ICONEXCLAMATION, 0x00000030, # An exclamation-point icon
|
|
24
|
+
:ICONWARNING, 0x00000030, # Same as above
|
|
25
|
+
:ICONINFORMATION, 0x00000040, # Lowercase letter i in a circle
|
|
26
|
+
:ICONASTERISK, 0x00000040, # Same as above
|
|
27
|
+
:ICONQUESTION, 0x00000020, # A question-mark icon. Not Recomended
|
|
28
|
+
:ICONSTOP, 0x00000010, # A stop-sign icon
|
|
29
|
+
:ICONERROR, 0x00000010, # Same as above
|
|
30
|
+
:ICONHAND, 0x00000010, # Same as above
|
|
31
|
+
|
|
32
|
+
# Modality --------------------
|
|
33
|
+
|
|
34
|
+
# The user must respond to the message box before continuing work in the
|
|
35
|
+
# window identified by the hWnd parameter. However, the user can move to the
|
|
36
|
+
# windows of other threads and work in those windows.
|
|
37
|
+
# Depending on the hierarchy of windows in the application, the user may be
|
|
38
|
+
# able to move to other windows within the thread. All child windows of the
|
|
39
|
+
# parent of the message box are automatically disabled, but pop-up windows are
|
|
40
|
+
# not.
|
|
41
|
+
# MB_APPLMODAL is the default if neither MB_SYSTEMMODAL nor MB_TASKMODAL
|
|
42
|
+
# is specified.
|
|
43
|
+
:APPLMODAL, 0x00000000,
|
|
44
|
+
# Same as MB_APPLMODAL except that the message box has the WS_EX_TOPMOST style
|
|
45
|
+
# Use system-modal message boxes to notify the user of serious, potentially
|
|
46
|
+
# damaging errors that require immediate attention (for example, running out
|
|
47
|
+
# of memory). This flag has no effect on the user's ability to interact with
|
|
48
|
+
# windows other than those associated with hWnd.
|
|
49
|
+
:SYSTEMMODAL, 0x00001000,
|
|
50
|
+
# Same as MB_APPLMODAL except that all the top-level windows belonging to the
|
|
51
|
+
# current thread are disabled if the hWnd parameter is NULL. Use this flag
|
|
52
|
+
# when the calling application or library does not have a window handle
|
|
53
|
+
# available but still needs to prevent input to other windows in the calling
|
|
54
|
+
# thread without suspending other threads.
|
|
55
|
+
:TASKMODAL, 0x00002000,
|
|
56
|
+
|
|
57
|
+
# Other -----------------------
|
|
58
|
+
|
|
59
|
+
# Same as desktop of the interactive window station. For more information,
|
|
60
|
+
# see Window Stations.
|
|
61
|
+
# If the current input desktop is not the default desktop, MessageBox does not
|
|
62
|
+
# return until the user switches to the default desktop.
|
|
63
|
+
:DEFAULT_DESKTOP_ONLY, 0x00020000,
|
|
64
|
+
:RIGHT, 0x00080000, # The text is right-justified.
|
|
65
|
+
# Displays message and caption text using right-to-left reading order on
|
|
66
|
+
# Hebrew and Arabic systems.
|
|
67
|
+
:RTLREADING, 0x00100000,
|
|
68
|
+
# The message box becomes the foreground window. Internally, the system calls
|
|
69
|
+
# the SetForegroundWindow function for the message box.
|
|
70
|
+
:SETFOREGROUND, 0x00010000, # The message box is created with the WS_EX_TOPMOST window style.
|
|
71
|
+
|
|
72
|
+
:TOPMOST, 0x00040000,
|
|
73
|
+
# The caller is a service notifying the user of an event. The function
|
|
74
|
+
# displays a message box on the current active desktop, even if there is no
|
|
75
|
+
# user logged on to the computer.
|
|
76
|
+
# Terminal Services: If the calling thread has an impersonation token, the
|
|
77
|
+
# function directs the message box to the session specified in the
|
|
78
|
+
# impersonation token.
|
|
79
|
+
# If this flag is set, the hWnd parameter must be NULL. This is so that the
|
|
80
|
+
# message box can appear on a desktop other than the desktop corresponding to
|
|
81
|
+
# the hWnd.
|
|
82
|
+
# For information on security considerations in regard to using this flag, see
|
|
83
|
+
# Interactive Services. In particular, be aware that this flag can produce
|
|
84
|
+
# interactive content on a locked desktop and should therefore be used for
|
|
85
|
+
# only a very limited set of scenarios, such as resource exhaustion.
|
|
86
|
+
|
|
87
|
+
:SERVICE_NOTIFICATION, 0x00200000,
|
|
88
|
+
]
|
|
89
|
+
end
|
|
90
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
MessageBoxReturn = enum :message_box_return,
|
|
6
|
+
[
|
|
7
|
+
:OK, 1, # The OK button was selected.
|
|
8
|
+
:CANCEL, 2, # The Cancel button was selected.
|
|
9
|
+
:ABORT, 3, # The Abort button was selected.
|
|
10
|
+
:RETRY, 4, # The Retry button was selected.
|
|
11
|
+
:IGNORE, 5, # The Ignore button was selected.
|
|
12
|
+
:YES, 6, # The Yes button was selected.
|
|
13
|
+
:NO, 7, # The No button was selected.
|
|
14
|
+
:TRYAGAIN, 10, # The Try Again button was selected.
|
|
15
|
+
:CONTINUE, 11 # The Continue button was selected.
|
|
16
|
+
]
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
ButtonNotification = enum :button_notification,
|
|
6
|
+
[
|
|
7
|
+
:CLICKED, 0,
|
|
8
|
+
:PAINT, 1,
|
|
9
|
+
:HILITE, 2,
|
|
10
|
+
:UNHILITE, 3,
|
|
11
|
+
:DISABLE, 4,
|
|
12
|
+
:DOUBLECLICKED, 5,
|
|
13
|
+
:PUSHED, 2,
|
|
14
|
+
:UNPUSHED, 3,
|
|
15
|
+
:DBLCLK, 5,
|
|
16
|
+
:SETFOCUS, 6,
|
|
17
|
+
:KILLFOCUS, 7,
|
|
18
|
+
]
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
EditNotification = enum :edit_notification,
|
|
6
|
+
[
|
|
7
|
+
:SETFOCUS, 0x0100,
|
|
8
|
+
:KILLFOCUS, 0x0200,
|
|
9
|
+
:CHANGE, 0x0300,
|
|
10
|
+
:UPDATE, 0x0400,
|
|
11
|
+
:ERRSPACE, 0x0500,
|
|
12
|
+
:MAXTEXT, 0x0501,
|
|
13
|
+
:HSCROLL, 0x0601,
|
|
14
|
+
:VSCROLL, 0x0602,
|
|
15
|
+
:ALIGN_LTR_EC, 0x0700,
|
|
16
|
+
:ALIGN_RTL_EC, 0x0701
|
|
17
|
+
]
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
PeekMessageFlags = enum :peek_message_flags,
|
|
6
|
+
[
|
|
7
|
+
:NOREMOVE, 0x0000, # Messages are not removed from the queue after processing by PeekMessage.
|
|
8
|
+
:REMOVE, 0x0001, # Messages are removed from the queue after processing by PeekMessage.
|
|
9
|
+
:NOYIELD, 0x0002, # Prevents the system from releasing any thread that is waiting for the caller to go idle
|
|
10
|
+
# (see WaitForInputIdle). Combine this value with either PM_NOREMOVE or PM_REMOVE.
|
|
11
|
+
]
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
SetWindowPosFlags = enum :set_windows_pos_flags, [
|
|
6
|
+
:NOSIZE, 0x0001, # Retains the current size (ignores the cx and cy parameters).
|
|
7
|
+
|
|
8
|
+
:NOMOVE, 0x0002, # Retains the current position (ignores X and Y parameters).
|
|
9
|
+
|
|
10
|
+
:NOZORDER, 0x0004, # Retains the current Z order (ignores the hWndInsertAfter parameter).
|
|
11
|
+
|
|
12
|
+
:NOREDRAW, 0x0008, # Does not redraw changes. If this flag is set, no repainting of any kind occurs. This
|
|
13
|
+
# applies to the client area, the nonclient area (including the title bar and scroll bars), and any part of the
|
|
14
|
+
# parent window uncovered as a result of the window being moved. When this flag is set, the application must
|
|
15
|
+
# explicitly invalidate or redraw any parts of the window and parent window that need redrawing.
|
|
16
|
+
|
|
17
|
+
:NOACTIVATE, 0x0010, # Does not activate the window. If this flag is not set, the window is activated and moved
|
|
18
|
+
# to the top of either the topmost or non-topmost group (depending on the setting of the hWndInsertAfter
|
|
19
|
+
# parameter).
|
|
20
|
+
|
|
21
|
+
:DRAWFRAME, 0x0020, # Draws a frame (defined in the window's class description) around the window.
|
|
22
|
+
|
|
23
|
+
:FRAMECHANGED, 0x0020, # Applies new frame styles set using the SetWindowLong function. Sends a WM_NCCALCSIZE
|
|
24
|
+
# message to the window, even if the window's size is not being changed. If this flag is not specified,
|
|
25
|
+
# WM_NCCALCSIZE is sent only when the window's size is being changed.
|
|
26
|
+
|
|
27
|
+
:SHOWWINDOW, 0x0040, # Displays the window.
|
|
28
|
+
|
|
29
|
+
:HIDEWINDOW, 0x0080, # Hides the window.
|
|
30
|
+
|
|
31
|
+
:NOCOPYBITS, 0x0100, # Discards the entire contents of the client area. If this flag is not specified, the valid
|
|
32
|
+
# contents of the client area are saved and copied back into the client area after the window is sized or
|
|
33
|
+
# repositioned.
|
|
34
|
+
|
|
35
|
+
:NOOWNERZORDER, 0x0200, # Does not change the owner window's position in the Z order.
|
|
36
|
+
|
|
37
|
+
:NOREPOSITION, 0x0200, # Same as the :NOOWNERZORDER flag.
|
|
38
|
+
|
|
39
|
+
:NOSENDCHANGING, 0x0400, # Prevents the window from receiving the WM_WINDOWPOSCHANGING message.
|
|
40
|
+
|
|
41
|
+
:DEFERERASE, 0x2000, # Prevents generation of the WM_SYNCPAINT message.
|
|
42
|
+
|
|
43
|
+
:ASYNCWINDOWPOS, 0x4000, # If the calling thread and the thread that owns the window are attached to different
|
|
44
|
+
# input queues, the system posts the request to the thread that owns the window. This prevents the calling
|
|
45
|
+
# thread from blocking its execution while other threads process the request.
|
|
46
|
+
]
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
ShowWindowFlags = enum :show_window, [
|
|
6
|
+
:HIDE, #Hides the window and activates another window.
|
|
7
|
+
|
|
8
|
+
:SHOWNORMAL, #Activates and displays a window. If the window is minimized or maximized, the system restores
|
|
9
|
+
# it to its original size and position. An application should specify this flag when displaying the window for the first time.
|
|
10
|
+
|
|
11
|
+
:SHOWMINIMIZED, #Activates the window and displays it as a minimized window.
|
|
12
|
+
|
|
13
|
+
:MAXIMIZE, #Maximizes the specified window.
|
|
14
|
+
|
|
15
|
+
:SHOWMAXIMIZED, 3, #Activates the window and displays it as a maximized window.
|
|
16
|
+
|
|
17
|
+
:SHOWNOACTIVATE, #Displays the window as a minimized window. This value is similar to SW_SHOWMINIMIZED, except
|
|
18
|
+
# the window is not activated.
|
|
19
|
+
|
|
20
|
+
:SHOW, #Activates the window and displays it in its current size and position.
|
|
21
|
+
|
|
22
|
+
:MINIMIZE, #Minimizes the specified window and activates the next top-level window in the Z order.
|
|
23
|
+
|
|
24
|
+
:SHOWMINNOACTIVE, #Displays the window as a minimized window. This value is similar to SW_SHOWMINIMIZED, except
|
|
25
|
+
# the window is not activated.
|
|
26
|
+
|
|
27
|
+
:SHOWNA, #Displays the window in its current size and position. This value is similar to SW_SHOW, except
|
|
28
|
+
# that the window is not activated.
|
|
29
|
+
|
|
30
|
+
:RESTORE, #Activates and displays the window. If the window is minimized or maximized, the system
|
|
31
|
+
# restores it to its original size and position. An application should specify this flag when restoring a
|
|
32
|
+
# minimized window.
|
|
33
|
+
|
|
34
|
+
:SHOWDEFAULT, #Sets the show state based on the SW_ value specified in the STARTUPINFO structure passed to
|
|
35
|
+
# the CreateProcess function by the program that started the application.
|
|
36
|
+
|
|
37
|
+
:FORCEMINIMIZE #Minimizes a window, even if the thread that owns the window is not responding. This flag
|
|
38
|
+
# should only be used when minimizing windows from a different thread.
|
|
39
|
+
]
|
|
40
|
+
end
|
|
41
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
SMTO = enum :smto,
|
|
6
|
+
[
|
|
7
|
+
:ABORTIFHUNG, 0x0002, # The function returns without waiting for the time-out period to elapse if the receiving
|
|
8
|
+
# thread appears to not respond or "hangs."
|
|
9
|
+
|
|
10
|
+
:BLOCK, 0x0001, # Prevents the calling thread from processing any other requests until the function returns.
|
|
11
|
+
|
|
12
|
+
:NORMAL, 0x0000, # The calling thread is not prevented from processing other requests while waiting for the
|
|
13
|
+
# function to return.
|
|
14
|
+
|
|
15
|
+
:NOTIMEOUTIFNOTHUNG, 0x0008, # The function does not enforce the time-out period as long as the receiving thread
|
|
16
|
+
# is processing messages.
|
|
17
|
+
|
|
18
|
+
:ERRORONEXIT, 0x0020, # The function should return 0 if the receiving window is destroyed or its owning thread
|
|
19
|
+
# dies while the message is being processed.
|
|
20
|
+
]
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
ButtonControlStyle = enum :button_control_style,
|
|
6
|
+
[
|
|
7
|
+
:PUSHBUTTON, 0x00000000,
|
|
8
|
+
:DEFPUSHBUTTON, 0x00000001,
|
|
9
|
+
:CHECKBOX, 0x00000002,
|
|
10
|
+
:AUTOCHECKBOX, 0x00000003,
|
|
11
|
+
:RADIOBUTTON, 0x00000004,
|
|
12
|
+
:N3STATE, 0x00000005,
|
|
13
|
+
:AUTO3STATE, 0x00000006,
|
|
14
|
+
:GROUPBOX, 0x00000007,
|
|
15
|
+
:USERBUTTON, 0x00000008,
|
|
16
|
+
:AUTORADIOBUTTON, 0x00000009,
|
|
17
|
+
:PUSHBOX, 0x0000000A,
|
|
18
|
+
:OWNERDRAW, 0x0000000B,
|
|
19
|
+
:TYPEMASK, 0x0000000F,
|
|
20
|
+
:LEFTTEXT, 0x00000020,
|
|
21
|
+
:TEXT, 0x00000000,
|
|
22
|
+
:ICON, 0x00000040,
|
|
23
|
+
:BITMAP, 0x00000080,
|
|
24
|
+
:LEFT, 0x00000100,
|
|
25
|
+
:RIGHT, 0x00000200,
|
|
26
|
+
:CENTER, 0x00000300,
|
|
27
|
+
:TOP, 0x00000400,
|
|
28
|
+
:BOTTOM, 0x00000800,
|
|
29
|
+
:VCENTER, 0x00000C00,
|
|
30
|
+
:PUSHLIKE, 0x00001000,
|
|
31
|
+
:MULTILINE, 0x00002000,
|
|
32
|
+
:NOTIFY, 0x00004000,
|
|
33
|
+
:FLAT, 0x00008000,
|
|
34
|
+
:RIGHTBUTTON, 0x00000020
|
|
35
|
+
]
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
ComboBoxStyle = enum :combo_box_style,
|
|
6
|
+
[
|
|
7
|
+
:SIMPLE, 0x0001,
|
|
8
|
+
:DROPDOWN, 0x0002,
|
|
9
|
+
:DROPDOWNLIST, 0x0003,
|
|
10
|
+
:OWNERDRAWFIXED, 0x0010,
|
|
11
|
+
:OWNERDRAWVARIABLE, 0x0020,
|
|
12
|
+
:AUTOHSCROLL, 0x0040,
|
|
13
|
+
:OEMCONVERT, 0x0080,
|
|
14
|
+
:SORT, 0x0100,
|
|
15
|
+
:HASSTRINGS, 0x0200,
|
|
16
|
+
:NOINTEGRALHEIGHT, 0x0400,
|
|
17
|
+
:DISABLENOSCROLL, 0x0800,
|
|
18
|
+
:UPPERCASE, 0x2000,
|
|
19
|
+
:LOWERCASE, 0x4000,
|
|
20
|
+
]
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
EditStyle = enum :edit_style,
|
|
6
|
+
[
|
|
7
|
+
:AUTOHSCROLL,
|
|
8
|
+
:AUTOVSCROLL,
|
|
9
|
+
:CENTER,
|
|
10
|
+
:LEFT,
|
|
11
|
+
:LOWERCASE,
|
|
12
|
+
:MULTILINE,
|
|
13
|
+
:NOHIDESEL,
|
|
14
|
+
:NUMBER,
|
|
15
|
+
:OEMCONVERT,
|
|
16
|
+
:PASSWORD,
|
|
17
|
+
:READONLY,
|
|
18
|
+
:RIGHT,
|
|
19
|
+
:UPPERCASE,
|
|
20
|
+
:WANTRETURN
|
|
21
|
+
]
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
StaticStyle = enum :static_style,
|
|
6
|
+
[
|
|
7
|
+
:LEFT, 0x00000000,
|
|
8
|
+
:CENTER, 0x00000001,
|
|
9
|
+
:RIGHT, 0x00000002,
|
|
10
|
+
:ICON, 0x00000003,
|
|
11
|
+
:BLACKRECT, 0x00000004,
|
|
12
|
+
:GRAYRECT, 0x00000005,
|
|
13
|
+
:WHITERECT, 0x00000006,
|
|
14
|
+
:BLACKFRAME, 0x00000007,
|
|
15
|
+
:GRAYFRAME, 0x00000008,
|
|
16
|
+
:WHITEFRAME, 0x00000009,
|
|
17
|
+
:USERITEM, 0x0000000A,
|
|
18
|
+
:SIMPLE, 0x0000000B,
|
|
19
|
+
:LEFTNOWORDWRAP, 0x0000000C,
|
|
20
|
+
:OWNERDRAW, 0x0000000D,
|
|
21
|
+
:BITMAP, 0x0000000E,
|
|
22
|
+
:ENHMETAFILE, 0x0000000F,
|
|
23
|
+
:ETCHEDHORZ, 0x00000010,
|
|
24
|
+
:ETCHEDVERT, 0x00000011,
|
|
25
|
+
:ETCHEDFRAME, 0x00000012,
|
|
26
|
+
:TYPEMASK, 0x0000001F,
|
|
27
|
+
:NOPREFIX, 0x00000080, # Don't do "&" character translation
|
|
28
|
+
:NOTIFY, 0x00000100,
|
|
29
|
+
:CENTERIMAGE, 0x00000200,
|
|
30
|
+
:RIGHTJUST, 0x00000400,
|
|
31
|
+
:REALSIZEIMAGE, 0x00000800,
|
|
32
|
+
:SUNKEN, 0x00001000,
|
|
33
|
+
:EDITCONTROL, 0x00002000,
|
|
34
|
+
:ENDELLIPSIS, 0x00004000,
|
|
35
|
+
:PATHELLIPSIS, 0x00008000,
|
|
36
|
+
:WORDELLIPSIS, 0x0000C000,
|
|
37
|
+
:ELLIPSISMASK, 0x0000C000
|
|
38
|
+
]
|
|
39
|
+
|
|
40
|
+
if WindowsVersion >= :xp
|
|
41
|
+
StaticStyle.instance_variable_get(:@kv_map)[:REALSIZECONTROL] = 0x00000040
|
|
42
|
+
StaticStyle.instance_variable_get(:@vk_map)[0x00000040] = :REALSIZECONTROL
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
require 'win-ffi/enums/user32'
|
|
2
|
+
|
|
3
|
+
module WinFFI
|
|
4
|
+
module User32
|
|
5
|
+
WindowClassStyle = enum :window_class_style,
|
|
6
|
+
[
|
|
7
|
+
:VREDRAW, 0x0001, #Redraws the entire window if a movement or size adjustment changes the height of the client area.
|
|
8
|
+
|
|
9
|
+
:HREDRAW, 0x0002, # Redraws the entire window if a movement or size adjustment changes the width of the client area.
|
|
10
|
+
|
|
11
|
+
:DBLCLKS, 0x0008, # Sends a double-click message to the window procedure when the user double-clicks the mouse
|
|
12
|
+
# while the cursor is within a window belonging to the class.
|
|
13
|
+
|
|
14
|
+
:OWNDC, 0x0020, # Allocates a unique device context for each window in the class.
|
|
15
|
+
|
|
16
|
+
:CLASSDC, 0x0040, # Allocates one device context to be shared by all windows in the class. Because window
|
|
17
|
+
# classes are process specific, it is possible for multiple threads of an application to create a window of the
|
|
18
|
+
# same class. It is also possible for the threads to attempt to use the device context simultaneously. When this
|
|
19
|
+
# happens, the system allows only one thread to successfully finish its drawing operation.
|
|
20
|
+
|
|
21
|
+
:PARENTDC, 0x0080, # Sets the clipping rectangle of the child window to that of the parent window so that the
|
|
22
|
+
# child can draw on the parent. A window with the :PARENTDC style bit receives a regular device context from
|
|
23
|
+
# the system's cache of device contexts. It does not give the child the parent's device context or device
|
|
24
|
+
# context settings. Specifying CS_PARENTDC enhances an application's performance.
|
|
25
|
+
|
|
26
|
+
:NOCLOSE, 0x0200, # Disables Close on the window menu.
|
|
27
|
+
|
|
28
|
+
:SAVEBITS, 0x0800, # Saves, as a bitmap, the portion of the screen image obscured by a window of this class.
|
|
29
|
+
# When the window is removed, the system uses the saved bitmap to restore the screen image, including other
|
|
30
|
+
# windows that were obscured. Therefore, the system does not send WM_PAINT messages to windows that were
|
|
31
|
+
# obscured if the memory used by the bitmap has not been discarded and if other screen actions have not
|
|
32
|
+
# invalidated the stored image. This style is useful for small windows (for example, menus or dialog boxes) that
|
|
33
|
+
# are displayed briefly and then removed before other screen activity takes place. This style increases the time
|
|
34
|
+
# required to display the window, because the system must first allocate memory to store the bitmap.
|
|
35
|
+
|
|
36
|
+
:BYTEALIGNCLIENT, 0x1000, # Aligns the window's client area on a byte boundary (in the x direction). This style
|
|
37
|
+
# affects the width of the window and its horizontal placement on the display.
|
|
38
|
+
|
|
39
|
+
:BYTEALIGNWINDOW, 0x2000, # Aligns the window on a byte boundary (in the x direction). This style affects the
|
|
40
|
+
# width of the window and its horizontal placement on the display.
|
|
41
|
+
|
|
42
|
+
:GLOBALCLASS, 0x4000, # Indicates that the window class is an application global class. For more information,
|
|
43
|
+
# see the "Application Global Classes" section of About Window Classes.
|
|
44
|
+
|
|
45
|
+
:DROPSHADOW, 0x00020000, #Enables the drop shadow effect on a window. The effect is turned on and off through
|
|
46
|
+
# SPI_SETDROPSHADOW. Typically, this is enabled for small, short-lived windows such as menus to emphasize their
|
|
47
|
+
# Z order relationship to other windows.
|
|
48
|
+
]
|
|
49
|
+
end
|
|
50
|
+
end
|