#include "resource.h"
/* Common dialogs implementation globals */
-#define COMDLG32_Atom ((ATOM)0xa000) /* MS uses this one to identify props */
+#define COMDLG32_Atom MAKEINTATOM(0xa000) /* MS uses this one to identify props */
extern HINSTANCE COMDLG32_hInstance DECLSPEC_HIDDEN;
*/
HRESULT WINAPI DllRegisterServer(void)
{
+#ifdef __REACTOS__
return E_FAIL; // FIXME: __wine_register_resources(COMDLG32_hInstance);
+#else
+ return __wine_register_resources(COMDLG32_hInstance);
+#endif
}
/***********************************************************************
*/
HRESULT WINAPI DllUnregisterServer(void)
{
+#ifdef __REACTOS__
return E_FAIL; // FIXME: __wine_unregister_resources(COMDLG32_hInstance);
+#else
+ return __wine_unregister_resources(COMDLG32_hInstance);
+#endif
}
#endif /* Win 7 */
-diff -prudN e:\Wine\dlls\comdlg32/cdlg32.c e:\reactos\dll\win32\comdlg32/cdlg32.c\r
---- e:\Wine\dlls\comdlg32/cdlg32.c 2013-10-26 22:24:27.508648000 +0100\r
-+++ e:\reactos\dll\win32\comdlg32/cdlg32.c 2014-03-05 11:46:06.260510700 +0100\r
+diff -pudN e:\wine\dlls\comdlg32/cdlg32.c e:\reactos\dll\win32\comdlg32/cdlg32.c\r
+--- e:\wine\dlls\comdlg32/cdlg32.c 2015-02-21 17:13:08.621542200 +0100\r
++++ e:\reactos\dll\win32\comdlg32/cdlg32.c 2015-07-21 09:48:05.584922500 +0100\r
@@ -174,6 +157,8 @@ DWORD WINAPI CommDlgExtendedError(void)\r
return 0; /* we never set an error, so there isn't one */\r
}\r
/*************************************************************************\r
* Implement the CommDlg32 class factory\r
*\r
-@@ -283,7 +268,7 @@ HRESULT WINAPI DllGetClassObject(REFCLSI\r
+@@ -283,7 +268,11 @@ HRESULT WINAPI DllGetClassObject(REFCLSI\r
*/\r
HRESULT WINAPI DllRegisterServer(void)\r
{\r
-- return __wine_register_resources(COMDLG32_hInstance);\r
++#ifdef __REACTOS__\r
+ return E_FAIL; // FIXME: __wine_register_resources(COMDLG32_hInstance);\r
++#else\r
+ return __wine_register_resources(COMDLG32_hInstance);\r
++#endif\r
}\r
\r
/***********************************************************************\r
-@@ -291,5 +276,7 @@ HRESULT WINAPI DllRegisterServer(void)\r
+@@ -291,5 +280,11 @@ HRESULT WINAPI DllRegisterServer(void)\r
*/\r
HRESULT WINAPI DllUnregisterServer(void)\r
{\r
-- return __wine_unregister_resources(COMDLG32_hInstance);\r
++#ifdef __REACTOS__\r
+ return E_FAIL; // FIXME: __wine_unregister_resources(COMDLG32_hInstance);\r
++#else\r
+ return __wine_unregister_resources(COMDLG32_hInstance);\r
++#endif\r
}\r
+\r
+#endif /* Win 7 */\r
\r
-diff -prudN e:\Wine\dlls\comdlg32/comdlg32.spec e:\reactos\dll\win32\comdlg32/comdlg32.spec\r
---- e:\Wine\dlls\comdlg32/comdlg32.spec 2011-09-16 23:22:36.026770600 +0100\r
+diff -pudN e:\wine\dlls\comdlg32/comdlg32.spec e:\reactos\dll\win32\comdlg32/comdlg32.spec\r
+--- e:\wine\dlls\comdlg32/comdlg32.spec 2015-02-21 17:13:08.621542200 +0100\r
+++ e:\reactos\dll\win32\comdlg32/comdlg32.spec 2012-02-15 22:32:22.456422900 +0100\r
@@ -3,9 +3,9 @@\r
@ stdcall ChooseFontA(ptr)\r
@ stdcall FindTextA(ptr)\r
@ stdcall FindTextW(ptr)\r
@ stdcall GetFileTitleA(str ptr long)\r
-\r
-diff -prudN e:\Wine\dlls\comdlg32/itemdlg.c e:\reactos\dll\win32\comdlg32/itemdlg.c\r
---- e:\Wine\dlls\comdlg32/itemdlg.c 2013-10-26 22:24:27.515652700 +0100\r
-+++ e:\reactos\dll\win32\comdlg32/itemdlg.c 2013-10-15 19:32:27.803008200 +0100\r
-@@ -18,6 +18,8 @@\r
+diff -pudN e:\wine\dlls\comdlg32/itemdlg.c e:\reactos\dll\win32\comdlg32/itemdlg.c\r
+--- e:\wine\dlls\comdlg32/itemdlg.c 2015-04-05 20:44:56.807083800 +0100\r
++++ e:\reactos\dll\win32\comdlg32/itemdlg.c 2015-07-21 09:56:34.329021000 +0100\r
+@@ -18,10 +18,13 @@\r
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA\r
*/\r
\r
#include <stdarg.h>\r
\r
#define COBJMACROS\r
-@@ -3660,3 +3662,5 @@ HRESULT FileSaveDialog_Constructor(IUnkn\r
+ #define NONAMELESSUNION\r
++#define NONAMELESSSTRUCT\r
+ \r
+ #include "windef.h"\r
+ #include "winbase.h"\r
+@@ -3847,3 +3850,5 @@ HRESULT FileSaveDialog_Constructor(IUnkn\r
{\r
return FileDialog_constructor(pUnkOuter, riid, ppv, ITEMDLG_TYPE_SAVE);\r
}\r
filterSearchIndex[0] = '\0';
}
+ /* find the file extension by searching for the first dot in filterExt */
/* strip the * or anything else from the extension, "*.abc" becomes "abc" */
/* if the extension is invalid or contains a glob, ignore it */
- filterSearchIndex = PathFindExtensionW(filterExt);
- if (*filterSearchIndex++ && !strchrW(filterSearchIndex, '*') && !strchrW(filterSearchIndex, '?'))
+ filterSearchIndex = strchrW(filterExt, '.');
+ if (filterSearchIndex++ && !strchrW(filterSearchIndex, '*') && !strchrW(filterSearchIndex, '?'))
{
strcpyW(filterExt, filterSearchIndex);
}
/**************************************************************************
* Window related functions.
*/
-static SIZE update_layout(FileDialogImpl *This)
+static void update_layout(FileDialogImpl *This)
{
HDWP hdwp;
HWND hwnd;
RECT cancel_rc, open_rc;
RECT filetype_rc, filename_rc, filenamelabel_rc;
RECT toolbar_rc, ebrowser_rc, customctrls_rc;
- int missing_width, missing_height;
static const UINT vspacing = 4, hspacing = 4;
- SIZE ret;
+ static const UINT min_width = 320, min_height = 200;
- GetClientRect(This->dlg_hwnd, &dialog_rc);
-
- missing_width = max(0, 320 - dialog_rc.right);
- missing_height = max(0, 200 - dialog_rc.bottom);
+ if (!GetClientRect(This->dlg_hwnd, &dialog_rc))
+ {
+ TRACE("Invalid dialog window, not updating layout\n");
+ return;
+ }
- if(missing_width || missing_height)
+ if(dialog_rc.right < min_width || dialog_rc.bottom < min_height)
{
- TRACE("Missing (%d, %d)\n", missing_width, missing_height);
- ret.cx = missing_width;
- ret.cy = missing_height;
- return ret;
+ TRACE("Dialog size (%d, %d) too small, not updating layout\n", dialog_rc.right, dialog_rc.bottom);
+ return;
}
/****
else
ERR("Failed to position dialog controls.\n");
- ret.cx = 0; ret.cy = 0;
- return ret;
+ return;
}
static HRESULT init_explorerbrowser(FileDialogImpl *This)
reactos/dll/win32/clusapi # Synced to WineStaging-1.7.37
reactos/dll/win32/comcat # Synced to WineStaging-1.7.37
reactos/dll/win32/comctl32 # Synced to WineStaging-1.7.47
-reactos/dll/win32/comdlg32 # Synced to WineStaging-1.7.37
+reactos/dll/win32/comdlg32 # Synced to WineStaging-1.7.47
reactos/dll/win32/compstui # Synced to WineStaging-1.7.37
reactos/dll/win32/credui # Synced to WineStaging-1.7.37
reactos/dll/win32/crypt32 # Synced to WineStaging-1.7.47