Andrew Eikum : mmdevapi: Return E_INVALIDARG for invalid share mode argument.

Alexandre Julliard julliard at winehq.org
Sun Oct 27 15:06:17 CDT 2019


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

Author: Andrew Eikum <aeikum at codeweavers.com>
Date:   Thu Oct 24 11:28:43 2019 -0500

mmdevapi: Return E_INVALIDARG for invalid share mode argument.

Matches Windows 10 behavior.

Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mmdevapi/tests/capture.c     | 3 ++-
 dlls/mmdevapi/tests/render.c      | 3 ++-
 dlls/winealsa.drv/mmdevdrv.c      | 2 +-
 dlls/wineandroid.drv/mmdevdrv.c   | 2 +-
 dlls/winecoreaudio.drv/mmdevdrv.c | 2 +-
 dlls/wineoss.drv/mmdevdrv.c       | 2 +-
 dlls/winepulse.drv/mmdevdrv.c     | 2 +-
 7 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/dlls/mmdevapi/tests/capture.c b/dlls/mmdevapi/tests/capture.c
index 5cf61ea824..6c65128f2d 100644
--- a/dlls/mmdevapi/tests/capture.c
+++ b/dlls/mmdevapi/tests/capture.c
@@ -491,7 +491,8 @@ static void test_audioclient(void)
     test_uninitialized(ac);
 
     hr = IAudioClient_Initialize(ac, 3, 0, 5000000, 0, pwfx, NULL);
-    ok(hr == AUDCLNT_E_NOT_INITIALIZED, "Initialize with invalid sharemode returns %08x\n", hr);
+    ok(broken(hr == AUDCLNT_E_NOT_INITIALIZED) || /* <= win8 */
+            hr == E_INVALIDARG, "Initialize with invalid sharemode returns %08x\n", hr);
 
     hr = IAudioClient_Initialize(ac, AUDCLNT_SHAREMODE_SHARED, 0xffffffff, 5000000, 0, pwfx, NULL);
     ok(hr == E_INVALIDARG || hr == AUDCLNT_E_INVALID_STREAM_FLAG, "Initialize with invalid flags returns %08x\n", hr);
diff --git a/dlls/mmdevapi/tests/render.c b/dlls/mmdevapi/tests/render.c
index 7de6d9adc9..50a43229a0 100644
--- a/dlls/mmdevapi/tests/render.c
+++ b/dlls/mmdevapi/tests/render.c
@@ -247,7 +247,8 @@ static void test_audioclient(void)
     test_uninitialized(ac);
 
     hr = IAudioClient_Initialize(ac, 3, 0, 5000000, 0, pwfx, NULL);
-    ok(hr == AUDCLNT_E_NOT_INITIALIZED, "Initialize with invalid sharemode returns %08x\n", hr);
+    ok(broken(hr == AUDCLNT_E_NOT_INITIALIZED) || /* <= win8 */
+            hr == E_INVALIDARG, "Initialize with invalid sharemode returns %08x\n", hr);
 
     hr = IAudioClient_Initialize(ac, AUDCLNT_SHAREMODE_SHARED, 0xffffffff, 5000000, 0, pwfx, NULL);
     ok(hr == E_INVALIDARG ||
diff --git a/dlls/winealsa.drv/mmdevdrv.c b/dlls/winealsa.drv/mmdevdrv.c
index 5bc71da77a..c2fe59ea79 100644
--- a/dlls/winealsa.drv/mmdevdrv.c
+++ b/dlls/winealsa.drv/mmdevdrv.c
@@ -1255,7 +1255,7 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface,
         return E_POINTER;
 
     if(mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE)
-        return AUDCLNT_E_NOT_INITIALIZED;
+        return E_INVALIDARG;
 
     if(flags & ~(AUDCLNT_STREAMFLAGS_CROSSPROCESS |
                 AUDCLNT_STREAMFLAGS_LOOPBACK |
diff --git a/dlls/wineandroid.drv/mmdevdrv.c b/dlls/wineandroid.drv/mmdevdrv.c
index e10b3debf1..608e16a7a7 100644
--- a/dlls/wineandroid.drv/mmdevdrv.c
+++ b/dlls/wineandroid.drv/mmdevdrv.c
@@ -806,7 +806,7 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface,
     dump_fmt(fmt);
 
     if(mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE)
-        return AUDCLNT_E_NOT_INITIALIZED;
+        return E_INVALIDARG;
 
     if(flags & ~(AUDCLNT_STREAMFLAGS_CROSSPROCESS |
                 AUDCLNT_STREAMFLAGS_LOOPBACK |
diff --git a/dlls/winecoreaudio.drv/mmdevdrv.c b/dlls/winecoreaudio.drv/mmdevdrv.c
index d595f43007..acfa01c3d6 100644
--- a/dlls/winecoreaudio.drv/mmdevdrv.c
+++ b/dlls/winecoreaudio.drv/mmdevdrv.c
@@ -1314,7 +1314,7 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface,
     dump_fmt(fmt);
 
     if(mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE)
-        return AUDCLNT_E_NOT_INITIALIZED;
+        return E_INVALIDARG;
 
     if(flags & ~(AUDCLNT_STREAMFLAGS_CROSSPROCESS |
                 AUDCLNT_STREAMFLAGS_LOOPBACK |
diff --git a/dlls/wineoss.drv/mmdevdrv.c b/dlls/wineoss.drv/mmdevdrv.c
index c6b6e8effe..a08e7f561b 100644
--- a/dlls/wineoss.drv/mmdevdrv.c
+++ b/dlls/wineoss.drv/mmdevdrv.c
@@ -1046,7 +1046,7 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface,
     dump_fmt(fmt);
 
     if(mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE)
-        return AUDCLNT_E_NOT_INITIALIZED;
+        return E_INVALIDARG;
 
     if(flags & ~(AUDCLNT_STREAMFLAGS_CROSSPROCESS |
                 AUDCLNT_STREAMFLAGS_LOOPBACK |
diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c
index 61f0e03c9f..463d3d5a71 100644
--- a/dlls/winepulse.drv/mmdevdrv.c
+++ b/dlls/winepulse.drv/mmdevdrv.c
@@ -1579,7 +1579,7 @@ static HRESULT WINAPI AudioClient_Initialize(IAudioClient *iface,
         return E_POINTER;
 
     if (mode != AUDCLNT_SHAREMODE_SHARED && mode != AUDCLNT_SHAREMODE_EXCLUSIVE)
-        return AUDCLNT_E_NOT_INITIALIZED;
+        return E_INVALIDARG;
     if (mode == AUDCLNT_SHAREMODE_EXCLUSIVE)
         return AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED;
 




More information about the wine-cvs mailing list