struct CompileDialog { bool button_pressed; bool autoclose; void* hwnd; void* event_created; CompileDialog(); void AddMessage(const char* message); void SetStage(const char* text); void SetProgress(unsigned numerator, unsigned denominator); bool ButtonPressed() { return button_pressed; } // after calling Destroy or SetButtonAutoclose, the object pointer is no longer valid void Destroy(); void SetButtonAutoclose(const char* text); };