PageRenderTime 33ms CodeModel.GetById 1ms RepoModel.GetById 0ms app.codeStats 1ms

/indra/media_plugins/winmmshim/forwarding_api.cpp

https://bitbucket.org/lindenlab/viewer-beta/
C++ | 1627 lines | 1229 code | 183 blank | 215 comment | 0 complexity | 75bc9dd0cda84147804523b65414468c MD5 | raw file
Possible License(s): LGPL-2.1

Large files files are truncated, but you can click here to view the full file

  1. /**
  2. * @file forwarding_api.cpp
  3. * @brief forwards winmm API calls to real winmm.dll
  4. *
  5. * $LicenseInfo:firstyear=2010&license=viewerlgpl$
  6. * Second Life Viewer Source Code
  7. * Copyright (C) 2010, Linden Research, Inc.
  8. *
  9. * This library is free software; you can redistribute it and/or
  10. * modify it under the terms of the GNU Lesser General Public
  11. * License as published by the Free Software Foundation;
  12. * version 2.1 of the License only.
  13. *
  14. * This library is distributed in the hope that it will be useful,
  15. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  17. * Lesser General Public License for more details.
  18. *
  19. * You should have received a copy of the GNU Lesser General Public
  20. * License along with this library; if not, write to the Free Software
  21. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  22. *
  23. * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
  24. * $/LicenseInfo$
  25. */
  26. #include "forwarding_api.h"
  27. CloseDriver_type CloseDriver_orig;
  28. OpenDriver_type OpenDriver_orig;
  29. SendDriverMessage_type SendDriverMessage_orig;
  30. DrvGetModuleHandle_type DrvGetModuleHandle_orig;
  31. GetDriverModuleHandle_type GetDriverModuleHandle_orig;
  32. DefDriverProc_type DefDriverProc_orig;
  33. DriverCallback_type DriverCallback_orig;
  34. mmsystemGetVersion_type mmsystemGetVersion_orig;
  35. sndPlaySoundA_type sndPlaySoundA_orig;
  36. sndPlaySoundW_type sndPlaySoundW_orig;
  37. PlaySoundA_type PlaySoundA_orig;
  38. PlaySoundW_type PlaySoundW_orig;
  39. waveOutGetNumDevs_type waveOutGetNumDevs_orig;
  40. waveOutGetDevCapsA_type waveOutGetDevCapsA_orig;
  41. waveOutGetDevCapsW_type waveOutGetDevCapsW_orig;
  42. waveOutGetVolume_type waveOutGetVolume_orig;
  43. waveOutSetVolume_type waveOutSetVolume_orig;
  44. waveOutGetErrorTextA_type waveOutGetErrorTextA_orig;
  45. waveOutGetErrorTextW_type waveOutGetErrorTextW_orig;
  46. waveOutOpen_type waveOutOpen_orig;
  47. waveOutClose_type waveOutClose_orig;
  48. waveOutPrepareHeader_type waveOutPrepareHeader_orig;
  49. waveOutUnprepareHeader_type waveOutUnprepareHeader_orig;
  50. waveOutWrite_type waveOutWrite_orig;
  51. waveOutPause_type waveOutPause_orig;
  52. waveOutRestart_type waveOutRestart_orig;
  53. waveOutReset_type waveOutReset_orig;
  54. waveOutBreakLoop_type waveOutBreakLoop_orig;
  55. waveOutGetPosition_type waveOutGetPosition_orig;
  56. waveOutGetPitch_type waveOutGetPitch_orig;
  57. waveOutSetPitch_type waveOutSetPitch_orig;
  58. waveOutGetPlaybackRate_type waveOutGetPlaybackRate_orig;
  59. waveOutSetPlaybackRate_type waveOutSetPlaybackRate_orig;
  60. waveOutGetID_type waveOutGetID_orig;
  61. waveOutMessage_type waveOutMessage_orig;
  62. waveInGetNumDevs_type waveInGetNumDevs_orig;
  63. waveInGetDevCapsA_type waveInGetDevCapsA_orig;
  64. waveInGetDevCapsW_type waveInGetDevCapsW_orig;
  65. waveInGetErrorTextA_type waveInGetErrorTextA_orig;
  66. waveInGetErrorTextW_type waveInGetErrorTextW_orig;
  67. waveInOpen_type waveInOpen_orig;
  68. waveInClose_type waveInClose_orig;
  69. waveInPrepareHeader_type waveInPrepareHeader_orig;
  70. waveInUnprepareHeader_type waveInUnprepareHeader_orig;
  71. waveInAddBuffer_type waveInAddBuffer_orig;
  72. waveInStart_type waveInStart_orig;
  73. waveInStop_type waveInStop_orig;
  74. waveInReset_type waveInReset_orig;
  75. waveInGetPosition_type waveInGetPosition_orig;
  76. waveInGetID_type waveInGetID_orig;
  77. waveInMessage_type waveInMessage_orig;
  78. midiOutGetNumDevs_type midiOutGetNumDevs_orig;
  79. midiStreamOpen_type midiStreamOpen_orig;
  80. midiStreamClose_type midiStreamClose_orig;
  81. midiStreamProperty_type midiStreamProperty_orig;
  82. midiStreamPosition_type midiStreamPosition_orig;
  83. midiStreamOut_type midiStreamOut_orig;
  84. midiStreamPause_type midiStreamPause_orig;
  85. midiStreamRestart_type midiStreamRestart_orig;
  86. midiStreamStop_type midiStreamStop_orig;
  87. midiConnect_type midiConnect_orig;
  88. midiDisconnect_type midiDisconnect_orig;
  89. midiOutGetDevCapsA_type midiOutGetDevCapsA_orig;
  90. midiOutGetDevCapsW_type midiOutGetDevCapsW_orig;
  91. midiOutGetVolume_type midiOutGetVolume_orig;
  92. midiOutSetVolume_type midiOutSetVolume_orig;
  93. midiOutGetErrorTextA_type midiOutGetErrorTextA_orig;
  94. midiOutGetErrorTextW_type midiOutGetErrorTextW_orig;
  95. midiOutOpen_type midiOutOpen_orig;
  96. midiOutClose_type midiOutClose_orig;
  97. midiOutPrepareHeader_type midiOutPrepareHeader_orig;
  98. midiOutUnprepareHeader_type midiOutUnprepareHeader_orig;
  99. midiOutShortMsg_type midiOutShortMsg_orig;
  100. midiOutLongMsg_type midiOutLongMsg_orig;
  101. midiOutReset_type midiOutReset_orig;
  102. midiOutCachePatches_type midiOutCachePatches_orig;
  103. midiOutCacheDrumPatches_type midiOutCacheDrumPatches_orig;
  104. midiOutGetID_type midiOutGetID_orig;
  105. midiOutMessage_type midiOutMessage_orig;
  106. midiInGetNumDevs_type midiInGetNumDevs_orig;
  107. midiInGetDevCapsA_type midiInGetDevCapsA_orig;
  108. midiInGetDevCapsW_type midiInGetDevCapsW_orig;
  109. midiInGetErrorTextA_type midiInGetErrorTextA_orig;
  110. midiInGetErrorTextW_type midiInGetErrorTextW_orig;
  111. midiInOpen_type midiInOpen_orig;
  112. midiInClose_type midiInClose_orig;
  113. midiInPrepareHeader_type midiInPrepareHeader_orig;
  114. midiInUnprepareHeader_type midiInUnprepareHeader_orig;
  115. midiInAddBuffer_type midiInAddBuffer_orig;
  116. midiInStart_type midiInStart_orig;
  117. midiInStop_type midiInStop_orig;
  118. midiInReset_type midiInReset_orig;
  119. midiInGetID_type midiInGetID_orig;
  120. midiInMessage_type midiInMessage_orig;
  121. auxGetNumDevs_type auxGetNumDevs_orig;
  122. auxGetDevCapsA_type auxGetDevCapsA_orig;
  123. auxGetDevCapsW_type auxGetDevCapsW_orig;
  124. auxSetVolume_type auxSetVolume_orig;
  125. auxGetVolume_type auxGetVolume_orig;
  126. auxOutMessage_type auxOutMessage_orig;
  127. mixerGetNumDevs_type mixerGetNumDevs_orig;
  128. mixerGetDevCapsA_type mixerGetDevCapsA_orig;
  129. mixerGetDevCapsW_type mixerGetDevCapsW_orig;
  130. mixerOpen_type mixerOpen_orig;
  131. mixerClose_type mixerClose_orig;
  132. mixerMessage_type mixerMessage_orig;
  133. mixerGetLineInfoA_type mixerGetLineInfoA_orig;
  134. mixerGetLineInfoW_type mixerGetLineInfoW_orig;
  135. mixerGetID_type mixerGetID_orig;
  136. mixerGetLineControlsA_type mixerGetLineControlsA_orig;
  137. mixerGetLineControlsW_type mixerGetLineControlsW_orig;
  138. mixerGetControlDetailsA_type mixerGetControlDetailsA_orig;
  139. mixerGetControlDetailsW_type mixerGetControlDetailsW_orig;
  140. mixerSetControlDetails_type mixerSetControlDetails_orig;
  141. mmGetCurrentTask_type mmGetCurrentTask_orig;
  142. mmTaskBlock_type mmTaskBlock_orig;
  143. mmTaskCreate_type mmTaskCreate_orig;
  144. mmTaskSignal_type mmTaskSignal_orig;
  145. mmTaskYield_type mmTaskYield_orig;
  146. timeGetSystemTime_type timeGetSystemTime_orig;
  147. timeGetTime_type timeGetTime_orig;
  148. timeSetEvent_type timeSetEvent_orig;
  149. timeKillEvent_type timeKillEvent_orig;
  150. timeGetDevCaps_type timeGetDevCaps_orig;
  151. timeBeginPeriod_type timeBeginPeriod_orig;
  152. timeEndPeriod_type timeEndPeriod_orig;
  153. joyGetNumDevs_type joyGetNumDevs_orig;
  154. joyConfigChanged_type joyConfigChanged_orig;
  155. joyGetDevCapsA_type joyGetDevCapsA_orig;
  156. joyGetDevCapsW_type joyGetDevCapsW_orig;
  157. joyGetPos_type joyGetPos_orig;
  158. joyGetPosEx_type joyGetPosEx_orig;
  159. joyGetThreshold_type joyGetThreshold_orig;
  160. joyReleaseCapture_type joyReleaseCapture_orig;
  161. joySetCapture_type joySetCapture_orig;
  162. joySetThreshold_type joySetThreshold_orig;
  163. mmioStringToFOURCCA_type mmioStringToFOURCCA_orig;
  164. mmioStringToFOURCCW_type mmioStringToFOURCCW_orig;
  165. mmioInstallIOProcA_type mmioInstallIOProcA_orig;
  166. mmioInstallIOProcW_type mmioInstallIOProcW_orig;
  167. mmioOpenA_type mmioOpenA_orig;
  168. mmioOpenW_type mmioOpenW_orig;
  169. mmioRenameA_type mmioRenameA_orig;
  170. mmioRenameW_type mmioRenameW_orig;
  171. mmioClose_type mmioClose_orig;
  172. mmioRead_type mmioRead_orig;
  173. mmioWrite_type mmioWrite_orig;
  174. mmioSeek_type mmioSeek_orig;
  175. mmioGetInfo_type mmioGetInfo_orig;
  176. mmioSetInfo_type mmioSetInfo_orig;
  177. mmioSetBuffer_type mmioSetBuffer_orig;
  178. mmioFlush_type mmioFlush_orig;
  179. mmioAdvance_type mmioAdvance_orig;
  180. mmioSendMessage_type mmioSendMessage_orig;
  181. mmioDescend_type mmioDescend_orig;
  182. mmioAscend_type mmioAscend_orig;
  183. mmioCreateChunk_type mmioCreateChunk_orig;
  184. mciSendCommandA_type mciSendCommandA_orig;
  185. mciSendCommandW_type mciSendCommandW_orig;
  186. mciSendStringA_type mciSendStringA_orig;
  187. mciSendStringW_type mciSendStringW_orig;
  188. mciGetDeviceIDA_type mciGetDeviceIDA_orig;
  189. mciGetDeviceIDW_type mciGetDeviceIDW_orig;
  190. mciGetDeviceIDFromElementIDA_type mciGetDeviceIDFromElementIDA_orig;
  191. mciGetDeviceIDFromElementIDW_type mciGetDeviceIDFromElementIDW_orig;
  192. mciGetDriverData_type mciGetDriverData_orig;
  193. mciGetErrorStringA_type mciGetErrorStringA_orig;
  194. mciGetErrorStringW_type mciGetErrorStringW_orig;
  195. mciSetDriverData_type mciSetDriverData_orig;
  196. mciDriverNotify_type mciDriverNotify_orig;
  197. mciDriverYield_type mciDriverYield_orig;
  198. mciSetYieldProc_type mciSetYieldProc_orig;
  199. mciFreeCommandResource_type mciFreeCommandResource_orig;
  200. mciGetCreatorTask_type mciGetCreatorTask_orig;
  201. mciGetYieldProc_type mciGetYieldProc_orig;
  202. mciLoadCommandResource_type mciLoadCommandResource_orig;
  203. mciExecute_type mciExecute_orig;
  204. // grab pointers to function calls in the real DLL
  205. void init_function_pointers(HMODULE winmm_handle)
  206. {
  207. CloseDriver_orig = (CloseDriver_type)::GetProcAddress(winmm_handle, "CloseDriver");
  208. OpenDriver_orig = (OpenDriver_type)::GetProcAddress(winmm_handle, "OpenDriver");
  209. SendDriverMessage_orig = (SendDriverMessage_type)::GetProcAddress(winmm_handle, "SendDriverMessage");
  210. DrvGetModuleHandle_orig = (DrvGetModuleHandle_type)::GetProcAddress(winmm_handle, "DrvGetModuleHandle");
  211. GetDriverModuleHandle_orig = (GetDriverModuleHandle_type)::GetProcAddress(winmm_handle, "GetDriverModuleHandle");
  212. DefDriverProc_orig = (DefDriverProc_type)::GetProcAddress(winmm_handle, "DefDriverProc");
  213. DriverCallback_orig = (DriverCallback_type)::GetProcAddress(winmm_handle, "DriverCallback");
  214. mmsystemGetVersion_orig = (mmsystemGetVersion_type)::GetProcAddress(winmm_handle, "mmsystemGetVersion");
  215. sndPlaySoundA_orig = (sndPlaySoundA_type)::GetProcAddress(winmm_handle, "sndPlaySoundA");
  216. sndPlaySoundW_orig = (sndPlaySoundW_type)::GetProcAddress(winmm_handle, "sndPlaySoundW");
  217. PlaySoundA_orig = (PlaySoundA_type)::GetProcAddress(winmm_handle, "PlaySoundA");
  218. PlaySoundW_orig = (PlaySoundW_type)::GetProcAddress(winmm_handle, "PlaySoundW");
  219. waveOutGetNumDevs_orig = (waveOutGetNumDevs_type)::GetProcAddress(winmm_handle, "waveOutGetNumDevs");
  220. waveOutGetDevCapsA_orig = (waveOutGetDevCapsA_type)::GetProcAddress(winmm_handle, "waveOutGetDevCapsA");
  221. waveOutGetDevCapsW_orig = (waveOutGetDevCapsW_type)::GetProcAddress(winmm_handle, "waveOutGetDevCapsW");
  222. waveOutGetVolume_orig = (waveOutGetVolume_type)::GetProcAddress(winmm_handle, "waveOutGetVolume");
  223. waveOutSetVolume_orig = (waveOutSetVolume_type)::GetProcAddress(winmm_handle, "waveOutSetVolume");
  224. waveOutGetErrorTextA_orig = (waveOutGetErrorTextA_type)::GetProcAddress(winmm_handle, "waveOutGetErrorTextA");
  225. waveOutGetErrorTextW_orig = (waveOutGetErrorTextW_type)::GetProcAddress(winmm_handle, "waveOutGetErrorTextW");
  226. waveOutOpen_orig = (waveOutOpen_type)::GetProcAddress(winmm_handle, "waveOutOpen");
  227. waveOutClose_orig = (waveOutClose_type)::GetProcAddress(winmm_handle, "waveOutClose");
  228. waveOutPrepareHeader_orig = (waveOutPrepareHeader_type)::GetProcAddress(winmm_handle, "waveOutPrepareHeader");
  229. waveOutUnprepareHeader_orig = (waveOutUnprepareHeader_type)::GetProcAddress(winmm_handle, "waveOutUnprepareHeader");
  230. waveOutWrite_orig = (waveOutWrite_type)::GetProcAddress(winmm_handle, "waveOutWrite");
  231. waveOutPause_orig = (waveOutPause_type)::GetProcAddress(winmm_handle, "waveOutPause");
  232. waveOutRestart_orig = (waveOutRestart_type)::GetProcAddress(winmm_handle, "waveOutRestart");
  233. waveOutReset_orig = (waveOutReset_type)::GetProcAddress(winmm_handle, "waveOutReset");
  234. waveOutBreakLoop_orig = (waveOutBreakLoop_type)::GetProcAddress(winmm_handle, "waveOutBreakLoop");
  235. waveOutGetPosition_orig = (waveOutGetPosition_type)::GetProcAddress(winmm_handle, "waveOutGetPosition");
  236. waveOutGetPitch_orig = (waveOutGetPitch_type)::GetProcAddress(winmm_handle, "waveOutGetPitch");
  237. waveOutSetPitch_orig = (waveOutSetPitch_type)::GetProcAddress(winmm_handle, "waveOutSetPitch");
  238. waveOutGetPlaybackRate_orig = (waveOutGetPlaybackRate_type)::GetProcAddress(winmm_handle, "waveOutGetPlaybackRate");
  239. waveOutSetPlaybackRate_orig = (waveOutSetPlaybackRate_type)::GetProcAddress(winmm_handle, "waveOutSetPlaybackRate");
  240. waveOutGetID_orig = (waveOutGetID_type)::GetProcAddress(winmm_handle, "waveOutGetID");
  241. waveOutMessage_orig = (waveOutMessage_type)::GetProcAddress(winmm_handle, "waveOutMessage");
  242. waveInGetNumDevs_orig = (waveInGetNumDevs_type)::GetProcAddress(winmm_handle, "waveInGetNumDevs");
  243. waveInGetDevCapsA_orig = (waveInGetDevCapsA_type)::GetProcAddress(winmm_handle, "waveInGetDevCapsA");
  244. waveInGetDevCapsW_orig = (waveInGetDevCapsW_type)::GetProcAddress(winmm_handle, "waveInGetDevCapsW");
  245. waveInGetErrorTextA_orig = (waveInGetErrorTextA_type)::GetProcAddress(winmm_handle, "waveInGetErrorTextA");
  246. waveInGetErrorTextW_orig = (waveInGetErrorTextW_type)::GetProcAddress(winmm_handle, "waveInGetErrorTextW");
  247. waveInOpen_orig = (waveInOpen_type)::GetProcAddress(winmm_handle, "waveInOpen");
  248. waveInClose_orig = (waveInClose_type)::GetProcAddress(winmm_handle, "waveInClose");
  249. waveInPrepareHeader_orig = (waveInPrepareHeader_type)::GetProcAddress(winmm_handle, "waveInPrepareHeader");
  250. waveInUnprepareHeader_orig = (waveInUnprepareHeader_type)::GetProcAddress(winmm_handle, "waveInUnprepareHeader");
  251. waveInAddBuffer_orig = (waveInAddBuffer_type)::GetProcAddress(winmm_handle, "waveInAddBuffer");
  252. waveInStart_orig = (waveInStart_type)::GetProcAddress(winmm_handle, "waveInStart");
  253. waveInStop_orig = (waveInStop_type)::GetProcAddress(winmm_handle, "waveInStop");
  254. waveInReset_orig = (waveInReset_type)::GetProcAddress(winmm_handle, "waveInReset");
  255. waveInGetPosition_orig = (waveInGetPosition_type)::GetProcAddress(winmm_handle, "waveInGetPosition");
  256. waveInGetID_orig = (waveInGetID_type)::GetProcAddress(winmm_handle, "waveInGetID");
  257. waveInMessage_orig = (waveInMessage_type)::GetProcAddress(winmm_handle, "waveInMessage");
  258. midiOutGetNumDevs_orig = (midiOutGetNumDevs_type)::GetProcAddress(winmm_handle, "midiOutGetNumDevs");
  259. midiStreamOpen_orig = (midiStreamOpen_type)::GetProcAddress(winmm_handle, "midiStreamOpen");
  260. midiStreamClose_orig = (midiStreamClose_type)::GetProcAddress(winmm_handle, "midiStreamClose");
  261. midiStreamProperty_orig = (midiStreamProperty_type)::GetProcAddress(winmm_handle, "midiStreamProperty");
  262. midiStreamPosition_orig = (midiStreamPosition_type)::GetProcAddress(winmm_handle, "midiStreamPosition");
  263. midiStreamOut_orig = (midiStreamOut_type)::GetProcAddress(winmm_handle, "midiStreamOut");
  264. midiStreamPause_orig = (midiStreamPause_type)::GetProcAddress(winmm_handle, "midiStreamPause");
  265. midiStreamRestart_orig = (midiStreamRestart_type)::GetProcAddress(winmm_handle, "midiStreamRestart");
  266. midiStreamStop_orig = (midiStreamStop_type)::GetProcAddress(winmm_handle, "midiStreamStop");
  267. midiConnect_orig = (midiConnect_type)::GetProcAddress(winmm_handle, "midiConnect");
  268. midiDisconnect_orig = (midiDisconnect_type)::GetProcAddress(winmm_handle, "midiDisconnect");
  269. midiOutGetDevCapsA_orig = (midiOutGetDevCapsA_type)::GetProcAddress(winmm_handle, "midiOutGetDevCapsA");
  270. midiOutGetDevCapsW_orig = (midiOutGetDevCapsW_type)::GetProcAddress(winmm_handle, "midiOutGetDevCapsW");
  271. midiOutGetVolume_orig = (midiOutGetVolume_type)::GetProcAddress(winmm_handle, "midiOutGetVolume");
  272. midiOutSetVolume_orig = (midiOutSetVolume_type)::GetProcAddress(winmm_handle, "midiOutSetVolume");
  273. midiOutGetErrorTextA_orig = (midiOutGetErrorTextA_type)::GetProcAddress(winmm_handle, "midiOutGetErrorTextA");
  274. midiOutGetErrorTextW_orig = (midiOutGetErrorTextW_type)::GetProcAddress(winmm_handle, "midiOutGetErrorTextW");
  275. midiOutOpen_orig = (midiOutOpen_type)::GetProcAddress(winmm_handle, "midiOutOpen");
  276. midiOutClose_orig = (midiOutClose_type)::GetProcAddress(winmm_handle, "midiOutClose");
  277. midiOutPrepareHeader_orig = (midiOutPrepareHeader_type)::GetProcAddress(winmm_handle, "midiOutPrepareHeader");
  278. midiOutUnprepareHeader_orig = (midiOutUnprepareHeader_type)::GetProcAddress(winmm_handle, "midiOutUnprepareHeader");
  279. midiOutShortMsg_orig = (midiOutShortMsg_type)::GetProcAddress(winmm_handle, "midiOutShortMsg");
  280. midiOutLongMsg_orig = (midiOutLongMsg_type)::GetProcAddress(winmm_handle, "midiOutLongMsg");
  281. midiOutReset_orig = (midiOutReset_type)::GetProcAddress(winmm_handle, "midiOutReset");
  282. midiOutCachePatches_orig = (midiOutCachePatches_type)::GetProcAddress(winmm_handle, "midiOutCachePatches");
  283. midiOutCacheDrumPatches_orig = (midiOutCacheDrumPatches_type)::GetProcAddress(winmm_handle, "midiOutCacheDrumPatches");
  284. midiOutGetID_orig = (midiOutGetID_type)::GetProcAddress(winmm_handle, "midiOutGetID");
  285. midiOutMessage_orig = (midiOutMessage_type)::GetProcAddress(winmm_handle, "midiOutMessage");
  286. midiInGetNumDevs_orig = (midiInGetNumDevs_type)::GetProcAddress(winmm_handle, "midiInGetNumDevs");
  287. midiInGetDevCapsA_orig = (midiInGetDevCapsA_type)::GetProcAddress(winmm_handle, "midiInGetDevCapsA");
  288. midiInGetDevCapsW_orig = (midiInGetDevCapsW_type)::GetProcAddress(winmm_handle, "midiInGetDevCapsW");
  289. midiInGetErrorTextA_orig = (midiInGetErrorTextA_type)::GetProcAddress(winmm_handle, "midiInGetErrorTextA");
  290. midiInGetErrorTextW_orig = (midiInGetErrorTextW_type)::GetProcAddress(winmm_handle, "midiInGetErrorTextW");
  291. midiInOpen_orig = (midiInOpen_type)::GetProcAddress(winmm_handle, "midiInOpen");
  292. midiInClose_orig = (midiInClose_type)::GetProcAddress(winmm_handle, "midiInClose");
  293. midiInPrepareHeader_orig = (midiInPrepareHeader_type)::GetProcAddress(winmm_handle, "midiInPrepareHeader");
  294. midiInUnprepareHeader_orig = (midiInUnprepareHeader_type)::GetProcAddress(winmm_handle, "midiInUnprepareHeader");
  295. midiInAddBuffer_orig = (midiInAddBuffer_type)::GetProcAddress(winmm_handle, "midiInAddBuffer");
  296. midiInStart_orig = (midiInStart_type)::GetProcAddress(winmm_handle, "midiInStart");
  297. midiInStop_orig = (midiInStop_type)::GetProcAddress(winmm_handle, "midiInStop");
  298. midiInReset_orig = (midiInReset_type)::GetProcAddress(winmm_handle, "midiInReset");
  299. midiInGetID_orig = (midiInGetID_type)::GetProcAddress(winmm_handle, "midiInGetID");
  300. midiInMessage_orig = (midiInMessage_type)::GetProcAddress(winmm_handle, "midiInMessage");
  301. auxGetNumDevs_orig = (auxGetNumDevs_type)::GetProcAddress(winmm_handle, "auxGetNumDevs");
  302. auxGetDevCapsA_orig = (auxGetDevCapsA_type)::GetProcAddress(winmm_handle, "auxGetDevCapsA");
  303. auxGetDevCapsW_orig = (auxGetDevCapsW_type)::GetProcAddress(winmm_handle, "auxGetDevCapsW");
  304. auxSetVolume_orig = (auxSetVolume_type)::GetProcAddress(winmm_handle, "auxSetVolume");
  305. auxGetVolume_orig = (auxGetVolume_type)::GetProcAddress(winmm_handle, "auxGetVolume");
  306. auxOutMessage_orig = (auxOutMessage_type)::GetProcAddress(winmm_handle, "auxOutMessage");
  307. mixerGetNumDevs_orig = (mixerGetNumDevs_type)::GetProcAddress(winmm_handle, "mixerGetNumDevs");
  308. mixerGetDevCapsA_orig = (mixerGetDevCapsA_type)::GetProcAddress(winmm_handle, "mixerGetDevCapsA");
  309. mixerGetDevCapsW_orig = (mixerGetDevCapsW_type)::GetProcAddress(winmm_handle, "mixerGetDevCapsW");
  310. mixerOpen_orig = (mixerOpen_type)::GetProcAddress(winmm_handle, "mixerOpen");
  311. mixerClose_orig = (mixerClose_type)::GetProcAddress(winmm_handle, "mixerClose");
  312. mixerMessage_orig = (mixerMessage_type)::GetProcAddress(winmm_handle, "mixerMessage");
  313. mixerGetLineInfoA_orig = (mixerGetLineInfoA_type)::GetProcAddress(winmm_handle, "mixerGetLineInfoA");
  314. mixerGetLineInfoW_orig = (mixerGetLineInfoW_type)::GetProcAddress(winmm_handle, "mixerGetLineInfoW");
  315. mixerGetID_orig = (mixerGetID_type)::GetProcAddress(winmm_handle, "mixerGetID");
  316. mixerGetLineControlsA_orig = (mixerGetLineControlsA_type)::GetProcAddress(winmm_handle, "mixerGetLineControlsA");
  317. mixerGetLineControlsW_orig = (mixerGetLineControlsW_type)::GetProcAddress(winmm_handle, "mixerGetLineControlsW");
  318. mixerGetControlDetailsA_orig = (mixerGetControlDetailsA_type)::GetProcAddress(winmm_handle, "mixerGetControlDetailsA");
  319. mixerGetControlDetailsW_orig = (mixerGetControlDetailsW_type)::GetProcAddress(winmm_handle, "mixerGetControlDetailsW");
  320. mixerSetControlDetails_orig = (mixerSetControlDetails_type)::GetProcAddress(winmm_handle, "mixerSetControlDetails");
  321. mmGetCurrentTask_orig = (mmGetCurrentTask_type)::GetProcAddress(winmm_handle, "mmGetCurrentTask");
  322. mmTaskBlock_orig = (mmTaskBlock_type)::GetProcAddress(winmm_handle, "mmTaskBlock");
  323. mmTaskCreate_orig = (mmTaskCreate_type)::GetProcAddress(winmm_handle, "mmTaskCreate");
  324. mmTaskSignal_orig = (mmTaskSignal_type)::GetProcAddress(winmm_handle, "mmTaskSignal");
  325. mmTaskYield_orig = (mmTaskYield_type)::GetProcAddress(winmm_handle, "mmTaskYield");
  326. timeGetSystemTime_orig = (timeGetSystemTime_type)::GetProcAddress(winmm_handle, "timeGetSystemTime");
  327. timeGetTime_orig = (timeGetTime_type)::GetProcAddress(winmm_handle, "timeGetTime");
  328. timeSetEvent_orig = (timeSetEvent_type)::GetProcAddress(winmm_handle, "timeSetEvent");
  329. timeKillEvent_orig = (timeKillEvent_type)::GetProcAddress(winmm_handle, "timeKillEvent");
  330. timeGetDevCaps_orig = (timeGetDevCaps_type)::GetProcAddress(winmm_handle, "timeGetDevCaps");
  331. timeBeginPeriod_orig = (timeBeginPeriod_type)::GetProcAddress(winmm_handle, "timeBeginPeriod");
  332. timeEndPeriod_orig = (timeEndPeriod_type)::GetProcAddress(winmm_handle, "timeEndPeriod");
  333. joyGetNumDevs_orig = (joyGetNumDevs_type)::GetProcAddress(winmm_handle, "joyGetNumDevs");
  334. joyConfigChanged_orig = (joyConfigChanged_type)::GetProcAddress(winmm_handle, "joyConfigChanged");
  335. joyGetDevCapsA_orig = (joyGetDevCapsA_type)::GetProcAddress(winmm_handle, "joyGetDevCapsA");
  336. joyGetDevCapsW_orig = (joyGetDevCapsW_type)::GetProcAddress(winmm_handle, "joyGetDevCapsW");
  337. joyGetPos_orig = (joyGetPos_type)::GetProcAddress(winmm_handle, "joyGetPos");
  338. joyGetPosEx_orig = (joyGetPosEx_type)::GetProcAddress(winmm_handle, "joyGetPosEx");
  339. joyGetThreshold_orig = (joyGetThreshold_type)::GetProcAddress(winmm_handle, "joyGetThreshold");
  340. joyReleaseCapture_orig = (joyReleaseCapture_type)::GetProcAddress(winmm_handle, "joyReleaseCapture");
  341. joySetCapture_orig = (joySetCapture_type)::GetProcAddress(winmm_handle, "joySetCapture");
  342. joySetThreshold_orig = (joySetThreshold_type)::GetProcAddress(winmm_handle, "joySetThreshold");
  343. mciDriverNotify_orig = (mciDriverNotify_type)::GetProcAddress(winmm_handle, "mciDriverNotify");
  344. mciDriverYield_orig = (mciDriverYield_type)::GetProcAddress(winmm_handle, "mciDriverYield");
  345. mmioStringToFOURCCA_orig = (mmioStringToFOURCCA_type)::GetProcAddress(winmm_handle, "mmioStringToFOURCCA");
  346. mmioStringToFOURCCW_orig = (mmioStringToFOURCCW_type)::GetProcAddress(winmm_handle, "mmioStringToFOURCCW");
  347. mmioInstallIOProcA_orig = (mmioInstallIOProcA_type)::GetProcAddress(winmm_handle, "mmioInstallIOProcA");
  348. mmioInstallIOProcW_orig = (mmioInstallIOProcW_type)::GetProcAddress(winmm_handle, "mmioInstallIOProcW");
  349. mmioOpenA_orig = (mmioOpenA_type)::GetProcAddress(winmm_handle, "mmioOpenA");
  350. mmioOpenW_orig = (mmioOpenW_type)::GetProcAddress(winmm_handle, "mmioOpenW");
  351. mmioRenameA_orig = (mmioRenameA_type)::GetProcAddress(winmm_handle, "mmioRenameA");
  352. mmioRenameW_orig = (mmioRenameW_type)::GetProcAddress(winmm_handle, "mmioRenameW");
  353. mmioClose_orig = (mmioClose_type)::GetProcAddress(winmm_handle, "mmioClose");
  354. mmioRead_orig = (mmioRead_type)::GetProcAddress(winmm_handle, "mmioRead");
  355. mmioWrite_orig = (mmioWrite_type)::GetProcAddress(winmm_handle, "mmioWrite");
  356. mmioSeek_orig = (mmioSeek_type)::GetProcAddress(winmm_handle, "mmioSeek");
  357. mmioGetInfo_orig = (mmioGetInfo_type)::GetProcAddress(winmm_handle, "mmioGetInfo");
  358. mmioSetInfo_orig = (mmioSetInfo_type)::GetProcAddress(winmm_handle, "mmioSetInfo");
  359. mmioSetBuffer_orig = (mmioSetBuffer_type)::GetProcAddress(winmm_handle, "mmioSetBuffer");
  360. mmioFlush_orig = (mmioFlush_type)::GetProcAddress(winmm_handle, "mmioFlush");
  361. mmioAdvance_orig = (mmioAdvance_type)::GetProcAddress(winmm_handle, "mmioAdvance");
  362. mmioSendMessage_orig = (mmioSendMessage_type)::GetProcAddress(winmm_handle, "mmioSendMessage");
  363. mmioDescend_orig = (mmioDescend_type)::GetProcAddress(winmm_handle, "mmioDescend");
  364. mmioAscend_orig = (mmioAscend_type)::GetProcAddress(winmm_handle, "mmioAscend");
  365. mmioCreateChunk_orig = (mmioCreateChunk_type)::GetProcAddress(winmm_handle, "mmioCreateChunk");
  366. mciSendCommandA_orig = (mciSendCommandA_type)::GetProcAddress(winmm_handle, "mciSendCommandA");
  367. mciSendCommandW_orig = (mciSendCommandW_type)::GetProcAddress(winmm_handle, "mciSendCommandW");
  368. mciSendStringA_orig = (mciSendStringA_type)::GetProcAddress(winmm_handle, "mciSendStringA");
  369. mciSendStringW_orig = (mciSendStringW_type)::GetProcAddress(winmm_handle, "mciSendStringW");
  370. mciGetDeviceIDA_orig = (mciGetDeviceIDA_type)::GetProcAddress(winmm_handle, "mciGetDeviceIDA");
  371. mciGetDeviceIDW_orig = (mciGetDeviceIDW_type)::GetProcAddress(winmm_handle, "mciGetDeviceIDW");
  372. mciGetDeviceIDFromElementIDA_orig = (mciGetDeviceIDFromElementIDA_type)::GetProcAddress(winmm_handle, "mciGetDeviceIDFromElementIDA");
  373. mciGetDeviceIDFromElementIDW_orig = (mciGetDeviceIDFromElementIDW_type)::GetProcAddress(winmm_handle, "mciGetDeviceIDFromElementIDW");
  374. mciGetDriverData_orig = (mciGetDriverData_type)::GetProcAddress(winmm_handle, "mciGetDriverData");
  375. mciGetErrorStringA_orig = (mciGetErrorStringA_type)::GetProcAddress(winmm_handle, "mciGetErrorStringA");
  376. mciGetErrorStringW_orig = (mciGetErrorStringW_type)::GetProcAddress(winmm_handle, "mciGetErrorStringW");
  377. mciSetDriverData_orig = (mciSetDriverData_type)::GetProcAddress(winmm_handle, "mciSetDriverData");
  378. mciSetYieldProc_orig = (mciSetYieldProc_type)::GetProcAddress(winmm_handle, "mciSetYieldProc");
  379. mciFreeCommandResource_orig = (mciFreeCommandResource_type)::GetProcAddress(winmm_handle, "mciFreeCommandResource");
  380. mciGetCreatorTask_orig = (mciGetCreatorTask_type)::GetProcAddress(winmm_handle, "mciGetCreatorTask");
  381. mciGetYieldProc_orig = (mciGetYieldProc_type)::GetProcAddress(winmm_handle, "mciGetYieldProc");
  382. mciLoadCommandResource_orig = (mciLoadCommandResource_type)::GetProcAddress(winmm_handle, "mciLoadCommandResource");
  383. mciExecute_orig = (mciExecute_type)::GetProcAddress(winmm_handle, "mciExecute");
  384. }
  385. extern "C" {
  386. LRESULT WINAPI CloseDriver( HDRVR hDriver, LPARAM lParam1, LPARAM lParam2)
  387. {
  388. ll_winmm_shim_initialize();
  389. //OutputDebugString(L"CloseDriver\n");
  390. return CloseDriver_orig( hDriver, lParam1, lParam2);
  391. }
  392. HDRVR WINAPI OpenDriver( LPCWSTR szDriverName, LPCWSTR szSectionName, LPARAM lParam2)
  393. {
  394. ll_winmm_shim_initialize();
  395. //OutputDebugString(L"OpenDriver\n");
  396. return OpenDriver_orig( szDriverName, szSectionName, lParam2);
  397. }
  398. LRESULT WINAPI SendDriverMessage( HDRVR hDriver, UINT message, LPARAM lParam1, LPARAM lParam2)
  399. {
  400. ll_winmm_shim_initialize();
  401. //OutputDebugString(L"SendDriverMessage\n");
  402. return SendDriverMessage_orig( hDriver, message, lParam1, lParam2);
  403. }
  404. HMODULE WINAPI DrvGetModuleHandle( HDRVR hDriver)
  405. {
  406. ll_winmm_shim_initialize();
  407. //OutputDebugString(L"DrvGetModuleHandle\n");
  408. return DrvGetModuleHandle_orig( hDriver);
  409. }
  410. HMODULE WINAPI GetDriverModuleHandle( HDRVR hDriver)
  411. {
  412. ll_winmm_shim_initialize();
  413. //OutputDebugString(L"GetDriverModuleHandle\n");
  414. return GetDriverModuleHandle_orig( hDriver);
  415. }
  416. LRESULT WINAPI DefDriverProc( DWORD_PTR dwDriverIdentifier, HDRVR hdrvr, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
  417. {
  418. ll_winmm_shim_initialize();
  419. //OutputDebugString(L"DefDriverProc\n");
  420. return DefDriverProc_orig( dwDriverIdentifier, hdrvr, uMsg, lParam1, lParam2);
  421. }
  422. BOOL WINAPI DriverCallback( DWORD dwCallBack, DWORD dwFlags, HDRVR hdrvr, DWORD msg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2)
  423. {
  424. ll_winmm_shim_initialize();
  425. //OutputDebugString(L"DriverCallback\n");
  426. return DriverCallback_orig(dwCallBack, dwFlags, hdrvr, msg, dwUser, dwParam1, dwParam2);
  427. }
  428. UINT WINAPI mmsystemGetVersion(void)
  429. {
  430. ll_winmm_shim_initialize();
  431. //OutputDebugString(L"mmsystemGetVersion\n");
  432. return mmsystemGetVersion_orig();
  433. }
  434. BOOL WINAPI sndPlaySoundA( LPCSTR pszSound, UINT fuSound)
  435. {
  436. ll_winmm_shim_initialize();
  437. //OutputDebugString(L"sndPlaySoundA\n");
  438. return sndPlaySoundA_orig( pszSound, fuSound);
  439. }
  440. BOOL WINAPI sndPlaySoundW( LPCWSTR pszSound, UINT fuSound)
  441. {
  442. ll_winmm_shim_initialize();
  443. //OutputDebugString(L"sndPlaySoundW\n");
  444. return sndPlaySoundW_orig( pszSound, fuSound);
  445. }
  446. BOOL WINAPI PlaySoundA( LPCSTR pszSound, HMODULE hmod, DWORD fdwSound)
  447. {
  448. ll_winmm_shim_initialize();
  449. //OutputDebugString(L"PlaySoundA\n");
  450. return PlaySoundA_orig( pszSound, hmod, fdwSound);
  451. }
  452. BOOL WINAPI PlaySoundW( LPCWSTR pszSound, HMODULE hmod, DWORD fdwSound)
  453. {
  454. ll_winmm_shim_initialize();
  455. //OutputDebugString(L"PlaySoundW\n");
  456. return PlaySoundW_orig( pszSound, hmod, fdwSound);
  457. }
  458. UINT WINAPI waveOutGetNumDevs(void)
  459. {
  460. ll_winmm_shim_initialize();
  461. //OutputDebugString(L"waveOutGetNumDevs\n");
  462. return waveOutGetNumDevs_orig();
  463. }
  464. MMRESULT WINAPI waveOutGetDevCapsA( UINT_PTR uDeviceID, LPWAVEOUTCAPSA pwoc, UINT cbwoc)
  465. {
  466. ll_winmm_shim_initialize();
  467. //OutputDebugString(L"waveOutGetDevCapsA\n");
  468. return waveOutGetDevCapsA_orig( uDeviceID, pwoc, cbwoc);
  469. }
  470. MMRESULT WINAPI waveOutGetDevCapsW( UINT_PTR uDeviceID, LPWAVEOUTCAPSW pwoc, UINT cbwoc)
  471. {
  472. ll_winmm_shim_initialize();
  473. //OutputDebugString(L"waveOutGetDevCapsW\n");
  474. return waveOutGetDevCapsW_orig( uDeviceID, pwoc, cbwoc);
  475. }
  476. MMRESULT WINAPI waveOutGetVolume( HWAVEOUT hwo, LPDWORD pdwVolume)
  477. {
  478. ll_winmm_shim_initialize();
  479. //OutputDebugString(L"waveOutGetVolume\n");
  480. return waveOutGetVolume_orig( hwo, pdwVolume);
  481. }
  482. MMRESULT WINAPI waveOutSetVolume( HWAVEOUT hwo, DWORD dwVolume)
  483. {
  484. ll_winmm_shim_initialize();
  485. //OutputDebugString(L"waveOutSetVolume\n");
  486. return waveOutSetVolume_orig( hwo, dwVolume);
  487. }
  488. MMRESULT WINAPI waveOutGetErrorTextA( MMRESULT mmrError, LPSTR pszText, UINT cchText)
  489. {
  490. ll_winmm_shim_initialize();
  491. //OutputDebugString(L"waveOutGetErrorTextA\n");
  492. return waveOutGetErrorTextA_orig( mmrError, pszText, cchText);
  493. }
  494. MMRESULT WINAPI waveOutGetErrorTextW( MMRESULT mmrError, LPWSTR pszText, UINT cchText)
  495. {
  496. ll_winmm_shim_initialize();
  497. //OutputDebugString(L"waveOutGetErrorTextW\n");
  498. return waveOutGetErrorTextW_orig( mmrError, pszText, cchText);
  499. }
  500. //MMRESULT WINAPI waveOutOpen( LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen)
  501. //{
  502. // //OutputDebugString(L"waveOutGetErrorTextW\n");
  503. // return waveOutOpen_orig( phwo, uDeviceID, pwfx, dwCallback, dwInstance, fdwOpen);
  504. //}
  505. //MMRESULT WINAPI waveOutClose( HWAVEOUT hwo)
  506. //{
  507. // //OutputDebugString(L"waveOutGetErrorTextW\n");
  508. // return waveOutClose_orig( hwo );
  509. //}
  510. MMRESULT WINAPI waveOutPrepareHeader( HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh)
  511. {
  512. ll_winmm_shim_initialize();
  513. //OutputDebugString(L"waveOutPrepareHeader\n");
  514. return waveOutPrepareHeader_orig( hwo, pwh, cbwh);
  515. }
  516. MMRESULT WINAPI waveOutUnprepareHeader( HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh)
  517. {
  518. ll_winmm_shim_initialize();
  519. //OutputDebugString(L"waveOutUnprepareHeader\n");
  520. return waveOutUnprepareHeader_orig( hwo, pwh, cbwh);
  521. }
  522. //MMRESULT WINAPI waveOutWrite( HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh)
  523. //{
  524. // //OutputDebugString(L"waveOutUnprepareHeader\n");
  525. // return waveOutWrite_orig( hwo, pwh, cbwh);
  526. //}
  527. MMRESULT WINAPI waveOutPause( HWAVEOUT hwo)
  528. {
  529. ll_winmm_shim_initialize();
  530. //OutputDebugString(L"waveOutPause\n");
  531. return waveOutPause_orig( hwo);
  532. }
  533. MMRESULT WINAPI waveOutRestart( HWAVEOUT hwo)
  534. {
  535. ll_winmm_shim_initialize();
  536. //OutputDebugString(L"waveOutRestart\n");
  537. return waveOutRestart_orig( hwo);
  538. }
  539. MMRESULT WINAPI waveOutReset( HWAVEOUT hwo)
  540. {
  541. ll_winmm_shim_initialize();
  542. //OutputDebugString(L"waveOutReset\n");
  543. return waveOutReset_orig( hwo);
  544. }
  545. MMRESULT WINAPI waveOutBreakLoop( HWAVEOUT hwo)
  546. {
  547. ll_winmm_shim_initialize();
  548. //OutputDebugString(L"waveOutBreakLoop\n");
  549. return waveOutBreakLoop_orig( hwo);
  550. }
  551. MMRESULT WINAPI waveOutGetPosition( HWAVEOUT hwo, LPMMTIME pmmt, UINT cbmmt)
  552. {
  553. ll_winmm_shim_initialize();
  554. //OutputDebugString(L"waveOutGetPosition\n");
  555. return waveOutGetPosition_orig( hwo, pmmt, cbmmt);
  556. }
  557. MMRESULT WINAPI waveOutGetPitch( HWAVEOUT hwo, LPDWORD pdwPitch)
  558. {
  559. ll_winmm_shim_initialize();
  560. //OutputDebugString(L"waveOutGetPitch\n");
  561. return waveOutGetPitch_orig( hwo, pdwPitch);
  562. }
  563. MMRESULT WINAPI waveOutSetPitch( HWAVEOUT hwo, DWORD dwPitch)
  564. {
  565. ll_winmm_shim_initialize();
  566. //OutputDebugString(L"waveOutSetPitch\n");
  567. return waveOutSetPitch_orig( hwo, dwPitch);
  568. }
  569. MMRESULT WINAPI waveOutGetPlaybackRate( HWAVEOUT hwo, LPDWORD pdwRate)
  570. {
  571. ll_winmm_shim_initialize();
  572. //OutputDebugString(L"waveOutGetPlaybackRate\n");
  573. return waveOutGetPlaybackRate_orig( hwo, pdwRate);
  574. }
  575. MMRESULT WINAPI waveOutSetPlaybackRate( HWAVEOUT hwo, DWORD dwRate)
  576. {
  577. ll_winmm_shim_initialize();
  578. //OutputDebugString(L"waveOutSetPlaybackRate\n");
  579. return waveOutSetPlaybackRate_orig( hwo, dwRate);
  580. }
  581. MMRESULT WINAPI waveOutGetID( HWAVEOUT hwo, LPUINT puDeviceID)
  582. {
  583. ll_winmm_shim_initialize();
  584. //OutputDebugString(L"waveOutGetID\n");
  585. return waveOutGetID_orig( hwo, puDeviceID);
  586. }
  587. MMRESULT WINAPI waveOutMessage( HWAVEOUT hwo, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2)
  588. {
  589. ll_winmm_shim_initialize();
  590. //OutputDebugString(L"waveOutMessage\n");
  591. return waveOutMessage_orig( hwo, uMsg, dw1, dw2);
  592. }
  593. UINT WINAPI waveInGetNumDevs(void)
  594. {
  595. ll_winmm_shim_initialize();
  596. //OutputDebugString(L"waveInGetNumDevs\n");
  597. return waveInGetNumDevs_orig();
  598. }
  599. MMRESULT WINAPI waveInGetDevCapsA( UINT_PTR uDeviceID, LPWAVEINCAPSA pwic, UINT cbwic)
  600. {
  601. ll_winmm_shim_initialize();
  602. //OutputDebugString(L"waveInGetDevCapsA\n");
  603. return waveInGetDevCapsA_orig( uDeviceID, pwic, cbwic);
  604. }
  605. MMRESULT WINAPI waveInGetDevCapsW( UINT_PTR uDeviceID, LPWAVEINCAPSW pwic, UINT cbwic)
  606. {
  607. ll_winmm_shim_initialize();
  608. //OutputDebugString(L"waveInGetDevCapsW\n");
  609. return waveInGetDevCapsW_orig( uDeviceID, pwic, cbwic);
  610. }
  611. MMRESULT WINAPI waveInGetErrorTextA(MMRESULT mmrError, LPSTR pszText, UINT cchText)
  612. {
  613. ll_winmm_shim_initialize();
  614. //OutputDebugString(L"waveInGetErrorTextA\n");
  615. return waveInGetErrorTextA_orig(mmrError, pszText, cchText);
  616. }
  617. MMRESULT WINAPI waveInGetErrorTextW(MMRESULT mmrError, LPWSTR pszText, UINT cchText)
  618. {
  619. ll_winmm_shim_initialize();
  620. //OutputDebugString(L"waveInGetErrorTextW\n");
  621. return waveInGetErrorTextW_orig(mmrError, pszText, cchText);
  622. }
  623. MMRESULT WINAPI waveInOpen( LPHWAVEIN phwi, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen)
  624. {
  625. ll_winmm_shim_initialize();
  626. //OutputDebugString(L"waveInOpen\n");
  627. return waveInOpen_orig(phwi, uDeviceID, pwfx, dwCallback, dwInstance, fdwOpen);
  628. }
  629. MMRESULT WINAPI waveInClose( HWAVEIN hwi)
  630. {
  631. ll_winmm_shim_initialize();
  632. //OutputDebugString(L"waveInClose\n");
  633. return waveInClose_orig( hwi);
  634. }
  635. MMRESULT WINAPI waveInPrepareHeader( HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh)
  636. {
  637. ll_winmm_shim_initialize();
  638. //OutputDebugString(L"waveInPrepareHeader\n");
  639. return waveInPrepareHeader_orig( hwi, pwh, cbwh);
  640. }
  641. MMRESULT WINAPI waveInUnprepareHeader( HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh)
  642. {
  643. ll_winmm_shim_initialize();
  644. //OutputDebugString(L"waveInUnprepareHeader\n");
  645. return waveInUnprepareHeader_orig( hwi, pwh, cbwh);
  646. }
  647. MMRESULT WINAPI waveInAddBuffer( HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh)
  648. {
  649. ll_winmm_shim_initialize();
  650. //OutputDebugString(L"waveInAddBuffer\n");
  651. return waveInAddBuffer_orig( hwi, pwh, cbwh);
  652. }
  653. MMRESULT WINAPI waveInStart( HWAVEIN hwi)
  654. {
  655. ll_winmm_shim_initialize();
  656. //OutputDebugString(L"waveInStart\n");
  657. return waveInStart_orig( hwi);
  658. }
  659. MMRESULT WINAPI waveInStop( HWAVEIN hwi)
  660. {
  661. ll_winmm_shim_initialize();
  662. //OutputDebugString(L"waveInStop\n");
  663. return waveInStop_orig(hwi);
  664. }
  665. MMRESULT WINAPI waveInReset( HWAVEIN hwi)
  666. {
  667. ll_winmm_shim_initialize();
  668. //OutputDebugString(L"waveInReset\n");
  669. return waveInReset_orig(hwi);
  670. }
  671. MMRESULT WINAPI waveInGetPosition( HWAVEIN hwi, LPMMTIME pmmt, UINT cbmmt)
  672. {
  673. ll_winmm_shim_initialize();
  674. //OutputDebugString(L"waveInGetPosition\n");
  675. return waveInGetPosition_orig( hwi, pmmt, cbmmt);
  676. }
  677. MMRESULT WINAPI waveInGetID( HWAVEIN hwi, LPUINT puDeviceID)
  678. {
  679. ll_winmm_shim_initialize();
  680. //OutputDebugString(L"waveInGetID\n");
  681. return waveInGetID_orig( hwi, puDeviceID);
  682. }
  683. MMRESULT WINAPI waveInMessage( HWAVEIN hwi, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2)
  684. {
  685. ll_winmm_shim_initialize();
  686. //OutputDebugString(L"waveInMessage\n");
  687. return waveInMessage_orig( hwi, uMsg, dw1, dw2);
  688. }
  689. UINT WINAPI midiOutGetNumDevs(void)
  690. {
  691. ll_winmm_shim_initialize();
  692. //OutputDebugString(L"midiOutGetNumDevs\n");
  693. return midiOutGetNumDevs_orig();
  694. }
  695. MMRESULT WINAPI midiStreamOpen( LPHMIDISTRM phms, LPUINT puDeviceID, DWORD cMidi, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen)
  696. {
  697. ll_winmm_shim_initialize();
  698. //OutputDebugString(L"midiStreamOpen\n");
  699. return midiStreamOpen_orig( phms, puDeviceID, cMidi, dwCallback, dwInstance, fdwOpen);
  700. }
  701. MMRESULT WINAPI midiStreamClose( HMIDISTRM hms)
  702. {
  703. ll_winmm_shim_initialize();
  704. //OutputDebugString(L"midiStreamClose\n");
  705. return midiStreamClose_orig( hms);
  706. }
  707. MMRESULT WINAPI midiStreamProperty( HMIDISTRM hms, LPBYTE lppropdata, DWORD dwProperty)
  708. {
  709. ll_winmm_shim_initialize();
  710. //OutputDebugString(L"midiStreamProperty\n");
  711. return midiStreamProperty_orig( hms, lppropdata, dwProperty);
  712. }
  713. MMRESULT WINAPI midiStreamPosition( HMIDISTRM hms, LPMMTIME lpmmt, UINT cbmmt)
  714. {
  715. ll_winmm_shim_initialize();
  716. //OutputDebugString(L"midiStreamPosition\n");
  717. return midiStreamPosition_orig( hms, lpmmt, cbmmt);
  718. }
  719. MMRESULT WINAPI midiStreamOut( HMIDISTRM hms, LPMIDIHDR pmh, UINT cbmh)
  720. {
  721. ll_winmm_shim_initialize();
  722. //OutputDebugString(L"midiStreamOut\n");
  723. return midiStreamOut_orig( hms, pmh, cbmh);
  724. }
  725. MMRESULT WINAPI midiStreamPause( HMIDISTRM hms)
  726. {
  727. ll_winmm_shim_initialize();
  728. //OutputDebugString(L"midiStreamPause\n");
  729. return midiStreamPause_orig( hms);
  730. }
  731. MMRESULT WINAPI midiStreamRestart( HMIDISTRM hms)
  732. {
  733. ll_winmm_shim_initialize();
  734. //OutputDebugString(L"midiStreamRestart\n");
  735. return midiStreamRestart_orig( hms);
  736. }
  737. MMRESULT WINAPI midiStreamStop( HMIDISTRM hms)
  738. {
  739. ll_winmm_shim_initialize();
  740. //OutputDebugString(L"midiStreamStop\n");
  741. return midiStreamStop_orig( hms);
  742. }
  743. MMRESULT WINAPI midiConnect( HMIDI hmi, HMIDIOUT hmo, LPVOID pReserved)
  744. {
  745. ll_winmm_shim_initialize();
  746. //OutputDebugString(L"midiConnect\n");
  747. return midiConnect_orig( hmi, hmo, pReserved);
  748. }
  749. MMRESULT WINAPI midiDisconnect( HMIDI hmi, HMIDIOUT hmo, LPVOID pReserved)
  750. {
  751. ll_winmm_shim_initialize();
  752. //OutputDebugString(L"midiDisconnect\n");
  753. return midiDisconnect_orig( hmi, hmo, pReserved);
  754. }
  755. MMRESULT WINAPI midiOutGetDevCapsA( UINT_PTR uDeviceID, LPMIDIOUTCAPSA pmoc, UINT cbmoc)
  756. {
  757. ll_winmm_shim_initialize();
  758. //OutputDebugString(L"midiOutGetDevCapsA\n");
  759. return midiOutGetDevCapsA_orig( uDeviceID, pmoc, cbmoc);
  760. }
  761. MMRESULT WINAPI midiOutGetDevCapsW( UINT_PTR uDeviceID, LPMIDIOUTCAPSW pmoc, UINT cbmoc)
  762. {
  763. ll_winmm_shim_initialize();
  764. //OutputDebugString(L"midiOutGetDevCapsW\n");
  765. return midiOutGetDevCapsW_orig( uDeviceID, pmoc, cbmoc);
  766. }
  767. MMRESULT WINAPI midiOutGetVolume( HMIDIOUT hmo, LPDWORD pdwVolume)
  768. {
  769. ll_winmm_shim_initialize();
  770. //OutputDebugString(L"midiOutGetVolume\n");
  771. return midiOutGetVolume_orig( hmo, pdwVolume);
  772. }
  773. MMRESULT WINAPI midiOutSetVolume( HMIDIOUT hmo, DWORD dwVolume)
  774. {
  775. ll_winmm_shim_initialize();
  776. //OutputDebugString(L"midiOutSetVolume\n");
  777. return midiOutSetVolume_orig( hmo, dwVolume);
  778. }
  779. MMRESULT WINAPI midiOutGetErrorTextA( MMRESULT mmrError, LPSTR pszText, UINT cchText)
  780. {
  781. ll_winmm_shim_initialize();
  782. //OutputDebugString(L"midiOutGetErrorTextA\n");
  783. return midiOutGetErrorTextA_orig( mmrError, pszText, cchText);
  784. }
  785. MMRESULT WINAPI midiOutGetErrorTextW( MMRESULT mmrError, LPWSTR pszText, UINT cchText)
  786. {
  787. ll_winmm_shim_initialize();
  788. //OutputDebugString(L"midiOutGetErrorTextW\n");
  789. return midiOutGetErrorTextW_orig( mmrError, pszText, cchText);
  790. }
  791. MMRESULT WINAPI midiOutOpen( LPHMIDIOUT phmo, UINT uDeviceID, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen)
  792. {
  793. ll_winmm_shim_initialize();
  794. //OutputDebugString(L"midiOutOpen\n");
  795. return midiOutOpen_orig(phmo, uDeviceID, dwCallback, dwInstance, fdwOpen);
  796. }
  797. MMRESULT WINAPI midiOutClose( HMIDIOUT hmo)
  798. {
  799. ll_winmm_shim_initialize();
  800. //OutputDebugString(L"midiOutClose\n");
  801. return midiOutClose_orig( hmo);
  802. }
  803. MMRESULT WINAPI midiOutPrepareHeader( HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh)
  804. {
  805. ll_winmm_shim_initialize();
  806. //OutputDebugString(L"midiOutPrepareHeader\n");
  807. return midiOutPrepareHeader_orig( hmo, pmh, cbmh);
  808. }
  809. MMRESULT WINAPI midiOutUnprepareHeader(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh)
  810. {
  811. ll_winmm_shim_initialize();
  812. //OutputDebugString(L"midiOutUnprepareHeader\n");
  813. return midiOutUnprepareHeader_orig(hmo, pmh, cbmh);
  814. }
  815. MMRESULT WINAPI midiOutShortMsg( HMIDIOUT hmo, DWORD dwMsg)
  816. {
  817. ll_winmm_shim_initialize();
  818. //OutputDebugString(L"midiOutShortMsg\n");
  819. return midiOutShortMsg_orig( hmo, dwMsg);
  820. }
  821. MMRESULT WINAPI midiOutLongMsg(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh)
  822. {
  823. ll_winmm_shim_initialize();
  824. //OutputDebugString(L"midiOutLongMsg\n");
  825. return midiOutLongMsg_orig(hmo, pmh, cbmh);
  826. }
  827. MMRESULT WINAPI midiOutReset( HMIDIOUT hmo)
  828. {
  829. ll_winmm_shim_initialize();
  830. //OutputDebugString(L"midiOutReset\n");
  831. return midiOutReset_orig( hmo);
  832. }
  833. MMRESULT WINAPI midiOutCachePatches( HMIDIOUT hmo, UINT uBank, LPWORD pwpa, UINT fuCache)
  834. {
  835. ll_winmm_shim_initialize();
  836. //OutputDebugString(L"midiOutCachePatches\n");
  837. return midiOutCachePatches_orig( hmo, uBank, pwpa, fuCache);
  838. }
  839. MMRESULT WINAPI midiOutCacheDrumPatches( HMIDIOUT hmo, UINT uPatch, LPWORD pwkya, UINT fuCache)
  840. {
  841. ll_winmm_shim_initialize();
  842. //OutputDebugString(L"midiOutCacheDrumPatches\n");
  843. return midiOutCacheDrumPatches_orig( hmo, uPatch, pwkya, fuCache);
  844. }
  845. MMRESULT WINAPI midiOutGetID( HMIDIOUT hmo, LPUINT puDeviceID)
  846. {
  847. ll_winmm_shim_initialize();
  848. //OutputDebugString(L"midiOutGetID\n");
  849. return midiOutGetID_orig( hmo, puDeviceID);
  850. }
  851. MMRESULT WINAPI midiOutMessage( HMIDIOUT hmo, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2)
  852. {
  853. ll_winmm_shim_initialize();
  854. //OutputDebugString(L"midiOutMessage\n");
  855. return midiOutMessage_orig( hmo, uMsg, dw1, dw2);
  856. }
  857. UINT WINAPI midiInGetNumDevs(void)
  858. {
  859. ll_winmm_shim_initialize();
  860. //OutputDebugString(L"midiInGetNumDevs\n");
  861. return midiInGetNumDevs_orig();
  862. }
  863. MMRESULT WINAPI midiInGetDevCapsA( UINT_PTR uDeviceID, LPMIDIINCAPSA pmic, UINT cbmic)
  864. {
  865. ll_winmm_shim_initialize();
  866. //OutputDebugString(L"midiInGetDevCapsA\n");
  867. return midiInGetDevCapsA_orig( uDeviceID, pmic, cbmic);
  868. }
  869. MMRESULT WINAPI midiInGetDevCapsW( UINT_PTR uDeviceID, LPMIDIINCAPSW pmic, UINT cbmic)
  870. {
  871. ll_winmm_shim_initialize();
  872. //OutputDebugString(L"midiInGetDevCapsW\n");
  873. return midiInGetDevCapsW_orig( uDeviceID, pmic, cbmic);
  874. }
  875. MMRESULT WINAPI midiInGetErrorTextA( MMRESULT mmrError, LPSTR pszText, UINT cchText)
  876. {
  877. ll_winmm_shim_initialize();
  878. //OutputDebugString(L"midiInGetErrorTextA\n");
  879. return midiInGetErrorTextA_orig( mmrError, pszText, cchText);
  880. }
  881. MMRESULT WINAPI midiInGetErrorTextW( MMRESULT mmrError, LPWSTR pszText, UINT cchText)
  882. {
  883. ll_winmm_shim_initialize();
  884. //OutputDebugString(L"midiInGetErrorTextW\n");
  885. return midiInGetErrorTextW_orig( mmrError, pszText, cchText);
  886. }
  887. MMRESULT WINAPI midiInOpen( LPHMIDIIN phmi, UINT uDeviceID, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen)
  888. {
  889. ll_winmm_shim_initialize();
  890. //OutputDebugString(L"midiInOpen\n");
  891. return midiInOpen_orig(phmi, uDeviceID, dwCallback, dwInstance, fdwOpen);
  892. }
  893. MMRESULT WINAPI midiInClose( HMIDIIN hmi)
  894. {
  895. ll_winmm_shim_initialize();
  896. //OutputDebugString(L"midiInClose\n");
  897. return midiInClose_orig( hmi);
  898. }
  899. MMRESULT WINAPI midiInPrepareHeader( HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh)
  900. {
  901. ll_winmm_shim_initialize();
  902. //OutputDebugString(L"midiInPrepareHeader\n");
  903. return midiInPrepareHeader_orig( hmi, pmh, cbmh);
  904. }
  905. MMRESULT WINAPI midiInUnprepareHeader( HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh)
  906. {
  907. ll_winmm_shim_initialize();
  908. //OutputDebugString(L"midiInUnprepareHeader\n");
  909. return midiInUnprepareHeader_orig( hmi, pmh, cbmh);
  910. }
  911. MMRESULT WINAPI midiInAddBuffer( HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh)
  912. {
  913. ll_winmm_shim_initialize();
  914. //OutputDebugString(L"midiInAddBuffer\n");
  915. return midiInAddBuffer_orig( hmi, pmh, cbmh);
  916. }
  917. MMRESULT WINAPI midiInStart( HMIDIIN hmi)
  918. {
  919. ll_winmm_shim_initialize();
  920. //OutputDebugString(L"midiInStart\n");
  921. return midiInStart_orig( hmi);
  922. }
  923. MMRESULT WINAPI midiInStop( HMIDIIN hmi)
  924. {
  925. ll_winmm_shim_initialize();
  926. //OutputDebugString(L"midiInStop\n");
  927. return midiInStop_orig(hmi);
  928. }
  929. MMRESULT WINAPI midiInReset( HMIDIIN hmi)
  930. {
  931. ll_winmm_shim_initialize();
  932. //OutputDebugString(L"midiInReset\n");
  933. return midiInReset_orig( hmi);
  934. }
  935. MMRESULT WINAPI midiInGetID( HMIDIIN hmi, LPUINT puDeviceID)
  936. {
  937. ll_winmm_shim_initialize();
  938. //OutputDebugString(L"midiInGetID\n");
  939. return midiInGetID_orig( hmi, puDeviceID);
  940. }
  941. MMRESULT WINAPI midiInMessage( HMIDIIN hmi, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2)
  942. {
  943. ll_winmm_shim_initialize();
  944. //OutputDebugString(L"midiInMessage\n");
  945. return midiInMessage_orig( hmi, uMsg, dw1, dw2);
  946. }
  947. UINT WINAPI auxGetNumDevs(void)
  948. {
  949. ll_winmm_shim_initialize();
  950. //OutputDebugString(L"auxGetNumDevs\n");
  951. return auxGetNumDevs_orig();
  952. }
  953. MMRESULT WINAPI auxGetDevCapsA( UINT_PTR uDeviceID, LPAUXCAPSA pac, UINT cbac)
  954. {
  955. ll_winmm_shim_initialize();
  956. //OutputDebugString(L"auxGetDevCapsA\n");
  957. return auxGetDevCapsA_orig( uDeviceID, pac, cbac);
  958. }
  959. MMRESULT WINAPI auxGetDevCapsW( UINT_PTR uDeviceID, LPAUXCAPSW pac, UINT cbac)
  960. {
  961. ll_winmm_shim_initialize();
  962. //OutputDebugString(L"auxGetDevCapsW\n");
  963. return auxGetDevCapsW_orig( uDeviceID, pac, cbac);
  964. }
  965. MMRESULT WINAPI auxSetVolume( UINT uDeviceID, DWORD dwVolume)
  966. {
  967. ll_winmm_shim_initialize();
  968. //OutputDebugString(L"auxSetVolume\n");
  969. return auxSetVolume_orig( uDeviceID, dwVolume);
  970. }
  971. MMRESULT WINAPI auxGetVolume( UINT uDeviceID, LPDWORD pdwVolume)
  972. {
  973. ll_winmm_shim_initialize();
  974. //OutputDebugString(L"auxGetVolume\n");
  975. return auxGetVolume_orig( uDeviceID, pdwVolume);
  976. }
  977. MMRESULT WINAPI auxOutMessage( UINT uDeviceID, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2)
  978. {
  979. ll_winmm_shim_initialize();
  980. //OutputDebugString(L"auxOutMessage\n");
  981. return auxOutMessage_orig( uDeviceID, uMsg, dw1, dw2);
  982. }
  983. UINT WINAPI mixerGetNumDevs(void)
  984. {
  985. ll_winmm_shim_initialize();
  986. //OutputDebugString(L"mixerGetNumDevs\n");
  987. return mixerGetNumDevs_orig();
  988. }
  989. MMRESULT WINAPI mixerGetDevCapsA( UINT_PTR uMxId, LPMIXERCAPSA pmxcaps, UINT cbmxcaps)
  990. {
  991. ll_winmm_shim_initialize();
  992. //OutputDebugString(L"mixerGetDevCapsA\n");
  993. return mixerGetDevCapsA_orig( uMxId, pmxcaps, cbmxcaps);
  994. }
  995. MMRESULT WINAPI mixerGetDevCapsW( UINT_PTR uMxId, LPMIXERCAPSW pmxcaps, UINT cbmxcaps)
  996. {
  997. ll_winmm_shim_initialize();
  998. //OutputDebugString(L"mixerGetDevCapsW\n");
  999. return mixerGetDevCapsW_orig( uMxId, pmxcaps, cbmxcaps);
  1000. }
  1001. MMRESULT WINAPI mixerOpen( LPHMIXER phmx, UINT uMxId, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen)
  1002. {
  1003. ll_winmm_shim_initialize();
  1004. //OutputDebugString(L"mixerOpen\n");
  1005. return mixerOpen_orig( phmx, uMxId, dwCallback, dwInstance, fdwOpen);
  1006. }
  1007. MMRESULT WINAPI mixerClose( HMIXER hmx)
  1008. {
  1009. ll_winmm_shim_initialize();
  1010. //OutputDebugString(L"mixerClose\n");
  1011. return mixerClose_orig( hmx);
  1012. }
  1013. DWORD WINAPI mixerMessage( HMIXER hmx, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2)
  1014. {
  1015. ll_winmm_shim_initialize();
  1016. //OutputDebugString(L"mixerMessage\n");
  1017. return mixerMessage_orig( hmx, uMsg, dwParam1, dwParam2);
  1018. }
  1019. MMRESULT WINAPI mixerGetLineInfoA( HMIXEROBJ hmxobj, LPMIXERLINEA pmxl, DWORD fdwInfo)
  1020. {
  1021. ll_winmm_shim_initialize();
  1022. //OutputDebugString(L"mixerGetLineInfoA\n");
  1023. return mixerGetLineInfoA_orig( hmxobj, pmxl, fdwInfo);
  1024. }
  1025. MMRESULT WINAPI mixerGetLineInfoW( HMIXEROBJ hmxobj, LPMIXERLINEW pmxl, DWORD fdwInfo)
  1026. {
  1027. ll_winmm_shim_initialize();
  1028. //OutputDebugString(L"mixerGetLineInfoW\n");
  1029. return mixerGetLineInfoW_orig( hmxobj, pmxl, fdwInfo);
  1030. }
  1031. MMRESULT WINAPI mixerGetID( HMIXEROBJ hmxobj, UINT FAR *puMxId, DWORD fdwId)
  1032. {
  1033. ll_winmm_shim_initialize();
  1034. //OutputDebugString(L"mixerGetID\n");
  1035. return mixerGetID_orig( hmxobj, puMxId, fdwId);
  1036. }
  1037. MMRESULT WINAPI mixerGetLineControlsA( HMIXEROBJ hmxobj, LPMIXERLINECONTROLSA pmxlc, DWORD fdwControls)
  1038. {
  1039. ll_winmm_shim_initialize();
  1040. //OutputDebugString(L"mixerGetLineControlsA\n");
  1041. return mixerGetLineControlsA_orig( hmxobj, pmxlc, fdwControls);
  1042. }
  1043. MMRESULT WINAPI mixerGetLineControlsW( HMIXEROBJ hmxobj, LPMIXERLINECONTROLSW pmxlc, DWORD fdwControls)
  1044. {
  1045. ll_winmm_shim_initialize();
  1046. //OutputDebugString(L"mixerGetLineControlsW\n");
  1047. return mixerGetLineControlsW_orig( hmxobj, pmxlc, fdwControls);
  1048. }
  1049. MMRESULT WINAPI mixerGetControlDetailsA( HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails)
  1050. {
  1051. ll_winmm_shim_initialize();
  1052. //OutputDebugString(L"mixerGetControlDetailsA\n");
  1053. return mixerGetControlDetailsA_orig( hmxobj, pmxcd, fdwDetails);
  1054. }
  1055. MMRESULT WINAPI mixerGetControlDetailsW( HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails)
  1056. {
  1057. ll_winmm_shim_initialize();
  1058. //OutputDebugString(L"mixerGetControlDetailsW\n");
  1059. return mixerGetControlDetailsW_orig( hmxobj, pmxcd, fdwDetails);
  1060. }
  1061. MMRESULT WINAPI mixerSetControlDetails( HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails)
  1062. {
  1063. ll_winmm_shim_initialize();
  1064. //OutputDebugString(L"mixerSetControlDetails\n");
  1065. return mixerSetControlDetails_orig( hmxobj, pmxcd, fdwDetails);
  1066. }
  1067. DWORD WINAPI mmGetCurrentTask(void)
  1068. {
  1069. ll_winmm_shim_initialize();
  1070. //OutputDebugString(L"mmGetCurrentTask\n");
  1071. return mmGetCurrentTask_orig();
  1072. }
  1073. void WINAPI mmTaskBlock(DWORD val)
  1074. {
  1075. ll_winmm_shim_initialize();
  1076. //OutputDebugString(L"mmTaskBlock\n");
  1077. return mmTaskBlo

Large files files are truncated, but you can click here to view the full file