    class
    	EV_APPLICATION_IMP

    General
    	cluster: implementation_mswin
    	description: "Eiffel Vision application. Mswindows implementation."
    	create: make

    Ancestors
    	EV_APPLICATION_ACTION_SEQUENCES_IMP*
    	EV_APPLICATION_I*
    	WEL_APPLICATION*
    	WEL_CONSTANTS
    	WEL_ICC_CONSTANTS
    	WEL_TOOLTIP_CONSTANTS
    	WEL_VK_CONSTANTS
    	WEL_WINDOWS_VERSION
    	WEL_WORD_OPERATIONS

    Action sequences
    	accelerator_actions (an_accelerator: EV_ACCELERATOR): EV_NOTIFY_ACTION_SEQUENCE
    	cancel_actions: EV_PND_ACTION_SEQUENCE
    	create_cancel_actions: EV_PND_ACTION_SEQUENCE
    	create_destroy_actions: EV_NOTIFY_ACTION_SEQUENCE
    	create_drop_actions: EV_PND_ACTION_SEQUENCE
    	create_focus_in_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET]]
    	create_focus_out_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET]]
    	create_idle_actions: EV_NOTIFY_ACTION_SEQUENCE
    	create_key_press_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, EV_KEY]]
    	create_key_press_string_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, STRING_32]]
    	create_key_release_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, EV_KEY]]
    	create_mouse_wheel_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, INTEGER_32]]
    	create_pick_actions: EV_PND_ACTION_SEQUENCE
    	create_pnd_motion_actions: EV_PND_MOTION_ACTION_SEQUENCE
    	create_pointer_button_press_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, INTEGER_32, INTEGER_32, INTEGER_32]]
    	create_pointer_button_release_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, INTEGER_32, INTEGER_32, INTEGER_32]]
    	create_pointer_double_press_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, INTEGER_32, INTEGER_32, INTEGER_32]]
    	create_pointer_motion_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, INTEGER_32, INTEGER_32]]
    	create_post_launch_actions: EV_NOTIFY_ACTION_SEQUENCE
    	create_theme_changed_actions: EV_NOTIFY_ACTION_SEQUENCE
    	destroy_actions: EV_NOTIFY_ACTION_SEQUENCE
    	drop_actions: EV_PND_ACTION_SEQUENCE
    	focus_in_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET]]
    	focus_out_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET]]
    	idle_actions: EV_NOTIFY_ACTION_SEQUENCE
    	internal_idle_actions: EV_NOTIFY_ACTION_SEQUENCE
    	key_press_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, EV_KEY]]
    	key_press_string_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, STRING_32]]
    	key_release_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, EV_KEY]]
    	mouse_wheel_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, INTEGER_32]]
    	once_idle_actions: EV_NOTIFY_ACTION_SEQUENCE
    	pick_actions: EV_PND_ACTION_SEQUENCE
    	pnd_motion_actions: EV_PND_MOTION_ACTION_SEQUENCE
    	pointer_button_press_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, INTEGER_32, INTEGER_32, INTEGER_32]]
    	pointer_button_release_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, INTEGER_32, INTEGER_32, INTEGER_32]]
    	pointer_double_press_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, INTEGER_32, INTEGER_32, INTEGER_32]]
    	pointer_motion_actions: ACTION_SEQUENCE [TUPLE [EV_WIDGET, INTEGER_32, INTEGER_32]]
    	post_launch_actions: EV_NOTIFY_ACTION_SEQUENCE
    	theme_changed_actions: EV_NOTIFY_ACTION_SEQUENCE
    	uncaught_exception_actions: ACTION_SEQUENCE [TUPLE [EXCEPTION]]

    Queries
    	Accelerators: WEL_ACCELERATORS
    	alt_pressed: BOOLEAN
    	application: WEL_APPLICATION
    	application_main_window: WEL_COMPOSITE_WINDOW
    	assertion_violation: BOOLEAN
    	Capture_heavy: INTEGER_32
    	Capture_normal: INTEGER_32
    	capture_type: INTEGER_32
    	captured_widget: EV_WIDGET
    	Check_instruction: INTEGER_32
    	Class_invariant: INTEGER_32
    	class_name: STRING_8
    	clipboard: EV_CLIPBOARD
    	Com_exception: INTEGER_32
    	contextual_help_accelerator: EV_ACCELERATOR
    	Create_on_deferred: INTEGER_32
    	ctrl_pressed: BOOLEAN
    	Default_show_command: INTEGER_32
    	Developer_exception: INTEGER_32
    	developer_exception_name: STRING_8
    	do_once_idle_actions_agent: PROCEDURE [EV_APPLICATION_I, TUPLE]
    	Dollar_applied_to_melted_feature: INTEGER_32
    	Eiffel_runtime_fatal_error: INTEGER_32
    	Eiffel_runtime_panic: INTEGER_32
    	exception: INTEGER_32
    	exception_dialog: EV_DIALOG
    	Exception_in_signal_handler: INTEGER_32
    	exception_trace: STRING_8
    	External_exception: INTEGER_32
    	Floating_point_exception: INTEGER_32
    	focused_widget: EV_WIDGET
    	help_accelerator: EV_ACCELERATOR
    	help_engine: EV_HELP_ENGINE
    	idle_action_enabled: BOOLEAN
    	Incorrect_inspect_value: INTEGER_32
    	interface: EV_APPLICATION
    	Internal_tooltip: WEL_TOOLTIP
    	Io_exception: INTEGER_32
    	is_application_main_window (window: WEL_COMPOSITE_WINDOW): BOOLEAN
    	is_developer_exception: BOOLEAN
    	is_developer_exception_of_name (name: STRING_8): BOOLEAN
    	is_dialog (hwnd: POINTER): BOOLEAN
    	is_signal: BOOLEAN
    	is_system_exception: BOOLEAN
    	key_pressed (virtual_key: INTEGER_32): BOOLEAN
    	locked_window: EV_WINDOW
    	Loop_invariant: INTEGER_32
    	Loop_variant: INTEGER_32
    	meaning (except: INTEGER_32): STRING_8
    	new_exception: EXCEPTION
    	No_more_memory: INTEGER_32
    	Number_of_codes: INTEGER_32
    	Operating_system_exception: INTEGER_32
    	original_class_name: STRING_8
    	original_exception: INTEGER_32
    	original_recipient_name: STRING_8
    	original_tag_name: STRING_8
    	Out_of_memory: INTEGER_32
    	pnd_targets: HASH_TABLE [INTEGER_32, INTEGER_32]
    	Postcondition: INTEGER_32
    	Precondition: INTEGER_32
    	recipient_name: STRING_8
    	Rescue_exception: INTEGER_32
    	Resumption_failed: INTEGER_32
    	Retrieve_exception: INTEGER_32
    	Routine_failure: INTEGER_32
    	runable: BOOLEAN
    	Runtime_check_exception: INTEGER_32
    	Runtime_io_exception: INTEGER_32
    	shift_pressed: BOOLEAN
    	Show_exception_dialog: BOOLEAN
    	Signal_exception: INTEGER_32
    	Silly_main_window: EV_INTERNAL_SILLY_WINDOW_IMP
    	tag_name: STRING_8
    	try_lock: BOOLEAN
    	uncaught_exception_actions_called: BOOLEAN
    	valid_code (c: INTEGER_32): BOOLEAN
    	Vk_0: INTEGER_32
    	Vk_1: INTEGER_32
    	Vk_2: INTEGER_32
    	Vk_3: INTEGER_32
    	Vk_4: INTEGER_32
    	Vk_5: INTEGER_32
    	Vk_6: INTEGER_32
    	Vk_7: INTEGER_32
    	Vk_8: INTEGER_32
    	Vk_9: INTEGER_32
    	Vk_a: INTEGER_32
    	Vk_add: INTEGER_32
    	Vk_alt: INTEGER_32
    	Vk_apps: INTEGER_32
    	Vk_b: INTEGER_32
    	Vk_back: INTEGER_32
    	Vk_c: INTEGER_32
    	Vk_cancel: INTEGER_32
    	Vk_capital: INTEGER_32
    	Vk_clear: INTEGER_32
    	Vk_control: INTEGER_32
    	Vk_d: INTEGER_32
    	Vk_decimal: INTEGER_32
    	Vk_delete: INTEGER_32
    	Vk_divide: INTEGER_32
    	Vk_down: INTEGER_32
    	Vk_e: INTEGER_32
    	Vk_end: INTEGER_32
    	Vk_escape: INTEGER_32
    	Vk_execute: INTEGER_32
    	Vk_f: INTEGER_32
    	Vk_f1: INTEGER_32
    	Vk_f10: INTEGER_32
    	Vk_f11: INTEGER_32
    	Vk_f12: INTEGER_32
    	Vk_f13: INTEGER_32
    	Vk_f14: INTEGER_32
    	Vk_f15: INTEGER_32
    	Vk_f16: INTEGER_32
    	Vk_f17: INTEGER_32
    	Vk_f18: INTEGER_32
    	Vk_f19: INTEGER_32
    	Vk_f2: INTEGER_32
    	Vk_f20: INTEGER_32
    	Vk_f21: INTEGER_32
    	Vk_f22: INTEGER_32
    	Vk_f23: INTEGER_32
    	Vk_f24: INTEGER_32
    	Vk_f3: INTEGER_32
    	Vk_f4: INTEGER_32
    	Vk_f5: INTEGER_32
    	Vk_f6: INTEGER_32
    	Vk_f7: INTEGER_32
    	Vk_f8: INTEGER_32
    	Vk_f9: INTEGER_32
    	Vk_g: INTEGER_32
    	Vk_h: INTEGER_32
    	Vk_help: INTEGER_32
    	Vk_home: INTEGER_32
    	Vk_i: INTEGER_32
    	Vk_insert: INTEGER_32
    	Vk_j: INTEGER_32
    	Vk_k: INTEGER_32
    	Vk_l: INTEGER_32
    	Vk_lbutton: INTEGER_32
    	Vk_lcontrol: INTEGER_32
    	Vk_left: INTEGER_32
    	Vk_lmenu: INTEGER_32
    	Vk_lshift: INTEGER_32
    	Vk_m: INTEGER_32
    	Vk_mbutton: INTEGER_32
    	Vk_menu: INTEGER_32
    	Vk_multiply: INTEGER_32
    	Vk_n: INTEGER_32
    	Vk_next: INTEGER_32
    	Vk_numlock: INTEGER_32
    	Vk_numpad0: INTEGER_32
    	Vk_numpad1: INTEGER_32
    	Vk_numpad2: INTEGER_32
    	Vk_numpad3: INTEGER_32
    	Vk_numpad4: INTEGER_32
    	Vk_numpad5: INTEGER_32
    	Vk_numpad6: INTEGER_32
    	Vk_numpad7: INTEGER_32
    	Vk_numpad8: INTEGER_32
    	Vk_numpad9: INTEGER_32
    	Vk_o: INTEGER_32
    	Vk_p: INTEGER_32
    	Vk_pause: INTEGER_32
    	Vk_print: INTEGER_32
    	Vk_prior: INTEGER_32
    	Vk_q: INTEGER_32
    	Vk_r: INTEGER_32
    	Vk_rbutton: INTEGER_32
    	Vk_rcontrol: INTEGER_32
    	Vk_return: INTEGER_32
    	Vk_right: INTEGER_32
    	Vk_rmenu: INTEGER_32
    	Vk_rshift: INTEGER_32
    	Vk_s: INTEGER_32
    	Vk_scroll: INTEGER_32
    	Vk_select: INTEGER_32
    	Vk_separator: INTEGER_32
    	Vk_shift: INTEGER_32
    	Vk_snapshot: INTEGER_32
    	Vk_space: INTEGER_32
    	Vk_subtract: INTEGER_32
    	Vk_t: INTEGER_32
    	Vk_tab: INTEGER_32
    	Vk_u: INTEGER_32
    	Vk_up: INTEGER_32
    	Vk_v: INTEGER_32
    	Vk_w: INTEGER_32
    	Vk_x: INTEGER_32
    	Vk_y: INTEGER_32
    	Vk_z: INTEGER_32
    	Void_assigned_to_expanded: INTEGER_32
    	Void_call_target: INTEGER_32
    	window_with_focus: EV_WINDOW_IMP

    Commands
    	add_idle_action (a_idle_action: PROCEDURE [ANY, TUPLE])
    	add_root_window (w: WEL_FRAME_WINDOW)
    	call_idle_actions
    	call_post_launch_actions
    	catch (code: INTEGER_32)
    	destroy
    	die (code: INTEGER_32)
    	disable_idle_action
    	display_help_for_widget (a_widget: EV_WIDGET)
    	do_once_idle_actions
    	do_once_on_idle (an_action: PROCEDURE [ANY, TUPLE])
    	enable_contextual_help
    	enable_idle_action
    	idle_action
    	ignore (code: INTEGER_32)
    	lock
    	message_on_failure
    	no_message_on_failure
    	on_exception_action (an_exception: EXCEPTION)
    	process_events
    	process_graphical_events
    	raise (name: STRING_8)
    	raise_retrieval_exception (name: STRING_8)
    	relinquish_cpu_slice
    	remove_idle_action (a_idle_action: PROCEDURE [ANY, TUPLE])
    	remove_root_window (w: WEL_FRAME_WINDOW)
    	run
    	set_capture_type (a_capture_type: INTEGER_32)
    	set_captured_widget (a_captured_widget: EV_WIDGET)
    	set_contextual_help_accelerator (an_accelerator: EV_ACCELERATOR)
    	set_help_accelerator (an_accelerator: EV_ACCELERATOR)
    	set_help_engine (an_engine: EV_HELP_ENGINE)
    	set_locked_window (a_window: EV_WINDOW)
    	set_tooltip_delay (a_delay: INTEGER_32)
    	set_window_with_focus (a_window: EV_WINDOW)
    	sleep (msec: INTEGER_32)
    	unlock

    Constraints
    	idle action mutex valid
    	duplicated message not void