status.i4.v = window_to_printer_c(window_id.i2.v, print_queue.i1a.r,
					  num_rows.i4.v, top_row.i4.v,
					  printer_type.i4.v, match_data.s.r,
					  callback_func.f.v, callback_data.g.v

	This routine allows the caller to copy the contents of a TV window
	to a printer or to a mail message.

	window_id	ID of desired window
			(WMNGR_BACKGROUND -> background window,
			 WMNGR_WHOLE_DISPLAY -> entire visible display,
			 WMNGR_ERROR_WINDOW -> error display window,
			 otherwise -> ID of desired window)
	print_queue	null terminated output print queue name  (If a value
			of NULL, is passed for this argument, the sys$print
			queue is used.)  (If printer type has a value of
			PRINTER_MAIL, this argument will be interpreted as
			the receiver's user name.)
	num_rows	number of rows of text to display  (Note: If a value
			of zero is passed for this parameter, the visible
			window will be displayed.  Otherwise, "num_rows" of
			the scroll buffer will be displayed.  If this value
			is negative, both the visible window and the scroll
			buffer will be displayed.)
	top_row		top row to display (Note: This value is only used
			when displaying scroll buffer text.) (must be >= 1)
	printer_type	type of printer being used (If the caller doesn't
			know the printer type, a value of PRINTER_UNKNOWN
			can be passed.) (If a value of PRINTER_MAIL is passed,
			the window text will be sent to a mail message.)
			(constants are in 'cbslib')
	match_data	text matching information which determines which lines
			will be printed (If a value of NULL is passed for
			this argument, all requested lines will be printed.)
			(structure of type STR_SEARCH_INFO)
	callback_func	address of user supplied function to modify each
			line of the output to be called as follows:
			print_line.i4.v = callback(output_line.i1a.r,
	callback_data	pointer to user-supplied data to be passed to the
			callback function
	[args]		additional arguments whose use and contents depends
			on the printer type
			(PRINTER_MAIL -> structure of type WINDOW_MAIL_INFO
					 which supplies a subject and body
			(default is NULL)

	This function returns ACNET status values as follows:

	OK			success
	CBS_INVARG		invalid window ID or top row was specified
	CBS_NO_WINDOW		window doesn't exist
	CBS_NOTOPN		couldn't open temporary file
	CBS_GENERR		print job failed

	This function requires the following include files:

	cnsparam_h, cbslib_h, acnet_errors_h

	Related functions:

	window_to_paste_buffer_c, window_to_graphic_screen_c,
	window_to_text_file_c, window_to_excel_file_c,

	C/C++ usage:

	static const char	print_queue[] = "queue_name";
	short	window_id;
	int	status;
	int	num_rows = 0;
	int	top_row = 1;
	int	printer_type = PRINTER_UNKNOWN;
	int	callback_func(char *output_line, void *callback_data,
			      int line_number);
	void	*calllback_data = (void *) NULL;
	void	*args = (void *) NULL;

	status = window_to_printer_c(window_id,print_queue,num_rows,