Additional Topics > External Development Guide > IDLInternals - Keyword Processing > KW_RESULT

# KW_RESULT

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.