[ros-diffs] [janderwald] 43748: - Make sure that no duplicate wdmaud.drv audio drivers exists as winmm currently not recognizes duplicate audio driver entries
janderwald at svn.reactos.org
janderwald at svn.reactos.org
Sun Oct 25 19:22:04 CET 2009
Author: janderwald
Date: Sun Oct 25 19:22:03 2009
New Revision: 43748
URL: http://svn.reactos.org/svn/reactos?rev=43748&view=rev
Log:
- Make sure that no duplicate wdmaud.drv audio drivers exists as winmm currently not recognizes duplicate audio driver entries
Modified:
trunk/reactos/dll/cpl/mmsys/mmsys.c
Modified: trunk/reactos/dll/cpl/mmsys/mmsys.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/mmsys/mmsys.c?rev=43748&r1=43747&r2=43748&view=diff
==============================================================================
--- trunk/reactos/dll/cpl/mmsys/mmsys.c [iso-8859-1] (original)
+++ trunk/reactos/dll/cpl/mmsys/mmsys.c [iso-8859-1] Sun Oct 25 19:22:03 2009
@@ -435,7 +435,26 @@
swprintf(WaveName, L"wave%u", Index);
if (RegQueryValueExW(hKey, WaveName, 0, NULL, NULL, &BufferSize) != ERROR_MORE_DATA)
{
+ /* Store new audio driver entry */
RegSetValueExW(hKey, WaveName, 0, REG_SZ, (LPBYTE)szBuffer, (wcslen(szBuffer)+1) * sizeof(WCHAR));
+ break;
+ }
+ else
+ {
+ WCHAR Buffer[MAX_PATH];
+ BufferSize = sizeof(Buffer);
+
+ if (RegQueryValueExW(hKey, WaveName, 0, NULL, (LPBYTE)Buffer, &BufferSize) == ERROR_SUCCESS)
+ {
+ /* Make sure the buffer is zero terminated */
+ Buffer[MAX_PATH-1] = L'\0';
+
+ if (!wcsicmp(Buffer, szBuffer))
+ {
+ /* an entry already exists */
+ break;
+ }
+ }
}
}
RegCloseKey(hKey);
More information about the Ros-diffs
mailing list