diff --git a/dlls/msacm32/msacm_main.c b/dlls/msacm32/msacm_main.c
index ff6827f..55c7a63 100644
--- a/dlls/msacm32/msacm_main.c
+++ b/dlls/msacm32/msacm_main.c
@@ -73,7 +73,7 @@
 MMRESULT16 WINAPI acmDriverEnum16(
   ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
 {
-  FIXME("(%p, %ld, %ld): stub\n",
+  FIXME("(%p, %d, %d): stub\n",
     fnCallback, dwInstance, fdwEnum
   );
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -87,7 +87,7 @@
 MMRESULT16 WINAPI acmDriverDetails16(
   HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails)
 {
-  FIXME("(0x%04x, %p, %ld): stub\n", hadid, padd, fdwDetails);
+  FIXME("(0x%04x, %p, %d): stub\n", hadid, padd, fdwDetails);
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
   return MMSYSERR_ERROR;
 }
@@ -99,7 +99,7 @@
   LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
   LPARAM lParam, DWORD dwPriority, DWORD fdwAdd)
 {
-  FIXME("(%p, 0x%04x, %ld, %ld, %ld): stub\n",
+  FIXME("(%p, 0x%04x, %ld, %d, %d): stub\n",
     phadid, hinstModule, lParam, dwPriority, fdwAdd
   );
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -112,7 +112,7 @@
 MMRESULT16 WINAPI acmDriverRemove16(
   HACMDRIVERID16 hadid, DWORD fdwRemove)
 {
-  FIXME("(0x%04x, %ld): stub\n", hadid, fdwRemove);
+  FIXME("(0x%04x, %d): stub\n", hadid, fdwRemove);
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
   return MMSYSERR_ERROR;
 }
@@ -123,7 +123,7 @@
 MMRESULT16 WINAPI acmDriverOpen16(
   LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen)
 {
-  FIXME("(%p, 0x%04x, %ld): stub\n", phad, hadid, fdwOpen);
+  FIXME("(%p, 0x%04x, %d): stub\n", phad, hadid, fdwOpen);
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
   return MMSYSERR_ERROR;
 }
@@ -134,7 +134,7 @@
 MMRESULT16 WINAPI acmDriverClose16(
   HACMDRIVER16 had, DWORD fdwClose)
 {
-  FIXME("(0x%04x, %ld): stub\n", had, fdwClose);
+  FIXME("(0x%04x, %d): stub\n", had, fdwClose);
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
   return MMSYSERR_ERROR;
 }
@@ -158,7 +158,7 @@
 MMRESULT16 WINAPI acmDriverID16(
   HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID)
 {
-  FIXME("(0x%04x, %p, %ld): stub\n", hao, phadid, fdwDriverID);
+  FIXME("(0x%04x, %p, %d): stub\n", hao, phadid, fdwDriverID);
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
   return MMSYSERR_ERROR;
 }
@@ -169,7 +169,7 @@
 MMRESULT16 WINAPI acmDriverPriority16(
  HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority)
 {
-  FIXME("(0x%04x, %ld, %ld): stub\n",
+  FIXME("(0x%04x, %d, %d): stub\n",
     hadid, dwPriority, fdwPriority
   );
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -182,7 +182,7 @@
 MMRESULT16 WINAPI acmFormatTagDetails16(
   HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails)
 {
-  FIXME("(0x%04x, %p, %ld): stub\n", had, paftd, fdwDetails);
+  FIXME("(0x%04x, %p, %d): stub\n", had, paftd, fdwDetails);
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
   return MMSYSERR_ERROR;
 }
@@ -194,7 +194,7 @@
   HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
   ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
 {
-  FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
+  FIXME("(0x%04x, %p, %p, %d, %d): stub\n",
     had, paftd, fnCallback, dwInstance, fdwEnum
   );
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -218,7 +218,7 @@
 MMRESULT16 WINAPI acmFormatDetails16(
   HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails)
 {
-  FIXME("(0x%04x, %p, %ld): stub\n", had, pafd, fdwDetails);
+  FIXME("(0x%04x, %p, %d): stub\n", had, pafd, fdwDetails);
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
   return MMSYSERR_ERROR;
 }
@@ -230,7 +230,7 @@
   HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
   ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
 {
-  FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
+  FIXME("(0x%04x, %p, %p, %d, %d): stub\n",
     had, pafd, fnCallback, dwInstance, fdwEnum
   );
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -244,7 +244,7 @@
   HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
   LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest)
 {
-  FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
+  FIXME("(0x%04x, %p, %p, %d, %d): stub\n",
     had, pwfxSrc, pwfxDst, cbwfxDst, fdwSuggest
   );
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -257,7 +257,7 @@
 MMRESULT16 WINAPI acmFilterTagDetails16(
   HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails)
 {
-  FIXME("(0x%04x, %p, %ld): stub\n", had, paftd, fdwDetails);
+  FIXME("(0x%04x, %p, %d): stub\n", had, paftd, fdwDetails);
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
   return MMSYSERR_ERROR;
 }
@@ -269,7 +269,7 @@
   HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
   ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
 {
-  FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
+  FIXME("(0x%04x, %p, %p, %d, %d): stub\n",
     had, paftd, fnCallback, dwInstance, fdwEnum
   );
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -293,7 +293,7 @@
 MMRESULT16 WINAPI acmFilterDetails16(
   HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails)
 {
-  FIXME("(0x%04x, %p, %ld): stub\n", had, pafd, fdwDetails);
+  FIXME("(0x%04x, %p, %d): stub\n", had, pafd, fdwDetails);
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
   return MMSYSERR_ERROR;
 }
@@ -305,7 +305,7 @@
   HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
   ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
 {
-  FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
+  FIXME("(0x%04x, %p, %p, %d, %d): stub\n",
     had, pafd, fnCallback, dwInstance, fdwEnum
   );
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -321,7 +321,7 @@
   LPWAVEFILTER pwfltr, DWORD dwCallback,
   DWORD dwInstance, DWORD fdwOpen)
 {
-  FIXME("(%p, 0x%04x, %p, %p, %p, %ld, %ld, %ld): stub\n",
+  FIXME("(%p, 0x%04x, %p, %p, %p, %d, %d, %d): stub\n",
     phas, had, pwfxSrc, pwfxDst, pwfltr,
     dwCallback, dwInstance, fdwOpen
   );
@@ -335,7 +335,7 @@
 MMRESULT16 WINAPI acmStreamClose16(
   HACMSTREAM16 has, DWORD fdwClose)
 {
-  FIXME("(0x%04x, %ld): stub\n", has, fdwClose);
+  FIXME("(0x%04x, %d): stub\n", has, fdwClose);
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
   return MMSYSERR_ERROR;
 }
@@ -347,7 +347,7 @@
   HACMSTREAM16 has, DWORD cbInput,
   LPDWORD pdwOutputBytes, DWORD fdwSize)
 {
-  FIXME("(0x%04x, %ld, %p, %ld): stub\n",
+  FIXME("(0x%04x, %d, %p, %d): stub\n",
     has, cbInput, pdwOutputBytes, fdwSize
   );
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
@@ -360,7 +360,7 @@
 MMRESULT16 WINAPI acmStreamConvert16(
   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert)
 {
-  FIXME("(0x%04x, %p, %ld): stub\n", has, pash, fdwConvert);
+  FIXME("(0x%04x, %p, %d): stub\n", has, pash, fdwConvert);
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
   return MMSYSERR_ERROR;
 }
@@ -371,7 +371,7 @@
 MMRESULT16 WINAPI acmStreamReset16(
   HACMSTREAM16 has, DWORD fdwReset)
 {
-  FIXME("(0x%04x, %ld): stub\n", has, fdwReset);
+  FIXME("(0x%04x, %d): stub\n", has, fdwReset);
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
   return MMSYSERR_ERROR;
 }
@@ -382,7 +382,7 @@
 MMRESULT16 WINAPI acmStreamPrepareHeader16(
   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare)
 {
-  FIXME("(0x%04x, %p, %ld): stub\n", has, pash, fdwPrepare);
+  FIXME("(0x%04x, %p, %d): stub\n", has, pash, fdwPrepare);
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
   return MMSYSERR_ERROR;
 }
@@ -393,7 +393,7 @@
 MMRESULT16 WINAPI acmStreamUnprepareHeader16(
   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare)
 {
-  FIXME("(0x%04x, %p, %ld): stub\n",
+  FIXME("(0x%04x, %p, %d): stub\n",
     has, pash, fdwUnprepare
   );
   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
