indexing
	description: "Execute commands."
	status: "See notice at end of class."
	date: "$Date$"
	revision: "$Revision$"

class interface
	WEL_COMMAND_EXEC

create 

	make (a_command: WEL_COMMAND; an_argument: ANY)
			-- Set command and argument with
			-- a_command and an_argument.
		require
			a_command_not_void: a_command /= void
		ensure
			command_set: command = a_command
			argument_set: argument = an_argument

feature -- Initialization

	make (a_command: WEL_COMMAND; an_argument: ANY)
			-- Set command and argument with
			-- a_command and an_argument.
		require
			a_command_not_void: a_command /= void
		ensure
			command_set: command = a_command
			argument_set: argument = an_argument
	
feature -- Access

	argument: ANY
			-- Argument to be given to command before execution

	command: WEL_COMMAND
			-- User-defined command to execute
	
feature -- Execution

	execute (window: WEL_WINDOW; message, wparam, lparam: INTEGER)
			-- Create message information corresponding to message
			-- and execute command.
		require
			window_not_void: window /= void
			positive_message: message >= 0
	
invariant

		-- from ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)

end -- class WEL_COMMAND_EXEC