Code:
typedef struct DIALOG
{
DIALOG_PROC proc;
int x, y, w, h; /* position and size of the object */
int fg, bg; /* foreground and background colors */
int key; /* keyboard shortcut (ASCII code) */
int flags; /* flags about the object state */
int d1, d2; /* any data the object might require */
void *dp, *dp2, *dp3; /* pointers to more object data */
} DIALOG;
typedef struct
{
int option_value;
} OPTION_ELEMENT;
static DIALOG options_dialog[] =
{
/* (proc) (x) (y) (w) (h) (fg) (bg) (key) (flags) (d1) (d2) (dp) (dp2) (dp3) */
{ d_shadow_box_proc, 0, 0, 231, 440, 0, C_LIGHT_GRAY, 0, 0, 0, 0, NULL, NULL, NULL },
{ d_shadow_box_proc, 0, 0, 231, 24, 0, C_DARK_GRAY, 0, 0, 0, 0, NULL, NULL, NULL },
{ caption_proc, 115, 2, 113, 19, C_WHITE, C_TRANSP, 0, 0, 0, 0, "Program Options", NULL, NULL },
{ d_text_proc, 16, 32, 200, 16, C_BLACK, C_TRANSP, 0, 0, 0, 0, "System Of Measurements:", NULL, NULL },
{ option_element_proc, 48, 56, 80, 10, C_BLACK, C_LIGHT_GRAY, 0, 0, 0, 0, "Metric", NULL, &(OPTION_ELEMENT){METRIC} },
{ option_element_proc, 48, 72, 88, 10, C_BLACK, C_LIGHT_GRAY, 0, 0, 0, 0, "US", NULL, &(OPTION_ELEMENT){IMPERIAL} },
{ d_text_proc, 16, 96, 152, 16, C_BLACK, C_TRANSP, 0, 0, 0, 0, "COM Port:", NULL, NULL },
{ option_element_proc, 48, 120, 80, 10, C_BLACK, C_LIGHT_GRAY, 0, 0, 1, 0, "COM1", NULL, &(OPTION_ELEMENT){COM1} },
{ option_element_proc, 48, 136, 80, 10, C_BLACK, C_LIGHT_GRAY, 0, 0, 1, 0, "COM2", NULL, &(OPTION_ELEMENT){COM2} },
{ option_element_proc, 48, 152, 80, 10, C_BLACK, C_LIGHT_GRAY, 0, 0, 1, 0, "COM3", NULL, &(OPTION_ELEMENT){COM3} },
{ option_element_proc, 48, 168, 80, 10, C_BLACK, C_LIGHT_GRAY, 0, 0, 1, 0, "COM4", NULL, &(OPTION_ELEMENT){COM4} },
{ option_element_proc, 48, 184, 80, 10, C_BLACK, C_LIGHT_GRAY, 0, 0, 1, 0, "COM5", NULL, &(OPTION_ELEMENT){COM5} },
{ option_element_proc, 48, 200, 80, 10, C_BLACK, C_LIGHT_GRAY, 0, 0, 1, 0, "COM6", NULL, &(OPTION_ELEMENT){COM6} },
{ option_element_proc, 48, 216, 80, 10, C_BLACK, C_LIGHT_GRAY, 0, 0, 1, 0, "COM7", NULL, &(OPTION_ELEMENT){COM7} },
{ option_element_proc, 48, 232, 80, 10, C_BLACK, C_LIGHT_GRAY, 0, 0, 1, 0, "COM8", NULL, &(OPTION_ELEMENT){COM8} },
{ d_text_proc, 16, 256, 200, 16, C_BLACK, C_TRANSP, 0, 0, 0, 0, "Baud Rate:", NULL, NULL },
{ option_element_proc, 48, 280, 80, 10, C_BLACK, C_LIGHT_GRAY, 0, 0, 2, 0, "9600", NULL, &(OPTION_ELEMENT){BAUD_RATE_9600} },
{ option_element_proc, 48, 296, 80, 10, C_BLACK, C_LIGHT_GRAY, 0, 0, 2, 0, "38400", NULL, &(OPTION_ELEMENT){BAUD_RATE_38400} },
{ d_text_proc, 16, 320, 200, 16, C_BLACK, C_TRANSP, 0, 0, 0, 0, "Display Mode:", NULL, NULL },
{ option_element_proc, 48, 344, 80, 10, C_BLACK, C_LIGHT_GRAY, 0, 0, 3, 0, "Windowed", NULL, &(OPTION_ELEMENT){WINDOWED_MODE} },
{ option_element_proc, 48, 360, 80, 10, C_BLACK, C_LIGHT_GRAY, 0, 0, 3, 0, "Full Screen", NULL, &(OPTION_ELEMENT){FULL_SCREEN_MODE} },
{ save_options_proc, 16, 384, 92, 40, C_BLACK, C_GREEN, 's', D_EXIT, 0, 0, "&Save", NULL, NULL },
{ d_button_proc, 123, 384, 92, 40, C_BLACK, C_DARK_YELLOW, 'c', D_EXIT, 0, 0, "&Cancel", NULL, NULL },
{ NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL }
};
Code does not compile on my MSVC2005. I think it is because of C old style formal list like: