/* * Default dialog procedure * * Copyright 1993 Alexandre Julliard */ static char Copyright[] = "Copyright Alexandre Julliard, 1993"; #include "windows.h" #include "dialog.h" #include "win.h" /*********************************************************************** * DefDlgProc (USER.308) */ LONG DefDlgProc( HWND hwnd, WORD msg, WORD wParam, LONG lParam ) { DIALOGINFO * dlgInfo; BOOL result = FALSE; WND * wndPtr = WIN_FindWndPtr( hwnd ); if (!wndPtr) return 0; dlgInfo = (DIALOGINFO *)&wndPtr->wExtra; #ifdef DEBUG_DIALOG printf( "DefDlgProc: %d %04x %d %08x\n", hwnd, msg, wParam, lParam ); #endif dlgInfo->msgResult = 0; if (dlgInfo->dlgProc) { /* Call dialog procedure */ result = (BOOL)CallWindowProc( dlgInfo->dlgProc, hwnd, msg, wParam, lParam ); /* Check if window destroyed by dialog procedure */ wndPtr = WIN_FindWndPtr( hwnd ); if (!wndPtr) return result; } if (!result) switch(msg) { case WM_INITDIALOG: break; case WM_ERASEBKGND: FillWindow( hwnd, hwnd, (HDC)wParam, (HBRUSH)CTLCOLOR_DLG ); return TRUE; case WM_NCDESTROY: /* Delete font */ if (dlgInfo->hUserFont) { DeleteObject( dlgInfo->hUserFont ); dlgInfo->hUserFont = 0; } /* Delete menu */ if (dlgInfo->hMenu) { DestroyMenu( dlgInfo->hMenu ); dlgInfo->hMenu = 0; } /* Window clean-up */ DefWindowProc( hwnd, msg, wParam, lParam ); break; default: return DefWindowProc( hwnd, msg, wParam, lParam ); } return result; }