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