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.