Author: akhaldi
Date: Sun Jul 19 22:39:34 2015
New Revision: 68449
URL:
http://svn.reactos.org/svn/reactos?rev=68449&view=rev
Log:
[MMDEVAPI] Sync with Wine Staging 1.7.47. CORE-9924
Modified:
trunk/reactos/dll/win32/mmdevapi/audiovolume.c
trunk/reactos/dll/win32/mmdevapi/devenum.c
trunk/reactos/media/doc/README.WINE
Modified: trunk/reactos/dll/win32/mmdevapi/audiovolume.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mmdevapi/audiovo…
==============================================================================
--- trunk/reactos/dll/win32/mmdevapi/audiovolume.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/mmdevapi/audiovolume.c [iso-8859-1] Sun Jul 19 22:39:34 2015
@@ -18,8 +18,6 @@
#include "mmdevapi.h"
-static const IAudioEndpointVolumeExVtbl AEVImpl_Vtbl;
-
typedef struct AEVImpl {
IAudioEndpointVolumeEx IAudioEndpointVolumeEx_iface;
LONG ref;
@@ -32,20 +30,6 @@
return CONTAINING_RECORD(iface, AEVImpl, IAudioEndpointVolumeEx_iface);
}
-HRESULT AudioEndpointVolume_Create(MMDevice *parent, IAudioEndpointVolume **ppv)
-{
- AEVImpl *This;
- This = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*This));
- *ppv = (IAudioEndpointVolume*)This;
- if (!This)
- return E_OUTOFMEMORY;
- This->IAudioEndpointVolumeEx_iface.lpVtbl = &AEVImpl_Vtbl;
- This->ref = 1;
- This->level = 1.0f;
- This->mute = FALSE;
- return S_OK;
-}
-
static void AudioEndpointVolume_Destroy(AEVImpl *This)
{
HeapFree(GetProcessHeap(), 0, This);
@@ -61,7 +45,7 @@
if (IsEqualIID(riid, &IID_IUnknown) ||
IsEqualIID(riid, &IID_IAudioEndpointVolume) ||
IsEqualIID(riid, &IID_IAudioEndpointVolumeEx)) {
- *ppv = This;
+ *ppv = &This->IAudioEndpointVolumeEx_iface;
}
else
return E_NOINTERFACE;
@@ -291,3 +275,20 @@
AEV_GetVolumeRange,
AEV_GetVolumeRangeChannel
};
+
+HRESULT AudioEndpointVolume_Create(MMDevice *parent, IAudioEndpointVolume **ppv)
+{
+ AEVImpl *This;
+
+ *ppv = NULL;
+ This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This));
+ if (!This)
+ return E_OUTOFMEMORY;
+ This->IAudioEndpointVolumeEx_iface.lpVtbl = &AEVImpl_Vtbl;
+ This->ref = 1;
+ This->level = 1.0f;
+ This->mute = FALSE;
+
+ *ppv = (IAudioEndpointVolume*)&This->IAudioEndpointVolumeEx_iface;
+ return S_OK;
+}
Modified: trunk/reactos/dll/win32/mmdevapi/devenum.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mmdevapi/devenum…
==============================================================================
--- trunk/reactos/dll/win32/mmdevapi/devenum.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/mmdevapi/devenum.c [iso-8859-1] Sun Jul 19 22:39:34 2015
@@ -125,12 +125,12 @@
LONG ret;
HKEY key;
StringFromGUID2(guid, buffer, 39);
- if ((ret = RegOpenKeyExW(flow == eRender ? key_render : key_capture, buffer, 0,
KEY_READ|KEY_WRITE, &key)) != ERROR_SUCCESS)
+ if ((ret = RegOpenKeyExW(flow == eRender ? key_render : key_capture, buffer, 0,
KEY_READ|KEY_WRITE|KEY_WOW64_64KEY, &key)) != ERROR_SUCCESS)
{
WARN("Opening key %s failed with %u\n", debugstr_w(buffer), ret);
return E_FAIL;
}
- ret = RegOpenKeyExW(key, reg_properties, 0, KEY_READ|KEY_WRITE, propkey);
+ ret = RegOpenKeyExW(key, reg_properties, 0, KEY_READ|KEY_WRITE|KEY_WOW64_64KEY,
propkey);
RegCloseKey(key);
if (ret != ERROR_SUCCESS)
{
@@ -327,11 +327,11 @@
else
root = key_capture;
- if (RegCreateKeyExW(root, guidstr, 0, NULL, 0, KEY_WRITE|KEY_READ, NULL, &key,
NULL) == ERROR_SUCCESS)
+ if (RegCreateKeyExW(root, guidstr, 0, NULL, 0, KEY_WRITE|KEY_READ|KEY_WOW64_64KEY,
NULL, &key, NULL) == ERROR_SUCCESS)
{
HKEY keyprop;
RegSetValueExW(key, reg_devicestate, 0, REG_DWORD, (const BYTE*)&state,
sizeof(DWORD));
- if (!RegCreateKeyExW(key, reg_properties, 0, NULL, 0, KEY_WRITE|KEY_READ, NULL,
&keyprop, NULL))
+ if (!RegCreateKeyExW(key, reg_properties, 0, NULL, 0,
KEY_WRITE|KEY_READ|KEY_WOW64_64KEY, NULL, &keyprop, NULL))
{
PROPVARIANT pv;
@@ -388,11 +388,11 @@
LONG ret;
DWORD curflow;
- ret = RegCreateKeyExW(HKEY_LOCAL_MACHINE, software_mmdevapi, 0, NULL, 0,
KEY_WRITE|KEY_READ, NULL, &root, NULL);
+ ret = RegCreateKeyExW(HKEY_LOCAL_MACHINE, software_mmdevapi, 0, NULL, 0,
KEY_WRITE|KEY_READ|KEY_WOW64_64KEY, NULL, &root, NULL);
if (ret == ERROR_SUCCESS)
- ret = RegCreateKeyExW(root, reg_capture, 0, NULL, 0, KEY_READ|KEY_WRITE, NULL,
&key_capture, NULL);
+ ret = RegCreateKeyExW(root, reg_capture, 0, NULL, 0,
KEY_READ|KEY_WRITE|KEY_WOW64_64KEY, NULL, &key_capture, NULL);
if (ret == ERROR_SUCCESS)
- ret = RegCreateKeyExW(root, reg_render, 0, NULL, 0, KEY_READ|KEY_WRITE, NULL,
&key_render, NULL);
+ ret = RegCreateKeyExW(root, reg_render, 0, NULL, 0,
KEY_READ|KEY_WRITE|KEY_WOW64_64KEY, NULL, &key_render, NULL);
RegCloseKey(root);
cur = key_capture;
curflow = eCapture;
@@ -467,6 +467,7 @@
&PKEY_AudioEngine_DeviceFormat, &pv);
MMDevice_SetPropValue(&dev->devguid, dev->flow,
&PKEY_AudioEngine_OEMFormat, &pv);
+ CoTaskMemFree(fmt);
return S_OK;
}
@@ -532,7 +533,7 @@
*ppv = NULL;
if (IsEqualIID(riid, &IID_IUnknown)
|| IsEqualIID(riid, &IID_IMMDevice))
- *ppv = This;
+ *ppv = &This->IMMDevice_iface;
else if (IsEqualIID(riid, &IID_IMMEndpoint))
*ppv = &This->IMMEndpoint_iface;
if (*ppv)
@@ -627,8 +628,7 @@
IDirectSound_Release((IDirectSound*)*ppv);
}
}
- else if (IsEqualIID(riid, &IID_IDirectSoundCapture)
- || IsEqualIID(riid, &IID_IDirectSoundCapture8))
+ else if (IsEqualIID(riid, &IID_IDirectSoundCapture))
{
if (This->flow == eCapture)
hr = CoCreateInstance(&CLSID_DirectSoundCapture8, NULL, clsctx, riid,
ppv);
@@ -779,7 +779,7 @@
return E_POINTER;
if (IsEqualIID(riid, &IID_IUnknown)
|| IsEqualIID(riid, &IID_IMMDeviceCollection))
- *ppv = This;
+ *ppv = &This->IMMDeviceCollection_iface;
else
*ppv = NULL;
if (!*ppv)
@@ -879,7 +879,7 @@
load_driver_devices(eRender);
load_driver_devices(eCapture);
}
- return IUnknown_QueryInterface((IUnknown*)This, riid, ppv);
+ return IMMDeviceEnumerator_QueryInterface(&This->IMMDeviceEnumerator_iface,
riid, ppv);
}
void MMDevEnum_Free(void)
@@ -902,7 +902,7 @@
return E_POINTER;
if (IsEqualIID(riid, &IID_IUnknown)
|| IsEqualIID(riid, &IID_IMMDeviceEnumerator))
- *ppv = This;
+ *ppv = &This->IMMDeviceEnumerator_iface;
else
*ppv = NULL;
if (!*ppv)
@@ -1327,7 +1327,7 @@
return E_POINTER;
if (IsEqualIID(riid, &IID_IUnknown)
|| IsEqualIID(riid, &IID_IPropertyStore))
- *ppv = This;
+ *ppv = &This->IPropertyStore_iface;
else
*ppv = NULL;
if (!*ppv)
Modified: trunk/reactos/media/doc/README.WINE
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=…
==============================================================================
--- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original)
+++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Sun Jul 19 22:39:34 2015
@@ -102,7 +102,7 @@
reactos/dll/win32/mciwave # Synced to WineStaging-1.7.37
reactos/dll/win32/mgmtapi # Synced to WineStaging-1.7.37
reactos/dll/win32/mlang # Synced to WineStaging-1.7.37
-reactos/dll/win32/mmdevapi # Synced to WineStaging-1.7.37
+reactos/dll/win32/mmdevapi # Synced to WineStaging-1.7.47
reactos/dll/win32/mpr # Synced to WineStaging-1.7.37
reactos/dll/win32/mprapi # Synced to WineStaging-1.7.37
reactos/dll/win32/msacm32 # Synced to WineStaging-1.7.37