[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference bulova::decw_jan-89_to_nov-90

Title:DECWINDOWS 26-JAN-89 to 29-NOV-90
Notice:See 1639.0 for VMS V5.3 kit; 2043.0 for 5.4 IFT kit
Moderator:STAR::VATNE
Created:Mon Oct 30 1989
Last Modified:Mon Dec 31 1990
Last Successful Update:Fri Jun 06 1997
Number of topics:3726
Total number of notes:19516

967.0. "XGetWindowProperty problem with Ada" by 17305::WEST (I'm just visiting this planet.) Fri Jun 16 1989 13:05

  I have QAR'd the following:

================================================================================

  The following extract is from DECW$X_.ADA.  There is problem with this
definition.  It is missing one parameter and has other parameters in the
wrong location.  I could not get this work as is.  Modified it according
to what is listed in the documentation and it appears to work fine.

  The missing parameter is NUM_ITEMS_RETURN.  It belongs where the parameter
NUM_ELEMENTS_RETURN is and NUM_ELEMENTS_RETURN belongs at the end.  According
to the documentation NUM_ITEMS_RETURN is a required paramter whereas 
NUM_ELEMENTS_RETURN is optional.  The current code interface has 
NUM_ELEMENTS_RETURN and BYTES_AFTER_RETURN in between the ACTUAL_* parameters
when they belong after them.

  What follows the *'s is the modification made to the Ada interface.  I have
not shown all the possible overload resolutions possible.  Also, the comment
section is incorrect and needs to be corrected.

						-=> Jim <=-



--
--  result = x$get_window_property(display,window_id,property_id,long_offset,
--			long_len,delete,requested_type,actual_type_return,
--                      actual_format_return,num_elements_return,
--                      bytes_after_return,[property_data_return],
--			[property_data_len],[property_data_buff_return])
--
--      result.wl.v = result of query
--      display.rlu.r = display id
--      window_id.rlu.r = window id
--      property_id.rlu.r = atom specifying which property
--      long_offset.rl.r = offset where data will be retrieved
--      long_len.rl.r = length of the data to be retrieved
--      delete.rlu.r = delete flag
--      requested_type.rlu.r = requested type atom
--      actual_type_return.wlu.r = actual type atom
--      actual_format_return.wl.r = actual format
--      num_elements_return.wl.r = number of elements returned
--	bytes_after_return.wl.r = number of bytes remaining to be read in the property
--      property_data_return.wa.r = property data pointer returned (optional) 
--	property_data_len.rl.r = length of data buffer (optional)   * VAX ONLY *
--      property_data_buff_return.wr.ra = data buffer (optional)           * VAX ONLY *
--
 
    procedure GET_WINDOW_PROPERTY (
	RESULT		: out INTEGER;					-- return value
	DISPLAY		: in  DISPLAY_TYPE;
	WINDOW_ID	: in  WINDOW_ID_TYPE;
	PROPERTY_ID	: in  PROPERTY_ID_TYPE;
	LONG_OFFSET	: in  INTEGER;
	LONG_LEN	: in  INTEGER;
	DELETE		: in  UNSIGNED_LONGWORD;
	REQUESTED_TYPE	: in  UNSIGNED_LONGWORD;
	ACTUAL_TYPE_RETURN	: out UNSIGNED_LONGWORD;
	NUM_ELEMENTS_RETURN	: out INTEGER;
	BYTES_AFTER_RETURN	: out INTEGER;
	ACTUAL_FORMAT_RETURN	: out INTEGER;
	PROPERTY_DATA_RETURN	: out ADDRESS;
	PROPERTY_DATA_LEN	: in  INTEGER		:= INTEGER'NULL_PARAMETER;
	PROPERTY_DATA_BUFF_RETURN	: out UNSIGNED_LONGWORD_ARRAY);
 
 
    pragma INTERFACE (EXTERNAL, GET_WINDOW_PROPERTY);
 
    pragma IMPORT_VALUED_PROCEDURE (GET_WINDOW_PROPERTY, "x$get_window_property",
	(INTEGER, DISPLAY_TYPE, WINDOW_ID_TYPE, PROPERTY_ID_TYPE, INTEGER, INTEGER, UNSIGNED_LONGWORD, UNSI
	UNSIGNED_LONGWORD, INTEGER, INTEGER, INTEGER, ADDRESS, INTEGER, UNSIGNED_LONGWORD_ARRAY),
	(VALUE, REFERENCE, REFERENCE, REFERENCE, REFERENCE, REFERENCE, REFERENCE, REFERENCE, REFERENCE, REF
	REFERENCE, REFERENCE, REFERENCE, REFERENCE, REFERENCE));
 


********************************************************************************

    procedure GET_WINDOW_PROPERTY (
	RESULT			  : out INTEGER;					-- return value
	DISPLAY			  : in  DISPLAY_TYPE;
	WINDOW_ID		  : in  WINDOW_ID_TYPE;
	PROPERTY_ID		  : in  PROPERTY_ID_TYPE;
	LONG_OFFSET		  : in  INTEGER;
	LONG_LEN		  : in  INTEGER;
	DELETE			  : in  UNSIGNED_LONGWORD;
	REQUESTED_TYPE		  : in  UNSIGNED_LONGWORD;
	ACTUAL_TYPE_RETURN	  : out UNSIGNED_LONGWORD;
	ACTUAL_FORMAT_RETURN	  : out INTEGER;
	NUM_ITEMS_RETURN	  : out INTEGER;
	BYTES_AFTER_RETURN	  : out INTEGER;
	PROPERTY_DATA_RETURN	  : out ADDRESS;
	PROPERTY_DATA_LEN	  : in  INTEGER		:= INTEGER'NULL_PARAMETER;
	PROPERTY_DATA_BUFF_RETURN : out UNSIGNED_LONGWORD_ARRAY;
	NUM_ELEMENTS_RETURN	  : out INTEGER);
 

    pragma IMPORT_VALUED_PROCEDURE (
      GET_WINDOW_PROPERTY, "x$get_window_property",
      (INTEGER, DISPLAY_TYPE, WINDOW_ID_TYPE, PROPERTY_ID_TYPE,
       INTEGER, INTEGER, UNSIGNED_LONGWORD, UNSIGNED_LONGWORD,
       UNSIGNED_LONGWORD, INTEGER, INTEGER, INTEGER, ADDRESS,
       INTEGER, UNSIGNED_LONGWORD_ARRAY, INTEGER),
      (VALUE, REFERENCE, REFERENCE, REFERENCE,
       REFERENCE, REFERENCE, REFERENCE, REFERENCE,
       REFERENCE, REFERENCE, REFERENCE, REFERENCE, REFERENCE,
       REFERENCE, REFERENCE, REFERENCE));
 


T.RTitleUserPersonal
Name
DateLines