PageRenderTime 76ms CodeModel.GetById 2ms app.highlight 68ms RepoModel.GetById 2ms app.codeStats 0ms

/indra/media_plugins/winmmshim/forwarding_api.h

https://bitbucket.org/lindenlab/viewer-beta/
C++ Header | 390 lines | 360 code | 4 blank | 26 comment | 0 complexity | bcfd0d8102d3768b7ec063819ffac780 MD5 | raw file
  1/** 
  2 * @file forwarding_api.h
  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
 27// this turns off __declspec(dllimport) for the functions declared in mmsystem.h
 28#define _WINMM_
 29#include <windows.h>
 30#include <mmsystem.h>
 31
 32void init_function_pointers(HMODULE winmm_handle);
 33void ll_winmm_shim_initialize();
 34
 35typedef VOID (*LPTASKCALLBACK)(DWORD_PTR dwInst);
 36
 37typedef LRESULT   (WINAPI *CloseDriver_type)( HDRVR hDriver, LPARAM lParam1, LPARAM lParam2);
 38extern CloseDriver_type CloseDriver_orig;
 39typedef HDRVR     (WINAPI *OpenDriver_type)( LPCWSTR szDriverName, LPCWSTR szSectionName, LPARAM lParam2);
 40extern OpenDriver_type OpenDriver_orig;
 41typedef LRESULT   (WINAPI *SendDriverMessage_type)( HDRVR hDriver, UINT message, LPARAM lParam1, LPARAM lParam2);
 42extern SendDriverMessage_type SendDriverMessage_orig;
 43typedef HMODULE   (WINAPI *DrvGetModuleHandle_type)( HDRVR hDriver);
 44extern DrvGetModuleHandle_type DrvGetModuleHandle_orig;
 45typedef HMODULE   (WINAPI *GetDriverModuleHandle_type)( HDRVR hDriver);
 46extern GetDriverModuleHandle_type GetDriverModuleHandle_orig;
 47typedef LRESULT   (WINAPI *DefDriverProc_type)( DWORD_PTR dwDriverIdentifier, HDRVR hdrvr, UINT uMsg, LPARAM lParam1, LPARAM lParam2);
 48extern DefDriverProc_type DefDriverProc_orig;
 49typedef BOOL (WINAPI *DriverCallback_type)(DWORD dwCallBack, DWORD dwFlags, HDRVR hdrvr, DWORD msg, DWORD dwUser, DWORD dwParam1, DWORD dwParam2);
 50extern DriverCallback_type DriverCallback_orig;
 51typedef UINT (WINAPI *mmsystemGetVersion_type)(void);
 52extern mmsystemGetVersion_type mmsystemGetVersion_orig;
 53typedef BOOL (WINAPI *sndPlaySoundA_type)( LPCSTR pszSound, UINT fuSound);
 54extern sndPlaySoundA_type sndPlaySoundA_orig;
 55typedef BOOL (WINAPI *sndPlaySoundW_type)( LPCWSTR pszSound, UINT fuSound);
 56extern sndPlaySoundW_type sndPlaySoundW_orig;
 57typedef BOOL (WINAPI *PlaySoundA_type)( LPCSTR pszSound, HMODULE hmod, DWORD fdwSound);
 58extern PlaySoundA_type PlaySoundA_orig;
 59typedef BOOL (WINAPI *PlaySoundW_type)( LPCWSTR pszSound, HMODULE hmod, DWORD fdwSound);
 60extern PlaySoundW_type PlaySoundW_orig;
 61typedef UINT (WINAPI *waveOutGetNumDevs_type)(void);
 62extern waveOutGetNumDevs_type waveOutGetNumDevs_orig;
 63typedef MMRESULT (WINAPI *waveOutGetDevCapsA_type)( UINT_PTR uDeviceID, LPWAVEOUTCAPSA pwoc, UINT cbwoc);
 64extern waveOutGetDevCapsA_type waveOutGetDevCapsA_orig;
 65typedef MMRESULT (WINAPI *waveOutGetDevCapsW_type)( UINT_PTR uDeviceID, LPWAVEOUTCAPSW pwoc, UINT cbwoc);
 66extern waveOutGetDevCapsW_type waveOutGetDevCapsW_orig;
 67typedef MMRESULT (WINAPI *waveOutGetVolume_type)( HWAVEOUT hwo, LPDWORD pdwVolume);
 68extern waveOutGetVolume_type waveOutGetVolume_orig;
 69typedef MMRESULT (WINAPI *waveOutSetVolume_type)( HWAVEOUT hwo, DWORD dwVolume);
 70extern waveOutSetVolume_type waveOutSetVolume_orig;
 71typedef MMRESULT (WINAPI *waveOutGetErrorTextA_type)( MMRESULT mmrError, LPSTR pszText, UINT cchText);
 72extern waveOutGetErrorTextA_type waveOutGetErrorTextA_orig;
 73typedef MMRESULT (WINAPI *waveOutGetErrorTextW_type)( MMRESULT mmrError, LPWSTR pszText, UINT cchText);
 74extern waveOutGetErrorTextW_type waveOutGetErrorTextW_orig;
 75typedef MMRESULT (WINAPI *waveOutOpen_type)( LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen);
 76extern waveOutOpen_type waveOutOpen_orig;
 77typedef MMRESULT (WINAPI *waveOutClose_type)( HWAVEOUT hwo);
 78extern waveOutClose_type waveOutClose_orig;
 79typedef MMRESULT (WINAPI *waveOutPrepareHeader_type)( HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh);
 80extern waveOutPrepareHeader_type waveOutPrepareHeader_orig;
 81typedef MMRESULT (WINAPI *waveOutUnprepareHeader_type)( HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh);
 82extern waveOutUnprepareHeader_type waveOutUnprepareHeader_orig;
 83typedef MMRESULT (WINAPI *waveOutWrite_type)( HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh);
 84extern waveOutWrite_type waveOutWrite_orig;
 85typedef MMRESULT (WINAPI *waveOutPause_type)( HWAVEOUT hwo);
 86extern waveOutPause_type waveOutPause_orig;
 87typedef MMRESULT (WINAPI *waveOutRestart_type)( HWAVEOUT hwo);
 88extern waveOutRestart_type waveOutRestart_orig;
 89typedef MMRESULT (WINAPI *waveOutReset_type)( HWAVEOUT hwo);
 90extern waveOutReset_type waveOutReset_orig;
 91typedef MMRESULT (WINAPI *waveOutBreakLoop_type)( HWAVEOUT hwo);
 92extern waveOutBreakLoop_type waveOutBreakLoop_orig;
 93typedef MMRESULT (WINAPI *waveOutGetPosition_type)( HWAVEOUT hwo, LPMMTIME pmmt, UINT cbmmt);
 94extern waveOutGetPosition_type waveOutGetPosition_orig;
 95typedef MMRESULT (WINAPI *waveOutGetPitch_type)( HWAVEOUT hwo, LPDWORD pdwPitch);
 96extern waveOutGetPitch_type waveOutGetPitch_orig;
 97typedef MMRESULT (WINAPI *waveOutSetPitch_type)( HWAVEOUT hwo, DWORD dwPitch);
 98extern waveOutSetPitch_type waveOutSetPitch_orig;
 99typedef MMRESULT (WINAPI *waveOutGetPlaybackRate_type)( HWAVEOUT hwo, LPDWORD pdwRate);
100extern waveOutGetPlaybackRate_type waveOutGetPlaybackRate_orig;
101typedef MMRESULT (WINAPI *waveOutSetPlaybackRate_type)( HWAVEOUT hwo, DWORD dwRate);
102extern waveOutSetPlaybackRate_type waveOutSetPlaybackRate_orig;
103typedef MMRESULT (WINAPI *waveOutGetID_type)( HWAVEOUT hwo, LPUINT puDeviceID);
104extern waveOutGetID_type waveOutGetID_orig;
105typedef MMRESULT (WINAPI *waveOutMessage_type)( HWAVEOUT hwo, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2);
106extern waveOutMessage_type waveOutMessage_orig;
107typedef UINT (WINAPI *waveInGetNumDevs_type)(void);
108extern waveInGetNumDevs_type waveInGetNumDevs_orig;
109typedef MMRESULT (WINAPI *waveInGetDevCapsA_type)( UINT_PTR uDeviceID, LPWAVEINCAPSA pwic, UINT cbwic);
110extern waveInGetDevCapsA_type waveInGetDevCapsA_orig;
111typedef MMRESULT (WINAPI *waveInGetDevCapsW_type)( UINT_PTR uDeviceID, LPWAVEINCAPSW pwic, UINT cbwic);
112extern waveInGetDevCapsW_type waveInGetDevCapsW_orig;
113typedef MMRESULT (WINAPI *waveInGetErrorTextA_type)(MMRESULT mmrError, LPSTR pszText, UINT cchText);
114extern waveInGetErrorTextA_type waveInGetErrorTextA_orig;
115typedef MMRESULT (WINAPI *waveInGetErrorTextW_type)(MMRESULT mmrError, LPWSTR pszText, UINT cchText);
116extern waveInGetErrorTextW_type waveInGetErrorTextW_orig;
117typedef MMRESULT (WINAPI *waveInOpen_type)( LPHWAVEIN phwi, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen);
118extern waveInOpen_type waveInOpen_orig;
119typedef MMRESULT (WINAPI *waveInClose_type)( HWAVEIN hwi);
120extern waveInClose_type waveInClose_orig;
121typedef MMRESULT (WINAPI *waveInPrepareHeader_type)( HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh);
122extern waveInPrepareHeader_type waveInPrepareHeader_orig;
123typedef MMRESULT (WINAPI *waveInUnprepareHeader_type)( HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh);
124extern waveInUnprepareHeader_type waveInUnprepareHeader_orig;
125typedef MMRESULT (WINAPI *waveInAddBuffer_type)( HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh);
126extern waveInAddBuffer_type waveInAddBuffer_orig;
127typedef MMRESULT (WINAPI *waveInStart_type)( HWAVEIN hwi);
128extern waveInStart_type waveInStart_orig;
129typedef MMRESULT (WINAPI *waveInStop_type)( HWAVEIN hwi);
130extern waveInStop_type waveInStop_orig;
131typedef MMRESULT (WINAPI *waveInReset_type)( HWAVEIN hwi);
132extern waveInReset_type waveInReset_orig;
133typedef MMRESULT (WINAPI *waveInGetPosition_type)( HWAVEIN hwi, LPMMTIME pmmt, UINT cbmmt);
134extern waveInGetPosition_type waveInGetPosition_orig;
135typedef MMRESULT (WINAPI *waveInGetID_type)( HWAVEIN hwi, LPUINT puDeviceID);
136extern waveInGetID_type waveInGetID_orig;
137typedef MMRESULT (WINAPI *waveInMessage_type)( HWAVEIN hwi, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2);
138extern waveInMessage_type waveInMessage_orig;
139typedef UINT (WINAPI *midiOutGetNumDevs_type)(void);
140extern midiOutGetNumDevs_type midiOutGetNumDevs_orig;
141typedef MMRESULT (WINAPI *midiStreamOpen_type)( LPHMIDISTRM phms, LPUINT puDeviceID, DWORD cMidi, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen);
142extern midiStreamOpen_type midiStreamOpen_orig;
143typedef MMRESULT (WINAPI *midiStreamClose_type)( HMIDISTRM hms);
144extern midiStreamClose_type midiStreamClose_orig;
145typedef MMRESULT (WINAPI *midiStreamProperty_type)( HMIDISTRM hms, LPBYTE lppropdata, DWORD dwProperty);
146extern midiStreamProperty_type midiStreamProperty_orig;
147typedef MMRESULT (WINAPI *midiStreamPosition_type)( HMIDISTRM hms, LPMMTIME lpmmt, UINT cbmmt);
148extern midiStreamPosition_type midiStreamPosition_orig;
149typedef MMRESULT (WINAPI *midiStreamOut_type)( HMIDISTRM hms, LPMIDIHDR pmh, UINT cbmh);
150extern midiStreamOut_type midiStreamOut_orig;
151typedef MMRESULT (WINAPI *midiStreamPause_type)( HMIDISTRM hms);
152extern midiStreamPause_type midiStreamPause_orig;
153typedef MMRESULT (WINAPI *midiStreamRestart_type)( HMIDISTRM hms);
154extern midiStreamRestart_type midiStreamRestart_orig;
155typedef MMRESULT (WINAPI *midiStreamStop_type)( HMIDISTRM hms);
156extern midiStreamStop_type midiStreamStop_orig;
157typedef MMRESULT (WINAPI *midiConnect_type)( HMIDI hmi, HMIDIOUT hmo, LPVOID pReserved);
158extern midiConnect_type midiConnect_orig;
159typedef MMRESULT (WINAPI *midiDisconnect_type)( HMIDI hmi, HMIDIOUT hmo, LPVOID pReserved);
160extern midiDisconnect_type midiDisconnect_orig;
161typedef MMRESULT (WINAPI *midiOutGetDevCapsA_type)( UINT_PTR uDeviceID, LPMIDIOUTCAPSA pmoc, UINT cbmoc);
162extern midiOutGetDevCapsA_type midiOutGetDevCapsA_orig;
163typedef MMRESULT (WINAPI *midiOutGetDevCapsW_type)( UINT_PTR uDeviceID, LPMIDIOUTCAPSW pmoc, UINT cbmoc);
164extern midiOutGetDevCapsW_type midiOutGetDevCapsW_orig;
165typedef MMRESULT (WINAPI *midiOutGetVolume_type)( HMIDIOUT hmo, LPDWORD pdwVolume);
166extern midiOutGetVolume_type midiOutGetVolume_orig;
167typedef MMRESULT (WINAPI *midiOutSetVolume_type)( HMIDIOUT hmo, DWORD dwVolume);
168extern midiOutSetVolume_type midiOutSetVolume_orig;
169typedef MMRESULT (WINAPI *midiOutGetErrorTextA_type)( MMRESULT mmrError, LPSTR pszText, UINT cchText);
170extern midiOutGetErrorTextA_type midiOutGetErrorTextA_orig;
171typedef MMRESULT (WINAPI *midiOutGetErrorTextW_type)( MMRESULT mmrError, LPWSTR pszText, UINT cchText);
172extern midiOutGetErrorTextW_type midiOutGetErrorTextW_orig;
173typedef MMRESULT (WINAPI *midiOutOpen_type)( LPHMIDIOUT phmo, UINT uDeviceID, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen);
174extern midiOutOpen_type midiOutOpen_orig;
175typedef MMRESULT (WINAPI *midiOutClose_type)( HMIDIOUT hmo);
176extern midiOutClose_type midiOutClose_orig;
177typedef MMRESULT (WINAPI *midiOutPrepareHeader_type)( HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh);
178extern midiOutPrepareHeader_type midiOutPrepareHeader_orig;
179typedef MMRESULT (WINAPI *midiOutUnprepareHeader_type)(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh);
180extern midiOutUnprepareHeader_type midiOutUnprepareHeader_orig;
181typedef MMRESULT (WINAPI *midiOutShortMsg_type)( HMIDIOUT hmo, DWORD dwMsg);
182extern midiOutShortMsg_type midiOutShortMsg_orig;
183typedef MMRESULT (WINAPI *midiOutLongMsg_type)(HMIDIOUT hmo, LPMIDIHDR pmh, UINT cbmh);
184extern midiOutLongMsg_type midiOutLongMsg_orig;
185typedef MMRESULT (WINAPI *midiOutReset_type)( HMIDIOUT hmo);
186extern midiOutReset_type midiOutReset_orig;
187typedef MMRESULT (WINAPI *midiOutCachePatches_type)( HMIDIOUT hmo, UINT uBank, LPWORD pwpa, UINT fuCache);
188extern midiOutCachePatches_type midiOutCachePatches_orig;
189typedef MMRESULT (WINAPI *midiOutCacheDrumPatches_type)( HMIDIOUT hmo, UINT uPatch, LPWORD pwkya, UINT fuCache);
190extern midiOutCacheDrumPatches_type midiOutCacheDrumPatches_orig;
191typedef MMRESULT (WINAPI *midiOutGetID_type)( HMIDIOUT hmo, LPUINT puDeviceID);
192extern midiOutGetID_type midiOutGetID_orig;
193typedef MMRESULT (WINAPI *midiOutMessage_type)( HMIDIOUT hmo, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2);
194extern midiOutMessage_type midiOutMessage_orig;
195typedef UINT (WINAPI *midiInGetNumDevs_type)(void);
196extern midiInGetNumDevs_type midiInGetNumDevs_orig;
197typedef MMRESULT (WINAPI *midiInGetDevCapsA_type)( UINT_PTR uDeviceID, LPMIDIINCAPSA pmic, UINT cbmic);
198extern midiInGetDevCapsA_type midiInGetDevCapsA_orig;
199typedef MMRESULT (WINAPI *midiInGetDevCapsW_type)( UINT_PTR uDeviceID, LPMIDIINCAPSW pmic, UINT cbmic);
200extern midiInGetDevCapsW_type midiInGetDevCapsW_orig;
201typedef MMRESULT (WINAPI *midiInGetErrorTextA_type)( MMRESULT mmrError, LPSTR pszText, UINT cchText);
202extern midiInGetErrorTextA_type midiInGetErrorTextA_orig;
203typedef MMRESULT (WINAPI *midiInGetErrorTextW_type)( MMRESULT mmrError, LPWSTR pszText, UINT cchText);
204extern midiInGetErrorTextW_type midiInGetErrorTextW_orig;
205typedef MMRESULT (WINAPI *midiInOpen_type)( LPHMIDIIN phmi, UINT uDeviceID, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen);
206extern midiInOpen_type midiInOpen_orig;
207typedef MMRESULT (WINAPI *midiInClose_type)( HMIDIIN hmi);
208extern midiInClose_type midiInClose_orig;
209typedef MMRESULT (WINAPI *midiInPrepareHeader_type)( HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh);
210extern midiInPrepareHeader_type midiInPrepareHeader_orig;
211typedef MMRESULT (WINAPI *midiInUnprepareHeader_type)( HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh);
212extern midiInUnprepareHeader_type midiInUnprepareHeader_orig;
213typedef MMRESULT (WINAPI *midiInAddBuffer_type)( HMIDIIN hmi, LPMIDIHDR pmh, UINT cbmh);
214extern midiInAddBuffer_type midiInAddBuffer_orig;
215typedef MMRESULT (WINAPI *midiInStart_type)( HMIDIIN hmi);
216extern midiInStart_type midiInStart_orig;
217typedef MMRESULT (WINAPI *midiInStop_type)( HMIDIIN hmi);
218extern midiInStop_type midiInStop_orig;
219typedef MMRESULT (WINAPI *midiInReset_type)( HMIDIIN hmi);
220extern midiInReset_type midiInReset_orig;
221typedef MMRESULT (WINAPI *midiInGetID_type)( HMIDIIN hmi, LPUINT puDeviceID);
222extern midiInGetID_type midiInGetID_orig;
223typedef MMRESULT (WINAPI *midiInMessage_type)( HMIDIIN hmi, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2);
224extern midiInMessage_type midiInMessage_orig;
225typedef UINT (WINAPI *auxGetNumDevs_type)(void);
226extern auxGetNumDevs_type auxGetNumDevs_orig;
227typedef MMRESULT (WINAPI *auxGetDevCapsA_type)( UINT_PTR uDeviceID, LPAUXCAPSA pac, UINT cbac);
228extern auxGetDevCapsA_type auxGetDevCapsA_orig;
229typedef MMRESULT (WINAPI *auxGetDevCapsW_type)( UINT_PTR uDeviceID, LPAUXCAPSW pac, UINT cbac);
230extern auxGetDevCapsW_type auxGetDevCapsW_orig;
231typedef MMRESULT (WINAPI *auxSetVolume_type)( UINT uDeviceID, DWORD dwVolume);
232extern auxSetVolume_type auxSetVolume_orig;
233typedef MMRESULT (WINAPI *auxGetVolume_type)( UINT uDeviceID, LPDWORD pdwVolume);
234extern auxGetVolume_type auxGetVolume_orig;
235typedef MMRESULT (WINAPI *auxOutMessage_type)( UINT uDeviceID, UINT uMsg, DWORD_PTR dw1, DWORD_PTR dw2);
236extern auxOutMessage_type auxOutMessage_orig;
237typedef UINT (WINAPI *mixerGetNumDevs_type)(void);
238extern mixerGetNumDevs_type mixerGetNumDevs_orig;
239typedef MMRESULT (WINAPI *mixerGetDevCapsA_type)( UINT_PTR uMxId, LPMIXERCAPSA pmxcaps, UINT cbmxcaps);
240extern mixerGetDevCapsA_type mixerGetDevCapsA_orig;
241typedef MMRESULT (WINAPI *mixerGetDevCapsW_type)( UINT_PTR uMxId, LPMIXERCAPSW pmxcaps, UINT cbmxcaps);
242extern mixerGetDevCapsW_type mixerGetDevCapsW_orig;
243typedef MMRESULT (WINAPI *mixerOpen_type)( LPHMIXER phmx, UINT uMxId, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen);
244extern mixerOpen_type mixerOpen_orig;
245typedef MMRESULT (WINAPI *mixerClose_type)( HMIXER hmx);
246extern mixerClose_type mixerClose_orig;
247typedef DWORD (WINAPI *mixerMessage_type)( HMIXER hmx, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2);
248extern mixerMessage_type mixerMessage_orig;
249typedef MMRESULT (WINAPI *mixerGetLineInfoA_type)( HMIXEROBJ hmxobj, LPMIXERLINEA pmxl, DWORD fdwInfo);
250extern mixerGetLineInfoA_type mixerGetLineInfoA_orig;
251typedef MMRESULT (WINAPI *mixerGetLineInfoW_type)( HMIXEROBJ hmxobj, LPMIXERLINEW pmxl, DWORD fdwInfo);
252extern mixerGetLineInfoW_type mixerGetLineInfoW_orig;
253typedef MMRESULT (WINAPI *mixerGetID_type)( HMIXEROBJ hmxobj, UINT FAR *puMxId, DWORD fdwId);
254extern mixerGetID_type mixerGetID_orig;
255typedef MMRESULT (WINAPI *mixerGetLineControlsA_type)( HMIXEROBJ hmxobj, LPMIXERLINECONTROLSA pmxlc, DWORD fdwControls);
256extern mixerGetLineControlsA_type mixerGetLineControlsA_orig;
257typedef MMRESULT (WINAPI *mixerGetLineControlsW_type)( HMIXEROBJ hmxobj, LPMIXERLINECONTROLSW pmxlc, DWORD fdwControls);
258extern mixerGetLineControlsW_type mixerGetLineControlsW_orig;
259typedef MMRESULT (WINAPI *mixerGetControlDetailsA_type)( HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails);
260extern mixerGetControlDetailsA_type mixerGetControlDetailsA_orig;
261typedef MMRESULT (WINAPI *mixerGetControlDetailsW_type)( HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails);
262extern mixerGetControlDetailsW_type mixerGetControlDetailsW_orig;
263typedef MMRESULT (WINAPI *mixerSetControlDetails_type)( HMIXEROBJ hmxobj, LPMIXERCONTROLDETAILS pmxcd, DWORD fdwDetails);
264extern mixerSetControlDetails_type mixerSetControlDetails_orig;
265typedef DWORD    (WINAPI *mmGetCurrentTask_type)(void);
266extern mmGetCurrentTask_type mmGetCurrentTask_orig;
267typedef void (WINAPI *mmTaskBlock_type)(DWORD);
268extern mmTaskBlock_type mmTaskBlock_orig;
269typedef UINT (WINAPI *mmTaskCreate_type)(LPTASKCALLBACK, HANDLE*, DWORD_PTR);
270extern mmTaskCreate_type mmTaskCreate_orig;
271typedef BOOL (WINAPI *mmTaskSignal_type)(DWORD);
272extern mmTaskSignal_type mmTaskSignal_orig;
273typedef VOID (WINAPI *mmTaskYield_type)(VOID);
274extern mmTaskYield_type mmTaskYield_orig;
275typedef MMRESULT (WINAPI *timeGetSystemTime_type)( LPMMTIME pmmt, UINT cbmmt);
276extern timeGetSystemTime_type timeGetSystemTime_orig;
277typedef DWORD (WINAPI *timeGetTime_type)(void);
278extern timeGetTime_type timeGetTime_orig;
279typedef MMRESULT (WINAPI *timeSetEvent_type)( UINT uDelay, UINT uResolution, LPTIMECALLBACK fptc, DWORD_PTR dwUser, UINT fuEvent);
280extern timeSetEvent_type timeSetEvent_orig;
281typedef MMRESULT (WINAPI *timeKillEvent_type)( UINT uTimerID);
282extern timeKillEvent_type timeKillEvent_orig;
283typedef MMRESULT (WINAPI *timeGetDevCaps_type)( LPTIMECAPS ptc, UINT cbtc);
284extern timeGetDevCaps_type timeGetDevCaps_orig;
285typedef MMRESULT (WINAPI *timeBeginPeriod_type)( UINT uPeriod);
286extern timeBeginPeriod_type timeBeginPeriod_orig;
287typedef MMRESULT (WINAPI *timeEndPeriod_type)( UINT uPeriod);
288extern timeEndPeriod_type timeEndPeriod_orig;
289typedef UINT (WINAPI *joyGetNumDevs_type)(void);
290extern joyGetNumDevs_type joyGetNumDevs_orig;
291typedef MMRESULT (WINAPI *joyConfigChanged_type)(DWORD dwFlags);
292extern joyConfigChanged_type joyConfigChanged_orig;
293typedef MMRESULT (WINAPI *joyGetDevCapsA_type)( UINT_PTR uJoyID, LPJOYCAPSA pjc, UINT cbjc);
294extern joyGetDevCapsA_type joyGetDevCapsA_orig;
295typedef MMRESULT (WINAPI *joyGetDevCapsW_type)( UINT_PTR uJoyID, LPJOYCAPSW pjc, UINT cbjc);
296extern joyGetDevCapsW_type joyGetDevCapsW_orig;
297typedef MMRESULT (WINAPI *joyGetPos_type)( UINT uJoyID, LPJOYINFO pji);
298extern joyGetPos_type joyGetPos_orig;
299typedef MMRESULT (WINAPI *joyGetPosEx_type)( UINT uJoyID, LPJOYINFOEX pji);
300extern joyGetPosEx_type joyGetPosEx_orig;
301typedef MMRESULT (WINAPI *joyGetThreshold_type)( UINT uJoyID, LPUINT puThreshold);
302extern joyGetThreshold_type joyGetThreshold_orig;
303typedef MMRESULT (WINAPI *joyReleaseCapture_type)( UINT uJoyID);
304extern joyReleaseCapture_type joyReleaseCapture_orig;
305typedef MMRESULT (WINAPI *joySetCapture_type)( HWND hwnd, UINT uJoyID, UINT uPeriod, BOOL fChanged);
306extern joySetCapture_type joySetCapture_orig;
307typedef MMRESULT (WINAPI *joySetThreshold_type)( UINT uJoyID, UINT uThreshold);
308extern joySetThreshold_type joySetThreshold_orig;
309typedef BOOL (WINAPI  *mciDriverNotify_type)(HWND hwndCallback, UINT uDeviceID, UINT uStatus);
310extern mciDriverNotify_type mciDriverNotify_orig;
311typedef UINT (WINAPI  *mciDriverYield_type)(UINT uDeviceID);
312extern mciDriverYield_type mciDriverYield_orig;
313typedef FOURCC (WINAPI *mmioStringToFOURCCA_type)( LPCSTR sz, UINT uFlags);
314extern mmioStringToFOURCCA_type mmioStringToFOURCCA_orig;
315typedef FOURCC (WINAPI *mmioStringToFOURCCW_type)( LPCWSTR sz, UINT uFlags);
316extern mmioStringToFOURCCW_type mmioStringToFOURCCW_orig;
317typedef LPMMIOPROC (WINAPI *mmioInstallIOProcA_type)( FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags);
318extern mmioInstallIOProcA_type mmioInstallIOProcA_orig;
319typedef LPMMIOPROC (WINAPI *mmioInstallIOProcW_type)( FOURCC fccIOProc, LPMMIOPROC pIOProc, DWORD dwFlags);
320extern mmioInstallIOProcW_type mmioInstallIOProcW_orig;
321typedef HMMIO (WINAPI *mmioOpenA_type)( LPSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen);
322extern mmioOpenA_type mmioOpenA_orig;
323typedef HMMIO (WINAPI *mmioOpenW_type)( LPWSTR pszFileName, LPMMIOINFO pmmioinfo, DWORD fdwOpen);
324extern mmioOpenW_type mmioOpenW_orig;
325typedef MMRESULT (WINAPI *mmioRenameA_type)( LPCSTR pszFileName, LPCSTR pszNewFileName, LPCMMIOINFO pmmioinfo, DWORD fdwRename);
326extern mmioRenameA_type mmioRenameA_orig;
327typedef MMRESULT (WINAPI *mmioRenameW_type)( LPCWSTR pszFileName, LPCWSTR pszNewFileName, LPCMMIOINFO pmmioinfo, DWORD fdwRename);
328extern mmioRenameW_type mmioRenameW_orig;
329typedef MMRESULT (WINAPI *mmioClose_type)( HMMIO hmmio, UINT fuClose);
330extern mmioClose_type mmioClose_orig;
331typedef LONG (WINAPI *mmioRead_type)( HMMIO hmmio, HPSTR pch, LONG cch);
332extern mmioRead_type mmioRead_orig;
333typedef LONG (WINAPI *mmioWrite_type)( HMMIO hmmio, const char _huge* pch, LONG cch);
334extern mmioWrite_type mmioWrite_orig;
335typedef LONG (WINAPI *mmioSeek_type)( HMMIO hmmio, LONG lOffset, int iOrigin);
336extern mmioSeek_type mmioSeek_orig;
337typedef MMRESULT (WINAPI *mmioGetInfo_type)( HMMIO hmmio, LPMMIOINFO pmmioinfo, UINT fuInfo);
338extern mmioGetInfo_type mmioGetInfo_orig;
339typedef MMRESULT (WINAPI *mmioSetInfo_type)( HMMIO hmmio, LPCMMIOINFO pmmioinfo, UINT fuInfo);
340extern mmioSetInfo_type mmioSetInfo_orig;
341typedef MMRESULT (WINAPI *mmioSetBuffer_type)( HMMIO hmmio, LPSTR pchBuffer, LONG cchBuffer, UINT fuBuffer);
342extern mmioSetBuffer_type mmioSetBuffer_orig;
343typedef MMRESULT (WINAPI *mmioFlush_type)( HMMIO hmmio, UINT fuFlush);
344extern mmioFlush_type mmioFlush_orig;
345typedef MMRESULT (WINAPI *mmioAdvance_type)( HMMIO hmmio, LPMMIOINFO pmmioinfo, UINT fuAdvance);
346extern mmioAdvance_type mmioAdvance_orig;
347typedef LRESULT (WINAPI *mmioSendMessage_type)( HMMIO hmmio, UINT uMsg, LPARAM lParam1, LPARAM lParam2);
348extern mmioSendMessage_type mmioSendMessage_orig;
349typedef MMRESULT (WINAPI *mmioDescend_type)( HMMIO hmmio, LPMMCKINFO pmmcki, const MMCKINFO FAR* pmmckiParent, UINT fuDescend);
350extern mmioDescend_type mmioDescend_orig;
351typedef MMRESULT (WINAPI *mmioAscend_type)( HMMIO hmmio, LPMMCKINFO pmmcki, UINT fuAscend);
352extern mmioAscend_type mmioAscend_orig;
353typedef MMRESULT (WINAPI *mmioCreateChunk_type)(HMMIO hmmio, LPMMCKINFO pmmcki, UINT fuCreate);
354extern mmioCreateChunk_type mmioCreateChunk_orig;
355typedef MCIERROR (WINAPI *mciSendCommandA_type)( MCIDEVICEID mciId, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2);
356extern mciSendCommandA_type mciSendCommandA_orig;
357typedef MCIERROR (WINAPI *mciSendCommandW_type)( MCIDEVICEID mciId, UINT uMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2);
358extern mciSendCommandW_type mciSendCommandW_orig;
359typedef MCIERROR  (WINAPI *mciSendStringA_type)( LPCSTR lpstrCommand, LPSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback);
360extern mciSendStringA_type mciSendStringA_orig;
361typedef MCIERROR  (WINAPI *mciSendStringW_type)( LPCWSTR lpstrCommand, LPWSTR lpstrReturnString, UINT uReturnLength, HWND hwndCallback);
362extern mciSendStringW_type mciSendStringW_orig;
363typedef MCIDEVICEID (WINAPI *mciGetDeviceIDA_type)( LPCSTR pszDevice);
364extern mciGetDeviceIDA_type mciGetDeviceIDA_orig;
365typedef MCIDEVICEID (WINAPI *mciGetDeviceIDW_type)( LPCWSTR pszDevice);
366extern mciGetDeviceIDW_type mciGetDeviceIDW_orig;
367typedef MCIDEVICEID (WINAPI *mciGetDeviceIDFromElementIDA_type)( DWORD dwElementID, LPCSTR lpstrType );
368extern mciGetDeviceIDFromElementIDA_type mciGetDeviceIDFromElementIDA_orig;
369typedef MCIDEVICEID (WINAPI *mciGetDeviceIDFromElementIDW_type)( DWORD dwElementID, LPCWSTR lpstrType );
370extern mciGetDeviceIDFromElementIDW_type mciGetDeviceIDFromElementIDW_orig;
371typedef DWORD_PTR (WINAPI  *mciGetDriverData_type)(UINT uDeviceID);
372extern mciGetDriverData_type mciGetDriverData_orig;
373typedef BOOL (WINAPI *mciGetErrorStringA_type)( MCIERROR mcierr, LPSTR pszText, UINT cchText);
374extern mciGetErrorStringA_type mciGetErrorStringA_orig;
375typedef BOOL (WINAPI *mciGetErrorStringW_type)( MCIERROR mcierr, LPWSTR pszText, UINT cchText);
376extern mciGetErrorStringW_type mciGetErrorStringW_orig;
377typedef BOOL (WINAPI  *mciSetDriverData_type)(UINT uDeviceID, DWORD_PTR dwData);
378extern mciSetDriverData_type mciSetDriverData_orig;
379typedef BOOL (WINAPI *mciSetYieldProc_type)( MCIDEVICEID mciId, YIELDPROC fpYieldProc, DWORD dwYieldData);
380extern mciSetYieldProc_type mciSetYieldProc_orig;
381typedef BOOL (WINAPI  *mciFreeCommandResource_type)(UINT uTable);
382extern mciFreeCommandResource_type mciFreeCommandResource_orig;
383typedef HTASK (WINAPI *mciGetCreatorTask_type)( MCIDEVICEID mciId);
384extern mciGetCreatorTask_type mciGetCreatorTask_orig;
385typedef YIELDPROC (WINAPI *mciGetYieldProc_type)( MCIDEVICEID mciId, LPDWORD pdwYieldData);
386extern mciGetYieldProc_type mciGetYieldProc_orig;
387typedef UINT (WINAPI *mciLoadCommandResource_type)(HINSTANCE hInstance, LPCWSTR lpResName, UINT uType);
388extern mciLoadCommandResource_type mciLoadCommandResource_orig;
389typedef BOOL (WINAPI *mciExecute_type)(LPCSTR pszCommand);
390extern mciExecute_type mciExecute_orig;