Made mmioSetBuffer callable from 16 and 32 bit code.
diff --git a/if1632/mmsystem.spec b/if1632/mmsystem.spec
index d70126c..414d21a 100644
--- a/if1632/mmsystem.spec
+++ b/if1632/mmsystem.spec
@@ -156,7 +156,7 @@
1214 pascal mmioSeek(word long word) mmioSeek16
1215 pascal mmioGetInfo(word ptr word) mmioGetInfo16
1216 pascal MMIOSETINFO(word ptr word) mmioSetInfo16
-1217 pascal MMIOSETBUFFER(word ptr long word) mmioSetBuffer
+1217 pascal MMIOSETBUFFER(word ptr long word) mmioSetBuffer16
1218 pascal mmioFlush(word word) mmioFlush16
1219 pascal mmioAdvance(word ptr word) mmioAdvance16
1220 pascal mmioStringToFOURCC(str word) mmioStringToFOURCC16
diff --git a/include/mmsystem.h b/include/mmsystem.h
index a1d7e67..fde6eed 100644
--- a/include/mmsystem.h
+++ b/include/mmsystem.h
@@ -1624,7 +1624,9 @@
MMRESULT32 WINAPI mmioSetInfo32(HMMIO32,const MMIOINFO32*,UINT32);
#define mmioSetInfo WINELIB_NAME(mmioSetInfo)
-UINT16 WINAPI mmioSetBuffer(HMMIO16,LPSTR,LONG,UINT16);
+UINT16 WINAPI mmioSetBuffer16(HMMIO16,LPSTR,LONG,UINT16);
+UINT32 WINAPI mmioSetBuffer32(HMMIO32,LPSTR,LONG,UINT32);
+#define mmioSetBuffer WINELIB_NAME(mmioSetInfo)
UINT16 WINAPI mmioFlush16(HMMIO16,UINT16);
UINT32 WINAPI mmioFlush32(HMMIO32,UINT32);
diff --git a/multimedia/mmio.c b/multimedia/mmio.c
index 3428f72..6fd9b70 100644
--- a/multimedia/mmio.c
+++ b/multimedia/mmio.c
@@ -286,14 +286,14 @@
}
if (dwOpenFlags & MMIO_ALLOCBUF) {
- if ((result = mmioSetBuffer(hmmio, NULL, MMIO_DEFAULTBUFFER, 0))) {
+ if ((result = mmioSetBuffer16(hmmio, NULL, MMIO_DEFAULTBUFFER, 0))) {
if (lpmmioinfo)
lpmmioinfo->wErrorRet = result;
return 0;
}
} else
if (lpmminfo->fccIOProc == FOURCC_MEM) {
- if ((result = mmioSetBuffer(hmmio, lpmmioinfo->pchBuffer, lpmmioinfo->cchBuffer, 0))) {
+ if ((result = mmioSetBuffer16(hmmio, lpmmioinfo->pchBuffer, lpmmioinfo->cchBuffer, 0))) {
if (lpmmioinfo)
lpmmioinfo->wErrorRet = result;
return 0;
@@ -368,7 +368,7 @@
result = mmioSendMessage(hmmio,MMIOM_CLOSE,(LPARAM)uFlags,(LPARAM)0);
- mmioSetBuffer(hmmio, NULL, 0, 0);
+ mmioSetBuffer16(hmmio, NULL, 0, 0);
GlobalUnlock16(hmmio);
GlobalFree16(hmmio);
@@ -388,7 +388,7 @@
/**************************************************************************
- * mmioRead [WINM.124]
+ * mmioRead [WINMM.124]
*/
LONG WINAPI mmioRead32(HMMIO32 hmmio, HPSTR pch, LONG cch)
{
@@ -627,10 +627,10 @@
}
/**************************************************************************
-* mmioSetBuffer [MMSYSTEM.1217]
+* mmioSetBuffer [WINMM.129]
*/
-UINT16 WINAPI mmioSetBuffer(HMMIO16 hmmio, LPSTR pchBuffer,
- LONG cchBuffer, UINT16 uFlags)
+UINT32 WINAPI mmioSetBuffer32(HMMIO32 hmmio, LPSTR pchBuffer,
+ LONG cchBuffer, UINT32 uFlags)
{
LPMMIOINFO16 lpmminfo;
@@ -649,8 +649,7 @@
}
if (pchBuffer) {
lpmminfo->pchBuffer = pchBuffer;
- } else
- if (lpmminfo->dwFlags&MMIO_ALLOCBUF) {
+ } else if (lpmminfo->dwFlags&MMIO_ALLOCBUF) {
HGLOBAL16 hNewBuf;
GlobalUnlock16(lpmminfo->dwReserved1);
hNewBuf = GlobalReAlloc16(lpmminfo->dwReserved1, cchBuffer, 0);
@@ -662,8 +661,7 @@
}
lpmminfo->dwReserved1 = hNewBuf;
lpmminfo->pchBuffer = GlobalLock16(hNewBuf);
- } else
- if (cchBuffer) {
+ } else if (cchBuffer) {
HGLOBAL16 hNewBuf = GlobalAlloc16(GMEM_MOVEABLE, cchBuffer);
if (!hNewBuf) {
GlobalUnlock16(hmmio);
@@ -685,6 +683,15 @@
}
/**************************************************************************
+* mmioSetBuffer [MMSYSTEM.1217]
+*/
+UINT16 WINAPI mmioSetBuffer16(HMMIO16 hmmio, LPSTR pchBuffer,
+ LONG cchBuffer, UINT16 uFlags)
+{
+ return mmioSetBuffer32(hmmio, pchBuffer, cchBuffer, uFlags);
+}
+
+/**************************************************************************
* mmioFlush [WINMM.117]
*/
UINT32 WINAPI mmioFlush32(HMMIO32 hmmio, UINT32 uFlags)
diff --git a/relay32/winmm.spec b/relay32/winmm.spec
index e0cf05c..c6ef16c 100644
--- a/relay32/winmm.spec
+++ b/relay32/winmm.spec
@@ -128,8 +128,8 @@
125 stub mmioRenameA
126 stub mmioRenameW
127 stdcall mmioSeek(long long long) mmioSeek32
-128 stub mmioSendMessage
-129 stub mmioSetBuffer
+128 stdcall mmioSendMessage(long long long long) mmioSendMessage
+129 stdcall mmioSetBuffer(long ptr long long) mmioSetBuffer32
130 stdcall mmioSetInfo(long ptr long) mmioSetInfo32
131 stdcall mmioStringToFOURCCA(str long) mmioStringToFOURCC32A
132 stdcall mmioStringToFOURCCW(wstr long) mmioStringToFOURCC32W