Во-первых:
typedef struct _CONTINUE_STATE {
DWORD CurrentCycle;
CommandProc* CommandFunc;
void* Resered;
} CONTINUE_STATE, *PCONTINUE_STATE;
Нет необходимости в typedefs, и вы не должны указатели typedef. Итак, давайте сделаем это:
struct _CONTINUE_STATE {
DWORD CurrentCycle;
CommandProc* CommandFunc;
void* Resered;
};
Далее, имена, начинающиеся с символа подчеркивания и заглавной буквы, зарезервированы, поэтому:
struct CONTINUE_STATE {
DWORD CurrentCycle;
CommandProc* CommandFunc;
void* Resered;
};
И, если вам действительно нужны взаимно ссылающиеся имена типов, что не очевидно из вашего кода и обычно не требуется, то:
struct CONTINUE_STATE {
DWORD CurrentCycle;
struct CommandProc * CommandFunc; // forward declaration
void* Resered;
};
Наконец, по соглашению имена типов в C ++ находятся в смешанном регистре, причем верхний регистр зарезервирован для констант, поэтому:
struct ContinueState {
DWORD CurrentCycle;
struct CommandProc * CommandFunc; // forward declaration
void* Resered;
};