Release 0.4.7
[wine/multimedia.git] / windows / defdlg.c
blob8405dc38aafadd0219bf8688ae9fd7b920cacf0c
1 /*
2 * Default dialog procedure
4 * Copyright 1993 Alexandre Julliard
5 */
7 static char Copyright[] = "Copyright Alexandre Julliard, 1993";
9 #include "windows.h"
10 #include "dialog.h"
11 #include "win.h"
14 /***********************************************************************
15 * DefDlgProc (USER.308)
17 LONG DefDlgProc( HWND hwnd, WORD msg, WORD wParam, LONG lParam )
19 DIALOGINFO * dlgInfo;
20 BOOL result = FALSE;
21 WND * wndPtr = WIN_FindWndPtr( hwnd );
23 if (!wndPtr) return 0;
24 dlgInfo = (DIALOGINFO *)&wndPtr->wExtra;
26 #ifdef DEBUG_DIALOG
27 printf( "DefDlgProc: %d %04x %d %08x\n", hwnd, msg, wParam, lParam );
28 #endif
30 dlgInfo->msgResult = 0;
31 if (dlgInfo->dlgProc)
33 /* Call dialog procedure */
34 result = (BOOL)CallWindowProc( dlgInfo->dlgProc, hwnd,
35 msg, wParam, lParam );
37 /* Check if window destroyed by dialog procedure */
38 wndPtr = WIN_FindWndPtr( hwnd );
39 if (!wndPtr) return result;
42 if (!result) switch(msg)
44 case WM_INITDIALOG:
45 break;
47 case WM_ERASEBKGND:
48 FillWindow( hwnd, hwnd, (HDC)wParam, (HBRUSH)CTLCOLOR_DLG );
49 return TRUE;
51 case WM_NCDESTROY:
53 /* Delete font */
54 if (dlgInfo->hUserFont)
56 DeleteObject( dlgInfo->hUserFont );
57 dlgInfo->hUserFont = 0;
60 /* Delete menu */
61 if (dlgInfo->hMenu)
63 DestroyMenu( dlgInfo->hMenu );
64 dlgInfo->hMenu = 0;
67 /* Window clean-up */
68 DefWindowProc( hwnd, msg, wParam, lParam );
69 break;
71 default:
72 return DefWindowProc( hwnd, msg, wParam, lParam );
75 return result;