window_callback_init

	callback_id.i2.v = window_callback_init(callback.f.v [,priority.u1.v]
						[,event_mask.u4.v]
						[,window_id.i2.v]
						[,callback_data.g.v]
						[,handle.i1a.r])

	This function will register the routine "callback" with window_intype.
	Each time window_intype is called it will call the routine "callback"
	before returning to its caller.  The returned value "call_id" can be
	used to remove the callback registration by calling
	window_callback_term.

	callback	address of function to be called as follows:
			callback(wid.i2.r, callback_data.g.v, intype_data.s.r)
			("intype_data" is a structure of type
			 WINDOW_INTYPE_DATA)
	[priority]	optional callback priority  (If multiple callback
			routines have been registered, routines with higher
			priority are called first.)
			(default is WMNGR_DFLT_CALLBACK_PRIORITY)
	[event_mask]	mask of interrupt events for which this callback
			will be active (events can be or'ed together)
			(WMNGR_INT_ALL -> active on all interrupts (default),
			 WMNGR_INT_KBD -> active on keyboard interrupts,
			 WMNGR_INT_SHIFT_KBD -> active on shift click
						interrupts,
			 WMNGR_INT_CTRL_KBD -> active on control click
					       interrupts,
			 WMNGR_INT_ALT_KBD -> active on alt click interrupts,
			 WMNGR_INT_PER -> active on periodic interrupts,
			 WMNGR_INT_TERM -> active on terminate interrupt,
			 WMNGR_INT_KEYUP -> active on key up interrupts,
			 WMNGR_INT_DOUBLE -> active on double clicks,
			 WMNGR_INT_KBD_LX -> active on keyboard interrupts
					     in an LX window,
			 WMNGR_INT_SHIFT_KBD_LX -> shift click interrupt in
						   active graphics window,
			 WMNGR_INT_CTRL_KBD_LX -> control click interrupt in
						  active graphics window,
			 WMNGR_INT_ALT_KBD_LX -> alt click interrupt in active
						 graphics window,
			 WMNGR_INT_FOCUSIN -> active on TV focus in events,
			 WMNGR_INT_FOCUSOUT -> active on TV focus out events)
	[window_id]	window ID to service (WMNGR_ALL_WINDOWS is default)
			(use WMNGR_BACKGROUND for background window)
	[callback_data]	pointer to user-supplied data to be passed to
			callback function (default is NULL)
	[handle]	null terminated handle string for identification
			purposes (default is NULL)

	This function returns status values as follows:

	CBS_TOO_MANY		all callback slots are full
	CLIB_INTYPE_UNINITIALIZED		intype needs to be called first
	otherwise		callback ID

	This function requires the following include files:

	cns_data_structs_h, cbslib_h

	Related functions:

	window_callback_term, window_intype, window_register_function_c,
	window_unregister_function_c, window_add_callback_c,
	window_remove_callback_c, intro_tv_windows

	C/C++ usage:

	static const char	handle[] = "my_callback";
	char	priority = 0;
	short	callback_id;
	short	window_id = WMNGR_BACKGROUND;
	unsigned int	event_mask = WMNGR_INT_KBD;
	void	callback(short *window_id, void *callback_data,
			 WINDOW_INTYPE_DATA *intype_data);
	void	*callback_data = (void *) NULL;

	callback_id = window_callback_init(callback,priority,event_mask,
					   window_id,callback_data,handle);