commdlg #2: Use DWL_MSGRESULT to return values from dialog proc

Huw D M Davies h.davies1 at physics.ox.ac.uk
Fri Jun 3 10:18:17 CDT 2005


        Huw Davies <huw at codeweavers.com>
        Use DWLP_MSGRESULT to return values from the dialog proc.
-- 
Huw Davies
huw at codeweavers.com
--- dlls/commdlg/filedlg.c	2005-06-03 15:41:40.111569640 +0100
+++ dlls/commdlg/filedlg.c	2005-06-03 15:57:23.593900743 +0100
@@ -947,12 +947,15 @@ HRESULT FILEDLG95_HandleCustomDialogMess
 {
     FileOpenDlgInfos *fodInfos = (FileOpenDlgInfos *) GetPropA(hwnd,FileOpenDlgInfosStr);
     WCHAR lpstrPath[MAX_PATH];
-    if(!fodInfos) return -1;
+    HRESULT retval;
+
+    if(!fodInfos) return FALSE;
 
     switch(uMsg)
     {
         case CDM_GETFILEPATH:
-            return FILEDLG95_Handle_GetFilePath(hwnd, (UINT)wParam, (LPVOID)lParam);
+            retval = FILEDLG95_Handle_GetFilePath(hwnd, (UINT)wParam, (LPVOID)lParam);
+            break;
 
         case CDM_GETFOLDERPATH:
             TRACE("CDM_GETFOLDERPATH:\n");
@@ -965,10 +968,12 @@ HRESULT FILEDLG95_HandleCustomDialogMess
                     WideCharToMultiByte(CP_ACP, 0, lpstrPath, -1, 
                                         (LPSTR)lParam, (int)wParam, NULL, NULL);
             }        
-            return strlenW(lpstrPath);
+            retval = strlenW(lpstrPath);
+            break;
 
         case CDM_GETSPEC:
-            return FILEDLG95_Handle_GetFileSpec(hwnd, (UINT)wParam, (LPSTR)lParam);
+            retval = FILEDLG95_Handle_GetFileSpec(hwnd, (UINT)wParam, (LPSTR)lParam);
+            break;
 
         case CDM_SETCONTROLTEXT:
             TRACE("CDM_SETCONTROLTEXT:\n");
@@ -979,13 +984,19 @@ HRESULT FILEDLG95_HandleCustomDialogMess
                 else
 	            SetDlgItemTextA( hwnd, (UINT) wParam, (LPSTR) lParam );
             }
-	    return TRUE;
+            retval = TRUE;
+            break;
 
         case CDM_HIDECONTROL:
         case CDM_SETDEFEXT:
             FIXME("CDM_HIDECONTROL,CDM_SETCONTROLTEXT,CDM_SETDEFEXT not implemented\n");
-            return -1;
+            retval =  -1;
+            break;
+
+        default:
+            return FALSE;
     }
+    SetWindowLongPtrW(hwnd, DWLP_MSGRESULT, retval);
     return TRUE;
 }
 



More information about the wine-patches mailing list