diff --git a/dlls/winmm/mmio.c b/dlls/winmm/mmio.c index 7b7dbc3bf67..78ad7da3cd7 100644 --- a/dlls/winmm/mmio.c +++ b/dlls/winmm/mmio.c @@ -693,6 +693,7 @@ static HMMIO MMIO_Open(LPSTR szFileName, MMIOINFO* refmminfo, DWORD dwOpenFlags, wm->ioProc->count++; wm->info.dwFlags = dwOpenFlags; + wm->info.pIOProc = wm->ioProc->pIOProc; if (dwOpenFlags & MMIO_ALLOCBUF) { refmminfo->wErrorRet = MMIO_SetBuffer(wm, refmminfo->pchBuffer, diff --git a/dlls/winmm/tests/mmio.c b/dlls/winmm/tests/mmio.c index b2c54e0b9cd..df4de55324b 100644 --- a/dlls/winmm/tests/mmio.c +++ b/dlls/winmm/tests/mmio.c @@ -753,6 +753,7 @@ static void test_mmioOpen_fourcc(void) mmioGetInfo(hmmio, &mmio, 0); ok(hmmio && mmio.fccIOProc == FOURCC_XYZ, "mmioOpenA error %u, got %4.4s\n", mmio.wErrorRet, (LPCSTR)&mmio.fccIOProc); + ok(mmio.pIOProc == mmio_test_IOProc, "Unexpected pIOProc %p\n", mmio.pIOProc); ok(mmio.adwInfo[1] == 0, "mmioOpenA sent MMIOM_SEEK, got %ld\n", mmio.adwInfo[1]); ok(mmio.lDiskOffset == 0, "mmioOpenA updated lDiskOffset, got %ld\n", @@ -765,6 +766,7 @@ static void test_mmioOpen_fourcc(void) mmioGetInfo(hmmio, &mmio, 0); ok(hmmio && mmio.fccIOProc == FOURCC_XYZ, "mmioOpenA error %u, got %4.4s\n", mmio.wErrorRet, (LPCSTR)&mmio.fccIOProc); + ok(mmio.pIOProc == mmio_test_IOProc, "Unexpected pIOProc %p\n", mmio.pIOProc); ok(mmio.adwInfo[1] == 0, "mmioOpenA sent MMIOM_SEEK, got %ld\n", mmio.adwInfo[1]); ok(mmio.lDiskOffset == 0, "mmioOpenA updated lDiskOffset, got %ld\n",