[ros-diffs] [gbrunmar] 33532: Patch by Kamil Hornicek ( tykef AT atlas DOT cz ): * Fixed DialogBoxParam to set correct error values and returning correct error codes

gbrunmar at svn.reactos.org gbrunmar at svn.reactos.org
Thu May 15 21:07:46 CEST 2008


Author: gbrunmar
Date: Thu May 15 14:07:46 2008
New Revision: 33532

URL: http://svn.reactos.org/svn/reactos?rev=33532&view=rev
Log:
Patch by Kamil Hornicek ( tykef AT atlas DOT cz ):
* Fixed DialogBoxParam to set correct error values and returning correct error codes

Modified:
    trunk/reactos/dll/win32/user32/windows/dialog.c

Modified: trunk/reactos/dll/win32/user32/windows/dialog.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/windows/dialog.c?rev=33532&r1=33531&r2=33532&view=diff
==============================================================================
--- trunk/reactos/dll/win32/user32/windows/dialog.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/user32/windows/dialog.c [iso-8859-1] Thu May 15 14:07:46 2008
@@ -1678,8 +1678,17 @@
     HRSRC hrsrc;
     LPCDLGTEMPLATE ptr;
 
-    if (!(hrsrc = FindResourceA( hInstance, lpTemplateName, (LPCSTR)RT_DIALOG ))) return 0;
-    if (!(ptr = (LPCDLGTEMPLATE)LoadResource(hInstance, hrsrc))) return 0;
+    if (!(hrsrc = FindResourceA( hInstance, lpTemplateName, (LPCSTR)RT_DIALOG )) ||
+        !(ptr = (LPCDLGTEMPLATE)LoadResource(hInstance, hrsrc)))
+    {
+        SetLastError(ERROR_RESOURCE_NAME_NOT_FOUND);
+        return -1;
+    }
+    if (!IsWindow(hWndParent))
+    {
+        SetLastError(ERROR_INVALID_WINDOW_HANDLE);
+        return 0;
+    }
     hwnd = DIALOG_CreateIndirect(hInstance, ptr, hWndParent, lpDialogFunc, dwInitParam, FALSE, TRUE);
     if (hwnd) return DIALOG_DoDialogBox(hwnd, hWndParent);
     return -1;
@@ -1702,8 +1711,17 @@
     HRSRC hrsrc;
     LPCDLGTEMPLATE ptr;
 
-    if (!(hrsrc = FindResourceW( hInstance, lpTemplateName, (LPCWSTR)RT_DIALOG ))) return 0;
-    if (!(ptr = (LPCDLGTEMPLATE)LoadResource(hInstance, hrsrc))) return 0;
+    if (!(hrsrc = FindResourceW( hInstance, lpTemplateName, (LPCWSTR)RT_DIALOG )) ||
+        !(ptr = (LPCDLGTEMPLATE)LoadResource(hInstance, hrsrc)))
+    {
+        SetLastError(ERROR_RESOURCE_NAME_NOT_FOUND);
+        return -1;
+    }
+    if (!IsWindow(hWndParent))
+    {
+        SetLastError(ERROR_INVALID_WINDOW_HANDLE);
+        return 0;
+    }
     hwnd = DIALOG_CreateIndirect(hInstance, ptr, hWndParent, lpDialogFunc, dwInitParam, TRUE, TRUE);
     if (hwnd) return DIALOG_DoDialogBox(hwnd, hWndParent);
     return -1;



More information about the Ros-diffs mailing list