Hello Mike,
As you may know, a list is declared and defined trough macros. I show an example below.
_D4D_DECLARE_COMBO_BOX_BEGIN(D4D_NO_CONST, grpBx_name, SET_OFFSET_X, SET_RB_POS_Y(0), SET_SIZE_CB_X, SET_SIZE_CB_Y, 68, SET_RADIUS, NULL, &scrSett_grpBx_name, D4D_COMBO_BOX_F_DEFAULT, NULL, FONT_SYSTEM, 20, 0, 0, NULL, ComboBoxName_OnChange, NULL)
D4D_DECLARE_COMBO_BOX_ITEM(D4D_DEFSTR("Example"), EXAMPLE)
D4D_DECLARE_COMBO_BOX_END()
If you expand these macros, you will see that the box items are stored in the array D4D_LIST_BOX_ITEM name##_items[] (where name## is replaced by the parameter name, in this case grpBx_name), this array ends with an item defined as NULL (D4D_DECLARE_COMBO_BOX_END() is expanded as { NULL, NULL} };) so if you want to add a new item dynamically you need to replace this NULL element and then add a new NULL one.
I am thinking in a workaround where in compile time you declare all the items you think you will need to reserve the memory and in execution time replace the memory for this items for NULL.
Best regards,
Earl.