Alex Henrie : comdlg32: Fix error precedence in IFileDialog2_SetFileTypes.

Alexandre Julliard julliard at winehq.org
Thu Sep 10 16:21:45 CDT 2020


Module: wine
Branch: master
Commit: 1a0470443d12f6fc4c241a93af5bc34aa03b34b3
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=1a0470443d12f6fc4c241a93af5bc34aa03b34b3

Author: Alex Henrie <alexhenrie24 at gmail.com>
Date:   Wed Sep  9 23:40:26 2020 -0600

comdlg32: Fix error precedence in IFileDialog2_SetFileTypes.

Signed-off-by: Alex Henrie <alexhenrie24 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/comdlg32/itemdlg.c       | 6 +++---
 dlls/comdlg32/tests/itemdlg.c | 2 ++
 2 files changed, 5 insertions(+), 3 deletions(-)

diff --git a/dlls/comdlg32/itemdlg.c b/dlls/comdlg32/itemdlg.c
index 1ae20ca782..f17c2f926d 100644
--- a/dlls/comdlg32/itemdlg.c
+++ b/dlls/comdlg32/itemdlg.c
@@ -2402,12 +2402,12 @@ static HRESULT WINAPI IFileDialog2_fnSetFileTypes(IFileDialog2 *iface, UINT cFil
     UINT i;
     TRACE("%p (%d, %p)\n", This, cFileTypes, rgFilterSpec);
 
-    if(This->filterspecs)
-        return E_UNEXPECTED;
-
     if(!rgFilterSpec)
         return E_INVALIDARG;
 
+    if(This->filterspecs)
+        return E_UNEXPECTED;
+
     if(!cFileTypes)
         return S_OK;
 
diff --git a/dlls/comdlg32/tests/itemdlg.c b/dlls/comdlg32/tests/itemdlg.c
index 6ee0d5fc3d..c38457a0a1 100644
--- a/dlls/comdlg32/tests/itemdlg.c
+++ b/dlls/comdlg32/tests/itemdlg.c
@@ -675,6 +675,8 @@ static void test_basics(void)
     ok(hr == S_OK, "got 0x%08x.\n", hr);
     hr = IFileOpenDialog_SetFileTypes(pfod, 0, filterspec);
     ok(hr == E_UNEXPECTED, "got 0x%08x.\n", hr);
+    hr = IFileOpenDialog_SetFileTypes(pfod, 0, NULL);
+    ok(hr == E_INVALIDARG, "got 0x%08x.\n", hr);
     hr = IFileOpenDialog_SetFileTypeIndex(pfod, 0);
     ok(hr == S_OK, "got 0x%08x.\n", hr);
     hr = IFileOpenDialog_GetFileTypeIndex(pfod, &filetype);




More information about the wine-cvs mailing list