Module: WinFFI::User32
- Extended by:
- LibBase
- Defined in:
- lib/win-ffi/enums/user32.rb,
lib/win-ffi/enums/kernel32.rb,
lib/win-ffi/enums/user32/ocr.rb,
lib/win-ffi/enums/user32/oic.rb,
lib/win-ffi/enums/user32/rim.rb,
lib/win-ffi/functions/user32.rb,
lib/win-ffi/enums/user32/icon.rb,
lib/win-ffi/enums/user32/mwmo.rb,
lib/win-ffi/enums/user32/image.rb,
lib/win-ffi/structs/user32/msg.rb,
lib/win-ffi/functions/user32/dde.rb,
lib/win-ffi/enums/user32/pen_mask.rb,
lib/win-ffi/functions/user32/hook.rb,
lib/win-ffi/functions/user32/icon.rb,
lib/win-ffi/functions/user32/rect.rb,
lib/win-ffi/functions/user32/text.rb,
lib/win-ffi/enums/user32/pen_flags.rb,
lib/win-ffi/functions/user32/brush.rb,
lib/win-ffi/functions/user32/caret.rb,
lib/win-ffi/functions/user32/input.rb,
lib/win-ffi/functions/user32/mouse.rb,
lib/win-ffi/functions/user32/power.rb,
lib/win-ffi/functions/user32/print.rb,
lib/win-ffi/functions/user32/shell.rb,
lib/win-ffi/functions/user32/touch.rb,
lib/win-ffi/enums/user32/edge_flags.rb,
lib/win-ffi/enums/user32/touch_mask.rb,
lib/win-ffi/functions/user32/bitmap.rb,
lib/win-ffi/functions/user32/cursor.rb,
lib/win-ffi/functions/user32/device.rb,
lib/win-ffi/functions/user32/string.rb,
lib/win-ffi/enums/user32/window/smto.rb,
lib/win-ffi/enums/user32/window_hook.rb,
lib/win-ffi/functions/user32/desktop.rb,
lib/win-ffi/functions/user32/display.rb,
lib/win-ffi/functions/user32/gesture.rb,
lib/win-ffi/functions/user32/pointer.rb,
lib/win-ffi/functions/user32/process.rb,
lib/win-ffi/structs/user32/icon_info.rb,
lib/win-ffi/enums/user32/border_flags.rb,
lib/win-ffi/functions/user32/keyboard.rb,
lib/win-ffi/functions/user32/resource.rb,
lib/win-ffi/enums/user32/feedback_type.rb,
lib/win-ffi/enums/user32/pointer_flags.rb,
lib/win-ffi/functions/user32/clipboard.rb,
lib/win-ffi/functions/user32/raw_input.rb,
lib/win-ffi/functions/user32/transform.rb,
lib/win-ffi/structs/user32/cursor_info.rb,
lib/win-ffi/structs/user32/window/luid.rb,
lib/win-ffi/enums/user32/message_filter.rb,
lib/win-ffi/structs/user32/icon_info_ex.rb,
lib/win-ffi/structs/user32/pointer_info.rb,
lib/win-ffi/enums/user32/key_event_flags.rb,
lib/win-ffi/enums/user32/map_virtual_key.rb,
lib/win-ffi/functions/user32/window/menu.rb,
lib/win-ffi/enums/user32/mouse_keys_flags.rb,
lib/win-ffi/functions/user32/filled_shape.rb,
lib/win-ffi/functions/user32/window/timer.rb,
lib/win-ffi/structs/user32/display_device.rb,
lib/win-ffi/structs/user32/window/bs_info.rb,
lib/win-ffi/enums/user32/append_menu_flags.rb,
lib/win-ffi/enums/user32/clipboard_formats.rb,
lib/win-ffi/enums/user32/mouse_event_flags.rb,
lib/win-ffi/enums/user32/virtual_key_flags.rb,
lib/win-ffi/enums/user32/window/menu_flags.rb,
lib/win-ffi/functions/user32/accessibility.rb,
lib/win-ffi/functions/user32/authorization.rb,
lib/win-ffi/functions/user32/window/dialog.rb,
lib/win-ffi/functions/user32/window/window.rb,
lib/win-ffi/structs/user32/last_input_info.rb,
lib/win-ffi/structs/user32/window/wndclass.rb,
lib/win-ffi/enums/user32/draw_caption_flags.rb,
lib/win-ffi/enums/user32/get_ancestor_flags.rb,
lib/win-ffi/enums/user32/keyboard_modifiers.rb,
lib/win-ffi/enums/user32/pointer_input_type.rb,
lib/win-ffi/enums/user32/queue_status_flags.rb,
lib/win-ffi/enums/user32/window/window_long.rb,
lib/win-ffi/functions/user32/device_context.rb,
lib/win-ffi/functions/user32/window/message.rb,
lib/win-ffi/functions/user32/window_station.rb,
lib/win-ffi/structs/user32/draw_text_params.rb,
lib/win-ffi/structs/user32/mouse_move_point.rb,
lib/win-ffi/structs/user32/pointer_pen_info.rb,
lib/win-ffi/structs/user32/raw_input_header.rb,
lib/win-ffi/structs/user32/window/menu_info.rb,
lib/win-ffi/enums/user32/device_notify_flags.rb,
lib/win-ffi/functions/user32/controls/button.rb,
lib/win-ffi/structs/user32/track_mouse_event.rb,
lib/win-ffi/structs/user32/window/tpm_params.rb,
lib/win-ffi/structs/user32/window/window_pos.rb,
lib/win-ffi/structs/user32/window/wndclassex.rb,
lib/win-ffi/functions/user32/controls/listbox.rb,
lib/win-ffi/functions/user32/painting_drawing.rb,
lib/win-ffi/structs/user32/pointer_touch_info.rb,
lib/win-ffi/structs/user32/window/flashw_info.rb,
lib/win-ffi/enums/user32/keyboard_layout_flags.rb,
lib/win-ffi/enums/user32/process_dpi_awareness.rb,
lib/win-ffi/enums/user32/touch_injection_flags.rb,
lib/win-ffi/functions/user32/controls/combobox.rb,
lib/win-ffi/functions/user32/window/properties.rb,
lib/win-ffi/structs/user32/window/alt_tab_info.rb,
lib/win-ffi/structs/user32/window/dlg_template.rb,
lib/win-ffi/structs/user32/window/menubar_info.rb,
lib/win-ffi/enums/user32/window/window_messages.rb,
lib/win-ffi/functions/user32/controls/scrollbar.rb,
lib/win-ffi/functions/user32/window/window_proc.rb,
lib/win-ffi/structs/user32/controls/scroll_info.rb,
lib/win-ffi/structs/user32/window/create_struct.rb,
lib/win-ffi/structs/user32/window/msgbox_params.rb,
lib/win-ffi/enums/user32/window/get_window_flags.rb,
lib/win-ffi/enums/user32/window/style/edit_style.rb,
lib/win-ffi/functions/user32/window/window_class.rb,
lib/win-ffi/structs/user32/raw_input_device_list.rb,
lib/win-ffi/structs/user32/window/menu_item_info.rb,
lib/win-ffi/structs/user32/window/title_bar_info.rb,
lib/win-ffi/enums/user32/draw_frame_control_flags.rb,
lib/win-ffi/enums/user32/window/combo_box_message.rb,
lib/win-ffi/enums/user32/window/message_box_flags.rb,
lib/win-ffi/enums/user32/window/show_window_flags.rb,
lib/win-ffi/functions/user32/window/configuration.rb,
lib/win-ffi/structs/user32/controls/combobox_info.rb,
lib/win-ffi/structs/user32/window/gui_thread_info.rb,
lib/win-ffi/enums/user32/window/message_box_return.rb,
lib/win-ffi/enums/user32/window/peek_message_flags.rb,
lib/win-ffi/enums/user32/window/style/static_style.rb,
lib/win-ffi/enums/user32/window/style/window_style.rb,
lib/win-ffi/functions/user32/keyboard_accelerators.rb,
lib/win-ffi/structs/user32/controls/scrollbar_info.rb,
lib/win-ffi/structs/user32/touch_hit_testing_input.rb,
lib/win-ffi/structs/user32/window/window_placement.rb,
lib/win-ffi/enums/user32/window/system_menu_command.rb,
lib/win-ffi/enums/user32/window/animate_window_flags.rb,
lib/win-ffi/enums/user32/window/get_class_long_flags.rb,
lib/win-ffi/enums/user32/window/set_window_pos_flags.rb,
lib/win-ffi/enums/user32/window/system_metrics_flags.rb,
lib/win-ffi/structs/user32/window/menu_item_template.rb,
lib/win-ffi/structs/user32/window/non_client_metrics.rb,
lib/win-ffi/enums/user32/window/get_window_long_flags.rb,
lib/win-ffi/enums/user32/window/style/combo_box_style.rb,
lib/win-ffi/enums/user32/window/style/window_style_ex.rb,
lib/win-ffi/enums/user32/user_object_information_flags.rb,
lib/win-ffi/enums/user32/window/broadcast_system_flags.rb,
lib/win-ffi/enums/user32/window/track_popup_menu_flags.rb,
lib/win-ffi/functions/user32/multiple_display_monitors.rb,
lib/win-ffi/enums/user32/draw_frame_control_state_flags.rb,
lib/win-ffi/enums/user32/layered_window_attributes_flags.rb,
lib/win-ffi/enums/user32/window/style/window_class_style.rb,
lib/win-ffi/functions/user32/multiple_document_interface.rb,
lib/win-ffi/enums/user32/window/style/button_control_style.rb,
lib/win-ffi/enums/user32/window/system_parameters_info_flags.rb,
lib/win-ffi/structs/user32/window/update_layered_window_info.rb,
lib/win-ffi/enums/user32/window/system_parameters_info_action.rb,
lib/win-ffi/enums/user32/window/broadcast_system_message_flags.rb,
lib/win-ffi/enums/user32/window/notification/edit_notification.rb,
lib/win-ffi/enums/user32/window/notification/button_notification.rb,
lib/win-ffi/enums/user32/window/notification/static_notification.rb,
lib/win-ffi/structs/user32/touch_hit_testing_proximity_evaluation.rb
Defined Under Namespace
Classes: AltTabInfo, BSINFO, COMBOBOXINFO, CREATESTRUCT, CURSORINFO, DISPLAY_DEVICE, DLGTEMPLATE, DRAWTEXTPARAMS, FlashwInfo, GuiThreadInfo, ICONINFO, ICONINFOEX, LASTINPUTINFO, LUID, MENUBARINFO, MENUINFO, MENUITEMINFO, MENUITEMTEMPLATE, MOUSEMOVEPOINT, MSG, MSGBOXPARAMS, NONCLIENTMETRICS, POINTER_INFO, POINTER_PEN_INFO, POINTER_TOUCH_INFO, RAWINPUTDEVICELIST, RAWINPUTHEADER, SCROLLBARINFO, SCROLLINFO, TOUCH_HIT_TESTING_INPUT, TOUCH_HIT_TESTING_PROXIMITY_EVALUATION, TPMPARAMS, TRACKMOUSEEVENT, TitleBarInfo, UpdateLayeredWindowInfo, WNDCLASS, WNDCLASSEX, WindowPlacement, WindowPos
Constant Summary collapse
- OCR =
enum :ocr, [ :NORMAL, 32512, :IBEAM, 32513, :WAIT, 32514, :CROSS, 32515, :UP, 32516, :SIZE, 32640, # OBSOLETE: use OCR_SIZEALL :ICON, 32641, # OBSOLETE: use OCR_NORMAL :SIZENWSE, 32642, :SIZENESW, 32643, :SIZEWE, 32644, :SIZENS, 32645, :SIZEALL, 32646, :ICOCUR, 32647, # OBSOLETE: use OIC_WINLOGO :NO, 32648, :APPSTARTING,32650 ]
- OIC =
enum :oic, [ :SAMPLE, 32512, :HAND, 32513, :QUES, 32514, :BANG, 32515, :NOTE, 32516, :WINLOGO, 32517, :WARNING, 32515, :ERROR, 32513, :INFORMATION, 32516 ]
- RIM =
enum :rim, [ :TYPEMOUSE, 0, # The device is a mouse. :TYPEKEYBOARD, 1, # The device is a keyboard. :TYPEHID, 2, # The device is an HID that is not a keyboard and not a mouse. ]
- CW_USEDEFAULT =
if WinFFI::WindowsVersion >= :xp
require_relative 'user32/raw_input' #VOID WINAPI DisableProcessWindowsGhosting(void) attach_function 'DisableProcessWindowsGhosting', [], :void if WinFFI::WindowsVersion >= :vista require_relative 'user32/display' if WinFFI::WindowsVersion >= 7 %i'gesture touch'.each { |f| require_relative "user32/#{f}" } if WinFFI::WindowsVersion >= 8 %i' accessibility input pointer '.each { |f| require_relative "user32/#{f}" } #BOOL GetCurrentInputMessageSource( _Out_ INPUT_MESSAGE_SOURCE *inputMessageSource ) attach_function 'GetCurrentInputMessageSource', [:pointer], :bool end end end if WindowsVersion >= 8 #BOOL GetCurrentInputMessageSource( _Out_ INPUT_MESSAGE_SOURCE *inputMessageSource ) attach_function 'GetCurrentInputMessageSource', [:pointer], :bool endend
-0x80000000
- IDC =
enum :idc, [ :ARROW, 32512, :IBEAM, 32513, :WAIT, 32514, :CROSS, 32515, :UPARROW, 32516, :SIZE, 32640, :ICON, 32641, :SIZENWSE, 32642, :SIZENESW, 32643, :SIZEWE, 32644, :SIZENS, 32645, :SIZEALL, 32646, :NO, 32648, :HAND, 32649, :APPSTARTING, 32650, :HELP, 32651, ]
- IDI =
enum :idi, [ :APPLICATION, 32512, :ERROR, 32513, :HAND, 32513, :QUESTION, 32514, :EXCLAMATION, 32515, :WARNING, 32515, :ASTERISK, 32516, :INFORMATION, 32516, :WINLOGO, 32517, :SHIELD, 32518 ]
- Icon =
enum :icon, [ :SMALL, 0, :BIG, 1 ]
- MWMO =
enum :mwmo, [ :ALERTABLE, 0x0002, # The function also returns if an APC has been queued to the thread with QueueUserAPC while # the thread is in the waiting state. :INPUTAVAILABLE, 0x0004, # The function returns if input exists for the queue, even if the input has been seen # (but not removed) using a call to another function, such as PeekMessage. :WAITALL, 0x0001, # The function returns when all objects in the pHandles array are signaled and an input event # has been received, all at the same time. ]
- Image =
enum :image, [ :BITMAP, 0, # Loads a bitmap. :ICON, 1, # Loads an icon. :CURSOR, 2 # Loads a cursor. ]
- PenMask =
enum :pen_mask, [ :PEN_MASK_NONE, 0x00000000, # Default. None of the optional fields are valid. :PEN_MASK_PRESSURE, 0x00000001, # pressure of the POINTER_PEN_INFO structure is valid. :PEN_MASK_ROTATION, 0x00000002, # rotation of the POINTER_PEN_INFO structure is valid. :PEN_MASK_TILT_X, 0x00000004, # tiltX of the POINTER_PEN_INFO structure is valid. :PEN_MASK_TILT_Y, 0x00000008, # tiltY of the POINTER_PEN_INFO structure is valid. ]
- CallWndProc =
LRESULT CALLBACK CallWndProc(
_In_ int nCode, _In_ WPARAM wParam, _In_ LPARAM lParam ) callback :CallWndProc, [:int, :wparma, :lparam], :lresult
- CallWndRetProc =
LRESULT CALLBACK CallWndRetProc(
_In_ int nCode, _In_ WPARAM wParam, _In_ LPARAM lParam ) callback :CallWndRetProc, [:int, :wparma, :lparam], :lresult
- CBTProc =
LRESULT CALLBACK CBTProc(
_In_ int nCode, _In_ WPARAM wParam, _In_ LPARAM lParam ) callback :CBTProc, [:int, :wparma, :lparam], :lresult
- DebugProc =
LRESULT CALLBACK DebugProc(
_In_ int nCode, _In_ WPARAM wParam, _In_ LPARAM lParam ) callback :DebugProc, [:int, :wparma, :lparam], :lresult
- ForegroundIdleProc =
DWORD CALLBACK ForegroundIdleProc(
_In_ int code, DWORD wParam, LONG lParam ) callback :ForegroundIdleProc, [:int, :wparma, :lparam], :lresult
- GetMsgProc =
LRESULT CALLBACK GetMsgProc(
_In_ int code, _In_ WPARAM wParam, _In_ LPARAM lParam ) callback :GetMsgProc, [:int, :wparma, :lparam], :lresult
- JournalPlaybackProc =
LRESULT CALLBACK JournalPlaybackProc(
_In_ int code, WPARAM wParam, _In_ LPARAM lParam ) callback :JournalPlaybackProc, [:int, :wparma, :lparam], :lresult
- JournalRecordProc =
LRESULT CALLBACK JournalRecordProc(
_In_ int code, WPARAM wParam, _In_ LPARAM lParam ) callback :JournalRecordProc, [:int, :wparma, :lparam], :lresult
- KeyboardProc =
LRESULT CALLBACK KeyboardProc(
_In_ int code, _In_ WPARAM wParam, _In_ LPARAM lParam ) callback :KeyboardProc, [:int, :wparma, :lparam], :lresult
- LowLevelKeyboardProc =
LRESULT CALLBACK LowLevelKeyboardProc(
_In_ int nCode, _In_ WPARAM wParam, _In_ LPARAM lParam ) callback :LowLevelKeyboardProc, [:int, :wparma, :lparam], :lresult
- LowLevelMouseProc =
LRESULT CALLBACK LowLevelMouseProc(
_In_ int nCode, _In_ WPARAM wParam, _In_ LPARAM lParam ) callback :LowLevelMouseProc, [:int, :wparma, :lparam], :lresult
- MessageProc =
LRESULT CALLBACK MessageProc(
_In_ int code, WPARAM wParam, _In_ LPARAM lParam ) callback :MessageProc, [:int, :wparma, :lparam], :lresult
- MouseProc =
LRESULT CALLBACK MouseProc(
_In_ int nCode, _In_ WPARAM wParam, _In_ LPARAM lParam ) callback :MouseProc, [:int, :wparma, :lparam], :lresult
- ShellProc =
LRESULT CALLBACK ShellProc(
_In_ int nCode, _In_ WPARAM wParam, _In_ LPARAM lParam ) callback :ShellProc, [:int, :wparma, :lparam], :lresult
- SysMsgProc =
LRESULT CALLBACK SysMsgProc(
_In_ int nCode, WPARAM wParam, _In_ LPARAM lParam ) callback :SysMsgProc, [:int, :wparma, :lparam], :lresult
- PenFlags =
enum :pen_flags, [ :PEN_FLAG_BARREL, 0x00000001, # The barrel button is pressed. :PEN_FLAG_INVERTED, 0x00000002, # The pen is inverted. :PEN_FLAG_ERASER, 0x00000004, # The eraser button is pressed. ]
- EdgeFlags =
3D border styles
enum :border_flags, [ :RAISEDOUTER, 0x0001, :SUNKENOUTER, 0x0002, :OUTER, 0x0003, :RAISEDINNER, 0x0004, :RAISED, 0x0005, :ETCHED, 0x0006, :SUNKENINNER, 0x0008, :BUMP, 0x0009, :SUNKEN, 0x0010, :INNER, 0x0012, ]
- TouchMask =
enum :touch_mask, [ :TOUCH_MASK_NONE, 0x00000000, #Default. None of the optional fields are valid. :TOUCH_MASK_CONTACTAREA, 0x00000001, #rcContact of the POINTER_TOUCH_INFO structure is valid. :TOUCH_MASK_ORIENTATION, 0x00000002, #orientation of the POINTER_TOUCH_INFO structure is valid. :TOUCH_MASK_PRESSURE, 0x00000004, #pressure of the POINTER_TOUCH_INFO structure is valid. ]
- SMTO =
enum :smto, [ :ABORTIFHUNG, 0x0002, # The function returns without waiting for the time-out period to elapse if the receiving # thread appears to not respond or "hangs." :BLOCK, 0x0001, # Prevents the calling thread from processing any other requests until the function returns. :NORMAL, 0x0000, # The calling thread is not prevented from processing other requests while waiting for the # function to return. :NOTIMEOUTIFNOTHUNG, 0x0008, # The function does not enforce the time-out period as long as the receiving thread # is processing messages. :ERRORONEXIT, 0x0020, # The function should return 0 if the receiving window is destroyed or its owning thread # dies while the message is being processed. ]
- WindowHook =
enum :window_hook, [ :MSGFILTER, -1, # Installs a hook procedure that monitors messages generated as a result of an input event in a # dialog box, message box, menu, or scroll bar. For more information, see the MessageProc hook procedure. :JOURNALRECORD, 0, # Installs a hook procedure that records input messages posted to the system message queue. # This hook is useful for recording macros. For more information, see the JournalRecordProc hook procedure. :JOURNALPLAYBACK, 1, # Installs a hook procedure that posts messages previously recorded by a :JOURNALRECORD # hook procedure. For more information, see the JournalPlaybackProc hook procedure. :KEYBOARD, 2, # Installs a hook procedure that monitors keystroke messages. For more information, see the # KeyboardProc hook procedure. :GETMESSAGE, 3, # Installs a hook procedure that monitors messages posted to a message queue. For more # information, see the GetMsgProc hook procedure. :CALLWNDPROC, 4, # Installs a hook procedure that monitors messages before the system sends them to the # destination window procedure. For more information, see the CallWndProc hook procedure. :CBT, 5, # Installs a hook procedure that receives notifications useful to a CBT application. For more # information, see the CBTProc hook procedure. :SYSMSGFILTER, 6, # Installs a hook procedure that monitors messages generated as a result of an input event in # a dialog box, message box, menu, or scroll bar. The hook procedure monitors these messages for all # applications in the same desktop as the calling thread. For more information, see the SysMsgProc hook # procedure. :MOUSE, 7, # Installs a hook procedure that monitors mouse messages. For more information, see the MouseProc # hook procedure. :DEBUG, 9, # Installs a hook procedure useful for debugging other hook procedures. For more information, see the # DebugProc hook procedure. :SHELL, 10, # Installs a hook procedure that receives notifications useful to shell applications. For more # information, see the ShellProc hook procedure. :FOREGROUNDIDLE, 11, # Installs a hook procedure that will be called when the application's foreground thread is # about to become idle. This hook is useful for performing low priority tasks during idle time. For more # information, see the ForegroundIdleProc hook procedure. :CALLWNDPROCRET, 12, # Installs a hook procedure that monitors messages after they have been processed by the # destination window procedure. For more information, see the CallWndRetProc hook procedure. :KEYBOARD_LL, 13, # Installs a hook procedure that monitors low-level keyboard input events. For more # information, see the LowLevelKeyboardProc hook procedure. :MOUSE_LL, 14, # Installs a hook procedure that monitors low-level mouse input events. For more information, see # the LowLevelMouseProc hook procedure. ]
- BorderFlags =
Border flags
enum :border_flags, [ :LEFT, 0x0001, :TOP, 0x0002, :TOPLEFT, 0x0003, :RIGHT, 0x0004, :TOPRIGHT, 0x0006, :BOTTOM, 0x0008, :BOTTOMLEFT, 0x0009, :DIAGONAL, 0x0010, :BOTTOMRIGHT, 0x0012, :RECT, 0x0015, :DIAGONAL_ENDTOPLEFT, 0x0019, :DIAGONAL_ENDTOPRIGHT, 0x0022, :DIAGONAL_ENDBOTTOMLEFT, 0x0025, :DIAGONAL_ENDBOTTOMRIGHT, 0x0028, :MIDDLE, 0x0800, # Fill in the middle :SOFT, 0x1000, # For softer buttons :ADJUST, 0x2000, # Calculate the space left over :FLAT, 0x4000, # For flat rather than 3D borders :MONO, 0x8000 # For monochrome borders ]
- FEEDBACK_TYPE =
enum :feedback_type, [ :TOUCH_CONTACTVISUALIZATION, 1, :PEN_BARRELVISUALIZATION, 2, :PEN_TAP, 3, :PEN_DOUBLETAP, 4, :PEN_PRESSANDHOLD, 5, :PEN_RIGHTTAP, 6, :TOUCH_TAP, 7, :TOUCH_DOUBLETAP, 8, :TOUCH_PRESSANDHOLD, 9, :TOUCH_RIGHTTAP, 10, :GESTURE_PRESSANDTAP, 11, :MAX, 0xFFFFFFFF ]
- PointerFlags =
enum :pointer_flags, [ :NONE, 0x00000000, # Default :NEW, 0x00000001, # Indicates the arrival of a new pointer. :INRANGE, 0x00000002, # Indicates that this pointer continues to exist. When this flag is not set, # it indicates the pointer has left detection range. This flag is typically not set only when a hovering pointer # leaves detection range (POINTER_FLAG_UPDATE is set) or when a pointer in contact with a window surface leaves # detection range (POINTER_FLAG_UP is set). :INCONTACT, 0x00000004, #Indicates that this pointer is in contact with the digitizer surface. # When this flag is not set, it indicates a hovering pointer. :FIRSTBUTTON, 0x00000010, # Indicates a primary action, analogous to a left mouse button down. #A touch pointer has this flag set when it is in contact with the digitizer surface. #A pen pointer has this flag set when it is in contact with the digitizer surface with no buttons pressed. #A mouse pointer has this flag set when the left mouse button is down. :SECONDBUTTON, 0x00000020, # Indicates a secondary action, analogous to a right mouse button down. #A touch pointer does not use this flag. A pen pointer has this flag set when it is in contact with the # digitizer surface with the pen barrel button pressed.A mouse pointer has this flag set when the right mouse # button is down. :THIRDBUTTON, 0x00000040, # Analogous to a mouse wheel button down. A touch pointer does not use # this flag. A pen pointer does not use this flag. A mouse pointer has this flag set when the mouse wheel button # is down. :FOURTHBUTTON, 0x00000080, # Analogous to a first extended mouse (XButton1) button down. # A touch pointer does not use this flag. # A pen pointer does not use this flag. # A mouse pointer has this flag set when the first extended mouse (XBUTTON1) button is down. :FIFTHBUTTON, 0x00000100, # Analogous to a second extended mouse (XButton2) button down. # A touch pointer does not use this flag. # A pen pointer does not use this flag. # A mouse pointer has this flag set when the second extended mouse (XBUTTON2) button is down. :PRIMARY, 0x00002000, # Indicates that this pointer has been designated as the primary pointer. # A primary pointer is a single pointer that can perform actions beyond those available to non-primary pointers. # For example, when a primary pointer makes contact with a window’s surface, it may provide the window an # opportunity to activate by sending it a WM_POINTERACTIVATE message. The primary pointer is identified from all # current user interactions on the system (mouse, touch, pen, and so on). As such, the primary pointer might not # be associated with your app. The first contact in a multi-touch interaction is set as the primary pointer. # Once a primary pointer is identified, all contacts must be lifted before a new contact can be identified as a # primary pointer. For apps that don't process pointer input, only the primary pointer's events are promoted to # mouse events. :CONFIDENCE, 0x000004000, # Confidence is a suggestion from the source device about whether the # pointer represents an intended or accidental interaction, which is especially relevant for PT_TOUCH pointers # where an accidental interaction (such as with the palm of the hand) can trigger input. The presence of this # flag indicates that the source device has high confidence that this input is part of an intended interaction. :POINTER_FLAG_CANCELED, 0x000008000, #Indicates that the pointer is departing in an abnormal manner, such as # when the system receives invalid input for the pointer or when a device with active pointers departs abruptly. # If the application receiving the input is in a position to do so, it should treat the interaction as not # completed and reverse any effects of the concerned pointer. :POINTER_FLAG_DOWN, 0x00010000, # Indicates that this pointer transitioned to a down state; that is, it made # contact with the digitizer surface. :POINTER_FLAG_UPDATE, 0x00020000, # Indicates that this is a simple update that does not include pointer state # changes. :POINTER_FLAG_UP, 0x00040000, # Indicates that this pointer transitioned to an up state; that is, it broke # contact with the digitizer surface. :POINTER_FLAG_WHEEL, 0x00080000, # Indicates input associated with a pointer wheel. For mouse pointers, this is # equivalent to the action of the mouse scroll wheel (WM_MOUSEWHEEL). :POINTER_FLAG_HWHEEL, 0x00100000, # Indicates input associated with a pointer h-wheel. For mouse pointers, this # is equivalent to the action of the mouse horizontal scroll wheel (WM_MOUSEHWHEEL). :POINTER_FLAG_CAPTURECHANGED, 0x00200000, # Indicates that this pointer was captured by (associated with) # another element and the original element has lost capture (see WM_POINTERCAPTURECHANGED) ]
- MessageFilter =
enum :message_filter, [ :ADD, 1, :REMOVE, 2 ]
- KeyEventFlags =
enum :key_event_flags, [ :EXTENDEDKEY, 0x0001, # If specified, the scan code was preceded by a prefix byte having the value 0xE0 (224). :KEYUP, 0x0002, # If specified, the key is being released. If not specified, the key is being depressed. ]
- MapVirtualKey =
enum :map_virtual_key, [ :VK_TO_VSC, 0, # uCode is a virtual-key code and is translated into a scan code. If it is a virtual-key code t # hat does not distinguish between left- and right-hand keys, the left-hand scan code is returned. If there is # no translation, the function returns 0. :VSC_TO_VK, 1, #uCode is a scan code and is translated into a virtual-key code that does not distinguish between # left-hand right-hand keys. If there is no translation, the function returns 0. :VK_TO_CHAR, 2, # uCode is a virtual-key code and is translated into an unshifted character value in the # low-order word of the return value. Dead keys (diacritics) are indicated by setting the top bit of the return # value. If there is no translation, the function returns 0. :VSC_TO_VK_EX, 3, # uCode is a scan code and is translated into a virtual-key code that distinguishes between # left- and right-hand keys. If there is no translation, the function returns 0. ]
- MouseKeysFlags =
enum :mouse_keys_flags, [ :ctrl, 0x0008, #The CTRL key is down. :lbutton, 0x0001, #The left mouse button is down. :mbutton, 0x0010, #The middle mouse button is down. :rbutton, 0x0002, #The right mouse button is down. :shift, 0x0004, #The SHIFT key is down. :xbutton1, 0x0020, #The first X button is down. :xbutton2, 0x0040 #The second X button is down. ]
- AppendMenuFlags =
enum :append_menu_flags, [ :UNCHECKED, 0x00000000, :STRING, 0x00000000, :ENABLED, 0x00000000, :GRAYED, 0x00000001, :DISABLED, 0x00000002, :BITMAP, 0x00000004, :CHECKED, 0x00000008, :POPUP, 0x00000010, :MENUBARBREAK, 0x00000020, :MENUBREAK, 0x00000040, :OWNERDRAW, 0x00000100, :SEPARATOR, 0x00000800 ]
- ClipboardFormats =
enum :clipboard_formats, [ :TEXT, 1, :BITMAP, 2, :METAFILEPICT, 3, :SYLK, 4, :DIF, 5, :TIFF, 6, :OEMTEXT, 7, :DIB, 8, :PALETTE, 9, :PENDATA, 10, :RIFF, 11, :WAVE, 12, :UNICODETEXT, 13, :ENHMETAFILE, 14, :HDROP, 15, :LOCALE, 16, :MAX, 18, # Assume Windows 2000 or later :OWNERDISPLAY, 0x0080, :DSPTEXT, 0x0081, :DSPBITMAP, 0x0082, :DSPMETAFILEPICT, 0x0083, :DSPENHMETAFILE, 0x008E ]
- MouseEventFlags =
enum :mouse_event_flags, [ :MOVE, 0x0001, # Movement occurred. :LEFTDOWN, 0x0002, # The left button is down. :LEFTUP, 0x0004, # The left button is up. :RIGHTDOWN, 0x0008, # The right button is down. :RIGHTUP, 0x0010, # The right button is up. :MIDDLEDOWN, 0x0020, # The middle button is down. :MIDDLEUP, 0x0040, # The middle button is up. :XDOWN, 0x0080, # An X button was pressed. :XUP, 0x0100, # An X button was released. :WHEEL, 0x0800, # The wheel has been moved, if the mouse has a wheel. The amount of movement is specified in # dwData, # The wheel button is rotated. :HWHEEL, 0x01000, # The wheel button is tilted. :ABSOLUTE, 0x8000, # The dx and dy parameters contain normalized absolute coordinates. If not set, those # parameters contain relative data: the change in position since the last reported position. This flag can be # set, or not set, regardless of what kind of mouse or mouse-like device, if any, is connected to the system. # For further information about relative mouse motion, see the following Remarks section. ]
- VirtualKeyFlags =
enum :virtual_key_flags, [ :lbutton, 0x01, #Left mouse button :rbutton, 0x02, #Right mouse button :cancel, 0x03, #Control-break processing :mbutton, 0x04, #Middle mouse button (three-button mouse) :xbutton1, 0x05, #X1 mouse button :xbutton2, 0x06, #X2 mouse button #-, 0x07, #Undefined :backspace, 0x08, #BACKSPACE key :tab, 0x09, #TAB key #-, 0x0A-0B, #Reserved :clear, 0x0C, #CLEAR key :enter, 0x0D, #ENTER key #:return, 0x0D, #ENTER key #-, 0x0E-0F, #Undefined :shift, 0x10, #SHIFT key :control, 0x11, #CTRL key :menu, 0x12, #ALT key :pause, 0x13, #PAUSE key :capital, 0x14, #CAPS LOCK key :kana, 0x15, #IME Kana mode :hanguel, 0x15, #IME Hanguel mode (maintained for compatibility; use :HANGUL) :hangul, 0x15, #IME Hangul mode #-, 0x16, #Undefined :junja, 0x17, #IME Junja mode :final, 0x18, #IME final mode :hanja, 0x19, #IME Hanja mode :kanji, 0x19, #IME Kanji mode #-, 0x1A, #Undefined :esc, 0x1B, #ESC key #:escape, 0x1B, #ESC key :convert, 0x1C, #IME convert :nonconvert, 0x1D, #IME nonconvert :accept, 0x1E, #IME accept :modechange, 0x1F, #IME mode change request :space, 0x20, #SPACEBAR :prior, 0x21, #PAGE UP key :next, 0x22, #PAGE DOWN key :end, 0x23, #END key :home, 0x24, #HOME key :left, 0x25, #LEFT ARROW key :up, 0x26, #UP ARROW key :right, 0x27, #RIGHT ARROW key :down, 0x28, #DOWN ARROW key :select, 0x29, #SELECT key :print, 0x2A, #PRINT key :execute, 0x2B, #EXECUTE key :snapshot, 0x2C, #PRINT SCREEN key :ins, 0x2D, #INS key :insert, 0x2D, #INS key :del, 0x2E, #DEL key :delete, 0x2E, #DEL key :help, 0x2F, #HELP :n0, 0x30, :n1, 0x31, :n2, 0x32, :n3, 0x33, :n4, 0x34, :n5, 0x35, :n6, 0x36, :n7, 0x37, :n8, 0x38, :n9, 0x39, :'0', 0x30, :'1', 0x31, :'2', 0x32, :'3', 0x33, :'4', 0x34, :'5', 0x35, :'6', 0x36, :'7', 0x37, :'8', 0x38, :'9', 0x39, #-, 0x3A-40, #Undefined, :a, 0x41, :b, 0x42, :c, 0x43, :d, 0x44, :e, 0x45, :f, 0x46, :g, 0x47, :h, 0x48, :i, 0x49, :j, 0x4A, :k, 0x4B, :l, 0x4C, :m, 0x4D, :n, 0x4E, :o, 0x4F, :p, 0x50, :q, 0x51, :r, 0x52, :s, 0x53, :t, 0x54, :u, 0x55, :v, 0x56, :w, 0x57, :x, 0x58, :y, 0x59, :z, 0x5A, :lwin, 0x5B, #Left Windows key (Natural keyboard) :rwin, 0x5C, #Right Windows_key (Natural keyboard) :apps, 0x5D, #Applications_key (Natural keyboard) #-, 0x5E, #Reserved :sleep, 0x5F, #Computer Sleep key :numpad0, 0x60, #Numeric keypad 0 key :numpad1, 0x61, #Numeric keypad 1 key :numpad2, 0x62, #Numeric keypad 2 key :numpad3, 0x63, #Numeric keypad 3 key :numpad4, 0x64, #Numeric keypad 4 key :numpad6, 0x66, #Numeric keypad 6 key :numpad7, 0x67, #Numeric keypad 7 key :numpad8, 0x68, #Numeric keypad 8 key :numpad5, 0x65, #Numeric keypad 5 key :numpad9, 0x69, #Numeric keypad 9 key :multiply, 0x6A, #Multiply key :add, 0x6B, #Add key :separator, 0x6C, #Separator key :subtract, 0x6D, #Subtract key :decimal, 0x6E, #Decimal key :divide, 0x6F, #Divide key :f1, 0x70, #F1_key :f2, 0x71, #F2_key :f3, 0x72, #F3_key :f4, 0x73, #F4_key :f5, 0x74, #F5_key :f6, 0x75, #F6_key :f7, 0x76, #F7_key :f8, 0x77, #F8_key :f9, 0x78, #F9_key :f10, 0x79, #F10_key :f11, 0x7A, #F11_key :f12, 0x7B, #F12_key :f13, 0x7C, #F13_key :f14, 0x7D, #F14_key :f15, 0x7E, #F15_key :f16, 0x7F, #F16_key :f17, 0x80, #F17_key :f18, 0x81, #F18_key :f19, 0x82, #F19_key :f20, 0x83, #F20_key :f21, 0x84, #F21_key :f22, 0x85, #F22_key :f23, 0x86, #F23_key :f24, 0x87, #F24_key #-, 0x88-8F, #Unassigned :numlock, 0x90, #NUM LOCK_key :scroll, 0x91, #SCROLL LOCK_key, # 0x92-96, #OEM specific #-, 0x97-9F, #Unassigned :lshift, 0xA0, #Left SHIFT_key :rshift, 0xA1, #Right SHIFT_key :lcontrol, 0xA2, #Left CONTROL_key :rcontrol, 0xA3, #Right CONTROL_key :lmenu, 0xA4, #Left MENU_key :rmenu, 0xA5, #Right MENU_key :browser_back, 0xA6, #Browser Back_key :browser_forward, 0xA7, #Browser Forward_key :browser_refresh, 0xA8, #Browser Refresh_key :browser_stop, 0xA9, #Browser Stop_key :browser_search, 0xAA, #Browser Search_key :browser_favorites, 0xAB, #Browser Favorites_key :browser_home, 0xAC, #Browser Start and Home_key :volume_mute, 0xAD, #Volume Mute_key :volume_down, 0xAE, #Volume Down_key :volume_up, 0xAF, #Volume Up_key :media_next_track, 0xB0, #Next Track_key :media_prev_track, 0xB1, #Previous Track_key :media_stop, 0xB2, #Stop Media_key :media_play_pause, 0xB3, #Play/Pause Media_key :launch_mail, 0xB4, #Start Mail_key :launch_media_select, 0xB5, #Select Media_key :launch_app1, 0xB6, #Start Application 1_key :launch_app2, 0xB7, #Start Application 2_key #-, 0xB8-B9, Reserved :oem_1, 0xBA, #Used for miscellaneous characters; it can vary by_keyboard. For the US standard_keyboard, the ';:'_key :oem_plus, 0xBB, #For any country/region, the '+'_key :oem_comma, 0xBC, #For any country/region, the ','_key :oem_minus, 0xBD, #For any country/region, the '-'_key :oem_period, 0xBE, #For any country/region, the '.'_key :oem_2, 0xBF, #Used for miscellaneous characters; it can vary by_keyboard. For the US standard_keyboard, the '/?'_key :oem_3, 0xC0, #Used for miscellaneous characters; it can vary by_keyboard. For the US standard_keyboard, the '`~'_key #-, 0xC1-D7, Reserved #-, 0xD8-DA, Assigned :oem_4, 0xDB, #Used for miscellaneous characters; it can vary by_keyboard. For the US standard_keyboard, the '[{'_key :oem_5, 0xDC, #Used for miscellaneous characters; it can vary by_keyboard. For the US standard_keyboard, the '\|'_key :oem_6, 0xDD, #Used for miscellaneous characters; it can vary by_keyboard. For the US standard_keyboard, the ']}'_key :oem_7, 0xDE, #Used for miscellaneous characters; it can vary by_keyboard. For the US standard_keyboard, the 'single-quote/double-quote'_key :oem_8, 0xDF, #Used for miscellaneous characters; it can vary by_keyboard. #-, 0xE0, Reserved # 0xE1, OEM Specific :oem_102, 0xE2, #Either the angle bracket_key or the backslash_key on the RT 102-key_keyboard, # 0xE3-E4, #OEM specific :process, 0xE5, #IME PROCESS_key, # 0xE6, #OEM specific :packet, 0xE7, #Used to pass Unicode characters as if they were_keystrokes. The :PACKET_key is the low word of a 32-bit Virtual_key value used for non-keyboard input methods. For more information, see Remark in_keyBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP #-, 0xE8, #Unassigned, # 0xE9-F5, #OEM specific :attn, 0xF6, #Attn_key :crsel, 0xF7, #CrSel_key :exsel, 0xF8, #ExSel_key :ereof, 0xF9, #Erase EOF_key :play, 0xFA, #Play_key :zoom, 0xFB, #Zoom_key :noname, 0xFC, #Reserved :pa1, 0xFD, #PA1_key ]
- MenuFlags =
enum :menu_flags, [ :BYCOMMAND, 0x00000000, :ENABLED, 0x00000000, :STRING, 0x00000000, :UNCHECKED, 0x00000000, :INSERT, 0x00000000, :UNHILITE, 0x00000000, :GRAYED, 0x00000001, :DISABLED, 0x00000002, :BITMAP, 0x00000004, :CHECKED, 0x00000008, :POPUP, 0x00000010, :MENUBARBREAK, 0x00000020, :MENUBREAK, 0x00000040, :CHANGE, 0x00000080, :HILITE, 0x00000080, :END, 0x00000080, :OWNERDRAW, 0x00000100, :APPEND, 0x00000100, :DELETE, 0x00000200, :USECHECKBITMAPS, 0x00000200, :BYPOSITION, 0x00000400, :SEPARATOR, 0x00000800, :REMOVE, 0x00001000, :DEFAULT, 0x00001000, :SYSMENU, 0x00002000, :HELP, 0x00004000, :RIGHTJUSTIFY, 0x00004000, :MOUSESELECT, 0x00008000 ]
- OBJID_WINDOW =
System Objec
0x00000000- OBJID_SYSMENU =
0xFFFFFFFF- OBJID_TITLEBAR =
0xFFFFFFFE- OBJID_MENU =
0xFFFFFFFD- OBJID_CLIENT =
0xFFFFFFFC- OBJID_VSCROLL =
0xFFFFFFFB- OBJID_HSCROLL =
0xFFFFFFFA- OBJID_SIZEGRIP =
0xFFFFFFF9- OBJID_CARET =
0xFFFFFFF8- OBJID_CURSOR =
0xFFFFFFF7- OBJID_ALERT =
0xFFFFFFF6- OBJID_SOUND =
0xFFFFFFF5- OBJID_QUERYCLASSNAMEIDX =
0xFFFFFFF4- OBJID_NATIVEOM =
0xFFFFFFF0- DrawCaptionFlags =
enum :draw_caption_flags, [ :ACTIVE, 0x0001, :SMALLCAP, 0x0002, :ICON, 0x0004, :TEXT, 0x0008, :INBUTTON, 0x0010, :GRADIENT, 0x0020, :BUTTONS, 0x1000 ]
- GetAncestorFlags =
enum :get_ancestor_flags, [ :PARENT, 1, :ROOT, 2, :ROOTOWNER, 3 ]
- KeyboardModifiers =
enum :keyboard_modifiers, [ :alt, 0x0001, #Either ALT key must be held down. :control, 0x0002, #Either CTRL key must be held down. :ctrl, 0x0002, :norepeat, 0x4000, #Changes the hotkey behavior so that the keyboard auto-repeat does not yield multiple hotkey notifications. #Windows Vista and Windows XP/2000: This flag is not supported. :shift, 0x0004, #Either SHIFT key must be held down. :windows, 0x0008, #Either WINDOWS key was held down. These keys are labeled with the Windows logo. Keyboard shortcuts that involve the WINDOWS key are reserved for use by the operating system. ]
- PointerInputType =
enum :pointer_input_type, [ :PT_POINTER, 0x00000001, :PT_TOUCH, 0x00000002, :PT_PEN, 0x00000003, :PT_MOUSE, 0x00000004 ]
- QueueStatusFlags =
enum :queue_status_flags, [ :KEY, 0x0001, # A WM_KEYUP, WM_KEYDOWN, WM_SYSKEYUP, or WM_SYSKEYDOWN message is in the queue. :MOUSEMOVE, 0x0002, # A WM_MOUSEMOVE message is in the queue. :MOUSEBUTTON, 0x0004, # A mouse-button message (WM_LBUTTONUP, WM_RBUTTONDOWN, and so on). :POSTMESSAGE, 0x0008, # A posted message (other than those listed here) is in the queue. :TIMER, 0x0010, # A WM_TIMER message is in the queue. :PAINT, 0x0020, # A WM_PAINT message is in the queue. :SENDMESSAGE, 0x0040, # A message sent by another thread or application is in the queue. :HOTKEY, 0x0080, # A WM_HOTKEY message is in the queue. :ALLPOSTMESSAGE, 0x0100, # A posted message (other than those listed here) is in the queue. :RAWINPUT, 0x0400, #A raw input message is in the queue. For more information, see Raw Input. #Windows 2000: This flag is not supported. :MOUSE, 0x0006, #(:MOUSEMOVE | :MOUSEBUTTON), # A WM_MOUSEMOVE message or mouse-button message # (WM_LBUTTONUP, WM_RBUTTONDOWN, and so on). :INPUT, 0x0407, #(:MOUSE | :KEY | :RAWINPUT), # An input message is in the queue. :ALLEVENTS, 0x04B7, # (:INPUT | :POSTMESSAGE | :TIMER | :PAINT | :HOTKEY), # An input, WM_TIMER, WM_PAINT, # WM_HOTKEY, or posted message is in the queue. :ALLINPUT, 0x04FF, # (:INPUT | :POSTMESSAGE | :TIMER | :PAINT | :HOTKEY | :SENDMESSAGE), # Any message is in the # queue. ]
- WindowLong =
enum :window_long, [ :WNDPROC, -4, #Sets a new address for the window procedure. You cannot change this attribute if the # window does not belong to the same process as the calling thread. :HINSTANCE, -6, #Sets a new application instance handle. :ID, -12, #Sets a new identifier of the child window. The window cannot be a top-level window. :STYLE, -16, #Sets a new window style. :EXSTYLE, -20, #Sets a new extended window style. :USERDATA, -21, #Sets 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. ]
- DeviceNotifyFlags =
enum :device_notify_flags, [ :WINDOW_HANDLE, 0x00000000, # The hRecipient parameter is a window handle. :SERVICE_HANDLE, 0x00000001, # The hRecipient parameter is a service status handle. # In addition, you can specify the following value. :ALL_INTERFACE_CLASSES, 0x00000004, # Notifies the recipient of device interface events for all device interface # classes. (The dbcc_classguid member is ignored.) This value can be used only if the dbch_devicetype member is # DBT_DEVTYP_DEVICEINTERFACE. ]
- KeyboardLayoutFlags =
enum :keyboard_layout_flags, [ :ACTIVATE, 0x00000001, # If the specified input locale identifier is not already loaded, the function loads # and activates the input locale identifier for the current thread. :SUBSTITUTE_OK, 0x00000002, # Substitutes the specified input locale identifier with another locale preferred # by the user. The system starts with this flag set, and it is recommended that your application always use # this flag. The substitution occurs only if the registry key HKEY_CURRENT_USER\Keyboard\Layout\Substitutes # explicitly defines a substitution locale. For example, if the key includes the value name "00000409" with # value "00010409", loading the U.S. English layout ("00000409") causes the Dvorak U.S. English layout # ("00010409") to be loaded instead. The system uses :SUBSTITUTE_OK when booting, and it is recommended that # all applications use this value when loading input locale identifiers to ensure that the user's preference # is selected. :REORDER, 0x00000008, # If this bit is set, the system's circular list of loaded locale identifiers is # reordered by moving the locale identifier to the head of the list. If this bit is not set, the list is rotated # without a change of order. For example, if a user had an English locale identifier active, as well as having # French, German, and Spanish locale identifiers loaded (in that order), then activating the German locale # identifier with the KLF_REORDER bit set would produce the following order: German, English, French, Spanish. # Activating the German locale identifier without the KLF_REORDER bit set would produce the following order: # German, Spanish, English, French. If less than three locale identifiers are loaded, the value of this flag is # irrelevant. :REPLACELANG, 0x00000010, # If the new input locale identifier has the same language identifier as a current # input locale identifier, the new input locale identifier replaces the current one as the input locale # identifier for that language. If this value is not provided and the input locale identifiers have the same # language identifiers, the current input locale identifier is not replaced and the function returns NULL. :NOTELLSHELL, 0x00000080, # Prevents a ShellProc hook procedure from receiving an HSHELL_LANGUAGE hook code when # the new input locale identifier is loaded. This value is typically used when an application loads multiple # input locale identifiers one after another. Applying this value to all but the last input locale identifier # delays the shell's processing until all input locale identifiers have been added. :SETFORPROCESS, 0x00000100, #This flag is valid only with :ACTIVATE. Activates the specified input locale # identifier for the entire process and sends the WM_INPUTLANGCHANGE message to the current thread's Focus or # Active window. Typically, LoadKeyboardLayout activates an input locale identifier only for the current thread. :SHIFTLOCK, 0x00010000, # This is used with KLF_RESET. See KLF_RESET for an explanation. #KLF_UNLOADPREVIOUS #This flag is unsupported. Use the UnloadKeyboardLayout function instead. :RESET, 0x40000000, # If set but KLF_SHIFTLOCK is not set, the Caps Lock state is turned off by pressing the # Caps Lock key again. If set and KLF_SHIFTLOCK is also set, the Caps Lock state is turned off by pressing # either SHIFT key. These two methods are mutually exclusive, and the setting persists as part of the User's # profile in the registry. ]
- ProcessDpiAwareness =
enum :process_dpi_awareness, [ :Process_DPI_Unaware, 0, # DPI unaware :Process_System_DPI_Aware, 1, # System DPI aware :Process_Per_Monitor_DPI_Aware, 2, # Per monitor DPI aware ]
- TouchInjectionFlags =
enum :touch_injection_flags, [ :TOUCH_FEEDBACK_DEFAULT, 0x1, # Specifies default touch visualizations. :TOUCH_FEEDBACK_INDIRECT, 0x2, # Specifies indirect touch visualizations. :TOUCH_FEEDBACK_NONE, 0x3, # Specifies no touch visualizations. :MAX_TOUCH_COUNT, 256, # Specifies the maximum number of simultaneous contacts. ]
- WindowMessages =
enum :window_messages,
- WindowProc =
LRESULT CALLBACK WindowProc(
_In_ HWND hwnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam ) callback :WindowProc, [:hwnd, :uint, :wparam, :lparam], :lresult
- GetWindowFlags =
enum :get_window_flags, [ :HWNDFIRST, 0, # The retrieved handle identifies the window of the same type that is highest in the Z order. # If the specified window is a topmost window, the handle identifies a topmost window. If the specified window # is a top-level window, the handle identifies a top-level window. If the specified window is a child window, # the handle identifies a sibling window. :HWNDLAST, 1, # The retrieved handle identifies the window of the same type that is lowest in the Z order. # If the specified window is a topmost window, the handle identifies a topmost window. If the specified window # is a top-level window, the handle identifies a top-level window. If the specified window is a child window, # the handle identifies a sibling window. :HWNDNEXT, 2, # The retrieved handle identifies the window below the specified window in the Z order. # If the specified window is a topmost window, the handle identifies a topmost window. If the specified window # is a top-level window, the handle identifies a top-level window. If the specified window is a child window, # the handle identifies a sibling window. :HWNDPREV, 3, # The retrieved handle identifies the window above the specified window in the Z order. # If the specified window is a topmost window, the handle identifies a topmost window. If the specified window # is a top-level window, the handle identifies a top-level window. If the specified window is a child window, # the handle identifies a sibling window. :OWNER, 4, # The retrieved handle identifies the specified window's owner window, if any. For more information, # see Owned Windows. :CHILD, 5, # The retrieved handle identifies the child window at the top of the Z order, if the specified window # is a parent window; otherwise, the retrieved handle is NULL. The function examines only child windows of the # specified window. It does not examine descendant windows. :ENABLEDPOPUP, 6, # The retrieved handle identifies the enabled popup window owned by the specified window # (the search uses the first such window found using :HWNDNEXT); otherwise, if there are no enabled popup # windows, the retrieved handle is that of the specified window. ]
- EditStyle =
enum :edit_style, [ :AUTOHSCROLL, :AUTOVSCROLL, :CENTER, :LEFT, :LOWERCASE, :MULTILINE, :NOHIDESEL, :NUMBER, :OEMCONVERT, :PASSWORD, :READONLY, :RIGHT, :UPPERCASE, :WANTRETURN ]
- DrawFrameControlFlags =
Flags for DrawFrameControl
enum :draw_frame_control_flags, [ :CAPTION, 1, :MENU, 2, :SCROLL, 3, :BUTTON, 4, :POPUPMENU, 5 ]
- ComboBoxMessage =
enum :combo_box_message, [ :GETEDITSEL, 0x0140, :LIMITTEXT, 0x0141, :SETEDITSEL, 0x0142, :ADDSTRING, 0x0143, :DELETESTRING, 0x0144, :DIR, 0x0145, :GETCOUNT, 0x0146, :GETCURSEL, 0x0147, :GETLBTEXT, 0x0148, :GETLBTEXTLEN, 0x0149, :INSERTSTRING, 0x014A, :RESETCONTENT, 0x014B, :FINDSTRING, 0x014C, :SELECTSTRING, 0x014D, :SETCURSEL, 0x014E, :SHOWDROPDOWN, 0x014F, :GETITEMDATA, 0x0150, :SETITEMDATA, 0x0151, :GETDROPPEDCONTROLRECT, 0x0152, :SETITEMHEIGHT, 0x0153, :GETITEMHEIGHT, 0x0154, :SETEXTENDEDUI, 0x0155, :GETEXTENDEDUI, 0x0156, :GETDROPPEDSTATE, 0x0157, :FINDSTRINGEXACT, 0x0158, :SETLOCALE, 0x0159, :GETLOCALE, 0x015A, :GETTOPINDEX, 0x015b, :MSGMAX, 0x015B, :SETTOPINDEX, 0x015c, :GETHORIZONTALEXTENT, 0x015d, :SETHORIZONTALEXTENT, 0x015e, :GETDROPPEDWIDTH, 0x015f, :SETDROPPEDWIDTH, 0x0160, :INITSTORAGE, 0x0161, :MSGMAX, 0x0162, :MULTIPLEADDSTRING, 0x0163, :MSGMAX, 0x0163, ]
- MessageBoxFlags =
enum :message_box_flags, [ # Buttons --------------------- :ABORTRETRYIGNORE, 0x00000002, # Push buttons: Abort, Retry, and Ignore. # The message box contains three push buttons: Cancel, Try Again, Continue. Use this message box type instead of MB_ABORTRETRYIGNORE. :CANCELTRYCONTINUE, 0x00000006, # Adds a Help button to the message box. When the user clicks the Help button or presses F1, the system sends a # WM_HELP message to the owner. :HELP, 0x00004000, :OK, 0x00000000, # Push button: OK. This is the default. :OKCANCEL, 0x00000001, # Push buttons: OK and Cancel. :RETRYCANCEL, 0x00000005, # Push buttons: Retry and Cancel. :YESNO, 0x00000004, # Push buttons: Yes and No. :YESNOCANCEL, 0x00000003, # Push buttons: Yes, No, and Cancel. # Icons ----------------------- :ICONEXCLAMATION, 0x00000030, # An exclamation-point icon :ICONWARNING, 0x00000030, # Same as above :ICONINFORMATION, 0x00000040, # Lowercase letter i in a circle :ICONASTERISK, 0x00000040, # Same as above :ICONQUESTION, 0x00000020, # A question-mark icon. Not Recomended :ICONSTOP, 0x00000010, # A stop-sign icon :ICONERROR, 0x00000010, # Same as above :ICONHAND, 0x00000010, # Same as above # Modality -------------------- # The user must respond to the message box before continuing work in the # window identified by the hWnd parameter. However, the user can move to the # windows of other threads and work in those windows. # Depending on the hierarchy of windows in the application, the user may be # able to move to other windows within the thread. All child windows of the # parent of the message box are automatically disabled, but pop-up windows are # not. # MB_APPLMODAL is the default if neither MB_SYSTEMMODAL nor MB_TASKMODAL # is specified. :APPLMODAL, 0x00000000, # Same as MB_APPLMODAL except that the message box has the WS_EX_TOPMOST style # Use system-modal message boxes to notify the user of serious, potentially # damaging errors that require immediate attention (for example, running out # of memory). This flag has no effect on the user's ability to interact with # windows other than those associated with hWnd. :SYSTEMMODAL, 0x00001000, # Same as MB_APPLMODAL except that all the top-level windows belonging to the # current thread are disabled if the hWnd parameter is NULL. Use this flag # when the calling application or library does not have a window handle # available but still needs to prevent input to other windows in the calling # thread without suspending other threads. :TASKMODAL, 0x00002000, # Other ----------------------- # Same as desktop of the interactive window station. For more information, # see Window Stations. # If the current input desktop is not the default desktop, MessageBox does not # return until the user switches to the default desktop. :DEFAULT_DESKTOP_ONLY, 0x00020000, :RIGHT, 0x00080000, # The text is right-justified. # Displays message and caption text using right-to-left reading order on # Hebrew and Arabic systems. :RTLREADING, 0x00100000, # The message box becomes the foreground window. Internally, the system calls # the SetForegroundWindow function for the message box. :SETFOREGROUND, 0x00010000, # The message box is created with the WS_EX_TOPMOST window style. :TOPMOST, 0x00040000, # The caller is a service notifying the user of an event. The function # displays a message box on the current active desktop, even if there is no # user logged on to the computer. # Terminal Services: If the calling thread has an impersonation token, the # function directs the message box to the session specified in the # impersonation token. # If this flag is set, the hWnd parameter must be NULL. This is so that the # message box can appear on a desktop other than the desktop corresponding to # the hWnd. # For information on security considerations in regard to using this flag, see # Interactive Services. In particular, be aware that this flag can produce # interactive content on a locked desktop and should therefore be used for # only a very limited set of scenarios, such as resource exhaustion. :SERVICE_NOTIFICATION, 0x00200000, ]
- ShowWindowFlags =
enum :show_window, [ :HIDE, #Hides the window and activates another window. :SHOWNORMAL, #Activates and displays a window. If the window is minimized or maximized, the system restores # it to its original size and position. An application should specify this flag when displaying the window for the first time. :SHOWMINIMIZED, #Activates the window and displays it as a minimized window. :MAXIMIZE, #Maximizes the specified window. :SHOWMAXIMIZED, 3, #Activates the window and displays it as a maximized window. :SHOWNOACTIVATE, #Displays the window as a minimized window. This value is similar to SW_SHOWMINIMIZED, except # the window is not activated. :SHOW, #Activates the window and displays it in its current size and position. :MINIMIZE, #Minimizes the specified window and activates the next top-level window in the Z order. :SHOWMINNOACTIVE, #Displays the window as a minimized window. This value is similar to SW_SHOWMINIMIZED, except # the window is not activated. :SHOWNA, #Displays the window in its current size and position. This value is similar to SW_SHOW, except # that the window is not activated. :RESTORE, #Activates and displays the window. If the window is minimized or maximized, the system # restores it to its original size and position. An application should specify this flag when restoring a # minimized window. :SHOWDEFAULT, #Sets the show state based on the SW_ value specified in the STARTUPINFO structure passed to # the CreateProcess function by the program that started the application. :FORCEMINIMIZE #Minimizes a window, even if the thread that owns the window is not responding. This flag # should only be used when minimizing windows from a different thread. ]
- MessageBoxReturn =
enum :message_box_return, [ :OK, 1, # The OK button was selected. :CANCEL, 2, # The Cancel button was selected. :ABORT, 3, # The Abort button was selected. :RETRY, 4, # The Retry button was selected. :IGNORE, 5, # The Ignore button was selected. :YES, 6, # The Yes button was selected. :NO, 7, # The No button was selected. :TRYAGAIN, 10, # The Try Again button was selected. :CONTINUE, 11 # The Continue button was selected. ]
- PeekMessageFlags =
enum :peek_message_flags, [ :NOREMOVE, 0x0000, # Messages are not removed from the queue after processing by PeekMessage. :REMOVE, 0x0001, # Messages are removed from the queue after processing by PeekMessage. :NOYIELD, 0x0002, # Prevents the system from releasing any thread that is waiting for the caller to go idle # (see WaitForInputIdle). Combine this value with either PM_NOREMOVE or PM_REMOVE. ]
- StaticStyle =
enum :static_style, [ :LEFT, 0x00000000, :CENTER, 0x00000001, :RIGHT, 0x00000002, :ICON, 0x00000003, :BLACKRECT, 0x00000004, :GRAYRECT, 0x00000005, :WHITERECT, 0x00000006, :BLACKFRAME, 0x00000007, :GRAYFRAME, 0x00000008, :WHITEFRAME, 0x00000009, :USERITEM, 0x0000000A, :SIMPLE, 0x0000000B, :LEFTNOWORDWRAP, 0x0000000C, :OWNERDRAW, 0x0000000D, :BITMAP, 0x0000000E, :ENHMETAFILE, 0x0000000F, :ETCHEDHORZ, 0x00000010, :ETCHEDVERT, 0x00000011, :ETCHEDFRAME, 0x00000012, :TYPEMASK, 0x0000001F, :NOPREFIX, 0x00000080, # Don't do "&" character translation :NOTIFY, 0x00000100, :CENTERIMAGE, 0x00000200, :RIGHTJUST, 0x00000400, :REALSIZEIMAGE, 0x00000800, :SUNKEN, 0x00001000, :EDITCONTROL, 0x00002000, :ENDELLIPSIS, 0x00004000, :PATHELLIPSIS, 0x00008000, :WORDELLIPSIS, 0x0000C000, :ELLIPSISMASK, 0x0000C000 ]
- WindowStyle =
enum :window_style, [ :BORDER, 0x00800000, # has a thin-line border. :CAPTION, 0x00C00000, # has a title bar (includes the WS_BORDER style). :BORDER | :DLGFRAME :CHILD, 0x40000000, # is a child window. A window with this style cannot have a menu bar. This style # cannot be used with the WS_POPUP style. :CHILDWINDOW, 0x40000000, # Same as the WS_CHILD style. :CLIPCHILDREN, 0x02000000, # Excludes the area occupied by child windows when drawing occurs within the parent # window. This style is used when creating the parent window. :CLIPSIBLINGS, 0x04000000, # Clips child windows relative to each other; that is, when a particular child # window receives a WM_PAINT message, the WS_CLIPSIBLINGS style clips all other overlapping child windows out of # the region of the child window to be updated. If WS_CLIPSIBLINGS is not specified and child windows overlap, it # is possible, when drawing within the client area of a child window, to draw within the client area of a # neighboring child window. :DISABLED, 0x08000000, # is initially disabled. A disabled window cannot receive input from the user. To # change this after a window has been created, use the EnableWindow function. :DLGFRAME, 0x00400000, #has a border of a style typically used with dialog boxes. A window with this style # cannot have a title bar. [Doesn't work] :GROUP, 0x00020000, # is the first control of a group of controls. The group consists of this first # control and all controls defined after it, up to the next control with the WS_GROUP style. The first control # in each group usually has the WS_TABSTOP style so that the user can move from group to group. The user can # subsequently change the keyboard focus from one control in the group to the next control in the group by using # the direction keys. You can turn this style on and off to change dialog box navigation. To change this style # after a window has been created, use the SetWindowLong function. :HSCROLL, 0x00100000, # has a horizontal scroll bar. :ICONIC, 0x20000000, # is initially minimized. Same as the WS_MINIMIZE style. :MAXIMIZE, 0x01000000, # is initially maximized. :MAXIMIZEBOX, 0x00010000, # has a maximize button. Cannot be combined with the WS_EX_CONTEXTHELP style. The # WS_SYSMENU style must also be specified. :MINIMIZE, 0x20000000, # is initially minimized. Same as the :ICONIC style. :MINIMIZEBOX, 0x00020000, # has a minimize button. Cannot be combined with the WS_EX_CONTEXTHELP style. The # WS_SYSMENU style must also be specified. :OVERLAPPED, 0x00000000, # is an overlapped window. An overlapped window has a title bar and a border. # Same as the WS_TILED style. :OVERLAPPEDWINDOW, 0x00CF0000, # is an overlapped window. Same as the :TILEDWINDOW style. :POPUP, 0x80000000, #s is a pop-up window. This style cannot be used with the :CHILD style. :POPUPWINDOW, 0x80880000, # is a pop-up window. The WS_CAPTION and WS_POPUPWINDOW styles must be combined to # make menu visible. :SIZEBOX, 0x00040000, # has a sizing border. Same as the :THICKFRAME style. :SYSMENU, 0x00080000, # has a window menu on its title bar. [ The :CAPTION style must also be specified. ]->should :TABSTOP, 0x00010000, # is a control that can receive the keyboard focus when the user presses the TAB # key. Pressing the TAB key changes the keyboard focus to the next control with the WS_TABSTOP style. You can turn # this style on and off to change dialog box navigation. To change this style after a window has been created, use # the SetWindowLong function. For user-created windows and modeless dialogs to work with tab stops, alter the # message loop to call the IsDialogMessage function. :THICKFRAME, 0x00040000, # has a sizing border. Same as the :SIZEBOX style. :TILED, 0x00000000, # is an overlapped window. An overlapped window has a title bar and a border. Same # as the :OVERLAPPED style. :TILEDWINDOW, 0x00CF0000, # is an overlapped window. Same as the :OVERLAPPEDWINDOW style. :VISIBLE, 0x10000000, # is initially visible. This style can be turned on and off by using the ShowWindow # or SetWindowPos function. :VSCROLL, 0x00200000 # has a vertical scroll bar. ]
- SystemMenuComand =
enum :system_menu_command, [ :SIZE, 0xF000, :MOVE, 0xF010, :MINIMIZE, 0xF020, :MAXIMIZE, 0xF030, :NEXTWINDOW, 0xF040, :PREVWINDOW, 0xF050, :CLOSE, 0xF060, :VSCROLL, 0xF070, :HSCROLL, 0xF080, :MOUSEMENU, 0xF090, :KEYMENU, 0xF100, :ARRANGE, 0xF110, :RESTORE, 0xF120, :TASKLIST, 0xF130, :SCREENSAVE, 0xF140, :HOTKEY, 0xF150, :DEFAULT, 0xF160, :MONITORPOWER, 0xF170, :CONTEXTHELP, 0xF180, :SEPARATOR, 0xF00F, ]
- AnimateWindowFlags =
enum :animate_window, [ :HOR_POSITIVE, 0x00000001, # Animates the window from left to right. This flag can be used with roll or slide # animation. It is ignored when used with AW_CENTER or AW_BLEND. :HOR_NEGATIVE, 0x00000002, # Animates the window from right to left. This flag can be used with roll or slide # animation. It is ignored when used with AW_CENTER or AW_BLEND. :SLIDE, 0x00040000, # Uses slide animation. By default, roll animation is used. This flag is ignored when used # with AW_CENTER. :VER_POSITIVE, 0x00000004, # Animates the window from top to bottom. This flag can be used with roll or slide # animation. It is ignored when used with AW_CENTER or AW_BLEND. :VER_NEGATIVE, 0x00000008, # Animates the window from bottom to top. This flag can be used with roll or slide # animation. It is ignored when used with AW_CENTER or AW_BLEND. :CENTER, 0x00000010, # Makes the window appear to collapse inward if AW_HIDE is used or expand outward if the # AW_HIDE is not used. The various direction flags have no effect. :HIDE, 0x00010000, # Hides the window. By default, the window is shown. :ACTIVATE, 0x00020000, # Activates the window. Do not use this value with AW_HIDE. :BLEND, 0x00080000, # Uses a fade effect. This flag can be used only if hwnd is a top-level window. ]
- GetClassLongFlags =
User32::ClassLong Class Field Offsets
enum :get_class_long_flags, [ :MENUNAME, -8, #Replaces the address of the menu name string. The string identifies the menu resource # associated with the class. :HBRBACKGROUND, -10, #Replaces a handle to the background brush associated with the class. :HCURSOR, -12, #Replaces a handle to the cursor associated with the class. :HICON, -14, #Replaces a handle to the icon associated with the class. :HMODULE, -16, #Replaces a handle to the module that registered the class. :CBWNDEXTRA, -18, #Sets the size, in bytes, of the extra window memory associated with each window in the # class. Setting this value does not change the number of extra bytes already allocated. For information on # how to access this memory, see SetWindowLong. :CBCLSEXTRA, -20, #Sets the size, in bytes, of the extra memory associated with the class. Setting this # value does not change the number of extra bytes already allocated. :WNDPROC, -24, #Replaces the address of the window procedure associated with the class. :STYLE, -26, #Replaces the window-class style bits. :HICONSM, -34, #Replace a handle to the small icon associated with the class. ]
- SetWindowPosFlags =
enum :set_windows_pos_flags, [ :NOSIZE, 0x0001, # Retains the current size (ignores the cx and cy parameters). :NOMOVE, 0x0002, # Retains the current position (ignores X and Y parameters). :NOZORDER, 0x0004, # Retains the current Z order (ignores the hWndInsertAfter parameter). :NOREDRAW, 0x0008, # Does not redraw changes. If this flag is set, no repainting of any kind occurs. This # applies to the client area, the nonclient area (including the title bar and scroll bars), and any part of the # parent window uncovered as a result of the window being moved. When this flag is set, the application must # explicitly invalidate or redraw any parts of the window and parent window that need redrawing. :NOACTIVATE, 0x0010, # Does not activate the window. If this flag is not set, the window is activated and moved # to the top of either the topmost or non-topmost group (depending on the setting of the hWndInsertAfter # parameter). :DRAWFRAME, 0x0020, # Draws a frame (defined in the window's class description) around the window. :FRAMECHANGED, 0x0020, # Applies new frame styles set using the SetWindowLong function. Sends a WM_NCCALCSIZE # message to the window, even if the window's size is not being changed. If this flag is not specified, # WM_NCCALCSIZE is sent only when the window's size is being changed. :SHOWWINDOW, 0x0040, # Displays the window. :HIDEWINDOW, 0x0080, # Hides the window. :NOCOPYBITS, 0x0100, # Discards the entire contents of the client area. If this flag is not specified, the valid # contents of the client area are saved and copied back into the client area after the window is sized or # repositioned. :NOOWNERZORDER, 0x0200, # Does not change the owner window's position in the Z order. :NOREPOSITION, 0x0200, # Same as the :NOOWNERZORDER flag. :NOSENDCHANGING, 0x0400, # Prevents the window from receiving the WM_WINDOWPOSCHANGING message. :DEFERERASE, 0x2000, # Prevents generation of the WM_SYNCPAINT message. :ASYNCWINDOWPOS, 0x4000, # If the calling thread and the thread that owns the window are attached to different # input queues, the system posts the request to the thread that owns the window. This prevents the calling # thread from blocking its execution while other threads process the request. ]
- SystemMetricsFlags =
enum :system_metrics, [ :ARRANGE, 56, # The flags that specify how the system arranged # minimized windows For more information, see the Remarks section in this topic. :CLEANBOOT, 67, # The value that specifies how the system is started: # 0 Normal boot # 1 Fail-safe boot # 2 Fail-safe with network boot # A fail-safe boot (also called SafeBoot, Safe Mode, or Clean Boot) # bypasses the user startup files. :CMONITORS, 80, # The number of display monitors on a desktop. For # more information, see the Remarks section in this topic. :CMOUSEBUTTONS, 43, # The number of buttons on a mouse, or zero if no # mouse is installed. :CONVERTIBLESLATEMODE, 0x2003, # Reflects the state of the laptop or # slate mode, 0 for Slate Mode and non-zero otherwise. When this # system metric changes, the system sends a broadcast message via # WM_SETTINGCHANGE with "ConvertibleSlateMode" in the LPARAM. :CXBORDER, 5, # The width of a window border, in pixels. This is # equivalent to the :CXEDGE value for windows with the 3-D look. :CXCURSOR, 13, # The width of a cursor, in pixels. The system cannot # create cursors of other sizes. :CXDLGFRAME, 7, # This value is the same as :CXFIXEDFRAME. :CXDOUBLECLK, 36, # The width of the rectangle around the location of # a first click in a double-click sequence, in pixels. The second # click must occur within the rectangle that is defined by # :CXDOUBLECLK and :CYDOUBLECLK for the system to consider the two # clicks a double-click. The two clicks must also occur within a # specified time. To set the width of the double-click rectangle, call # SystemParametersInfo with SPI_SETDOUBLECLKWIDTH. :CXDRAG, 68, # The number of pixels on either side of a mouse-down # point that the mouse pointer can move before a drag operation begins # This allows the user to click and release the mouse button easily # without unintentionally starting a drag operation. If this value is # negative, it is subtracted from the left of the mouse-down point and # added to the right of it. :CXEDGE, 45, # The width of a 3-D border, in pixels. This metric is # the 3-D counterpart of :CXBORDER. :CXFIXEDFRAME, 7, # The thickness of the frame around the perimeter of # a window that has a caption but is not sizable, in pixels. # :CXFIXEDFRAME is the height of the horizontal border, and # :CYFIXEDFRAME is the width of the vertical border. This value is the # same as :CXDLGFRAME. :CXFOCUSBORDER, 83, # The width of the left and right edges of the # focus rectangle that the DrawFocusRect draws. This value is in pixels. # Windows 2000: This value is not supported. :CXFRAME, 32, # This value is the same as :CXSIZEFRAME. :CXFULLSCREEN, 16, # The width of the client area for a full-screen # window on the primary display monitor, in pixels. To get the # coordinates of the portion of the screen that is not obscured by the # system taskbar or by application desktop toolbars, call the # SystemParametersInfo function with the SPI_GETWORKAREA value. :CXHSCROLL, 21, # The width of the arrow bitmap on a horizontal scroll # bar, in pixels. :CXHTHUMB, 10, # The width of the thumb box in a horizontal scroll bar, # in pixels. :CXICON, 11, # The default width of an icon, in pixels. The LoadIcon # function can load only icons with the dimensions that :CXICON and # :CYICON specifies. :CXICONSPACING, 38, # The width of a grid cell for items in large icon # view, in pixels. Each item fits into a rectangle of size # :CXICONSPACING by :CYICONSPACING when arranged. This value is always # greater than or equal to :CXICON. :CXMAXIMIZED, 61, # The default width, in pixels, of a maximized # top-level window, on the primary display monitor. :CXMAXTRACK, 59, # The default maximum width of a window that has a # caption and sizing borders, in pixels. This metric refers to the # entire desktop. The user cannot drag the window frame to a size # larger than these dimensions. A window can override this value by # processing the WM_GETMINMAXINFO message. :CXMENUCHECK, 71, # The width of the default menu check-mark bitmap, # in pixels. :CXMENUSIZE, 54, # The width of menu bar buttons, such as the child # window close button that is used in the multiple document interface, # in pixels. :CXMIN, 28, # The minimum width of a window, in pixels. :CXMINIMIZED, 57, # The width of a minimized window, in pixels. :CXMINSPACING, 47, # The width of a grid cell for a minimized window, # in pixels. Each minimized window fits into a rectangle this size # when arranged. This # value is always greater than or equal to # :CXMINIMIZED. :CXMINTRACK, 34, # The minimum tracking width of a window, in pixels. # The user cannot drag the window frame to a size smaller than these # dimensions. A window can override this value by processing the # WM_GETMINMAXINFO message. :CXPADDEDBORDER, 92, # The amount of border padding for captioned # windows, in pixels. # Windows XP/2000: This value is not supported. :CXSCREEN, 0, # The width of the screen of the primary display monitor, # in pixels. This is the same value obtained by calling GetDeviceCaps # as follows: GetDeviceCaps( hdcPrimaryMonitor, HORZRES). :CXSIZE, 30, # The width of a button in a window caption or title bar, # in pixels :CXSIZEFRAME, 32, # The thickness of the sizing border around the # perimeter of a window that can be resized, in pixels. :CXSIZEFRAME # is the width of the horizontal border, and :CYSIZEFRAME is the # height of the vertical border. This value is the same as :CXFRAME. :CXSMICON, 49, # The recommended width of a small icon, in pixels. # Small icons typically appear in window captions and in small icon view. :CXSMSIZE, 52, # The width of small caption buttons, in pixels. :CXVIRTUALSCREEN, 78, # The width of the virtual screen, in pixels. # The virtual screen is the bounding rectangle of all display monitors # The :XVIRTUALSCREEN metric is the coordinates for the left side of # the virtual screen. :CXVSCROLL, 2, # The width of a vertical scroll bar, in pixels. :CYBORDER, 6, #The height of a window border, in pixels. This is # equivalent to the :CYEDGE value for windows with the 3-D look. :CYCAPTION, 4, # The height of a caption area, in pixels. :CYCURSOR, 14, # The height of a cursor, in pixels. The system cannot # create cursors of other sizes. :CYDLGFRAME, 8, # This value is the same as :CYFIXEDFRAME. :CYDOUBLECLK, 37, # The height of the rectangle around the location of # a first click in a double-click sequence, in pixels. The second click # must occur within the rectangle defined by :CXDOUBLECLK and # :CYDOUBLECLK for the system to consider the two clicks a # double-click. The two clicks must also occur within a specified # time. To set the height of the double-click rectangle, # call SystemParametersInfo with SPI_SETDOUBLECLKHEIGHT. :CYDRAG, 69, # The number of pixels above and below a mouse-down point # that the mouse pointer can move before a drag operation begins. This # allows the user to click and release the mouse button easily without # unintentionally starting a drag operation. If this value is negative, # it is subtracted from above the mouse-down point and added below it. :CYEDGE, 46, # The height of a 3-D border, in pixels. This is the 3-D # counterpart of :CYBORDER. :CYFIXEDFRAME, 8, # The thickness of the frame around the perimeter of # a window that has a caption but is not sizable, in pixels. # :CXFIXEDFRAME is the height of the horizontal border, and # :CYFIXEDFRAME is the width of the vertical border. This value is the # same as :CYDLGFRAME. :CYFOCUSBORDER, 84, # The height of the top and bottom edges of the # focus rectangle drawn by DrawFocusRect. This value is in pixels. # Windows 2000: This value is not supported. :CYFRAME, 33, # This value is the same as :CYSIZEFRAME. :CYFULLSCREEN, 17, # The height of the client area for a full-screen # window on the primary display monitor, in pixels. To get the # coordinates of the portion of the screen not obscured by the system # taskbar or by application desktop toolbars, call the # SystemParametersInfo function with the SPI_GETWORKAREA value. :CYHSCROLL, 3, # The height of a horizontal scroll bar, in pixels. :CYICON, 12, # The default height of an icon, in pixels. The LoadIcon # function can load only icons with the dimensions :CXICON and :CYICON :CYICONSPACING, 39, # The height of a grid cell for items in large # icon view, in pixels. Each item fits into a rectangle of size # :CXICONSPACING by :CYICONSPACING when arranged. This value is always # greater than or equal to :CYICON. :CYKANJIWINDOW, 18, # For double byte character set versions of the # system, this is the height of the Kanji window at the bottom of the # screen, in pixels. :CYMAXIMIZED, 62, # The default height, in pixels, of a maximized # top-level window on the primary display monitor. :CYMAXTRACK, 60, # The default maximum height of a window that has a # caption and sizing borders, in pixels. This metric refers to the # entire desktop. The user cannot drag the window frame to a size # larger than these dimensions. A window can override this value by # processing the WM_GETMINMAXINFO message. :CYMENU, 15, # The height of a single-line menu bar, in pixels. :CYMENUCHECK, 72, # The height of the default menu check-mark bitmap, # in pixels. :CYMENUSIZE, 55, # The height of menu bar buttons, such as the child # window close button that is used in the multiple document interface, # in pixels. :CYMIN, 29, # The minimum height of a window, in pixels. :CYMINIMIZED, 58, # The height of a minimized window, in pixels. :CYMINSPACING, 48, # The height of a grid cell for a minimized window, # in pixels.Each minimized window fits into a rectangle this size # when arranged. This value is always greater than or equal to # :CYMINIMIZED. :CYMINTRACK, 35, # The minimum tracking height of a window, in pixels. # The user cannot drag the window frame to a size smaller than these # dimensions. A window can override this value by processing the # WM_GETMINMAXINFO message. :CYSCREEN, 1, # The height of the screen of the primary display # monitor, in pixels. This is the same value obtained by calling # GetDeviceCaps as follows: GetDeviceCaps( hdcPrimaryMonitor, VERTRES) :CYSIZE, 31, # The height of a button in a window caption or title # bar, in pixels. :CYSIZEFRAME, 33, # The thickness of the sizing border around the # perimeter of a window that can be resized, in pixels. :CXSIZEFRAME # is the width of the horizontal border, and :CYSIZEFRAME is the # height of the vertical border. This value is the same as :CYFRAME. :CYSMCAPTION, 51, # The height of a small caption, in pixels. :CYSMICON, 50, # The recommended height of a small icon, in pixels. # Small icons typically appear in window captions and in small icon view. :CYSMSIZE, 53, # The height of small caption buttons, in pixels. :CYVIRTUALSCREEN, 79, # The height of the virtual screen, in pixels. # The virtual screen is the bounding rectangle of all display monitors. # The :YVIRTUALSCREEN metric is the coordinates for the top of the virtual screen. :CYVSCROLL, 20, # The height of the arrow bitmap on a vertical scroll # bar, in pixels. :CYVTHUMB, 9, # The height of the thumb box in a vertical scroll bar, # in pixels. :DBCSENABLED, 42, # Nonzero if User32.dll supports DBCS; otherwise, 0. :DEBUG, 22, # Nonzero if the debug version of User.exe is installed; # otherwise, 0. :DIGITIZER, 94, # Nonzero if the current operating system is Windows 7 # or Windows Server 2008 R2 and the Tablet PC Input service is started; # otherwise, 0. The return value is a bitmask that specifies the type # of digitizer input supported by the device. For more information, # see Remarks. # Windows Server 2008, Windows Vista, and Windows XP/2000: This value # is not supported. :IMMENABLED, 82, # Nonzero if Input Method Manager/Input Method Editor # features are enabled; otherwise, 0. :IMMENABLED indicates whether # the system is ready to use a Unicode-based IME on a Unicode # application. To ensure that a language-dependent IME works, check # :DBCSENABLED and the system ANSI code page. Otherwise the # ANSI-to-Unicode conversion may not be performed correctly, or some # components like fonts or registry settings may not be present. :MAXIMUMTOUCHES, 95, # Nonzero if there are digitizers in the system; # otherwise, 0. :MAXIMUMTOUCHES returns the aggregate maximum of the # maximum number of contacts supported by every digitizer in the # system. If the system has only single-touch digitizers, the return # value is 1. If the system has multi-touch digitizers, the return # value is the number of simultaneous contacts the hardware can provide. # Windows Server 2008, Windows Vista, and Windows XP/2000: This value # is not supported. :MEDIACENTER, 87, # Nonzero if the current operating system is the # Windows XP, Media Center Edition, 0 if not. :MENUDROPALIGNMENT, 40, # Nonzero if drop-down menus are right-aligned # with the corresponding menu-bar item; 0 if the menus are left-aligned. :MIDEASTENABLED, 74, # Nonzero if the system is enabled for Hebrew and # Arabic languages, 0 if not. :MOUSEPRESENT, 19, # Nonzero if a mouse is installed; otherwise, 0. # This value is rarely zero, because of support for virtual mice and # because some systems detect the presence of the port instead of the # presence of a mouse. :MOUSEHORIZONTALWHEELPRESENT, 91, # Nonzero if a mouse with a # horizontal scroll wheel is installed; otherwise 0. :MOUSEWHEELPRESENT, 75, # Nonzero if a mouse with a vertical scroll # wheel is installed; otherwise 0. :NETWORK, 63, # The least significant bit is set if a network is # present; otherwise, it is cleared. The other bits are reserved for # future use. :PENWINDOWS, 41, # Nonzero if the Microsoft Windows for Pen computing # extensions are installed; zero otherwise. :REMOTECONTROL, 0x2001, # This system metric is used in a Terminal # Services environment to determine if the current Terminal Server # session is being remotely controlled. Its value is nonzero if the # current session is remotely controlled; otherwise, 0. # You can use terminal services management tools such as Terminal # Services Manager (tsadmin.msc) and shadow.exe to control a remote # session. When a session is being remotely controlled, another user # can view the contents of that session and potentially interact with # it. :REMOTESESSION, 0x1000, # This system metric is used in a Terminal # Services environment. If the calling process is associated with a # Terminal Services client session, the return value is nonzero. If # the calling process is associated with the Terminal Services console # session, the return value is 0. # Windows Server 2003 and Windows XP: The console session is not # necessarily the physical console. For more information, see # WTSGetActiveConsoleSessionId. :SAMEDISPLAYFORMAT, 81, # Nonzero if all the display monitors have the # same color format, otherwise, 0. Two displays can have the same bit # depth, but different color formats. For example, the red, green, and # blue pixels can be encoded with different numbers of bits, or those # bits can be located in different places in a pixel color value. :SECURE, 44, # This system metric should be ignored; it always returns # 0. :SERVERR2, 89, # The build number if the system is Windows Server 2003 # R2; otherwise, 0. :SHOWSOUNDS, 70, # Nonzero if the user requires an application to # present information visually in situations where it would otherwise # present the information only in audible form; otherwise, 0. :SHUTTINGDOWN, 0x2000, # Nonzero if the current session is shutting # down; otherwise, 0. Windows 2000: This value is not supported. :SLOWMACHINE, 73, # Nonzero if the computer has a low-end (slow) # processor; otherwise, 0. :STARTER, 88, # Nonzero if the current operating system is Windows 7 # Starter Edition, Windows Vista Starter, or Windows XP Starter # Edition; otherwise, 0. :SWAPBUTTON, 23, # Nonzero if the meanings of the left and right mouse # buttons are swapped; otherwise, 0. :SYSTEMDOCKED, 0x2004, # Reflects the state of the docking mode, 0 for # Undocked Mode and non-zero otherwise. When this system metric # changes, the system sends a broadcast message via WM_SETTINGCHANGE # with "SystemDockMode" in the LPARAM. :TABLETPC, 86, # Nonzero if the current operating system is the # Windows XP Tablet PC edition or if the current operating system is # Windows Vista or Windows 7 and the Tablet PC Input service is # started; otherwise, 0. The :DIGITIZER setting indicates the type of # digitizer input supported by a device running Windows 7 or Windows # Server 2008 R2. For more information, see Remarks. :XVIRTUALSCREEN, 76, # The coordinates for the left side of the # virtual screen. The virtual screen is the bounding rectangle of all # display monitors. The :CXVIRTUALSCREEN metric is the width of the # virtual screen. :YVIRTUALSCREEN, 77, # The coordinates for the top of the virtual # screen. The virtual screen is the bounding rectangle of all display # monitors. The :CYVIRTUALSCREEN metric is the height of the virtual # screen. ]
- GetWindowLongFlags =
enum :get_window_long_flags, [ :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. :HINSTANCE, -6, # Retrieves a handle to the application instance. :HWNDPARENT, -8, # Retrieves a handle to the parent window, if any. :ID, -12, # Retrieves the identifier of the window. :STYLE, -16, # Retrieves the window styles. :EXSTYLE, -20, # Retrieves the extended window styles. :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. ]
- ComboBoxStyle =
enum :combo_box_style, [ :SIMPLE, 0x0001, :DROPDOWN, 0x0002, :DROPDOWNLIST, 0x0003, :OWNERDRAWFIXED, 0x0010, :OWNERDRAWVARIABLE, 0x0020, :AUTOHSCROLL, 0x0040, :OEMCONVERT, 0x0080, :SORT, 0x0100, :HASSTRINGS, 0x0200, :NOINTEGRALHEIGHT, 0x0400, :DISABLENOSCROLL, 0x0800, :UPPERCASE, 0x2000, :LOWERCASE, 0x4000, ]
- WindowStyleEx =
enum :window_style_ex, [ :ACCEPTFILES, 0x00000010, # accepts drag-drop files. :APPWINDOW, 0x00040000, # Forces a top-level window onto the taskbar when the window is visible. :CLIENTEDGE, 0x00000200, # has a border with a sunken edge. :COMPOSITED, 0x02000000, # Paints all descendants of a window in bottom-to-top painting order using # double-buffering. For more information, see Remarks. This cannot be used if the window has a class style of # either :OWNDC or :CLASSDC. :CONTEXTHELP, 0x00000400, # The title bar of the window includes a question mark. When the user clicks the # question mark, the cursor changes to a question mark with a pointer. If the user then clicks a child window, the # child receives a WM_HELP message. The child window should pass the message to the parent window procedure, which # should call the WinHelp function using the HELP_WM_HELP command. The Help application displays a pop-up window # that typically contains help for the child window. #WS_EX_CONTEXTHELP cannot be used with the :MAXIMIZEBOX or :MINIMIZEBOX styles. :CONTROLPARENT, 0x00010000, # contains child windows that should take part in dialog box navigation. If this # style is specified, the dialog manager recurses into children of this window when performing navigation # operations such as handling the TAB key, an arrow key, or a keyboard mnemonic. :DLGMODALFRAME, 0x00000001, # has a double border; the window can, optionally, be created with a title bar by # specifying the WS_CAPTION style in the dwStyle parameter. :LAYERED, 0x00080000, # is a layered window. This style cannot be used if the window has a class style of # either CS_OWNDC or CS_CLASSDC. :LAYOUTRTL, 0x00400000, # If the shell language is Hebrew, Arabic, or another language that supports # reading order alignment, the horizontal origin of the window is on the right edge. Increasing horizontal values # advance to the left. :LEFT, 0x00000000, #has generic left-aligned properties. This is the default. :LEFTSCROLLBAR, 0x00004000, #If the shell language is Hebrew, Arabic, or another language that supports reading # order alignment, the vertical scroll bar (if present) is to the left of the client area. For other languages, # the style is ignored. :LTRREADING, 0x00000000, #text is displayed using left-to-right reading-order properties. This is the # default. :MDICHILD, 0x00000040, #is a MDI child window. :NOACTIVATE, 0x08000000, #A top-level window created with this style does not become the foreground window # when the user clicks it. The system does not bring this window to the foreground when the user minimizes or # closes the foreground window. To activate the window, use the SetActiveWindow or SetForegroundWindow function. # The window does not appear on the taskbar by default. To force the window to appear on the taskbar, use the # WS_EX_APPWINDOW style. :NOINHERITLAYOUT, 0x00100000, # does not pass its window layout to its child windows. :NOPARENTNOTIFY, 0x00000004, # The child window created with this style does not send the WM_PARENTNOTIFY message # to its parent window when it is created or destroyed. :OVERLAPPEDWINDOW, 0x00000300, # is an overlapped window. :PALETTEWINDOW, 0x00000188, # is palette window, which is a modeless dialog box that presents an array of # commands. :RIGHT, 0x00001000, # has generic "right-aligned" properties. This depends on the window class. # This style has an effect only if the shell language is Hebrew, Arabic, or another language that supports # reading-order alignment; otherwise, the style is ignored. Using the WS_EX_RIGHT style for static or edit # controls has the same effect as using the SS_RIGHT or ES_RIGHT style, respectively. Using this style with # button controls has the same effect as using BS_RIGHT and BS_RIGHTBUTTON styles. :RIGHTSCROLLBAR, 0x00000000, # The vertical scroll bar (if present) is to the right of the client area. This is # the default. :RTLREADING, 0x00002000, # If the shell language is Hebrew, Arabic, or another language that supports # reading-order alignment, the window text is displayed using right-to-left reading-order properties. For other # languages, the style is ignored. :STATICEDGE, 0x00020000, # has a three-dimensional border style intended to be used for items that do not # accept user input. :TOOLWINDOW, 0x00000080, # is intended to be used as a floating toolbar. A tool window has a title bar that # is shorter than a normal title bar, and the window title is drawn using a smaller font. A tool window does not # appear in the taskbar or in the dialog that appears when the user presses ALT+TAB. If a tool window has a system # menu, its icon is not displayed on the title bar. However, you can display the system menu by right-clicking or # by typing ALT+SPACE. :TOPMOST, 0x00000008, # should be placed above all non-topmost windows and should stay above them, even # when the window is deactivated. To add or remove this style, use the SetWindowPos function. :TRANSPARENT, 0x00000020, # should not be painted until siblings beneath the window (that were created by the # same thread) have been painted. The window appears transparent because the bits of underlying sibling windows # have already been painted. #To achieve transparency without these restrictions, use the SetWindowRgn function. :WINDOWEDGE, 0x00000100 #has a border with a raised edge. ]
- UserObjectInformationFlags =
enum :user_object_information_flags, [ :FLAGS, 1, # The handle flags. The pvInfo parameter must point to a USEROBJECTFLAGS structure. :NAME, 2, # The name of the object, as a string. :TYPE, 3, # The type name of the object, as a string. :USER_SID, 4, # The SID structure that identifies the user that is currently associated with the specified # object. If no user is associated with the object, the value returned in the buffer pointed to by # lpnLengthNeeded is zero. Note that SID is a variable length structure. You will usually make a call to # GetUserObjectInformation to determine the length of the SID before retrieving its value. :HEAPSIZE, 5, # The size of the desktop heap, in KB, as a ULONG value. The hObj parameter must be a handle to a # desktop object, otherwise, the function fails. # Windows Server 2003 and Windows XP/2000: This value is not supported. :IO, 6, # TRUE if the hObj parameter is a handle to the desktop object that is receiving input from the user. # FALSE otherwise. Windows Server 2003 and Windows XP/2000: This value is not supported. ]
- BroadcastSystemFlags =
enum :broadcast_system_flags, [ :QUERY, 0x00000001, :IGNORECURRENTTASK, 0x00000002, :FLUSHDISK, 0x00000004, :NOHANG, 0x00000008, :POSTMESSAGE, 0x00000010, :NOTIMEOUTIFNOTHUNG, 0x00000040, :FORCEIFHUNG, 0x00000020, :ALLOWSFW, 0x00000080, :SENDNOTIFYMESSAGE, 0x00000100, :RETURNHDESK, 0x00000200, :LUID, 0x00000400 ]
- TrackPopupMenuFlags =
enum :track_popup_menu_flags, [ # Use one of the following flags to specify how the function positions the pop-up window horizontally. :CENTERALIGN, 0x0004, # Centers pop-up window horizontally relative to the coordinate specified by the # anchorPoint->x parameter. :LEFTALIGN, 0x0000, # Positions the pop-up window so that its left edge is aligned with the coordinate specified # by the anchorPoint->x parameter. :RIGHTALIGN, 0x0008, # Positions the pop-up window so that its right edge is aligned with the coordinate # specified by the anchorPoint->x parameter. # Use one of the following flags to specify how the function positions the pop-up window vertically. :BOTTOMALIGN, 0x0020, # Positions the pop-up window so that its bottom edge is aligned with the coordinate specified # by the anchorPoint->y parameter. :TOPALIGN, 0x0000, #Positions the pop-up window so that its left edge is aligned with the coordinate specified by the # anchorPoint->y parameter. :VCENTERALIGN, 0x0010, #Centers the pop-up window vertically relative to the coordinate specified by the # anchorPoint->y parameter. # Use the following flags to control discovery of the user selection without having to set up a parent window for the menu. :NONOTIFY, 0x0080, # The function does not send notification messages when the user clicks a menu item. :RETURNCMD, 0x0100, # The function returns the menu item identifier of the user's selection in the return value. # Use one of the following flags to specify which mouse button the shortcut menu tracks. :LEFTBUTTON, 0x0000, # The user can select menu items with only the left mouse button. :RIGHTBUTTON, 0x0002, # The user can select menu items with both the left and right mouse buttons. # Use any reasonable combination of the following flags to modify the animation of a menu. For example, by # selecting a horizontal and a vertical flag, you can achieve diagonal animation. :HORPOSANIMATION, 0x0400, # Animates the menu from left to right. :HORNEGANIMATION, 0x0800, # Animates the menu from right to left. :VERPOSANIMATION, 0x1000, # Animates the menu from top to bottom. :VERNEGANIMATION, 0x2000, # Animates the menu from bottom to top. :NOANIMATION, 0x4000, # Displays menu without animation. # For any animation to occur, the SystemParametersInfo function must set SPI_SETMENUANIMATION. Also, all # the :*ANIMATION flags, except :NOANIMATION, are ignored if menu fade animation is on. For more information, # see the SPI_GETMENUFADE flag in SystemParametersInfo. # Use the :RECURSE flag to display a menu when another menu is already displayed. This is intended to support # context menus within a menu. #Use one of the following flags to specify whether to accommodate horizontal or vertical alignment. :HORIZONTAL, 0x0000, # If the menu cannot be shown at the specified location without overlapping the excluded # rectangle, the system tries to accommodate the requested horizontal alignment before the requested vertical # alignment. :VERTICAL, 0x0040, # If the menu cannot be shown at the specified location without overlapping the excluded # rectangle, the system tries to accommodate the requested vertical alignment before the requested horizontal # alignment. # The following flag is available starting with Windows 7. :WORKAREA, 0x10000, # Restricts the pop-up window to within the work area. If this flag is not set, the pop-up # window is restricted to the work area only if the input point is within the work area. For more information, # see the rcWork and rcMonitor members of the MONITORINFO structure. ]
- DrawFrameControlStateFlags =
enum :draw_frame_control_state_flags, [ :CAPTIONCLOSE, 0x0000, :CAPTIONMIN, 0x0001, :CAPTIONMAX, 0x0002, :CAPTIONRESTORE, 0x0003, :CAPTIONHELP, 0x0004, :MENUARROW, 0x0000, :MENUCHECK, 0x0001, :MENUBULLET, 0x0002, :MENUARROWRIGHT, 0x0004, :SCROLLUP, 0x0000, :SCROLLDOWN, 0x0001, :SCROLLLEFT, 0x0002, :SCROLLRIGHT, 0x0003, :SCROLLCOMBOBOX, 0x0005, :SCROLLSIZEGRIP, 0x0008, :SCROLLSIZEGRIPRIGHT, 0x0010, :BUTTONCHECK, 0x0000, :BUTTONRADIOIMAGE, 0x0001, :BUTTONRADIOMASK, 0x0002, :BUTTONRADIO, 0x0004, :BUTTON3STATE, 0x0008, :BUTTONPUSH, 0x0010, :INACTIVE, 0x0100, :PUSHED, 0x0200, :CHECKED, 0x0400, :TRANSPARENT, 0x0800, :HOT, 0x1000, :ADJUSTRECT, 0x2000, :FLAT, 0x4000, :MONO, 0x8000, ]
- LayeredWindowAttributesFlags =
enum :layered_window_attributes_flags, [ :COLORKEY, 0x00000001, #Use crKey as the transparency color. :ALPHA, 0x00000002, # Use bAlpha to determine the opacity of the layered window. :OPAQUE, 0x00000004, # Draw an opaque layered window. ]
- WindowClassStyle =
enum :window_class_style, [ :VREDRAW, 0x0001, #Redraws the entire window if a movement or size adjustment changes the height of the client area. :HREDRAW, 0x0002, # Redraws the entire window if a movement or size adjustment changes the width of the client area. :DBLCLKS, 0x0008, # Sends a double-click message to the window procedure when the user double-clicks the mouse # while the cursor is within a window belonging to the class. :OWNDC, 0x0020, # Allocates a unique device context for each window in the class. :CLASSDC, 0x0040, # Allocates one device context to be shared by all windows in the class. Because window # classes are process specific, it is possible for multiple threads of an application to create a window of the # same class. It is also possible for the threads to attempt to use the device context simultaneously. When this # happens, the system allows only one thread to successfully finish its drawing operation. :PARENTDC, 0x0080, # Sets the clipping rectangle of the child window to that of the parent window so that the # child can draw on the parent. A window with the :PARENTDC style bit receives a regular device context from # the system's cache of device contexts. It does not give the child the parent's device context or device # context settings. Specifying CS_PARENTDC enhances an application's performance. :NOCLOSE, 0x0200, # Disables Close on the window menu. :SAVEBITS, 0x0800, # Saves, as a bitmap, the portion of the screen image obscured by a window of this class. # When the window is removed, the system uses the saved bitmap to restore the screen image, including other # windows that were obscured. Therefore, the system does not send WM_PAINT messages to windows that were # obscured if the memory used by the bitmap has not been discarded and if other screen actions have not # invalidated the stored image. This style is useful for small windows (for example, menus or dialog boxes) that # are displayed briefly and then removed before other screen activity takes place. This style increases the time # required to display the window, because the system must first allocate memory to store the bitmap. :BYTEALIGNCLIENT, 0x1000, # Aligns the window's client area on a byte boundary (in the x direction). This style # affects the width of the window and its horizontal placement on the display. :BYTEALIGNWINDOW, 0x2000, # Aligns the window on a byte boundary (in the x direction). This style affects the # width of the window and its horizontal placement on the display. :GLOBALCLASS, 0x4000, # Indicates that the window class is an application global class. For more information, # see the "Application Global Classes" section of About Window Classes. :DROPSHADOW, 0x00020000, #Enables the drop shadow effect on a window. The effect is turned on and off through # SPI_SETDROPSHADOW. Typically, this is enabled for small, short-lived windows such as menus to emphasize their # Z order relationship to other windows. ]
- ButtonControlStyle =
enum :button_control_style, [ :PUSHBUTTON, 0x00000000, :DEFPUSHBUTTON, 0x00000001, :CHECKBOX, 0x00000002, :AUTOCHECKBOX, 0x00000003, :RADIOBUTTON, 0x00000004, :N3STATE, 0x00000005, :AUTO3STATE, 0x00000006, :GROUPBOX, 0x00000007, :USERBUTTON, 0x00000008, :AUTORADIOBUTTON, 0x00000009, :PUSHBOX, 0x0000000A, :OWNERDRAW, 0x0000000B, :TYPEMASK, 0x0000000F, :LEFTTEXT, 0x00000020, :TEXT, 0x00000000, :ICON, 0x00000040, :BITMAP, 0x00000080, :LEFT, 0x00000100, :RIGHT, 0x00000200, :CENTER, 0x00000300, :TOP, 0x00000400, :BOTTOM, 0x00000800, :VCENTER, 0x00000C00, :PUSHLIKE, 0x00001000, :MULTILINE, 0x00002000, :NOTIFY, 0x00004000, :FLAT, 0x00008000, :RIGHTBUTTON, 0x00000020 ]
- SystemParametersInfoFlags =
enum :system_parameters_info_flags, [ :GETACCESSTIMEOUT, 0x003C, :GETAUDIODESCRIPTION, 0x0074, :GETCLIENTAREAANIMATION, 0x1042, :GETDISABLEOVERLAPPEDCONTENT, 0x1040, :GETFILTERKEYS, 0x0032, :GETFOCUSBORDERHEIGHT, 0x2010, :GETFOCUSBORDERWIDTH, 0x200E, :GETHIGHCONTRAST, 0x0042, :GETLOGICALDPIOVERRIDE, 0x009E, :GETMESSAGEDURATION, 0x2016, :GETMOUSECLICKLOCK, 0x101E, :GETMOUSECLICKLOCKTIME, 0x2008, :GETMOUSEKEYS, 0x0036, :GETMOUSESONAR, 0x101C, :GETMOUSEVANISH, 0x1020, :GETSCREENREADER, 0x0046, :GETSERIALKEYS, 0x003E, :GETSHOWSOUNDS, 0x0038, :GETSOUNDSENTRY, 0x0040, :GETSTICKYKEYS, 0x003A, :GETTOGGLEKEYS, 0x0034, :SETACCESSTIMEOUT, 0x003D, :SETAUDIODESCRIPTION, 0x0075, :SETCLIENTAREAANIMATION, 0x1043, :SETDISABLEOVERLAPPEDCONTENT, 0x1041, :SETFILTERKEYS, 0x0033, :SETFOCUSBORDERHEIGHT, 0x2011, :SETFOCUSBORDERWIDTH, 0x200F, :SETHIGHCONTRAST, 0x0043, :SETLOGICALDPIOVERRIDE, 0x009F, # Do not use. :SETMESSAGEDURATION, 0x2017, :SETMOUSECLICKLOCK, 0x101F, :SETMOUSECLICKLOCKTIME, 0x2009, :SETMOUSEKEYS, 0x0037, :SETMOUSESONAR, 0x101D, :SETMOUSEVANISH, 0x1021, :SETSCREENREADER, 0x0047, :SETSERIALKEYS, 0x003F, :SETSHOWSOUNDS, 0x0039, :SETSOUNDSENTRY, 0x0041, :SETSTICKYKEYS, 0x003B, :SETTOGGLEKEYS, 0x0035, # The following are the desktop parameters. :GETCLEARTYPE, 0x1048, :GETDESKWALLPAPER, 0x0073, :GETDROPSHADOW, 0x1024, :GETFLATMENU, 0x1022, :GETFONTSMOOTHING, 0x004A, :GETFONTSMOOTHINGCONTRAST, 0x200C, :GETFONTSMOOTHINGORIENTATION, 0x2012, :GETFONTSMOOTHINGTYPE, 0x200A, :GETWORKAREA, 0x0030, :SETCLEARTYPE, 0x1049, :SETCURSORS, 0x0057, :SETDESKPATTERN, 0x0015, :SETDESKWALLPAPER, 0x0014, :SETDROPSHADOW, 0x1025, :SETFLATMENU, 0x1023, :SETFONTSMOOTHING, 0x004B, :SETFONTSMOOTHINGCONTRAST, 0x200D, :SETFONTSMOOTHINGORIENTATION, 0x2013, :SETFONTSMOOTHINGTYPE, 0x200B, :SETWORKAREA, 0x002F, # The following are the icon parameters. :GETICONMETRICS, 0x002D, :GETICONTITLELOGFONT, 0x001F, :GETICONTITLEWRAP, 0x0019, :ICONHORIZONTALSPACING, 0x000D, :ICONVERTICALSPACING, 0x0018, :SETICONMETRICS, 0x002E, :SETICONS, 0x0058, :SETICONTITLELOGFONT, 0x0022, :SETICONTITLEWRAP, 0x001A, :GETBEEP, 0x0001, :GETBLOCKSENDINPUTRESETS, 0x1026, :GETCONTACTVISUALIZATION, 0x2018, :GETDEFAULTINPUTLANG, 0x0059, :GETGESTUREVISUALIZATION, 0x201A, :GETKEYBOARDCUES, 0x100A, :GETKEYBOARDDELAY, 0x0016, :GETKEYBOARDPREF, 0x0044, :GETKEYBOARDSPEED, 0x000A, :GETMOUSE, 0x0003, :GETMOUSEHOVERHEIGHT, 0x0064, :GETMOUSEHOVERTIME, 0x0066, :GETMOUSEHOVERWIDTH, 0x0062, :GETMOUSESPEED, 0x0070, :GETMOUSETRAILS, 0x005E, :GETSNAPTODEFBUTTON, 0x005F, :GETSYSTEMLANGUAGEBAR, 0x1050, :GETTHREADLOCALINPUTSETTINGS, 0x104E, :GETWHEELSCROLLCHARS, 0x006C, :GETWHEELSCROLLLINES, 0x0068, :SETBEEP, 0x0002, :SETBLOCKSENDINPUTRESETS, 0x1027, :SETCONTACTVISUALIZATION, 0x2019, :SETDEFAULTINPUTLANG, 0x005A, :SETDOUBLECLICKTIME, 0x0020, :SETDOUBLECLKHEIGHT, 0x001E, :SETDOUBLECLKWIDTH, 0x001D, :SETGESTUREVISUALIZATION, 0x201B, :SETKEYBOARDCUES, 0x100B, :SETKEYBOARDDELAY, 0x0017, :SETKEYBOARDPREF, 0x0045, :SETKEYBOARDSPEED, 0x000B, :SETLANGTOGGLE, 0x005B, :SETMOUSE, 0x0004, :SETMOUSEBUTTONSWAP, 0x0021, :SETMOUSEHOVERHEIGHT, 0x0065, :SETMOUSEHOVERTIME, 0x0067, :SETMOUSEHOVERWIDTH, 0x0063, :SETMOUSESPEED, 0x0071, :SETMOUSETRAILS, 0x005D, :SETSNAPTODEFBUTTON, 0x0060, :SETSYSTEMLANGUAGEBAR, 0x1051, :SETTHREADLOCALINPUTSETTINGS, 0x104F, :SETWHEELSCROLLCHARS, 0x006D, :SETWHEELSCROLLLINES, 0x0069, # The following are the menu parameters. :GETMENUDROPALIGNMENT, 0x001B, :GETMENUFADE, 0x1012, :GETMENUSHOWDELAY, 0x006A, :SETMENUDROPALIGNMENT, 0x001C, :SETMENUFADE, 0x1013, :SETMENUSHOWDELAY, 0x006B, # The following are the power parameters. # Beginning with Windows Server 2008 and Windows Vista, these power parameters are not supported. Instead, to # determine the current display power state, an application should register for GUID_MONITOR_POWER_STATE # notifications. To determine the current display power down time-out, an application should register for # notification of changes to the GUID_VIDEO_POWERDOWN_TIMEOUT power setting. For more information, see # Registering for Power Events. # Windows Server 2003 and Windows XP/2000: To determine the current display power state, use the following # power parameters. :GETLOWPOWERACTIVE, 0x0053, :GETLOWPOWERTIMEOUT, 0x004F, :GETPOWEROFFACTIVE, 0x0054, :GETPOWEROFFTIMEOUT, 0x0050, :SETLOWPOWERACTIVE, 0x0055, :SETLOWPOWERTIMEOUT, 0x0051, :SETPOWEROFFACTIVE, 0x0056, :SETPOWEROFFTIMEOUT, 0x0052, # The following are the screen saver parameters. :GETSCREENSAVEACTIVE, 0x0010, :GETSCREENSAVERRUNNING, 0x0072, :GETSCREENSAVESECURE, 0x0076, :GETSCREENSAVETIMEOUT, 0x000E, :SETSCREENSAVEACTIVE, 0x0011, :SETSCREENSAVESECURE, 0x0077, :SETSCREENSAVETIMEOUT, 0x000F, # The following are the time-out parameters for applications and services. :GETHUNGAPPTIMEOUT, 0x0078, :GETWAITTOKILLTIMEOUT, 0x007A, :GETWAITTOKILLSERVICETIMEOUT, 0x007C, :SETHUNGAPPTIMEOUT, 0x0079, :SETWAITTOKILLTIMEOUT, 0x007B, :SETWAITTOKILLSERVICETIMEOUT, 0x007D, # The following are the UI effects. The :SETUIEFFECTS value is used to enable or disable all UI effects at once. # This table contains the complete list of UI effect values. :GETCOMBOBOXANIMATION, 0x1004, :GETCURSORSHADOW, 0x101A, :GETGRADIENTCAPTIONS, 0x1008, :GETHOTTRACKING, 0x100E, :GETLISTBOXSMOOTHSCROLLING, 0x1006, :GETMENUANIMATION, 0x1002, :GETMENUUNDERLINES, 0x100A, :GETSELECTIONFADE, 0x1014, :GETTOOLTIPANIMATION, 0x1016, :GETTOOLTIPFADE, 0x1018, :GETUIEFFECTS, 0x103E, :SETCOMBOBOXANIMATION, 0x1005, :SETCURSORSHADOW, 0x101B, :SETGRADIENTCAPTIONS, 0x1009, :SETHOTTRACKING, 0x100F, :SETLISTBOXSMOOTHSCROLLING, 0x1007, :SETMENUANIMATION, 0x1003, :SETMENUUNDERLINES, 0x100B, :SETSELECTIONFADE, 0x1015, :SETTOOLTIPANIMATION, 0x1017, :SETTOOLTIPFADE, 0x1019, :SETUIEFFECTS, 0x103F, # The following are the window parameters. :GETACTIVEWINDOWTRACKING, 0x1000, :GETACTIVEWNDTRKZORDER, 0x100C, :GETACTIVEWNDTRKTIMEOUT, 0x2002, :GETANIMATION, 0x0048, :GETBORDER, 0x0005, :GETCARETWIDTH, 0x2006, :GETDOCKMOVING, 0x0090, :GETDRAGFROMMAXIMIZE, 0x008C, :GETDRAGFULLWINDOWS, 0x0026, :GETFOREGROUNDFLASHCOUNT, 0x2004, :GETFOREGROUNDLOCKTIMEOUT, 0x2000, :GETMINIMIZEDMETRICS, 0x002B, :GETMOUSEDOCKTHRESHOLD, 0x007E, :GETMOUSEDRAGOUTTHRESHOLD, 0x0084, :GETMOUSESIDEMOVETHRESHOLD, 0x0088, :GETNONCLIENTMETRICS, 0x0029, :GETPENDOCKTHRESHOLD, 0x0080, :GETPENDRAGOUTTHRESHOLD, 0x0086, :GETPENSIDEMOVETHRESHOLD, 0x008A, :GETSHOWIMEUI, 0x006E, :GETSNAPSIZING, 0x008E, :GETWINARRANGING, 0x0082, :SETACTIVEWINDOWTRACKING, 0x1001, :SETACTIVEWNDTRKZORDER, 0x100D, :SETACTIVEWNDTRKTIMEOUT, 0x2003, :SETANIMATION, 0x0049, :SETBORDER, 0x0006, :SETCARETWIDTH, 0x2007, :SETDOCKMOVING, 0x0091, :SETDRAGFROMMAXIMIZE, 0x008D, :SETDRAGFULLWINDOWS, 0x0025, :SETDRAGHEIGHT, 0x004D, :SETDRAGWIDTH, 0x004C, :SETFOREGROUNDFLASHCOUNT, 0x2005, :SETFOREGROUNDLOCKTIMEOUT, 0x2001, :SETMINIMIZEDMETRICS, 0x002C, :SETMOUSEDOCKTHRESHOLD, 0x007F, :SETMOUSEDRAGOUTTHRESHOLD, 0x0085, :SETMOUSESIDEMOVETHRESHOLD, 0x0089, :SETNONCLIENTMETRICS, 0x002A, :SETPENDOCKTHRESHOLD, 0x0081, :SETPENDRAGOUTTHRESHOLD, 0x0087, :SETPENSIDEMOVETHRESHOLD, 0x008B, :SETSHOWIMEUI, 0x006F, :SETSNAPSIZING, 0x008F, :SETWINARRANGING, 0x0083 ]
- SystemParametersInfoAction =
enum :system_parameters_info_action, [ :GETBEEP, 0x0001, :SETBEEP, 0x0002, :GETMOUSE, 0x0003, :SETMOUSE, 0x0004, :GETBORDER, 0x0005, :SETBORDER, 0x0006, :GETKEYBOARDSPEED, 0x000A, :SETKEYBOARDSPEED, 0x000B, :LANGDRIVER, 0x000C, :ICONHORIZONTALSPACING, 0x000D, :GETSCREENSAVETIMEOUT, 0x000E, :SETSCREENSAVETIMEOUT, 0x000F, :GETSCREENSAVEACTIVE, 0x0010, :SETSCREENSAVEACTIVE, 0x0011, :GETGRIDGRANULARITY, 0x0012, :SETGRIDGRANULARITY, 0x0013, :SETDESKWALLPAPER, 0x0014, :SETDESKPATTERN, 0x0015, :GETKEYBOARDDELAY, 0x0016, :SETKEYBOARDDELAY, 0x0017, :ICONVERTICALSPACING, 0x0018, :GETICONTITLEWRAP, 0x0019, :SETICONTITLEWRAP, 0x001A, :GETMENUDROPALIGNMENT, 0x001B, :SETMENUDROPALIGNMENT, 0x001C, :SETDOUBLECLKWIDTH, 0x001D, :SETDOUBLECLKHEIGHT, 0x001E, :GETICONTITLELOGFONT, 0x001F, :SETDOUBLECLICKTIME, 0x0020, :SETMOUSEBUTTONSWAP, 0x0021, :SETICONTITLELOGFONT, 0x0022, :GETFASTTASKSWITCH, 0x0023, :SETFASTTASKSWITCH, 0x0024, :SETDRAGFULLWINDOWS, 0x0025, :GETDRAGFULLWINDOWS, 0x0026, :GETNONCLIENTMETRICS, 0x0029, :SETNONCLIENTMETRICS, 0x002A, :GETMINIMIZEDMETRICS, 0x002B, :SETMINIMIZEDMETRICS, 0x002C, :GETICONMETRICS, 0x002D, :SETICONMETRICS, 0x002E, :SETWORKAREA, 0x002F, :GETWORKAREA, 0x0030, :SETPENWINDOWS, 0x0031, :GETHIGHCONTRAST, 0x0042, :SETHIGHCONTRAST, 0x0043, :GETKEYBOARDPREF, 0x0044, :SETKEYBOARDPREF, 0x0045, :GETSCREENREADER, 0x0046, :SETSCREENREADER, 0x0047, :GETANIMATION, 0x0048, :SETANIMATION, 0x0049, :GETFONTSMOOTHING, 0x004A, :SETFONTSMOOTHING, 0x004B, :SETDRAGWIDTH, 0x004C, :SETDRAGHEIGHT, 0x004D, :SETHANDHELD, 0x004E, :GETLOWPOWERTIMEOUT, 0x004F, :GETPOWEROFFTIMEOUT, 0x0050, :SETLOWPOWERTIMEOUT, 0x0051, :SETPOWEROFFTIMEOUT, 0x0052, :GETLOWPOWERACTIVE, 0x0053, :GETPOWEROFFACTIVE, 0x0054, :SETLOWPOWERACTIVE, 0x0055, :SETPOWEROFFACTIVE, 0x0056, :SETCURSORS, 0x0057, :SETICONS, 0x0058, :GETDEFAULTINPUTLANG, 0x0059, :SETDEFAULTINPUTLANG, 0x005A, :SETLANGTOGGLE, 0x005B, :GETWINDOWSEXTENSION, 0x005C, :SETMOUSETRAILS, 0x005D, :GETMOUSETRAILS, 0x005E, :SETSCREENSAVERRUNNING, 0x0061, :SCREENSAVERRUNNING, 0x0061, :GETFILTERKEYS, 0x0032, :SETFILTERKEYS, 0x0033, :GETTOGGLEKEYS, 0x0034, :SETTOGGLEKEYS, 0x0035, :GETMOUSEKEYS, 0x0036, :SETMOUSEKEYS, 0x0037, :GETSHOWSOUNDS, 0x0038, :SETSHOWSOUNDS, 0x0039, :GETSTICKYKEYS, 0x003A, :SETSTICKYKEYS, 0x003B, :GETACCESSTIMEOUT, 0x003C, :SETACCESSTIMEOUT, 0x003D, :GETSERIALKEYS, 0x003E, :SETSERIALKEYS, 0x003F, :GETSOUNDSENTRY, 0x0040, :SETSOUNDSENTRY, 0x0041, :GETSNAPTODEFBUTTON, 0x005F, :SETSNAPTODEFBUTTON, 0x0060, :GETMOUSEHOVERWIDTH, 0x0062, :SETMOUSEHOVERWIDTH, 0x0063, :GETMOUSEHOVERHEIGHT, 0x0064, :SETMOUSEHOVERHEIGHT, 0x0065, :GETMOUSEHOVERTIME, 0x0066, :SETMOUSEHOVERTIME, 0x0067, :GETWHEELSCROLLLINES, 0x0068, :SETWHEELSCROLLLINES, 0x0069, :GETMENUSHOWDELAY, 0x006A, :SETMENUSHOWDELAY, 0x006B, :GETWHEELSCROLLCHARS, 0x006C, :SETWHEELSCROLLCHARS, 0x006D, :GETSHOWIMEUI, 0x006E, :SETSHOWIMEUI, 0x006F, :GETMOUSESPEED, 0x0070, :SETMOUSESPEED, 0x0071, :GETSCREENSAVERRUNNING, 0x0072, :GETDESKWALLPAPER, 0x0073, :GETAUDIODESCRIPTION, 0x0074, :SETAUDIODESCRIPTION, 0x0075, :GETSCREENSAVESECURE, 0x0076, :SETSCREENSAVESECURE, 0x0077, :GETHUNGAPPTIMEOUT, 0x0078, :SETHUNGAPPTIMEOUT, 0x0079, :GETWAITTOKILLTIMEOUT, 0x007A, :SETWAITTOKILLTIMEOUT, 0x007B, :GETWAITTOKILLSERVICETIMEOUT, 0x007C, :SETWAITTOKILLSERVICETIMEOUT, 0x007D, :GETMOUSEDOCKTHRESHOLD, 0x007E, :SETMOUSEDOCKTHRESHOLD, 0x007F, :GETPENDOCKTHRESHOLD, 0x0080, :SETPENDOCKTHRESHOLD, 0x0081, :GETWINARRANGING, 0x0082, :SETWINARRANGING, 0x0083, :GETMOUSEDRAGOUTTHRESHOLD, 0x0084, :SETMOUSEDRAGOUTTHRESHOLD, 0x0085, :GETPENDRAGOUTTHRESHOLD, 0x0086, :SETPENDRAGOUTTHRESHOLD, 0x0087, :GETMOUSESIDEMOVETHRESHOLD, 0x0088, :SETMOUSESIDEMOVETHRESHOLD, 0x0089, :GETPENSIDEMOVETHRESHOLD, 0x008A, :SETPENSIDEMOVETHRESHOLD, 0x008B, :GETDRAGFROMMAXIMIZE, 0x008C, :SETDRAGFROMMAXIMIZE, 0x008D, :GETSNAPSIZING, 0x008E, :SETSNAPSIZING, 0x008F, :GETDOCKMOVING, 0x0090, :SETDOCKMOVING, 0x0091, :GETACTIVEWINDOWTRACKING, 0x1000, :SETACTIVEWINDOWTRACKING, 0x1001, :GETMENUANIMATION, 0x1002, :SETMENUANIMATION, 0x1003, :GETCOMBOBOXANIMATION, 0x1004, :SETCOMBOBOXANIMATION, 0x1005, :GETLISTBOXSMOOTHSCROLLING, 0x1006, :SETLISTBOXSMOOTHSCROLLING, 0x1007, :GETGRADIENTCAPTIONS, 0x1008, :SETGRADIENTCAPTIONS, 0x1009, :GETKEYBOARDCUES, 0x100A, :SETKEYBOARDCUES, 0x100B, :GETMENUUNDERLINES, 0x100A, :SETMENUUNDERLINES, 0x100B, :GETACTIVEWNDTRKZORDER, 0x100C, :SETACTIVEWNDTRKZORDER, 0x100D, :GETHOTTRACKING, 0x100E, :SETHOTTRACKING, 0x100F, :GETMENUFADE, 0x1012, :SETMENUFADE, 0x1013, :GETSELECTIONFADE, 0x1014, :SETSELECTIONFADE, 0x1015, :GETTOOLTIPANIMATION, 0x1016, :SETTOOLTIPANIMATION, 0x1017, :GETTOOLTIPFADE, 0x1018, :SETTOOLTIPFADE, 0x1019, :GETCURSORSHADOW, 0x101A, :SETCURSORSHADOW, 0x101B, :GETMOUSESONAR, 0x101C, :SETMOUSESONAR, 0x101D, :GETMOUSECLICKLOCK, 0x101E, :SETMOUSECLICKLOCK, 0x101F, :GETMOUSEVANISH, 0x1020, :SETMOUSEVANISH, 0x1021, :GETFLATMENU, 0x1022, :SETFLATMENU, 0x1023, :GETDROPSHADOW, 0x1024, :SETDROPSHADOW, 0x1025, :GETBLOCKSENDINPUTRESETS, 0x1026, :SETBLOCKSENDINPUTRESETS, 0x1027, :GETUIEFFECTS, 0x103E, :SETUIEFFECTS, 0x103F, :GETDISABLEOVERLAPPEDCONTENT, 0x1040, :SETDISABLEOVERLAPPEDCONTENT, 0x1041, :GETCLIENTAREAANIMATION, 0x1042, :SETCLIENTAREAANIMATION, 0x1043, :GETCLEARTYPE, 0x1048, :SETCLEARTYPE, 0x1049, :GETSPEECHRECOGNITION, 0x104A, :SETSPEECHRECOGNITION, 0x104B, :GETFOREGROUNDLOCKTIMEOUT, 0x2000, :SETFOREGROUNDLOCKTIMEOUT, 0x2001, :GETACTIVEWNDTRKTIMEOUT, 0x2002, :SETACTIVEWNDTRKTIMEOUT, 0x2003, :GETFOREGROUNDFLASHCOUNT, 0x2004, :SETFOREGROUNDFLASHCOUNT, 0x2005, :GETCARETWIDTH, 0x2006, :SETCARETWIDTH, 0x2007, :GETMOUSECLICKLOCKTIME, 0x2008, :SETMOUSECLICKLOCKTIME, 0x2009, :GETFONTSMOOTHINGTYPE, 0x200A, :SETFONTSMOOTHINGTYPE, 0x200B, :GETFONTSMOOTHINGCONTRAST, 0x200C, :SETFONTSMOOTHINGCONTRAST, 0x200D, :GETFOCUSBORDERWIDTH, 0x200E, :SETFOCUSBORDERWIDTH, 0x200F, :GETFOCUSBORDERHEIGHT, 0x2010, :SETFOCUSBORDERHEIGHT, 0x2011, :GETFONTSMOOTHINGORIENTATION, 0x2012, :SETFONTSMOOTHINGORIENTATION, 0x2013, :GETMINIMUMHITRADIUS, 0x2014, :SETMINIMUMHITRADIUS, 0x2015, :GETMESSAGEDURATION, 0x2016, :SETMESSAGEDURATION, 0x2017 ]
- BroadcastSystemMessageFlags =
enum :broadcast_system_message_flags, [ :ALLCOMPONENTS, 0x00000000, #Broadcast to all system components. :APPLICATIONS, 0x00000008, # Broadcast to applications. :ALLDESKTOPS, 0x00000010, # Broadcast to all desktops. Requires the SE_TCB_NAME privilege. ]
- EditNotification =
enum :edit_notification, [ :SETFOCUS, 0x0100, :KILLFOCUS, 0x0200, :CHANGE, 0x0300, :UPDATE, 0x0400, :ERRSPACE, 0x0500, :MAXTEXT, 0x0501, :HSCROLL, 0x0601, :VSCROLL, 0x0602, :ALIGN_LTR_EC, 0x0700, :ALIGN_RTL_EC, 0x0701 ]
- ButtonNotification =
enum :button_notification, [ :CLICKED, 0, :PAINT, 1, :HILITE, 2, :UNHILITE, 3, :DISABLE, 4, :DOUBLECLICKED, 5, :PUSHED, 2, :UNPUSHED, 3, :DBLCLK, 5, :SETFOCUS, 6, :KILLFOCUS, 7, ]
- StaticNotification =
enum :static_notification, [ :CLICKED, 0, :DBLCLK, 1, :ENABLE, 2, :DISABLE, 3 ]
Class Method Summary collapse
- .CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) ⇒ Object
- .CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) ⇒ Object
Methods included from LibBase
Class Method Details
.CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) ⇒ Object
94 95 96 |
# File 'lib/win-ffi/functions/user32/window/window.rb', line 94 def CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) CreateWindowExA(0, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) end |
.CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) ⇒ Object
98 99 100 |
# File 'lib/win-ffi/functions/user32/window/window.rb', line 98 def CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) CreateWindowExW(0, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) end |