When a keyword is specified to be a read-only array (i.e., the IDL_KW_ARRAY flag is set), the value field of the IDL_KW_PAR struct should be set to point to an IDL_KW_ARR_DESC_R structure.

This structure is defined as:

typedef struct { 
   char *data; 
   IDL_MEMINT nmin; 
   IDL_MEMINT nmax;
   IDL_MEMINT* n_offset;
} IDL_KW_ARR_DESC_R;

where:

data

The offset of the field within the user supplied KW_RESULT structure, of the C array to receive the data. This offset is computed using the IDL_KW_OFFSETOF() macro. This array must be of the C type specified by the type field of the IDL_KW_PAR struct. For example, IDL_TYP_LONG maps into a C IDL_LONG. There must be nmax elements in the array.

nmin

The minimum number of elements allowed.

nmax

The maximum number of elements allowed.

n_offset

The offset of the field within the user defined KW_RESULT structure into which IDL_KWProcessByOffset() will store the number of elements actually stored into the array field. This offset is computed using the IDL_KW_OFFSETOF() macro.