Also, cunhc contains a group of constants to establish the Collation rules. These are the constants.
Group 1 - Collation level:
These constants set up the Coll_Level, and must be specified individually.
DDA size:
#ifdef _LP64
#define CUNBOPRM_DDA_REQ 8192
#else
#define CUNBOPRM_DDA_REQ 4096
#endif
Collation Parameter Area versions:
#define CUNBOPRM_VERSION 1
#define CUNBOPRM_VERSION2 2
ALET Constant:
#define CUNBOPRM_ALET 0
Collation Levels (also named Collation strengths):
#define CUNBOPRM_IDENTICAL 5
#define CUNBOPRM_PRIMARY 1
#define CUNBOPRM_SECONDARY 2
#define CUNBOPRM_TERTIARY 3
#define CUNBOPRM_QUATERNARY 4
#define CUNBOPRM_QUINARY 5
Collation Mask:
#define CUNBOPRM_MASK_DEFAULT '\xE0' /* naVCE+Forward+nSK+nNorm */
Used for Variable_Opt field:
#define CUNBOPRM_MASK_SHIFTED 0
#define CUNBOPRM_MASK_BLANKED 1
#define CUNBOPRM_MASK_nIGNORABLE 2
#define CUNBOPRM_MASK_STRIMMED 3
#define CUNBOPRM_MASK_NAVCE 14
Used for Cmp_Order field:
#define CUNBOPRM_MASK_FORWARD 0
#define CUNBOPRM_MASK_BACKWARD 1
Used for SKey_Opt field:
#define CUNBOPRM_MASK_nSK 0
#define CUNBOPRM_MASK_SK 1
Used for Norm_Type field:
#define CUNBOPRM_MASK_nNORM 0
#define CUNBOPRM_MASK_NFD 1
#define CUNBOPRM_MASK_NFC 2
#define CUNBOPRM_MASK_NFKD 3
#define CUNBOPRM_MASK_NFKC 4
Used for SKey_and_Cmp field:
#define CUNBOPRM_MASK_SKey_and_Cmp_OFF 0
#define CUNBOPRM_MASK_SKey_and_Cmp_ON 1
Used for Case_First field:
#define CUNBOPRM_CASE_OPTIONS_Case_First_Default 0
#define CUNBOPRM_CASE_OPTIONS_Case_First_UPPER 1
#define CUNBOPRM_CASE_OPTIONS_Case_First_lower 2
Used for Case_Level field:
#define CUNBOPRM_CASE_OPTIONS_Case_Level_OFF 0
#define CUNBOPRM_CASE_OPTIONS_Case_Level_ON 1
Used for Hiragana field:
#define CUNBOPRM_CASE_SPECIAL_Hiragana_OFF 0
#define CUNBOPRM_CASE_SPECIAL_Hiragana_ON 1
Used for Handle bit fields:
#define CUNBOPRM_FLAG1_DEFAULT '\x00'
#define CUNBOPRM_FLAG1_Ret_If_Inv_Handle_ON '\x80'
#define CUNBOPRM_FLAG1_Get_New_Handle_ON '\x40'
Null Handle:
#define CUNBOPRM_EMPTY_COLLHDL '\0','\0','\0','\0','\0','\0','\0',\
'\0','\0','\0','\0','\0','\0','\0','\0','\0',\
'\0','\0','\0','\0','\0','\0','\0','\0',\
'\0','\0','\0','\0','\0','\0','\0','\0',\
'\0','\0','\0','\0','\0','\0','\0','\0',\
'\0','\0','\0','\0','\0','\0','\0','\0',\
'\0','\0','\0','\0','\0','\0','\0','\0',\
'\0','\0','\0','\0','\0','\0','\0','\0'
UCA (Unicode Collation Algorithm) versions:
#define CUNBOPRM_UCAempty '\x00'
#define CUNBOPRM_UCA301 '\x01'
#define CUNBOPRM_UCA400R1 '\x02'
#define CUNBOPRM_UCA410 '\x03'
#define CUNBOPRM_UCA600 '\x04'
There is also a C example in the CUNSOSMC member
in SYS1.SAMPLIB. For further sample information, see Sample programs.