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