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