Added PCM converter internal driver.
A few driver handling fixes.
diff --git a/dlls/msacm/internal.c b/dlls/msacm/internal.c
index e9d2bd3..293513c 100644
--- a/dlls/msacm/internal.c
+++ b/dlls/msacm/internal.c
@@ -42,8 +42,8 @@
padid = (PWINE_ACMDRIVERID) HeapAlloc(MSACM_hHeap, 0, sizeof(WINE_ACMDRIVERID));
padid->obj.dwType = WINE_ACMOBJ_DRIVERID;
padid->obj.pACMDriverID = padid;
- padid->pszDriverAlias = HEAP_strdupA(MSACM_hHeap, 0, pszDriverAlias);
- padid->pszFileName = HEAP_strdupA(MSACM_hHeap, 0, pszFileName);
+ padid->pszDriverAlias = pszDriverAlias ? HEAP_strdupA(MSACM_hHeap, 0, pszDriverAlias) : NULL;
+ padid->pszFileName = pszFileName ? HEAP_strdupA(MSACM_hHeap, 0, pszFileName) : NULL;
padid->hInstModule = hinstModule;
padid->bEnabled = TRUE;
padid->pACMDriverList = NULL;
@@ -65,7 +65,7 @@
{
LPSTR pszBuffer;
DWORD dwBufferLength;
-
+
/* FIXME
* What if the user edits system.ini while the program is running?
* Does Windows handle that?
@@ -85,8 +85,9 @@
char *s2 = s;
while (*s2 != '\0' && *s2 != '=') s2++;
if (*s2) {
- *s2++ = '\0';
- MSACM_RegisterDriver(s, s2, 0);
+ *s2 = '\0';
+ MSACM_RegisterDriver(s, s2 + 1, 0);
+ *s2 = '=';
}
}
s += strlen(s) + 1; /* Either next char or \0 */
@@ -94,6 +95,8 @@
}
HeapFree(MSACM_hHeap, 0, pszBuffer);
+
+ MSACM_RegisterDriver("msacm32.dll", "msacm32.dll", 0);
}
/***********************************************************************