while (GetMessage(&msg, NULL, 0, 0)) {
while ((gm=GetMessage(&msg, NULL, 0, 0)) > 0) {
int SaneDialogBox(HINSTANCE hinst,		  LPCTSTR tmpl,		  HWND hwndparent,		  DLGPROC lpDialogFunc){    WNDCLASS wc;    HWND hwnd;    MSG msg;    int flags;    int ret;    wc.style = CS_DBLCLKS | CS_SAVEBITS | CS_BYTEALIGNWINDOW;    wc.lpfnWndProc = DefDlgProc;    wc.cbClsExtra = 0;    wc.cbWndExtra = DLGWINDOWEXTRA + 8;    wc.hInstance = hinst;    wc.hIcon = NULL;    wc.hCursor = LoadCursor(NULL, IDC_ARROW);    wc.hbrBackground = (HBRUSH) (COLOR_BACKGROUND +1);    wc.lpszMenuName = NULL;    wc.lpszClassName = "PuTTYConfigBox";    RegisterClass(&wc);    hwnd = CreateDialog(hinst, tmpl, hwndparent, lpDialogFunc);    SetWindowLong(hwnd, BOXFLAGS, 0); /* flags */    SetWindowLong(hwnd, BOXRESULT, 0); /* result from SaneEndDialog */    while (GetMessage(&msg, NULL, 0, 0)) {	flags=GetWindowLong(hwnd, BOXFLAGS);	if (!(flags & DF_END) && !IsDialogMessage(hwnd, &msg))	    DispatchMessage(&msg);	if (flags & DF_END)	    break;    }    ret=GetWindowLong(hwnd, BOXRESULT);    DestroyWindow(hwnd);    return ret;}