Each system routine that processes keywords is required to define a structure variable into which IDL_KWProcessByOffset() will store all the results of keyword processing. This variable must follow the following rules:
            
                - The name of the structure type must be defined as KW_RESULT. This requirement exists so that the IDL_KW_OFFSETOF() macro can properly do its work.
 
                - The first field within any KW_RESULT structure must be defined using the IDL_KW_RESULT_FIRST_FIELD macro. The contents of this first field are private, and should not be examined. It contains the information required by IDL to properly track its resource use.
 
                - The name of the KW_RESULT variable must be kw. This requirement exists so that the IDL_KW_FREE macro can properly do its work.
 
            
            Hence, all system routines that process keywords will contain statements similar to the following:
            typedef struct {
               IDL_KW_RESULT_FIRST_FIELD
               /* Must be first entry in struct */
               …	/* Additional user specified fields */
            } KW_RESULT
             
            KW_RESULT kw
            All fields within the KW_RESULT structure after the required first field can have arbitrary user selected names. The types of these fields are dictated by the IDL_KW_PAR and IDL_KW_ARR_DESC_R structures that refer to them.