Sync to Wine-20050628: Alexandre Julliard julliard@winehq.org - Get rid of the WaveMapper and MidiMapper options, the defaults should be good enough in all cases. - Moved the audio driver configuration to HKCU\Software\Wine\Drivers and changed it a bit to follow the model of the graphics driver. - Added magic comments to all Wine-specific registry accesses to make them easier to grep. Mike McCormack mike@codeweavers.com - Make a function static. Francois Gouget fgouget@free.fr - Fix winapi_check documentation warnings. Rein Klazes wijn@wanadoo.nl - In MCI_(Un)MapMsg16To32W with wMsg == MCI_OPEN(_DRIVER) only do strdupAtoW on those parameters that are flagged to be a string. Modified: trunk/reactos/lib/winmm/lolvldrv.c Modified: trunk/reactos/lib/winmm/mci.c Modified: trunk/reactos/lib/winmm/message16.c Modified: trunk/reactos/lib/winmm/mmsystem.c Modified: trunk/reactos/lib/winmm/mmsystem.spec Modified: trunk/reactos/lib/winmm/sound.spec Modified: trunk/reactos/lib/winmm/winemm.h Modified: trunk/reactos/lib/winmm/winmm.spec Modified: trunk/reactos/lib/winmm/winmm_Cs.rc Modified: trunk/reactos/lib/winmm/winmm_De.rc Modified: trunk/reactos/lib/winmm/winmm_En.rc Modified: trunk/reactos/lib/winmm/winmm_Es.rc Modified: trunk/reactos/lib/winmm/winmm_Fr.rc Modified: trunk/reactos/lib/winmm/winmm_It.rc Modified: trunk/reactos/lib/winmm/winmm_Ja.rc Modified: trunk/reactos/lib/winmm/winmm_Nl.rc Modified: trunk/reactos/lib/winmm/winmm_Pt.rc Modified: trunk/reactos/lib/winmm/winmm_Ru.rc Modified: trunk/reactos/lib/winmm/winmm_Si.rc Modified: trunk/reactos/lib/winmm/winmm_Sk.rc Modified: trunk/reactos/lib/winmm/winmm_res.rc _____
Modified: trunk/reactos/lib/winmm/lolvldrv.c --- trunk/reactos/lib/winmm/lolvldrv.c 2005-08-05 18:27:06 UTC (rev 17075) +++ trunk/reactos/lib/winmm/lolvldrv.c 2005-08-05 20:25:46 UTC (rev 17076) @@ -414,7 +414,7 @@
/*********************************************************************** *** * MMDRV_GetByID [internal] */ -LPWINE_MLD MMDRV_GetByID(UINT uDevID, UINT type) +static LPWINE_MLD MMDRV_GetByID(UINT uDevID, UINT type) { TRACE("(%04x, %04x)\n", uDevID, type); if (uDevID < llTypes[type].wMaxId) @@ -731,43 +731,19 @@ strcpy(mapper_buffer, WINE_DEFAULT_WINMM_MAPPER); strcpy(midi_buffer, WINE_DEFAULT_WINMM_MIDI);
- if (! RegCreateKeyA(HKEY_LOCAL_MACHINE, "Software\Wine\Wine\Config\WinMM", &hKey)) { + /* @@ Wine registry key: HKCU\Software\Wine\Drivers */ + if (!RegOpenKeyA(HKEY_CURRENT_USER, "Software\Wine\Drivers", &hKey)) + { size = sizeof(driver_buffer); - if (RegQueryValueExA(hKey, "Drivers", 0, &type, (LPVOID)driver_buffer, &size)) + if (RegQueryValueExA(hKey, "Audio", 0, &type, (LPVOID)driver_buffer, &size)) strcpy(driver_buffer, WINE_DEFAULT_WINMM_DRIVER); - - /* finish with mappers */ - size = sizeof(mapper_buffer); - if (RegQueryValueExA(hKey, "WaveMapper", 0, &type, (LPVOID)mapper_buffer, &size)) - strcpy(mapper_buffer, WINE_DEFAULT_WINMM_MAPPER); - - size = sizeof(midi_buffer); - if (RegQueryValueExA(hKey, "MidiMapper", 0, &type, (LPVOID)midi_buffer, &size)) - strcpy(midi_buffer, WINE_DEFAULT_WINMM_MIDI); - - RegCloseKey(hKey); }
-#ifndef __REACTOS__ - char* p1; - char* p2; - - p1 = driver_buffer; - while (p1) { - p2 = strchr(p1, ';'); - if (p2) *p2++ = '\0'; - ret |= MMDRV_Install(p1, p1, FALSE); - p1 = p2; - } -#endif - -#ifdef __REACTOS__ // AG: TESTING: ret |= MMDRV_Install("mmdrv.dll", "mmdrv.dll", FALSE); -#endif
- ret |= MMDRV_Install("wavemapper", mapper_buffer, TRUE); - ret |= MMDRV_Install("midimapper", midi_buffer, TRUE); + ret |= MMDRV_Install("wavemapper", WINE_DEFAULT_WINMM_MAPPER, TRUE); + ret |= MMDRV_Install("midimapper", WINE_DEFAULT_WINMM_MIDI, TRUE); return ret;
} _____
Modified: trunk/reactos/lib/winmm/mci.c --- trunk/reactos/lib/winmm/mci.c 2005-08-05 18:27:06 UTC (rev 17075) +++ trunk/reactos/lib/winmm/mci.c 2005-08-05 20:25:46 UTC (rev 17076) @@ -68,8 +68,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(mci);
-WINMM_MapType (*pFnMciMapMsg16To32W) (WORD,WORD,DWORD*) /* = NULL */; -WINMM_MapType (*pFnMciUnMapMsg16To32W)(WORD,WORD,DWORD) /* = NULL */; +WINMM_MapType (*pFnMciMapMsg16To32W) (WORD,WORD,DWORD,DWORD*) /* = NULL */; +WINMM_MapType (*pFnMciUnMapMsg16To32W)(WORD,WORD,DWORD,DWORD) /* = NULL */; WINMM_MapType (*pFnMciMapMsg32WTo16) (WORD,WORD,DWORD,DWORD*) /* = NULL */; WINMM_MapType (*pFnMciUnMapMsg32WTo16)(WORD,WORD,DWORD,DWORD) /* = NULL */;
@@ -1595,7 +1595,7 @@ if (wmd->bIs32 && pFnMciMapMsg16To32W) { WINMM_MapType res;
- switch (res = pFnMciMapMsg16To32W(wmd->wType, wMsg, &dwParam2)) { + switch (res = pFnMciMapMsg16To32W(wmd->wType, wMsg, dwParam1, &dwParam2)) { case WINMM_MAP_MSGERROR: TRACE("Not handled yet (%s)\n", MCI_MessageToString(wMsg)); dwRet = MCIERR_DRIVER_INTERNAL; @@ -1608,7 +1608,7 @@ case WINMM_MAP_OKMEM: dwRet = SendDriverMessage(wmd->hDriver, wMsg, dwParam1, dwParam2); if (res == WINMM_MAP_OKMEM) - pFnMciUnMapMsg16To32W(wmd->wType, wMsg, dwParam2); + pFnMciUnMapMsg16To32W(wmd->wType, wMsg, dwParam1, dwParam2); break; } } else { @@ -1966,11 +1966,11 @@ if (bFrom32) { dwRet = MCI_Open(dwParam1, (LPMCI_OPEN_PARMSW)dwParam2); } else if (pFnMciMapMsg16To32W) { - switch (pFnMciMapMsg16To32W(0, wMsg, &dwParam2)) { + switch (pFnMciMapMsg16To32W(0, wMsg, dwParam1, &dwParam2)) { case WINMM_MAP_OK: case WINMM_MAP_OKMEM: dwRet = MCI_Open(dwParam1, (LPMCI_OPEN_PARMSW)dwParam2); - pFnMciUnMapMsg16To32W(0, wMsg, dwParam2); + pFnMciUnMapMsg16To32W(0, wMsg, dwParam1, dwParam2); break; default: break; /* so that gcc does not bark */ } @@ -1980,11 +1980,11 @@ if (bFrom32) { dwRet = MCI_Close(wDevID, dwParam1, (LPMCI_GENERIC_PARMS)dwParam2); } else if (pFnMciMapMsg16To32W) { - switch (pFnMciMapMsg16To32W(0, wMsg, &dwParam2)) { + switch (pFnMciMapMsg16To32W(0, wMsg, dwParam1, &dwParam2)) { case WINMM_MAP_OK: case WINMM_MAP_OKMEM: dwRet = MCI_Close(wDevID, dwParam1, (LPMCI_GENERIC_PARMS)dwParam2); - pFnMciUnMapMsg16To32W(0, wMsg, dwParam2); + pFnMciUnMapMsg16To32W(0, wMsg, dwParam1, dwParam2); break; default: break; /* so that gcc does not bark */ } @@ -1994,11 +1994,11 @@ if (bFrom32) { dwRet = MCI_SysInfo(wDevID, dwParam1, (LPMCI_SYSINFO_PARMSW)dwParam2); } else if (pFnMciMapMsg16To32W) { - switch (pFnMciMapMsg16To32W(0, wMsg, &dwParam2)) { + switch (pFnMciMapMsg16To32W(0, wMsg, dwParam1, &dwParam2)) { case WINMM_MAP_OK: case WINMM_MAP_OKMEM: dwRet = MCI_SysInfo(wDevID, dwParam1, (LPMCI_SYSINFO_PARMSW)dwParam2); - pFnMciUnMapMsg16To32W(0, wMsg, dwParam2); + pFnMciUnMapMsg16To32W(0, wMsg, dwParam1, dwParam2); break; default: break; /* so that gcc does not bark */ } @@ -2008,11 +2008,11 @@ if (bFrom32) { dwRet = MCI_Break(wDevID, dwParam1, (LPMCI_BREAK_PARMS)dwParam2); } else if (pFnMciMapMsg16To32W) { - switch (pFnMciMapMsg16To32W(0, wMsg, &dwParam2)) { + switch (pFnMciMapMsg16To32W(0, wMsg, dwParam1, &dwParam2)) { case WINMM_MAP_OK: case WINMM_MAP_OKMEM: dwRet = MCI_Break(wDevID, dwParam1, (LPMCI_BREAK_PARMS)dwParam2); - pFnMciUnMapMsg16To32W(0, wMsg, dwParam2); + pFnMciUnMapMsg16To32W(0, wMsg, dwParam1, dwParam2); break; default: break; /* so that gcc does not bark */ } @@ -2022,11 +2022,11 @@ if (bFrom32) { dwRet = MCI_Sound(wDevID, dwParam1, (LPMCI_SOUND_PARMSW)dwParam2); } else if (pFnMciMapMsg16To32W) { - switch (pFnMciMapMsg16To32W(0, wMsg, &dwParam2)) { + switch (pFnMciMapMsg16To32W(0, wMsg, dwParam1, &dwParam2)) { case WINMM_MAP_OK: case WINMM_MAP_OKMEM: dwRet = MCI_Sound(wDevID, dwParam1, (LPMCI_SOUND_PARMSW)dwParam2); - pFnMciUnMapMsg16To32W(0, wMsg, dwParam2); + pFnMciUnMapMsg16To32W(0, wMsg, dwParam1, dwParam2); break; default: break; /* so that gcc does not bark */ } _____
Modified: trunk/reactos/lib/winmm/message16.c --- trunk/reactos/lib/winmm/message16.c 2005-08-05 18:27:06 UTC (rev 17075) +++ trunk/reactos/lib/winmm/message16.c 2005-08-05 20:25:46 UTC (rev 17076) @@ -2522,7 +2522,7 @@
/*********************************************************************** *** * MCI_MapMsg16To32W [internal] */ -static WINMM_MapType MCI_MapMsg16To32W(WORD uDevType, WORD wMsg, DWORD* lParam) +static WINMM_MapType MCI_MapMsg16To32W(WORD uDevType, WORD wMsg, DWORD dwFlags, DWORD* lParam) { if (*lParam == 0) return WINMM_MAP_OK; @@ -2632,9 +2632,18 @@ mop32w = (LPMCI_OPEN_PARMSW)((char*)mop32w + sizeof(LPMCI_OPEN_PARMS16)); mop32w->dwCallback = mop16->dwCallback; mop32w->wDeviceID = mop16->wDeviceID; - mop32w->lpstrDeviceType = MCI_strdupAtoW(MapSL(mop16->lpstrDeviceType)); - mop32w->lpstrElementName = MCI_strdupAtoW(MapSL(mop16->lpstrElementName)); - mop32w->lpstrAlias = MCI_strdupAtoW(MapSL(mop16->lpstrAlias)); + if( ( dwFlags & ( MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID)) == MCI_OPEN_TYPE) + mop32w->lpstrDeviceType = MCI_strdupAtoW(MapSL(mop16->lpstrDeviceType)); + else + mop32w->lpstrDeviceType = (LPWSTR) mop16->lpstrDeviceType; + if( ( dwFlags & ( MCI_OPEN_ELEMENT | MCI_OPEN_ELEMENT_ID)) == MCI_OPEN_ELEMENT) + mop32w->lpstrElementName = MCI_strdupAtoW(MapSL(mop16->lpstrElementName)); + else + mop32w->lpstrElementName = (LPWSTR) mop16->lpstrElementName; + if( ( dwFlags & MCI_OPEN_ALIAS)) + mop32w->lpstrAlias = MCI_strdupAtoW(MapSL(mop16->lpstrAlias)); + else + mop32w->lpstrAlias = (LPWSTR) mop16->lpstrAlias; /* copy extended information if any... * FIXME: this may seg fault if initial structure does not contain them and * the reads after msip16 fail under LDT limits... @@ -2707,7 +2716,7 @@
/*********************************************************************** *** * MCI_UnMapMsg16To32W [internal] */ -static WINMM_MapType MCI_UnMapMsg16To32W(WORD uDevType, WORD wMsg, DWORD lParam) +static WINMM_MapType MCI_UnMapMsg16To32W(WORD uDevType, WORD wMsg, DWORD dwFlags, DWORD lParam) { switch (wMsg) { /* case MCI_CAPTURE */ @@ -2798,9 +2807,12 @@ LPMCI_OPEN_PARMS16 mop16 = *(LPMCI_OPEN_PARMS16*)((char*)mop32w - sizeof(LPMCI_OPEN_PARMS16));
mop16->wDeviceID = mop32w->wDeviceID; - HeapFree(GetProcessHeap(), 0, mop32w->lpstrDeviceType); - HeapFree(GetProcessHeap(), 0, mop32w->lpstrElementName); - HeapFree(GetProcessHeap(), 0, mop32w->lpstrAlias); + if( ( dwFlags & ( MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID)) == MCI_OPEN_TYPE) + HeapFree(GetProcessHeap(), 0, mop32w->lpstrDeviceType); + if( ( dwFlags & ( MCI_OPEN_ELEMENT | MCI_OPEN_ELEMENT_ID)) == MCI_OPEN_ELEMENT) + HeapFree(GetProcessHeap(), 0, mop32w->lpstrElementName); + if( ( dwFlags & MCI_OPEN_ALIAS)) + HeapFree(GetProcessHeap(), 0, mop32w->lpstrAlias); if (!HeapFree(GetProcessHeap(), 0, (LPVOID)(lParam - sizeof(LPMCI_OPEN_PARMS16)))) FIXME("bad free line=%d\n", __LINE__); } _____
Modified: trunk/reactos/lib/winmm/mmsystem.c --- trunk/reactos/lib/winmm/mmsystem.c 2005-08-05 18:27:06 UTC (rev 17075) +++ trunk/reactos/lib/winmm/mmsystem.c 2005-08-05 20:25:46 UTC (rev 17076) @@ -109,7 +109,7 @@
}
/*********************************************************************** *** - * MMSYSTEM_WEP [MMSYSTEM.1] + * WEP [MMSYSTEM.1] */ int WINAPI MMSYSTEM_WEP(HINSTANCE16 hInstance, WORD wDataSeg, WORD cbHeapSize, LPSTR lpCmdLine) _____
Modified: trunk/reactos/lib/winmm/mmsystem.spec --- trunk/reactos/lib/winmm/mmsystem.spec 2005-08-05 18:27:06 UTC (rev 17075) +++ trunk/reactos/lib/winmm/mmsystem.spec 2005-08-05 20:25:46 UTC (rev 17076) @@ -1,176 +1,176 @@
-1 pascal WEP(word word word ptr) MMSYSTEM_WEP -2 pascal sndPlaySound(ptr word) sndPlaySound16 -3 pascal PlaySound(ptr word long) PlaySound16 -4 pascal DllEntryPoint(long word word word long word) MMSYSTEM_LibMain -5 pascal mmsystemGetVersion() mmsystemGetVersion16 -6 pascal DriverProc(long word word long long) DriverProc16 -8 pascal WMMMidiRunOnce() WMMMidiRunOnce16 -30 pascal -ret16 OutputDebugStr(str) OutputDebugStr16 -31 pascal DriverCallback(long word word word long long long) DriverCallback16 -32 pascal StackEnter() StackEnter16 -33 pascal StackLeave() StackLeave16 -34 stub MMDRVINSTALL -101 pascal joyGetNumDevs() joyGetNumDevs16 -102 pascal joyGetDevCaps(word ptr word) joyGetDevCaps16 -103 pascal joyGetPos(word ptr) joyGetPos16 -104 pascal joyGetThreshold(word ptr) joyGetThreshold16 -105 pascal joyReleaseCapture(word) joyReleaseCapture16 -106 pascal joySetCapture(word word word word) joySetCapture16 -107 pascal joySetThreshold(word word) joySetThreshold16 -109 pascal joySetCalibration(word) joySetCalibration16 -110 pascal joyGetPosEx(word ptr) joyGetPosEx16 -111 stub JOYCONFIGCHANGED -201 pascal midiOutGetNumDevs() midiOutGetNumDevs16 -202 pascal midiOutGetDevCaps(word ptr word) midiOutGetDevCaps16 -203 pascal midiOutGetErrorText(word ptr word) midiOutGetErrorText16 -204 pascal midiOutOpen(ptr word long long long) midiOutOpen16 -205 pascal midiOutClose(word) midiOutClose16 -206 pascal midiOutPrepareHeader(word segptr word) midiOutPrepareHeader16 -207 pascal midiOutUnprepareHeader(word segptr word) midiOutUnprepareHeader16 -208 pascal midiOutShortMsg(word long) midiOutShortMsg16 -209 pascal midiOutLongMsg(word segptr word) midiOutLongMsg16 -210 pascal midiOutReset(word) midiOutReset16 -211 pascal midiOutGetVolume(word ptr) midiOutGetVolume16 -212 pascal midiOutSetVolume(word long) midiOutSetVolume16 -213 pascal midiOutCachePatches(word word ptr word) midiOutCachePatches16 -214 pascal midiOutCacheDrumPatches(word word ptr word) midiOutCacheDrumPatches16 -215 pascal midiOutGetID(word ptr) midiOutGetID16 -216 pascal midiOutMessage(word word long long) midiOutMessage16 -250 pascal midiStreamProperty(word ptr long) midiStreamProperty16 -251 pascal midiStreamOpen(ptr ptr long long long long) midiStreamOpen16 -252 pascal midiStreamClose(word) midiStreamClose16 -253 pascal midiStreamPosition(word ptr word) midiStreamPosition16 -254 pascal midiStreamOut(word ptr word) midiStreamOut16 -255 pascal midiStreamPause(word) midiStreamPause16 -256 pascal midiStreamRestart(word) midiStreamRestart16 -257 pascal midiStreamStop(word) midiStreamStop16 -301 pascal midiInGetNumDevs() midiInGetNumDevs16 -302 pascal midiInGetDevCaps(word ptr word) midiInGetDevCaps16 -303 pascal midiInGetErrorText(word ptr word) midiOutGetErrorText16 -304 pascal midiInOpen(ptr word long long long) midiInOpen16 -305 pascal midiInClose(word) midiInClose16 -306 pascal midiInPrepareHeader(word segptr word) midiInPrepareHeader16 -307 pascal midiInUnprepareHeader(word segptr word) midiInUnprepareHeader16 -308 pascal midiInAddBuffer(word segptr word) midiInAddBuffer16 -309 pascal midiInStart(word) midiInStart16 -310 pascal midiInStop(word) midiInStop16 -311 pascal midiInReset(word) midiInReset16 -312 pascal midiInGetID(word ptr) midiInGetID16 -313 pascal midiInMessage(word word long long) midiInMessage16 -350 pascal auxGetNumDevs() auxGetNumDevs16 -351 pascal auxGetDevCaps(word ptr word) auxGetDevCaps16 -352 pascal auxGetVolume(word ptr) auxGetVolume16 -353 pascal auxSetVolume(word long) auxSetVolume16 -354 pascal auxOutMessage(word word long long) auxOutMessage16 -401 pascal waveOutGetNumDevs() waveOutGetNumDevs16 -402 pascal waveOutGetDevCaps(word ptr word) waveOutGetDevCaps16 -403 pascal waveOutGetErrorText(word ptr word) waveOutGetErrorText16 -404 pascal waveOutOpen(ptr word ptr long long long) waveOutOpen16 -405 pascal waveOutClose(word) waveOutClose16 -406 pascal waveOutPrepareHeader(word segptr word) waveOutPrepareHeader16 -407 pascal waveOutUnprepareHeader(word segptr word) waveOutUnprepareHeader16 -408 pascal waveOutWrite(word segptr word) waveOutWrite16 -409 pascal waveOutPause(word) waveOutPause16 -410 pascal waveOutRestart(word) waveOutRestart16 -411 pascal waveOutReset(word) waveOutReset16 -412 pascal waveOutGetPosition(word ptr word) waveOutGetPosition16 -413 pascal waveOutGetPitch(word ptr) waveOutGetPitch16 -414 pascal waveOutSetPitch(word long) waveOutSetPitch16 -415 pascal waveOutGetVolume(word ptr) waveOutGetVolume16 -416 pascal waveOutSetVolume(word long) waveOutSetVolume16 -417 pascal waveOutGetPlaybackRate(word ptr) waveOutGetPlaybackRate16 -418 pascal waveOutSetPlaybackRate(word long) waveOutSetPlaybackRate16 -419 pascal waveOutBreakLoop(word) waveOutBreakLoop16 -420 pascal waveOutGetID(word ptr) waveOutGetID16 -421 pascal waveOutMessage(word word long long) waveOutMessage16 -501 pascal waveInGetNumDevs() waveInGetNumDevs16 -502 pascal waveInGetDevCaps(word ptr word) waveInGetDevCaps16 -503 pascal waveInGetErrorText(word ptr word) waveOutGetErrorText16 -504 pascal waveInOpen(ptr word ptr long long long) waveInOpen16 -505 pascal waveInClose(word) waveInClose16 -506 pascal waveInPrepareHeader(word segptr word) waveInPrepareHeader16 -507 pascal waveInUnprepareHeader(word segptr word) waveInUnprepareHeader16 -508 pascal waveInAddBuffer(word segptr word) waveInAddBuffer16 -509 pascal waveInStart(word) waveInStart16 -510 pascal waveInStop(word) waveInStop16 -511 pascal waveInReset(word) waveInReset16 -512 pascal waveInGetPosition(word ptr word) waveInGetPosition16 -513 pascal waveInGetID(word ptr) waveInGetID16 -514 pascal waveInMessage(word word long long) waveInMessage16 -601 pascal timeGetSystemTime(ptr word) timeGetSystemTime16 -602 pascal timeSetEvent(word word segptr long word) timeSetEvent16 -603 pascal timeKillEvent(word) timeKillEvent16 -604 pascal timeGetDevCaps(ptr word) timeGetDevCaps16 -605 pascal timeBeginPeriod(word) timeBeginPeriod16 -606 pascal timeEndPeriod(word) timeEndPeriod16 -607 pascal timeGetTime() timeGetTime -701 pascal mciSendCommand(word word long long) mciSendCommand16 -702 pascal mciSendString(str ptr word word) mciSendString16 -703 pascal mciGetDeviceID(ptr) mciGetDeviceID16 -705 pascal mciLoadCommandResource(word str word) mciLoadCommandResource16 -706 pascal mciGetErrorString(long ptr word) mciGetErrorString16 -707 pascal mciSetDriverData(word long) mciSetDriverData16 -708 pascal mciGetDriverData(word) mciGetDriverData16 -710 pascal mciDriverYield(word) mciDriverYield16 -711 pascal mciDriverNotify(word word word) mciDriverNotify16 -712 pascal mciExecute(ptr) mciExecute -713 pascal mciFreeCommandResource(word) mciFreeCommandResource16 -714 pascal mciSetYieldProc(word ptr long) mciSetYieldProc16 -715 pascal mciGetDeviceIDFromElementID(long ptr) mciGetDeviceIDFromElementID16 -716 pascal mciGetYieldProc(word ptr) mciGetYieldProc16 -717 pascal mciGetCreatorTask(word) mciGetCreatorTask16 -800 pascal mixerGetNumDevs() mixerGetNumDevs16 -801 pascal mixerGetDevCaps(word ptr word) mixerGetDevCaps16 -802 pascal mixerOpen(ptr word long long long) mixerOpen16 -803 pascal mixerClose(word) mixerClose16 -804 pascal mixerMessage(word word long long) mixerMessage16 -805 pascal mixerGetLineInfo(word ptr long) mixerGetLineInfo16 -806 pascal mixerGetID(word ptr long) mixerGetID16 -807 pascal mixerGetLineControls(word ptr long) mixerGetLineControls16 -808 pascal mixerGetControlDetails(word ptr long) mixerGetControlDetails16 -809 pascal mixerSetControlDetails(word ptr long) mixerSetControlDetails16 -900 pascal mmTaskCreate(long ptr long) mmTaskCreate16 -902 pascal mmTaskBlock(word) mmTaskBlock16 -903 pascal mmTaskSignal(word) mmTaskSignal16 -904 pascal -ret16 mmGetCurrentTask() mmGetCurrentTask16 -905 pascal mmTaskYield() mmTaskYield16 -1100 pascal DrvOpen(str str long) DrvOpen16 -1101 pascal DrvClose(word long long) DrvClose16 -1102 pascal DrvSendMessage(word word long long) DrvSendMessage16 -1103 pascal DrvGetModuleHandle(word) DrvGetModuleHandle16 -1104 pascal DrvDefDriverProc(long word word long long) DrvDefDriverProc16 -1120 pascal mmThreadCreate(segptr ptr long long) mmThreadCreate16 -1121 pascal mmThreadSignal(word) mmThreadSignal16 -1122 pascal mmThreadBlock(word) mmThreadBlock16 -1123 pascal mmThreadIsCurrent(word) mmThreadIsCurrent16 -1124 pascal mmThreadIsValid(word) mmThreadIsValid16 -1125 pascal mmThreadGetTask(word) mmThreadGetTask16 -1150 pascal mmShowMMCPLPropertySheet(word str str str) mmShowMMCPLPropertySheet16 - -1210 pascal mmioOpen(str ptr long) mmioOpen16 -1211 pascal mmioClose(word word) mmioClose16 -1212 pascal mmioRead(word ptr long) mmioRead16 -1213 pascal mmioWrite(word ptr long) mmioWrite16 -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 segptr long word) mmioSetBuffer16 -1218 pascal mmioFlush(word word) mmioFlush16 -1219 pascal mmioAdvance(word ptr word) mmioAdvance16 -1220 pascal mmioStringToFOURCC(str word) mmioStringToFOURCC16 -1221 pascal mmioInstallIOProc(long ptr long) mmioInstallIOProc16 -1222 pascal mmioSendMessage(word word long long) mmioSendMessage16 -1223 pascal mmioDescend(word ptr ptr word) mmioDescend16 -1224 pascal mmioAscend(word ptr word) mmioAscend16 -1225 pascal mmioCreateChunk(word ptr word) mmioCreateChunk16 -1226 pascal mmioRename(ptr ptr ptr long) mmioRename16 - -#2000 stub WINMMF_THUNKDATA16 -#2001 stub RING3_DEVLOADER -#2002 stub WINMMTILEBUFFER -#2003 stub WINMMUNTILEBUFFER -#2005 stub MCIGETTHUNKTABLE -#2006 stub WINMMSL_THUNKDATA16 - -# these are Wine only exported functions. Is there another way to do it ? -2047 pascal __wine_mmThreadEntryPoint(long) WINE_mmThreadEntryPoint +1 pascal WEP(word word word ptr) MMSYSTEM_WEP +2 pascal sndPlaySound(ptr word) sndPlaySound16 +3 pascal PlaySound(ptr word long) PlaySound16 +4 pascal DllEntryPoint(long word word word long word) MMSYSTEM_LibMain +5 pascal mmsystemGetVersion() mmsystemGetVersion16 +6 pascal DriverProc(long word word long long) DriverProc16 +8 pascal WMMMidiRunOnce() WMMMidiRunOnce16 +30 pascal -ret16 OutputDebugStr(str) OutputDebugStr16 +31 pascal DriverCallback(long word word word long long long) DriverCallback16 +32 pascal StackEnter() StackEnter16 +33 pascal StackLeave() StackLeave16 +34 stub MMDRVINSTALL +101 pascal joyGetNumDevs() joyGetNumDevs16 +102 pascal joyGetDevCaps(word ptr word) joyGetDevCaps16 +103 pascal joyGetPos(word ptr) joyGetPos16 +104 pascal joyGetThreshold(word ptr) joyGetThreshold16 +105 pascal joyReleaseCapture(word) joyReleaseCapture16 +106 pascal joySetCapture(word word word word) joySetCapture16 +107 pascal joySetThreshold(word word) joySetThreshold16 +109 pascal joySetCalibration(word) joySetCalibration16 +110 pascal joyGetPosEx(word ptr) joyGetPosEx16 +111 stub JOYCONFIGCHANGED +201 pascal midiOutGetNumDevs() midiOutGetNumDevs16 +202 pascal midiOutGetDevCaps(word ptr word) midiOutGetDevCaps16 +203 pascal midiOutGetErrorText(word ptr word) midiOutGetErrorText16 +204 pascal midiOutOpen(ptr word long long long) midiOutOpen16 +205 pascal midiOutClose(word) midiOutClose16 +206 pascal midiOutPrepareHeader(word segptr word) midiOutPrepareHeader16 +207 pascal midiOutUnprepareHeader(word segptr word) midiOutUnprepareHeader16 +208 pascal midiOutShortMsg(word long) midiOutShortMsg16 +209 pascal midiOutLongMsg(word segptr word) midiOutLongMsg16 +210 pascal midiOutReset(word) midiOutReset16 +211 pascal midiOutGetVolume(word ptr) midiOutGetVolume16 +212 pascal midiOutSetVolume(word long) midiOutSetVolume16 +213 pascal midiOutCachePatches(word word ptr word) midiOutCachePatches16 +214 pascal midiOutCacheDrumPatches(word word ptr word) midiOutCacheDrumPatches16 +215 pascal midiOutGetID(word ptr) midiOutGetID16 +216 pascal midiOutMessage(word word long long) midiOutMessage16 +250 pascal midiStreamProperty(word ptr long) midiStreamProperty16 +251 pascal midiStreamOpen(ptr ptr long long long long) midiStreamOpen16 +252 pascal midiStreamClose(word) midiStreamClose16 +253 pascal midiStreamPosition(word ptr word) midiStreamPosition16 +254 pascal midiStreamOut(word ptr word) midiStreamOut16 +255 pascal midiStreamPause(word) midiStreamPause16 +256 pascal midiStreamRestart(word) midiStreamRestart16 +257 pascal midiStreamStop(word) midiStreamStop16 +301 pascal midiInGetNumDevs() midiInGetNumDevs16 +302 pascal midiInGetDevCaps(word ptr word) midiInGetDevCaps16 +303 pascal midiInGetErrorText(word ptr word) midiOutGetErrorText16 +304 pascal midiInOpen(ptr word long long long) midiInOpen16 +305 pascal midiInClose(word) midiInClose16 +306 pascal midiInPrepareHeader(word segptr word) midiInPrepareHeader16 +307 pascal midiInUnprepareHeader(word segptr word) midiInUnprepareHeader16 +308 pascal midiInAddBuffer(word segptr word) midiInAddBuffer16 +309 pascal midiInStart(word) midiInStart16 +310 pascal midiInStop(word) midiInStop16 +311 pascal midiInReset(word) midiInReset16 +312 pascal midiInGetID(word ptr) midiInGetID16 +313 pascal midiInMessage(word word long long) midiInMessage16 +350 pascal auxGetNumDevs() auxGetNumDevs16 +351 pascal auxGetDevCaps(word ptr word) auxGetDevCaps16 +352 pascal auxGetVolume(word ptr) auxGetVolume16 +353 pascal auxSetVolume(word long) auxSetVolume16 +354 pascal auxOutMessage(word word long long) auxOutMessage16 +401 pascal waveOutGetNumDevs() waveOutGetNumDevs16 +402 pascal waveOutGetDevCaps(word ptr word) waveOutGetDevCaps16 +403 pascal waveOutGetErrorText(word ptr word) waveOutGetErrorText16 +404 pascal waveOutOpen(ptr word ptr long long long) waveOutOpen16 +405 pascal waveOutClose(word) waveOutClose16 +406 pascal waveOutPrepareHeader(word segptr word) waveOutPrepareHeader16 +407 pascal waveOutUnprepareHeader(word segptr word) waveOutUnprepareHeader16 +408 pascal waveOutWrite(word segptr word) waveOutWrite16 +409 pascal waveOutPause(word) waveOutPause16 +410 pascal waveOutRestart(word) waveOutRestart16 +411 pascal waveOutReset(word) waveOutReset16 +412 pascal waveOutGetPosition(word ptr word) waveOutGetPosition16 +413 pascal waveOutGetPitch(word ptr) waveOutGetPitch16 +414 pascal waveOutSetPitch(word long) waveOutSetPitch16 +415 pascal waveOutGetVolume(word ptr) waveOutGetVolume16 +416 pascal waveOutSetVolume(word long) waveOutSetVolume16 +417 pascal waveOutGetPlaybackRate(word ptr) waveOutGetPlaybackRate16 +418 pascal waveOutSetPlaybackRate(word long) waveOutSetPlaybackRate16 +419 pascal waveOutBreakLoop(word) waveOutBreakLoop16 +420 pascal waveOutGetID(word ptr) waveOutGetID16 +421 pascal waveOutMessage(word word long long) waveOutMessage16 +501 pascal waveInGetNumDevs() waveInGetNumDevs16 +502 pascal waveInGetDevCaps(word ptr word) waveInGetDevCaps16 +503 pascal waveInGetErrorText(word ptr word) waveOutGetErrorText16 +504 pascal waveInOpen(ptr word ptr long long long) waveInOpen16 +505 pascal waveInClose(word) waveInClose16 +506 pascal waveInPrepareHeader(word segptr word) waveInPrepareHeader16 +507 pascal waveInUnprepareHeader(word segptr word) waveInUnprepareHeader16 +508 pascal waveInAddBuffer(word segptr word) waveInAddBuffer16 +509 pascal waveInStart(word) waveInStart16 +510 pascal waveInStop(word) waveInStop16 +511 pascal waveInReset(word) waveInReset16 +512 pascal waveInGetPosition(word ptr word) waveInGetPosition16 +513 pascal waveInGetID(word ptr) waveInGetID16 +514 pascal waveInMessage(word word long long) waveInMessage16 +601 pascal timeGetSystemTime(ptr word) timeGetSystemTime16 +602 pascal timeSetEvent(word word segptr long word) timeSetEvent16 +603 pascal timeKillEvent(word) timeKillEvent16 +604 pascal timeGetDevCaps(ptr word) timeGetDevCaps16 +605 pascal timeBeginPeriod(word) timeBeginPeriod16 +606 pascal timeEndPeriod(word) timeEndPeriod16 +607 pascal timeGetTime() timeGetTime +701 pascal mciSendCommand(word word long long) mciSendCommand16 +702 pascal mciSendString(str ptr word word) mciSendString16 +703 pascal mciGetDeviceID(ptr) mciGetDeviceID16 +705 pascal mciLoadCommandResource(word str word) mciLoadCommandResource16 +706 pascal mciGetErrorString(long ptr word) mciGetErrorString16 +707 pascal mciSetDriverData(word long) mciSetDriverData16 +708 pascal mciGetDriverData(word) mciGetDriverData16 +710 pascal mciDriverYield(word) mciDriverYield16 +711 pascal mciDriverNotify(word word word) mciDriverNotify16 +712 pascal mciExecute(ptr) mciExecute +713 pascal mciFreeCommandResource(word) mciFreeCommandResource16 +714 pascal mciSetYieldProc(word ptr long) mciSetYieldProc16 +715 pascal mciGetDeviceIDFromElementID(long ptr) mciGetDeviceIDFromElementID16 +716 pascal mciGetYieldProc(word ptr) mciGetYieldProc16 +717 pascal mciGetCreatorTask(word) mciGetCreatorTask16 +800 pascal mixerGetNumDevs() mixerGetNumDevs16 +801 pascal mixerGetDevCaps(word ptr word) mixerGetDevCaps16 +802 pascal mixerOpen(ptr word long long long) mixerOpen16 +803 pascal mixerClose(word) mixerClose16 +804 pascal mixerMessage(word word long long) mixerMessage16 +805 pascal mixerGetLineInfo(word ptr long) mixerGetLineInfo16 +806 pascal mixerGetID(word ptr long) mixerGetID16 +807 pascal mixerGetLineControls(word ptr long) mixerGetLineControls16 +808 pascal mixerGetControlDetails(word ptr long) mixerGetControlDetails16 +809 pascal mixerSetControlDetails(word ptr long) mixerSetControlDetails16 +900 pascal mmTaskCreate(long ptr long) mmTaskCreate16 +902 pascal mmTaskBlock(word) mmTaskBlock16 +903 pascal mmTaskSignal(word) mmTaskSignal16 +904 pascal -ret16 mmGetCurrentTask() mmGetCurrentTask16 +905 pascal mmTaskYield() mmTaskYield16 +1100 pascal DrvOpen(str str long) DrvOpen16 +1101 pascal DrvClose(word long long) DrvClose16 +1102 pascal DrvSendMessage(word word long long) DrvSendMessage16 +1103 pascal DrvGetModuleHandle(word) DrvGetModuleHandle16 +1104 pascal DrvDefDriverProc(long word word long long) DrvDefDriverProc16 +1120 pascal mmThreadCreate(segptr ptr long long) mmThreadCreate16 +1121 pascal mmThreadSignal(word) mmThreadSignal16 +1122 pascal mmThreadBlock(word) mmThreadBlock16 +1123 pascal mmThreadIsCurrent(word) mmThreadIsCurrent16 +1124 pascal mmThreadIsValid(word) mmThreadIsValid16 +1125 pascal mmThreadGetTask(word) mmThreadGetTask16 +1150 pascal mmShowMMCPLPropertySheet(word str str str) mmShowMMCPLPropertySheet16 + +1210 pascal mmioOpen(str ptr long) mmioOpen16 +1211 pascal mmioClose(word word) mmioClose16 +1212 pascal mmioRead(word ptr long) mmioRead16 +1213 pascal mmioWrite(word ptr long) mmioWrite16 +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 segptr long word) mmioSetBuffer16 +1218 pascal mmioFlush(word word) mmioFlush16 +1219 pascal mmioAdvance(word ptr word) mmioAdvance16 +1220 pascal mmioStringToFOURCC(str word) mmioStringToFOURCC16 +1221 pascal mmioInstallIOProc(long ptr long) mmioInstallIOProc16 +1222 pascal mmioSendMessage(word word long long) mmioSendMessage16 +1223 pascal mmioDescend(word ptr ptr word) mmioDescend16 +1224 pascal mmioAscend(word ptr word) mmioAscend16 +1225 pascal mmioCreateChunk(word ptr word) mmioCreateChunk16 +1226 pascal mmioRename(ptr ptr ptr long) mmioRename16 + +#2000 stub WINMMF_THUNKDATA16 +#2001 stub RING3_DEVLOADER +#2002 stub WINMMTILEBUFFER +#2003 stub WINMMUNTILEBUFFER +#2005 stub MCIGETTHUNKTABLE +#2006 stub WINMMSL_THUNKDATA16 + +# these are Wine only exported functions. Is there another way to do it ? +2047 pascal __wine_mmThreadEntryPoint(long) WINE_mmThreadEntryPoint Property changes on: trunk/reactos/lib/winmm/mmsystem.spec ___________________________________________________________________ Name: svn:eol-style + native _____
Modified: trunk/reactos/lib/winmm/sound.spec --- trunk/reactos/lib/winmm/sound.spec 2005-08-05 18:27:06 UTC (rev 17075) +++ trunk/reactos/lib/winmm/sound.spec 2005-08-05 20:25:46 UTC (rev 17076) @@ -1,18 +1,18 @@
-1 pascal -ret16 OpenSound() OpenSound16 -2 pascal -ret16 CloseSound() CloseSound16 -3 pascal -ret16 SetVoiceQueueSize(word word) SetVoiceQueueSize16 -4 pascal -ret16 SetVoiceNote(word word word word) SetVoiceNote16 -5 pascal -ret16 SetVoiceAccent(word word word word word) SetVoiceAccent16 -6 pascal -ret16 SetVoiceEnvelope(word word word) SetVoiceEnvelope16 -7 pascal -ret16 SetSoundNoise(word word) SetSoundNoise16 -8 pascal -ret16 SetVoiceSound(word long word) SetVoiceSound16 -9 pascal -ret16 StartSound() StartSound16 -10 pascal -ret16 StopSound() StopSound16 -11 pascal -ret16 WaitSoundState(word) WaitSoundState16 -12 pascal -ret16 SyncAllVoices() SyncAllVoices16 -13 pascal -ret16 CountVoiceNotes(word) CountVoiceNotes16 -14 pascal GetThresholdEvent() GetThresholdEvent16 -15 pascal -ret16 GetThresholdStatus() GetThresholdStatus16 -16 pascal -ret16 SetVoiceThreshold(word word) SetVoiceThreshold16 -17 pascal -ret16 DoBeep() DoBeep16 -18 stub MYOPENSOUND # W1.1, W2.0 +1 pascal -ret16 OpenSound() OpenSound16 +2 pascal -ret16 CloseSound() CloseSound16 +3 pascal -ret16 SetVoiceQueueSize(word word) SetVoiceQueueSize16 +4 pascal -ret16 SetVoiceNote(word word word word) SetVoiceNote16 +5 pascal -ret16 SetVoiceAccent(word word word word word) SetVoiceAccent16 +6 pascal -ret16 SetVoiceEnvelope(word word word) SetVoiceEnvelope16 +7 pascal -ret16 SetSoundNoise(word word) SetSoundNoise16 +8 pascal -ret16 SetVoiceSound(word long word) SetVoiceSound16 +9 pascal -ret16 StartSound() StartSound16 +10 pascal -ret16 StopSound() StopSound16 +11 pascal -ret16 WaitSoundState(word) WaitSoundState16 +12 pascal -ret16 SyncAllVoices() SyncAllVoices16 +13 pascal -ret16 CountVoiceNotes(word) CountVoiceNotes16 +14 pascal GetThresholdEvent() GetThresholdEvent16 +15 pascal -ret16 GetThresholdStatus() GetThresholdStatus16 +16 pascal -ret16 SetVoiceThreshold(word word) SetVoiceThreshold16 +17 pascal -ret16 DoBeep() DoBeep16 +18 stub MYOPENSOUND # W1.1, W2.0 Property changes on: trunk/reactos/lib/winmm/sound.spec ___________________________________________________________________ Name: svn:eol-style + native _____
Modified: trunk/reactos/lib/winmm/winemm.h --- trunk/reactos/lib/winmm/winemm.h 2005-08-05 18:27:06 UTC (rev 17075) +++ trunk/reactos/lib/winmm/winemm.h 2005-08-05 20:25:46 UTC (rev 17076) @@ -28,7 +28,7 @@
#include "winbase.h" #include "mmddk.h"
-#define WINE_DEFAULT_WINMM_DRIVER "wineoss.drv" +#define WINE_DEFAULT_WINMM_DRIVER "oss" #define WINE_DEFAULT_WINMM_MAPPER "msacm.drv" #define WINE_DEFAULT_WINMM_MIDI "midimap.drv"
@@ -301,8 +301,8 @@ extern LPWINE_DRIVER (*pFnOpenDriver16)(LPCWSTR,LPCWSTR,LPARAM); extern LRESULT (*pFnCloseDriver16)(UINT16,LPARAM,LPARAM); extern LRESULT (*pFnSendMessage16)(UINT16,UINT,LPARAM,LPARAM); -extern WINMM_MapType (*pFnMciMapMsg16To32W)(WORD,WORD,DWORD*); -extern WINMM_MapType (*pFnMciUnMapMsg16To32W)(WORD,WORD,DWORD); +extern WINMM_MapType (*pFnMciMapMsg16To32W)(WORD,WORD,DWORD,DWORD*); +extern WINMM_MapType (*pFnMciUnMapMsg16To32W)(WORD,WORD,DWORD,DWORD); extern WINMM_MapType (*pFnMciMapMsg32WTo16)(WORD,WORD,DWORD,DWORD*); extern WINMM_MapType (*pFnMciUnMapMsg32WTo16)(WORD,WORD,DWORD,DWORD); extern LRESULT (*pFnCallMMDrvFunc16)(DWORD /* in fact FARPROC16 */,WORD,WORD,LONG,LONG,LONG); _____
Modified: trunk/reactos/lib/winmm/winmm.spec --- trunk/reactos/lib/winmm/winmm.spec 2005-08-05 18:27:06 UTC (rev 17075) +++ trunk/reactos/lib/winmm/winmm.spec 2005-08-05 20:25:46 UTC (rev 17076) @@ -1,211 +1,211 @@
-# ordinal exports -1 stdcall @(ptr long long) PlaySoundA -3 stub @ -4 stub @ - -@ stdcall PlaySoundA(ptr long long) -@ stdcall CloseDriver(long long long) -@ stdcall DefDriverProc(long long long long long) -@ stdcall DriverCallback(long long long long long long long) -@ stdcall DrvClose(long long long) CloseDriver -@ stdcall DrvDefDriverProc(long long long long long) DefDriverProc -@ stdcall DrvGetModuleHandle(long) GetDriverModuleHandle -@ stdcall DrvOpen(wstr wstr long) OpenDriver -@ stdcall DrvOpenA(str str long) OpenDriverA -@ stdcall DrvSendMessage(long long long long) SendDriverMessage -@ stdcall GetDriverFlags(long) -@ stdcall GetDriverModuleHandle(long) -@ stdcall OpenDriver(wstr wstr long) -@ stdcall OpenDriverA(str str long) -@ stdcall PlaySound(ptr long long) PlaySoundA -@ stdcall PlaySoundW(ptr long long) -@ stdcall SendDriverMessage(long long long long) -@ stdcall auxGetDevCapsA(long ptr long) -@ stdcall auxGetDevCapsW(long ptr long) -@ stdcall auxGetNumDevs() -@ stdcall auxGetVolume(long ptr) -@ stdcall auxOutMessage(long long long long) -@ stdcall auxSetVolume(long long) -@ stub joyConfigChanged -@ stdcall joyGetDevCapsA(long ptr long) -@ stdcall joyGetDevCapsW(long ptr long) -@ stdcall joyGetNumDevs() -@ stdcall joyGetPos(long ptr) -@ stdcall joyGetPosEx(long ptr) -@ stdcall joyGetThreshold(long ptr) -@ stdcall joyReleaseCapture(long) -@ stdcall joySetCapture(long long long long) -@ stdcall joySetThreshold(long long) -@ stdcall mciDriverNotify(long long long) -@ stdcall mciDriverYield(long) -@ stdcall mciExecute(str) -@ stdcall mciFreeCommandResource(long) -@ stdcall mciGetCreatorTask(long) -@ stdcall mciGetDeviceIDA(str) -@ stdcall mciGetDeviceIDW(wstr) -@ stdcall mciGetDeviceIDFromElementIDA(long str) -@ stdcall mciGetDeviceIDFromElementIDW(long wstr) -@ stdcall mciGetDriverData(long) -@ stdcall mciGetErrorStringA(long ptr long) -@ stdcall mciGetErrorStringW(long ptr long) -@ stdcall mciGetYieldProc(long ptr) -@ stdcall mciLoadCommandResource(long wstr long) -@ stdcall mciSendCommandA(long long long long) -@ stdcall mciSendCommandW(long long long long) -@ stdcall mciSendStringA(str ptr long long) -@ stdcall mciSendStringW(wstr ptr long long) -@ stdcall mciSetDriverData(long long) -@ stdcall mciSetYieldProc(long ptr long) -@ stub midiConnect -@ stub midiDisconnect -@ stdcall midiInAddBuffer(long ptr long) -@ stdcall midiInClose(long) -@ stdcall midiInGetDevCapsA(long ptr long) -@ stdcall midiInGetDevCapsW(long ptr long) -@ stdcall midiInGetErrorTextA(long ptr long) midiOutGetErrorTextA -@ stdcall midiInGetErrorTextW(long ptr long) midiOutGetErrorTextW -@ stdcall midiInGetID(long ptr) -@ stdcall midiInGetNumDevs() -@ stdcall midiInMessage(long long long long) -@ stdcall midiInOpen(ptr long long long long) -@ stdcall midiInPrepareHeader(long ptr long) -@ stdcall midiInReset(long) -@ stdcall midiInStart(long) -@ stdcall midiInStop(long) -@ stdcall midiInUnprepareHeader(long ptr long) -@ stdcall midiOutCacheDrumPatches(long long ptr long) -@ stdcall midiOutCachePatches(long long ptr long) -@ stdcall midiOutClose(long) -@ stdcall midiOutGetDevCapsA(long ptr long) -@ stdcall midiOutGetDevCapsW(long ptr long) -@ stdcall midiOutGetErrorTextA(long ptr long) -@ stdcall midiOutGetErrorTextW(long ptr long) -@ stdcall midiOutGetID(long ptr) -@ stdcall midiOutGetNumDevs() -@ stdcall midiOutGetVolume(long ptr) -@ stdcall midiOutLongMsg(long ptr long) -@ stdcall midiOutMessage(long long long long) -@ stdcall midiOutOpen(ptr long long long long) -@ stdcall midiOutPrepareHeader(long ptr long) -@ stdcall midiOutReset(long) -@ stdcall midiOutSetVolume(long ptr) -@ stdcall midiOutShortMsg(long long) -@ stdcall midiOutUnprepareHeader(long ptr long) -@ stdcall midiStreamClose(long) -@ stdcall midiStreamOpen(ptr ptr long long long long) -@ stdcall midiStreamOut(long ptr long) -@ stdcall midiStreamPause(long) -@ stdcall midiStreamPosition(long ptr long) -@ stdcall midiStreamProperty(long ptr long) -@ stdcall midiStreamRestart(long) -@ stdcall midiStreamStop(long) -@ stdcall mixerClose(long) -@ stdcall mixerGetControlDetailsA(long ptr long) -@ stdcall mixerGetControlDetailsW(long ptr long) -@ stdcall mixerGetDevCapsA(long ptr long) -@ stdcall mixerGetDevCapsW(long ptr long) -@ stdcall mixerGetID(long ptr long) -@ stdcall mixerGetLineControlsA(long ptr long) -@ stdcall mixerGetLineControlsW(long ptr long) -@ stdcall mixerGetLineInfoA(long ptr long) -@ stdcall mixerGetLineInfoW(long ptr long) -@ stdcall mixerGetNumDevs() -@ stdcall mixerMessage(long long long long) -@ stdcall mixerOpen(ptr long long long long) -@ stdcall mixerSetControlDetails(long ptr long) -@ stdcall mmGetCurrentTask() -@ stdcall mmioAdvance(long ptr long) -@ stdcall mmioAscend(long ptr long) -@ stdcall mmioClose(long long) -@ stdcall mmioCreateChunk(long ptr long) -@ stdcall mmioDescend(long ptr ptr long) -@ stdcall mmioFlush(long long) -@ stdcall mmioGetInfo(long ptr long) -@ stub mmioInstallIOProc16 -@ stdcall mmioInstallIOProcA(long ptr long) -@ stdcall mmioInstallIOProcW(long ptr long) -@ stdcall mmioOpenA(str ptr long) -@ stdcall mmioOpenW(wstr ptr long) -@ stdcall mmioRead(long ptr long) -@ stdcall mmioRenameA(str str ptr long) -@ stdcall mmioRenameW(wstr wstr ptr long) -@ stdcall mmioSeek(long long long) -@ stdcall mmioSendMessage(long long long long) -@ stdcall mmioSetBuffer(long ptr long long) -@ stdcall mmioSetInfo(long ptr long) -@ stdcall mmioStringToFOURCCA(str long) -@ stdcall mmioStringToFOURCCW(wstr long) -@ stdcall mmioWrite(long ptr long) -@ stdcall mmsystemGetVersion() -@ stdcall mmTaskBlock(long) -@ stdcall mmTaskCreate(ptr ptr long) -@ stdcall mmTaskSignal(long) -@ stdcall mmTaskYield() -@ stdcall sndPlaySoundA(ptr long) -@ stdcall sndPlaySoundW(ptr long) -@ stdcall timeBeginPeriod(long) -@ stdcall timeEndPeriod(long) -@ stdcall timeGetDevCaps(ptr long) -@ stdcall timeGetSystemTime(ptr long) -@ stdcall timeGetTime() -@ stdcall timeKillEvent(long) -@ stdcall timeSetEvent(long long ptr long long) -@ stdcall waveInAddBuffer(long ptr long) -@ stdcall waveInClose(long) -@ stdcall waveInGetDevCapsA(long ptr long) -@ stdcall waveInGetDevCapsW(long ptr long) -@ stdcall waveInGetErrorTextA(long ptr long) waveOutGetErrorTextA -@ stdcall waveInGetErrorTextW(long ptr long) waveOutGetErrorTextW -@ stdcall waveInGetID(long ptr) -@ stdcall waveInGetNumDevs() -@ stdcall waveInGetPosition(long ptr long) -@ stdcall waveInMessage(long long long long) -@ stdcall waveInOpen(ptr long ptr long long long) -@ stdcall waveInPrepareHeader(long ptr long) -@ stdcall waveInReset(long) -@ stdcall waveInStart(long) -@ stdcall waveInStop(long) -@ stdcall waveInUnprepareHeader(long ptr long) -@ stdcall waveOutBreakLoop(long) -@ stdcall waveOutClose(long) -@ stdcall waveOutGetDevCapsA(long ptr long) -@ stdcall waveOutGetDevCapsW(long ptr long) -@ stdcall waveOutGetErrorTextA(long ptr long) -@ stdcall waveOutGetErrorTextW(long ptr long) -@ stdcall waveOutGetID(long ptr) -@ stdcall waveOutGetNumDevs() -@ stdcall waveOutGetPitch(long ptr) -@ stdcall waveOutGetPlaybackRate(long ptr) -@ stdcall waveOutGetPosition(long ptr long) -@ stdcall waveOutGetVolume(long ptr) -@ stdcall waveOutMessage(long long long long) -@ stdcall waveOutOpen(ptr long ptr long long long) -@ stdcall waveOutPause(long) -@ stdcall waveOutPrepareHeader(long ptr long) -@ stdcall waveOutReset(long) -@ stdcall waveOutRestart(long) -@ stdcall waveOutSetPitch(long long) -@ stdcall waveOutSetPlaybackRate(long long) -@ stdcall waveOutSetVolume(long long) -@ stdcall waveOutUnprepareHeader(long ptr long) -@ stdcall waveOutWrite(long ptr long) -# MigrateAllDrivers -# MigrateSoundEvents -# NotifyCallbackData -# WOW32DriverCallback -# WOW32ResolveMultiMediaHandle -# WOWAppExit -# WinmmLogoff -# WinmmLogon -# mid32Message -# mmDrvInstall -# aux32Message -# joy32Message -# mci32Message -# mod32Message -# mxd32Message -# tid32Message -# wid32Message -# winmmDbgOut -# winmmSetDebugLevel -# wod32Message +# ordinal exports +1 stdcall @(ptr long long) PlaySoundA +3 stub @ +4 stub @ + +@ stdcall CloseDriver(long long long) +@ stdcall DefDriverProc(long long long long long) +@ stdcall DriverCallback(long long long long long long long) +@ stdcall DrvClose(long long long) CloseDriver +@ stdcall DrvDefDriverProc(long long long long long) DefDriverProc +@ stdcall DrvGetModuleHandle(long) GetDriverModuleHandle +@ stdcall DrvOpen(wstr wstr long) OpenDriver +@ stdcall DrvOpenA(str str long) OpenDriverA +@ stdcall DrvSendMessage(long long long long) SendDriverMessage +@ stdcall GetDriverFlags(long) +@ stdcall GetDriverModuleHandle(long) +@ stdcall OpenDriver(wstr wstr long) +@ stdcall OpenDriverA(str str long) +@ stdcall PlaySound(ptr long long) PlaySoundA +@ stdcall PlaySoundA(ptr long long) +@ stdcall PlaySoundW(ptr long long) +@ stdcall SendDriverMessage(long long long long) +@ stdcall auxGetDevCapsA(long ptr long) +@ stdcall auxGetDevCapsW(long ptr long) +@ stdcall auxGetNumDevs() +@ stdcall auxGetVolume(long ptr) +@ stdcall auxOutMessage(long long long long) +@ stdcall auxSetVolume(long long) +@ stub joyConfigChanged +@ stdcall joyGetDevCapsA(long ptr long) +@ stdcall joyGetDevCapsW(long ptr long) +@ stdcall joyGetNumDevs() +@ stdcall joyGetPos(long ptr) +@ stdcall joyGetPosEx(long ptr) +@ stdcall joyGetThreshold(long ptr) +@ stdcall joyReleaseCapture(long) +@ stdcall joySetCapture(long long long long) +@ stdcall joySetThreshold(long long) +@ stdcall mciDriverNotify(long long long) +@ stdcall mciDriverYield(long) +@ stdcall mciExecute(str) +@ stdcall mciFreeCommandResource(long) +@ stdcall mciGetCreatorTask(long) +@ stdcall mciGetDeviceIDA(str) +@ stdcall mciGetDeviceIDFromElementIDA(long str) +@ stdcall mciGetDeviceIDFromElementIDW(long wstr) +@ stdcall mciGetDeviceIDW(wstr) +@ stdcall mciGetDriverData(long) +@ stdcall mciGetErrorStringA(long ptr long) +@ stdcall mciGetErrorStringW(long ptr long) +@ stdcall mciGetYieldProc(long ptr) +@ stdcall mciLoadCommandResource(long wstr long) +@ stdcall mciSendCommandA(long long long long) +@ stdcall mciSendCommandW(long long long long) +@ stdcall mciSendStringA(str ptr long long) +@ stdcall mciSendStringW(wstr ptr long long) +@ stdcall mciSetDriverData(long long) +@ stdcall mciSetYieldProc(long ptr long) +@ stub midiConnect +@ stub midiDisconnect +@ stdcall midiInAddBuffer(long ptr long) +@ stdcall midiInClose(long) +@ stdcall midiInGetDevCapsA(long ptr long) +@ stdcall midiInGetDevCapsW(long ptr long) +@ stdcall midiInGetErrorTextA(long ptr long) midiOutGetErrorTextA +@ stdcall midiInGetErrorTextW(long ptr long) midiOutGetErrorTextW +@ stdcall midiInGetID(long ptr) +@ stdcall midiInGetNumDevs() +@ stdcall midiInMessage(long long long long) +@ stdcall midiInOpen(ptr long long long long) +@ stdcall midiInPrepareHeader(long ptr long) +@ stdcall midiInReset(long) +@ stdcall midiInStart(long) +@ stdcall midiInStop(long) +@ stdcall midiInUnprepareHeader(long ptr long) +@ stdcall midiOutCacheDrumPatches(long long ptr long) +@ stdcall midiOutCachePatches(long long ptr long) +@ stdcall midiOutClose(long) +@ stdcall midiOutGetDevCapsA(long ptr long) +@ stdcall midiOutGetDevCapsW(long ptr long) +@ stdcall midiOutGetErrorTextA(long ptr long) +@ stdcall midiOutGetErrorTextW(long ptr long) +@ stdcall midiOutGetID(long ptr) +@ stdcall midiOutGetNumDevs() +@ stdcall midiOutGetVolume(long ptr) +@ stdcall midiOutLongMsg(long ptr long) +@ stdcall midiOutMessage(long long long long) +@ stdcall midiOutOpen(ptr long long long long) +@ stdcall midiOutPrepareHeader(long ptr long) +@ stdcall midiOutReset(long) +@ stdcall midiOutSetVolume(long ptr) +@ stdcall midiOutShortMsg(long long) +@ stdcall midiOutUnprepareHeader(long ptr long) +@ stdcall midiStreamClose(long) +@ stdcall midiStreamOpen(ptr ptr long long long long) +@ stdcall midiStreamOut(long ptr long) +@ stdcall midiStreamPause(long) +@ stdcall midiStreamPosition(long ptr long) +@ stdcall midiStreamProperty(long ptr long) +@ stdcall midiStreamRestart(long) +@ stdcall midiStreamStop(long) +@ stdcall mixerClose(long) +@ stdcall mixerGetControlDetailsA(long ptr long) +@ stdcall mixerGetControlDetailsW(long ptr long) +@ stdcall mixerGetDevCapsA(long ptr long) +@ stdcall mixerGetDevCapsW(long ptr long) +@ stdcall mixerGetID(long ptr long) +@ stdcall mixerGetLineControlsA(long ptr long) +@ stdcall mixerGetLineControlsW(long ptr long) +@ stdcall mixerGetLineInfoA(long ptr long) +@ stdcall mixerGetLineInfoW(long ptr long) +@ stdcall mixerGetNumDevs() +@ stdcall mixerMessage(long long long long) +@ stdcall mixerOpen(ptr long long long long) +@ stdcall mixerSetControlDetails(long ptr long) [truncated at 1000 lines; 5027 more skipped]