status.i4.v = window_field_create_c(window_id.i2.v, row.i4.v,
					    column.i4.v, height.i4.v,
					    width.i4.v, callback_func.f.v,
					    field_id.i4.r [,handle.i1a.r])

	This routine will create an interrupt callback field in a window.
	All interrupt callback fields in a window are automatically deleted
	when the window is deleted.

	window_id	window ID (use WMNGR_BACKGROUND for background window)
	row		top row of the field
			Special values are:
			(WMNGR_CENTER -> center the field top to bottom,
			 WMNGR_ENTIRE_WINDOW -> field will cover the
						entire window)
	column		left column of the field
			(WMNGR_CENTER -> center the field left to right
					 in the window,
			 WMNGR_ENTIRE_LINE -> field will fill the
					      entire line)
	height		height of field in rows
	width		width of field in columns
	callback_func	address of function to be called as follows:
			callback(window_id.i2.v, callback_data.g.v,
			("interrupt_data" is a structure of type
	callback_data	pointer to user-supplied data to be passed to
			callback function
	interrupt_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 except
					  enter and leave field,
			 WMNGR_INT_INIT -> executed when field is initialized,
			 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_RIGHT_CLICK -> active on right click events,
			 WMNGR_INT_PER -> active on periodic interrupts,
			 WMNGR_INT_TERM -> executed when field is destroyed,
			 WMNGR_INT_KEYUP -> active on button up interrupts,
			 WMNGR_INT_DOUBLE -> active on double clicks,
			 WMNGR_INT_ENTER_FIELD -> executed when cursor enters
						  the field,
			 WMNGR_INT_LEAVE_FIELD -> executed when cursor leaves
						  the field)
	options		field creation options
			(WMNGR_CB_OPT_NONE -> no options selected
					      (if field already exists,
					       return an error),
			 WMNGR_CB_OPT_ADD_IF_EXISTS -> if field already exists,
						       add this callback
						       to that field,
							      this periodic even
							      if the cursor is
							      not in the field)
	field_id	returned field ID
			(can be passed to window_field_delete_c)
			(Note: If this argument is not needed, a value of
			 NULL can be passed for it.)
	[handle]	null terminated ASCII handle to be used as an
			alternate means of identifying this field
			(default is NULL)

	This function returns ACNET status values as follows:

	OK			success
	CBS_INVARG		invalid width, height, or interrupt mask
	CBS_NO_WINDOW		window doesn't exist
	CBS_INVSIZ		field is too big to fit in the window
	CBS_NOT_IN_WINDOW	field is not entirely in the
				requested window
	CBS_MEMFAIL		failed in allocating dynamic memory
	CBS_DUPREQ		this field overlaps an existing field

	This function requires the following include files:

	cnsparam_h, cns_data_structs_h, cbslib_h, acnet_errors_h

	Related functions:

	window_field_add_callback_c, window_field_delete_callback_c,
	window_field_init_c, window_field_delete_c, field_window_delete_c,
	window_field_disable_c, window_field_enable_c,
	window_field_alter_interrupt_c, field_window_set_exclusive_c,
	field_window_restore_exclusive, window_field_enable_all_occluded,
	window_field_disable_all_occluded, window_field_restore_all_occluded,
	window_intype, intro_tv_windows

	C/C++ usage:

	static const char	handle[] = "my_field";
	short	window_id;
	int	status;
	int	row = 1;
	int	column = 1;
	int	height = 1;
	int	width = 10;
	int	field_id;
	unsigned int	interrupt_mask = WMNGR_INT_KBD;
	unsigned int	options = WMNGR_CB_OPT_ADD_IF_EXISTS;
	void	callback_func(short window_id, void *callback_data,
			      WINDOW_FIELD_INTERRUPT_DATA *interrupt_data);
	void	*callback_data = (void *) NULL;

	status = window_field_create_c(window_id,row,column,height,width,