source: Include/api_mmsys.sbp@ 150

Last change on this file since 150 was 141, checked in by イグトランス (egtra), 17 years ago

#50 API宣言の変更完了

File size: 93.4 KB
Line 
1' api_mmsys.sbp
2' Include file for Multimedia API's
3
4
5#ifndef _INC_MMSYS
6#define _INC_MMSYS
7
8#ifdef UNICODE
9Const _FuncName_sndPlaySound = "sndPlaySoundW"
10Const _FuncName_PlaySound = "PlaySoundW"
11Const _FuncName_waveOutGetDevCaps = "waveOutGetDevCapsW"
12Const _FuncName_waveOutGetErrorText = "waveOutGetErrorTextW"
13Const _FuncName_waveInGetDevCaps = "waveInGetDevCapsW"
14Const _FuncName_waveInGetErrorText = "waveInGetErrorTextW"
15Const _FuncName_midiOutGetDevCaps = "midiOutGetDevCapsW"
16Const _FuncName_midiOutGetErrorText = "midiOutGetErrorTextW"
17Const _FuncName_midiInGetDevCaps = "midiInGetDevCapsW"
18Const _FuncName_midiInGetErrorText = "midiInGetErrorTextW"
19Const _FuncName_auxGetDevCaps = "auxGetDevCapsW"
20Const _FuncName_mixerGetDevCaps = "mixerGetDevCapsW"
21Const _FuncName_mixerGetLineInfo = "mixerGetLineInfoW"
22Const _FuncName_mixerGetLineControls = "mixerGetLineControlsW"
23Const _FuncName_mixerGetControlDetails = "mixerGetControlDetailsW"
24Const _FuncName_joyGetDevCaps = "joyGetDevCapsW"
25Const _FuncName_mmioStringToFOURCC = "mmioStringToFOURCCW"
26Const _FuncName_mmioInstallIOProc = "mmioInstallIOProcW"
27Const _FuncName_mmioOpen = "mmioOpenW"
28Const _FuncName_mmioRename = "mmioRenameW"
29Const _FuncName_mciSendCommand = "mciSendCommandW"
30Const _FuncName_mciSendString = "mciSendStringW"
31Const _FuncName_mciGetDeviceID = "mciGetDeviceIDW"
32Const _FuncName_mciGetErrorString = "mciGetErrorStringW"
33#else
34Const _FuncName_sndPlaySound = "sndPlaySoundA"
35Const _FuncName_PlaySound = "PlaySoundA"
36Const _FuncName_waveOutGetDevCaps = "waveOutGetDevCapsA"
37Const _FuncName_waveOutGetErrorText = "waveOutGetErrorTextA"
38Const _FuncName_waveInGetDevCaps = "waveInGetDevCapsA"
39Const _FuncName_waveInGetErrorText = "waveInGetErrorTextA"
40Const _FuncName_midiOutGetDevCaps = "midiOutGetDevCapsA"
41Const _FuncName_midiOutGetErrorText = "midiOutGetErrorTextA"
42Const _FuncName_midiInGetDevCaps = "midiInGetDevCapsA"
43Const _FuncName_midiInGetErrorText = "midiInGetErrorTextA"
44Const _FuncName_auxGetDevCaps = "auxGetDevCapsA"
45Const _FuncName_mixerGetDevCaps = "mixerGetDevCapsA"
46Const _FuncName_mixerGetLineInfo = "mixerGetLineInfoA"
47Const _FuncName_mixerGetLineControls = "mixerGetLineControlsA"
48Const _FuncName_mixerGetControlDetails = "mixerGetControlDetailsA"
49Const _FuncName_joyGetDevCaps = "joyGetDevCapsA"
50Const _FuncName_mmioStringToFOURCC = "mmioStringToFOURCCA"
51Const _FuncName_mmioInstallIOProc = "mmioInstallIOProcA"
52Const _FuncName_mmioOpen = "mmioOpenA"
53Const _FuncName_mmioRename = "mmioRenameA"
54Const _FuncName_mciSendCommand = "mciSendCommandA"
55Const _FuncName_mciSendString = "mciSendStringA"
56Const _FuncName_mciGetDeviceID = "mciGetDeviceIDA"
57Const _FuncName_mciGetErrorString = "mciGetErrorStringA"
58#endif
59
60' general constants
61Const MAXPNAMELEN = 32
62Const MAXERRORLENGTH = 256
63Const MAX_JOYSTICKOEMVXDNAME = 260
64
65Const MM_MIDI_MAPPER = 1
66Const MM_WAVE_MAPPER = 2
67Const MM_SNDBLST_MIDIOUT = 3
68Const MM_SNDBLST_MIDIIN = 4
69Const MM_SNDBLST_SYNTH = 5
70Const MM_SNDBLST_WAVEOUT = 6
71Const MM_SNDBLST_WAVEIN = 7
72Const MM_ADLIB = 9
73Const MM_MPU401_MIDIOUT = 10
74Const MM_MPU401_MIDIIN = 11
75Const MM_PC_JOYSTICK = 12
76
77' general data types
78TypeDef MMVERSION = DWord
79TypeDef VERSION = DWord
80TypeDef MMRESULT = DWord
81
82' MMTIME data structure
83
84Type Smpte
85 hour As Byte
86 min As Byte
87 sec As Byte
88 frame As Byte
89 fps As Byte
90 dummy As Byte
91 pad[ELM(2)] As Byte
92End Type
93
94Type Midi
95 songptrpos As DWord
96End Type
97
98Type MMTIME
99Public
100 wType As DWord
101 u As DWord
102/* union
103 ms As DWord
104 sample As DWord
105 cb As DWord
106 ticks As DWord
107 smpte As Smpte
108 midi As Midi
109*/
110End Type
111TypeDef PMMTIME = *MMTIME
112TypeDef LPMMTIME = *MMTIME
113
114Const MAKEFOURCC(ch0, ch1, ch2, ch3) = (((ch0 As Byte) or ((ch1 As Byte)<<8) or ((ch2 As Byte)<<16) or ((ch3 As Byte)<<24)) As DWord)
115
116' types for wType field in MMTIME struct
117Const TIME_MS = &H0001
118Const TIME_SAMPLES = &H0002
119Const TIME_BYTES = &H0004
120Const TIME_SMPTE = &H0008
121Const TIME_MIDI = &H0010
122Const TIME_TICKS = &H0020
123
124'----------------------------------------
125' Multimedia Extensions Window Messages
126
127Const MM_JOY1MOVE = &H3A0 'joystick
128Const MM_JOY2MOVE = &H3A1
129Const MM_JOY1ZMOVE = &H3A2
130Const MM_JOY2ZMOVE = &H3A3
131Const MM_JOY1BUTTONDOWN = &H3B5
132Const MM_JOY2BUTTONDOWN = &H3B6
133Const MM_JOY1BUTTONUP = &H3B7
134Const MM_JOY2BUTTONUP = &H3B8
135
136Const MM_MCINOTIFY = &H3B9 'MCI
137
138Const MM_WOM_OPEN = &H3BB 'waveform output
139Const MM_WOM_CLOSE = &H3BC
140Const MM_WOM_DONE = &H3BD
141
142Const MM_WIM_OPEN = &H3BE 'waveform input
143Const MM_WIM_CLOSE = &H3BF
144Const MM_WIM_DATA = &H3C0
145
146Const MM_MIM_OPEN = &H3C1 'MIDI input
147Const MM_MIM_CLOSE = &H3C2
148Const MM_MIM_DATA = &H3C3
149Const MM_MIM_LONGDATA = &H3C4
150Const MM_MIM_ERROR = &H3C5
151Const MM_MIM_LONGERROR = &H3C6
152
153Const MM_MOM_OPEN = &H3C7 'MIDI output
154Const MM_MOM_CLOSE = &H3C8
155Const MM_MOM_DONE = &H3C9
156
157Const MM_DRVM_OPEN = &H3D0 'installable drivers
158Const MM_DRVM_CLOSE = &H3D1
159Const MM_DRVM_DATA = &H3D2
160Const MM_DRVM_ERROR = &H3D3
161
162Const MM_STREAM_OPEN = &H3D4
163Const MM_STREAM_CLOSE = &H3D5
164Const MM_STREAM_DONE = &H3D6
165Const MM_STREAM_ERROR = &H3D7
166
167Const MM_MOM_POSITIONCB = &H3CA
168
169Const MM_MCISIGNAL = &H3CB
170
171Const MM_MIM_MOREDATA = &H3CC 'MIM_DONE w/ pending events
172
173Const MM_MIXM_LINE_CHANGE = &H3D0 'mixer line change notify
174Const MM_MIXM_CONTROL_CHANGE =&H3D1 'mixer control change notify
175
176
177'----------------------------------------------
178' String resource number bases (internal use)
179
180Const MMSYSERR_BASE = 0
181Const WAVERR_BASE = 32
182Const MIDIERR_BASE = 64
183Const TIMERR_BASE = 96
184Const JOYERR_BASE = 160
185Const MCIERR_BASE = 256
186Const MIXERR_BASE = 1024
187
188Const MCI_STRING_OFFSET = 512
189Const MCI_VD_OFFSET = 1024
190Const MCI_CD_OFFSET = 1088
191Const MCI_WAVE_OFFSET = 1152
192Const MCI_SEQ_OFFSET = 1216
193
194
195'----------------------------------------------
196' General error return values
197
198Const MMSYSERR_NOERROR = 0 'no error
199Const MMSYSERR_ERROR = (MMSYSERR_BASE + 1) 'unspecified error
200Const MMSYSERR_BADDEVICEID = (MMSYSERR_BASE + 2) 'device ID out of range
201Const MMSYSERR_NOTENABLED = (MMSYSERR_BASE + 3) 'driver failed enable
202Const MMSYSERR_ALLOCATED = (MMSYSERR_BASE + 4) 'device already allocated
203Const MMSYSERR_INVALHANDLE = (MMSYSERR_BASE + 5) 'device handle is invalid
204Const MMSYSERR_NODRIVER = (MMSYSERR_BASE + 6) 'no device driver present
205Const MMSYSERR_NOMEM = (MMSYSERR_BASE + 7) 'memory allocation error
206Const MMSYSERR_NOTSUPPORTED= (MMSYSERR_BASE + 8) 'function isn't supported
207Const MMSYSERR_BADERRNUM = (MMSYSERR_BASE + 9) 'error value out of range
208Const MMSYSERR_INVALFLAG = (MMSYSERR_BASE + 10) 'invalid flag passed
209Const MMSYSERR_INVALPARAM = (MMSYSERR_BASE + 11) 'invalid parameter passed
210Const MMSYSERR_HANDLEBUSY = (MMSYSERR_BASE + 12) 'handle being used
211Const MMSYSERR_INVALIDALIAS= (MMSYSERR_BASE + 13) 'specified alias not found
212Const MMSYSERR_BADDB = (MMSYSERR_BASE + 14) 'bad registry database
213Const MMSYSERR_KEYNOTFOUND = (MMSYSERR_BASE + 15) 'registry key not found
214Const MMSYSERR_READERROR = (MMSYSERR_BASE + 16) 'registry read error
215Const MMSYSERR_WRITEERROR = (MMSYSERR_BASE + 17) 'registry write error
216Const MMSYSERR_DELETEERROR = (MMSYSERR_BASE + 18) 'registry delete error
217Const MMSYSERR_VALNOTFOUND = (MMSYSERR_BASE + 19) 'registry value not found
218Const MMSYSERR_NODRIVERCB = (MMSYSERR_BASE + 20) 'driver does not call DriverCallback
219Const MMSYSERR_LASTERROR = (MMSYSERR_BASE + 20) 'last error in range
220
221
222'--------------------------------------------------------
223' Installable driver support
224
225Type _System_DeclareHandle_HDRVR:unused As DWord:End Type
226TypeDef HDRVR = *_System_DeclareHandle_HDRVR
227
228Type DRVCONFIGINFOEX
229 dwDCISize As DWord
230 lpszDCISectionName As LPCWSTR
231 lpszDCIAliasName As LPCWSTR
232 dnDevNode As DWORD
233End Type
234TypeDef PDRVCONFIGINFOEX = *DRVCONFIGINFOEX
235TypeDef LPDRVCONFIGINFOEX = *DRVCONFIGINFOEX
236
237' Driver messages
238Const DRV_LOAD = &H0001
239Const DRV_ENABLE = &H0002
240Const DRV_OPEN = &H0003
241Const DRV_CLOSE = &H0004
242Const DRV_DISABLE = &H0005
243Const DRV_FREE = &H0006
244Const DRV_CONFIGURE = &H0007
245Const DRV_QUERYCONFIGURE = &H0008
246Const DRV_INSTALL = &H0009
247Const DRV_REMOVE = &H000A
248Const DRV_EXITSESSION = &H000B
249Const DRV_POWER = &H000F
250Const DRV_RESERVED = &H0800
251Const DRV_USER = &H4000
252
253Type DRVCONFIGINFO
254 dwDCISize As DWord
255 lpszDCISectionName As LPCWSTR
256 lpszDCIAliasName As LPCWSTR
257End Type
258TypeDef PDRVCONFIGINFO = *DRVCONFIGINFO
259TypeDef LPDRVCONFIGINFO = *DRVCONFIGINFO
260
261' Supported return values for DRV_CONFIGURE message
262Const DRVCNF_CANCEL = &H0000
263Const DRVCNF_OK = &H0001
264Const DRVCNF_RESTART = &H0002
265
266TypeDef DRIVERPROC = *Function(dwDriverId As DWord, hdrvr As HDRVR, msg As DWord, lParam1 As LPARAM, lParam2 As LPARAM) As LRESULT
267
268Declare Function CloseDriver Lib "winmm" (hDriver As HDRVR, lParam1 As Long, lParam2 As Long) As LRESULT
269Declare Function OpenDriver Lib "winmm" (szDriverName As LPCWSTR, szSectionName As LPCWSTR, lParam2 As Long) As HDRVR
270Declare Function SendDriverMessage Lib "winmm" (hDriver As HDRVR, message As DWord, lParam1 As Long, lParam2 As Long) As LRESULT
271Declare Function GetDriverModuleHandle Lib "winmm" (hDriver As HDRVR) As HMODULE
272Declare Function DefDriverProc Lib "winmm" (dwDriverIdentifier As DWord, hdrvr As HDRVR, uMsg As DWord, lParam1 As LPARAM, lParam2 As LPARAM) As LRESULT
273
274Declare Function DrvClose Lib "winmm" Alias "CloseDriver" (hDriver As HDRVR, lParam1 As Long, lParam2 As Long) As LRESULT
275Declare Function DrvOpen Lib "winmm" Alias "OpenDriver" (szDriverName As LPCWSTR, szSectionName As LPCWSTR, lParam2 As Long) As HDRVR
276Declare Function DrvSendMessage Lib "winmm" Alias "SendDriverMessage" (hDriver As HDRVR, message As DWord, lParam1 As Long, lParam2 As Long) As LRESULT
277Declare Function DrvGetModuleHandle Lib "winmm" Alias "GetDriverModuleHandle" (hDriver As HDRVR) As HMODULE
278Declare Function DrvDefDriverProc Lib "winmm" Alias "DefDriverProc" (dwDriverIdentifier As DWord, hdrvr As HDRVR, uMsg As DWord, lParam1 As LPARAM, lParam2 As LPARAM) As LRESULT
279
280' return values from DriverProc() function
281Const DRV_CANCEL = DRVCNF_CANCEL
282Const DRV_OK = DRVCNF_OK
283Const DRV_RESTART = DRVCNF_RESTART
284
285Const DRV_MCI_FIRST = DRV_RESERVED
286Const DRV_MCI_LAST = (DRV_RESERVED + &HFFF)
287
288
289'--------------------------------------------------------
290' Driver callback support
291Const CALLBACK_TYPEMASK = &H00070000 'callback type mask
292Const CALLBACK_NULL = &H00000000 'no callback
293Const CALLBACK_WINDOW = &H00010000 'dwCallback is a HWND
294Const CALLBACK_TASK = &H00020000 'dwCallback is a HTASK
295Const CALLBACK_FUNCTION = &H00030000 'dwCallback is a FARPROC
296Const CALLBACK_THREAD = (CALLBACK_TASK)'thread ID replaces 16 bit task
297Const CALLBACK_EVENT = &H00050000 'dwCallback is an EVENT Handle
298
299TypeDef DRVCALLBACK = *Sub(hdrvr As HDRVR, uMsg As DWord, dwUser As DWord, dw1 As DWord, dw2 As DWord)
300TypeDef PDRVCALLBACK = *DRVCALLBACK
301TypeDef LPDRVCALLBACK = *DRVCALLBACK
302
303
304'--------------------------------------------------------
305' General MMSYSTEM support
306
307Declare Function mmsystemGetVersion Lib "winmm" () As DWord
308
309
310
311'--------------------------------------------------------
312' Sound support
313
314Declare Function sndPlaySound Lib "winmm" Alias _FuncName_sndPlaySound (pszSound As PCTSTR, fuSound As DWord) As BOOL
315
316Const SND_SYNC = &H0000
317Const SND_ASYNC = &H0001
318Const SND_NODEFAULT = &H0002
319Const SND_MEMORY = &H0004
320Const SND_LOOP = &H0008
321Const SND_NOSTOP = &H0010
322Const SND_NOWAIT = &H00002000
323Const SND_ALIAS = &H00010000
324Const SND_ALIAS_ID = &H00110000
325Const SND_FILENAME = &H00020000
326Const SND_RESOURCE = &H00040004
327Const SND_PURGE = &H0040
328Const SND_APPLICATION = &H0080
329Const SND_ALIAS_START = 0
330
331Const sndAlias(ch0, ch1) = (SND_ALIAS_START + ((&HFF AND ch0) OR (&HFF AND ch1)<<8))
332
333Const SND_ALIAS_SYSTEMASTERISK = sndAlias(&H53, &H2A)
334Const SND_ALIAS_SYSTEMQUESTION = sndAlias(&H53, &H3F)
335Const SND_ALIAS_SYSTEMHAND = sndAlias(&H53, &H48)
336Const SND_ALIAS_SYSTEMEXIT = sndAlias(&H53, &H45)
337Const SND_ALIAS_SYSTEMSTART = sndAlias(&H53, &H53)
338Const SND_ALIAS_SYSTEMWELCOME = sndAlias(&H53, &H57)
339Const SND_ALIAS_SYSTEMEXCLAMATION = sndAlias(&H53, &H21)
340Const SND_ALIAS_SYSTEMDEFAULT = sndAlias(&H53, &H44)
341
342Declare Function PlaySound Lib "winmm" Alias _FuncName_PlaySound (pszSound As PCTSTR, hmod As HMODULE, fdwSound As DWord) As BOOL
343
344
345'--------------------------------------------------------
346' Waveform audio support
347
348' waveform audio error return values
349Const WAVERR_BADFORMAT = (WAVERR_BASE + 0)
350Const WAVERR_STILLPLAYING = (WAVERR_BASE + 1)
351Const WAVERR_UNPREPARED = (WAVERR_BASE + 2)
352Const WAVERR_SYNC = (WAVERR_BASE + 3)
353Const WAVERR_LASTERROR = (WAVERR_BASE + 3)
354
355' waveform audio data types
356Type _System_DeclareHandle_HWAVE:unused As DWord:End Type
357TypeDef HWAVE = *_System_DeclareHandle_HWAVE
358Type _System_DeclareHandle_HWAVEIN:unused As DWord:End Type
359TypeDef HWAVEIN = *_System_DeclareHandle_HWAVEIN
360Type _System_DeclareHandle_HWAVEOUT:unused As DWord:End Type
361TypeDef HWAVEOUT = *_System_DeclareHandle_HWAVEOUT
362
363TypeDef WAVECALLBACK = DRVCALLBACK
364TypeDef LPWAVECALLBACK = *WAVECALLBACK
365
366' wave callback messages
367Const WOM_OPEN = MM_WOM_OPEN
368Const WOM_CLOSE = MM_WOM_CLOSE
369Const WOM_DONE = MM_WOM_DONE
370Const WIM_OPEN = MM_WIM_OPEN
371Const WIM_CLOSE = MM_WIM_CLOSE
372Const WIM_DATA = MM_WIM_DATA
373
374' device ID for wave device mapper
375Const WAVE_MAPPER = (-1)
376
377' flags for dwFlags parameter in waveOutOpen() and waveInOpen()
378Const WAVE_FORMAT_QUERY = &H0001
379Const WAVE_ALLOWSYNC = &H0002
380Const WAVE_MAPPED = &H0004
381Const WAVE_FORMAT_DIRECT = &H0008
382Const WAVE_FORMAT_DIRECT_QUERY = (WAVE_FORMAT_QUERY OR WAVE_FORMAT_DIRECT)
383
384' wave data block header
385Type WAVEHDR
386 lpData As LPSTR
387 dwBufferLength As DWord
388 dwBytesRecorded As DWord
389 dwUser As DWord
390 dwFlags As DWord
391 dwLoops As DWord
392 lpNext As *WAVEHDR
393 reserved As DWord
394End Type
395TypeDef PWAVEHDR = *WAVEHDR
396TypeDef LPWAVEHDR = *WAVEHDR
397
398' flags for dwFlags field of WAVEHDR
399Const WHDR_DONE = &H00000001
400Const WHDR_PREPARED = &H00000002
401Const WHDR_BEGINLOOP = &H00000004
402Const WHDR_ENDLOOP = &H00000008
403Const WHDR_INQUEUE = &H00000010
404
405' waveform output device capabilities structure
406Type WAVEOUTCAPSW
407 wMid As Word
408 wPid As Word
409 vDriverVersion As MMVERSION
410 szPname[ELM(MAXPNAMELEN)] As WCHAR
411 dwFormats As DWord
412 wChannels As Word
413 wReserved1 As Word
414 dwSupport As DWord
415End Type
416TypeDef PWAVEOUTCAPSW = *WAVEOUTCAPSW
417TypeDef LPWAVEOUTCAPSW = *WAVEOUTCAPSW
418Type WAVEOUTCAPSA
419 wMid As Word
420 wPid As Word
421 vDriverVersion As MMVERSION
422 szPname[ELM(MAXPNAMELEN)] As SByte
423 dwFormats As DWord
424 wChannels As Word
425 wReserved1 As Word
426 dwSupport As DWord
427End Type
428TypeDef PWAVEOUTCAPSA = *WAVEOUTCAPSA
429TypeDef LPWAVEOUTCAPSA = *WAVEOUTCAPSA
430#ifdef UNICODE
431TypeDef WAVEOUTCAPS = WAVEOUTCAPSW
432#else
433TypeDef WAVEOUTCAPS = WAVEOUTCAPSA
434#endif
435TypeDef PWAVEOUTCAPS = *WAVEOUTCAPS
436TypeDef LPWAVEOUTCAPS = *WAVEOUTCAPS
437
438' flags for dwSupport field of WAVEOUTCAPS
439Const WAVECAPS_PITCH = &H0001
440Const WAVECAPS_PLAYBACKRATE = &H0002
441Const WAVECAPS_VOLUME = &H0004
442Const WAVECAPS_LRVOLUME = &H0008
443Const WAVECAPS_SYNC = &H0010
444Const WAVECAPS_SAMPLEACCURATE = &H0020
445Const WAVECAPS_DIRECTSOUND = &H0040
446
447' waveform input device capabilities structure
448Type WAVEINCAPSW
449 wMid As Word
450 wPid As Word
451 vDriverVersion As MMVERSION
452 szPname[ELM(MAXPNAMELEN)] As WCHAR
453 dwFormats As DWord
454 wChannels As Word
455 wReserved1 As Word
456End Type
457TypeDef PWAVEINCAPSW = *WAVEINCAPSW
458TypeDef LPWAVEINCAPSW = *WAVEINCAPSW
459Type WAVEINCAPSA
460 wMid As Word
461 wPid As Word
462 vDriverVersion As MMVERSION
463 szPname[ELM(MAXPNAMELEN)] As SByte
464 dwFormats As DWord
465 wChannels As Word
466 wReserved1 As Word
467End Type
468TypeDef PWAVEINCAPSA = *WAVEINCAPSA
469TypeDef LPWAVEINCAPSA = *WAVEINCAPSA
470#ifdef UNICODE
471TypeDef WAVEINCAPS = WAVEINCAPSW
472#else
473TypeDef WAVEINCAPS = WAVEINCAPSA
474#endif
475TypeDef PWAVEINCAPS = *WAVEINCAPS
476TypeDef LPWAVEINCAPS = *WAVEINCAPS
477
478' defines for dwFormat field of WAVEINCAPS and WAVEOUTCAPS
479Const WAVE_INVALIDFORMAT = &H00000000 ' invalid format
480Const WAVE_FORMAT_1M08 = &H00000001 ' 11.025 kHz, Mono, 8-bit
481Const WAVE_FORMAT_1S08 = &H00000002 ' 11.025 kHz, Stereo, 8-bit
482Const WAVE_FORMAT_1M16 = &H00000004 ' 11.025 kHz, Mono, 16-bit
483Const WAVE_FORMAT_1S16 = &H00000008 ' 11.025 kHz, Stereo, 16-bit
484Const WAVE_FORMAT_2M08 = &H00000010 ' 22.05 kHz, Mono, 8-bit
485Const WAVE_FORMAT_2S08 = &H00000020 ' 22.05 kHz, Stereo, 8-bit
486Const WAVE_FORMAT_2M16 = &H00000040 ' 22.05 kHz, Mono, 16-bit
487Const WAVE_FORMAT_2S16 = &H00000080 ' 22.05 kHz, Stereo, 16-bit
488Const WAVE_FORMAT_4M08 = &H00000100 ' 44.1 kHz, Mono, 8-bit
489Const WAVE_FORMAT_4S08 = &H00000200 ' 44.1 kHz, Stereo, 8-bit
490Const WAVE_FORMAT_4M16 = &H00000400 ' 44.1 kHz, Mono, 16-bit
491Const WAVE_FORMAT_4S16 = &H00000800 ' 44.1 kHz, Stereo, 16-bit
492
493' OLD general waveform format structure (information common to all formats)
494Type WAVEFORMAT
495 wFormatTag As Word
496 nChannels As Word
497 nSamplesPerSec As DWord
498 nAvgBytesPerSec As DWord
499 nBlockAlign As Word
500End Type
501TypeDef PWAVEFORMAT = *WAVEFORMAT
502TypeDef LPWAVEFORMAT = *WAVEFORMAT
503
504' flags for wFormatTag field of WAVEFORMAT
505Const WAVE_FORMAT_PCM = 1
506
507' specific waveform format structure for PCM data
508Type PCMWAVEFORMAT
509 wf As WAVEFORMAT
510 wBitsPerSample As Word
511End Type
512TypeDef PPCMWAVEFORMAT = *PCMWAVEFORMAT
513TypeDef LPPCMWAVEFORMAT = *PCMWAVEFORMAT
514
515Type WAVEFORMATEX
516 wFormatTag As Word
517 nChannels As Word
518 nSamplesPerSec As DWord
519 nAvgBytesPerSec As DWord
520 nBlockAlign As Word
521 wBitsPerSample As Word
522 cbSize As Word
523End Type
524TypeDef PWAVEFORMATEX = *WAVEFORMATEX
525TypeDef LPWAVEFORMATEX = *WAVEFORMATEX
526TypeDef LPCWAVEFORMATEX = *WAVEFORMATEX
527
528' waveform audio function prototypes
529Declare Function waveOutGetNumDevs Lib "winmm" () As DWord
530Declare Function waveOutGetDevCaps Lib "winmm" Alias _FuncName_waveOutGetDevCaps (uDeviceID As DWord, ByRef woc As WAVEOUTCAPS, cbwoc As DWord) As MMRESULT
531Declare Function waveOutGetVolume Lib "winmm" (hwo As HWAVEOUT, ByRef pdwVolume As DWord) As MMRESULT
532Declare Function waveOutSetVolume Lib "winmm" (hwo As HWAVEOUT, dwVolume As DWord) As MMRESULT
533Declare Function waveOutGetErrorText Lib "winmm" Alias _FuncName_waveOutGetErrorText (mmrError As MMRESULT, pszText As LPTSTR, cchText As DWord) As MMRESULT
534Declare Function waveOutOpen Lib "winmm" (ByRef phwo As HWAVEOUT, uDeviceID As DWord, ByRef pwfx As WAVEFORMATEX, dwCallback As DWord, dwInstance As DWord, fdwOpen As DWord) As MMRESULT
535Declare Function waveOutClose Lib "winmm" (hwo As HWAVEOUT) As MMRESULT
536Declare Function waveOutPrepareHeader Lib "winmm" (hwo As HWAVEOUT, ByRef pwh As WAVEHDR, cbwh As DWord) As MMRESULT
537Declare Function waveOutUnprepareHeader Lib "winmm" (hwo As HWAVEOUT, ByRef pwh As WAVEHDR, cbwh As DWord) As MMRESULT
538Declare Function waveOutWrite Lib "winmm" (hwo As HWAVEOUT, ByRef pwh As WAVEHDR, cbwh As DWord) As MMRESULT
539Declare Function waveOutPause Lib "winmm" (hwo As HWAVEOUT) As MMRESULT
540Declare Function waveOutRestart Lib "winmm" (hwo As HWAVEOUT) As MMRESULT
541Declare Function waveOutReset Lib "winmm" (hwo As HWAVEOUT) As MMRESULT
542Declare Function waveOutBreakLoop Lib "winmm" (hwo As HWAVEOUT) As MMRESULT
543Declare Function waveOutGetPosition Lib "winmm" (hwo As HWAVEOUT, ByRef pmmt As MMTIME, cbmmt As DWord) As MMRESULT
544Declare Function waveOutGetPitch Lib "winmm" (hwo As HWAVEOUT, ByRef pdwPitch As DWord) As MMRESULT
545Declare Function waveOutSetPitch Lib "winmm" (hwo As HWAVEOUT, dwPitch As DWord) As MMRESULT
546Declare Function waveOutGetPlaybackRate Lib "winmm" (hwo As HWAVEOUT, ByRef pdwRate As DWord) As MMRESULT
547Declare Function waveOutSetPlaybackRate Lib "winmm" (hwo As HWAVEOUT, dwRate As DWord) As MMRESULT
548Declare Function waveOutGetID Lib "winmm" (hwo As HWAVEOUT, ByRef puDeviceID As DWord) As MMRESULT
549Declare Function waveOutMessage Lib "winmm" (hwo As HWAVEOUT, uMsg As DWord, dw1 As DWord, dw2 As DWord) As MMRESULT
550
551Declare Function waveInGetNumDevs Lib "winmm" () As DWord
552Declare Function waveInGetDevCaps Lib "winmm" Alias _FuncName_waveInGetDevCaps (uDeviceID As DWord, ByRef pwic As WAVEINCAPS, cbwic As DWord) As MMRESULT
553Declare Function waveInGetErrorText Lib "winmm" Alias _FuncName_waveInGetErrorText (mmrError As MMRESULT, pszText As LPTSTR, cchText As DWord) As MMRESULT
554Declare Function waveInOpen Lib "winmm" (ByRef phwi As HWAVEIN, uDeviceID As DWord, ByRef pwfx As WAVEFORMATEX, dwCallback As DWord, dwInstance As DWord, fdwOpen As DWord) As MMRESULT
555Declare Function waveInClose Lib "winmm" (hwi As HWAVEIN) As MMRESULT
556Declare Function waveInPrepareHeader Lib "winmm" (hwi As HWAVEIN, ByRef pwh As WAVEHDR, cbwh As DWord) As MMRESULT
557Declare Function waveInUnprepareHeader Lib "winmm" (hwi As HWAVEIN, ByRef pwh As WAVEHDR, cbwh As DWord) As MMRESULT
558Declare Function waveInAddBuffer Lib "winmm" (hwi As HWAVEIN, ByRef pwh As WAVEHDR, cbwh As DWord) As MMRESULT
559Declare Function waveInStart Lib "winmm" (hwi As HWAVEIN) As MMRESULT
560Declare Function waveInStop Lib "winmm" (hwi As HWAVEIN) As MMRESULT
561Declare Function waveInReset Lib "winmm" (hwi As HWAVEIN) As MMRESULT
562Declare Function waveInGetPosition Lib "winmm" (hwi As HWAVEIN, ByRef pmmt As MMTIME, cbmmt As DWord) As MMRESULT
563Declare Function waveInGetID Lib "winmm" (hwi As HWAVEIN, ByRef puDeviceID As DWord) As MMRESULT
564Declare Function waveInMessage Lib "winmm" (hwi As HWAVEIN, uMsg As DWord, dw1 As DWord, dw2 As DWord) As MMRESULT
565
566
567
568'--------------------------------------------------------
569' MIDI audio support
570
571' MIDI error return values
572Const MIDIERR_UNPREPARED = (MIDIERR_BASE + 0)
573Const MIDIERR_STILLPLAYING = (MIDIERR_BASE + 1)
574Const MIDIERR_NOMAP = (MIDIERR_BASE + 2)
575Const MIDIERR_NOTREADY = (MIDIERR_BASE + 3)
576Const MIDIERR_NODEVICE = (MIDIERR_BASE + 4)
577Const MIDIERR_INVALIDSETUP = (MIDIERR_BASE + 5)
578Const MIDIERR_BADOPENMODE = (MIDIERR_BASE + 6)
579Const MIDIERR_DONT_CONTINUE = (MIDIERR_BASE + 7)
580Const MIDIERR_LASTERROR = (MIDIERR_BASE + 7)
581
582' MIDI audio data types
583Type _System_DeclareHandle_HMIDI:unused As DWord:End Type
584TypeDef HMIDI = *_System_DeclareHandle_HMIDI
585Type _System_DeclareHandle_HMIDIIN:unused As DWord:End Type
586TypeDef HMIDIIN = *_System_DeclareHandle_HMIDIIN
587Type _System_DeclareHandle_HMIDIOUT:unused As DWord:End Type
588TypeDef HMIDIOUT = *_System_DeclareHandle_HMIDIOUT
589Type _System_DeclareHandle_HMIDISTRM:unused As DWord:End Type
590TypeDef HMIDISTRM = *_System_DeclareHandle_HMIDISTRM
591
592TypeDef MIDICALLBACK = DRVCALLBACK
593TypeDef LPMIDICALLBACK = *MIDICALLBACK
594
595Const MIDIPATCHSIZE = 128
596
597TypeDef LPPATCHARRAY = *Word
598TypeDef LPKEYARRAY = *Word
599
600' MIDI callback messages
601Const MIM_OPEN = MM_MIM_OPEN
602Const MIM_CLOSE = MM_MIM_CLOSE
603Const MIM_DATA = MM_MIM_DATA
604Const MIM_LONGDATA = MM_MIM_LONGDATA
605Const MIM_ERROR = MM_MIM_ERROR
606Const MIM_LONGERROR = MM_MIM_LONGERROR
607Const MOM_OPEN = MM_MOM_OPEN
608Const MOM_CLOSE = MM_MOM_CLOSE
609Const MOM_DONE = MM_MOM_DONE
610Const MIM_MOREDATA = MM_MIM_MOREDATA
611Const MOM_POSITIONCB = MM_MOM_POSITIONCB
612
613' device ID for MIDI mapper
614Const MIDIMAPPER = (-1)
615Const MIDI_MAPPER = (-1)
616
617Const MIDI_IO_STATUS = &H00000020
618
619' flags for wFlags parm of midiOutCachePatches(), midiOutCacheDrumPatches()
620Const MIDI_CACHE_ALL = 1
621Const MIDI_CACHE_BESTFIT = 2
622Const MIDI_CACHE_QUERY = 3
623Const MIDI_UNCACHE = 4
624
625' MIDI output device capabilities structure
626Type MIDIOUTCAPSW
627 wMid As Word
628 wPid As Word
629 vDriverVersion As MMVERSION
630 szPname[ELM(MAXPNAMELEN)] As WCHAR
631 wTechnology As Word
632 wVoices As Word
633 wNotes As Word
634 wChannelMask As Word
635 dwSupport As DWord
636End Type
637TypeDef PMIDIOUTCAPSW = *MIDIOUTCAPSW
638TypeDef LPMIDIOUTCAPSW = *MIDIOUTCAPSW
639Type MIDIOUTCAPSA
640 wMid As Word
641 wPid As Word
642 vDriverVersion As MMVERSION
643 szPname[ELM(MAXPNAMELEN)] As SByte
644 wTechnology As Word
645 wVoices As Word
646 wNotes As Word
647 wChannelMask As Word
648 dwSupport As DWord
649End Type
650TypeDef PMIDIOUTCAPSA = *MIDIOUTCAPSA
651TypeDef LPMIDIOUTCAPSA = *MIDIOUTCAPSA
652
653#ifdef UNICODE
654TypeDef MIDIOUTCAPS = MIDIOUTCAPSW
655#else
656TypeDef MIDIOUTCAPS = MIDIOUTCAPSA
657#endif
658TypeDef PMIDIOUTCAPS = *MIDIOUTCAPS
659TypeDef LPMIDIOUTCAPS = *MIDIOUTCAPS
660
661' flags for wTechnology field of MIDIOUTCAPS structure
662Const MOD_MIDIPORT = 1
663Const MOD_SYNTH = 2
664Const MOD_SQSYNTH = 3
665Const MOD_FMSYNTH = 4
666Const MOD_MAPPER = 5
667
668' flags for dwSupport field of MIDIOUTCAPS structure
669Const MIDICAPS_VOLUME = &H0001
670Const MIDICAPS_LRVOLUME = &H0002
671Const MIDICAPS_CACHE = &H0004
672Const MIDICAPS_STREAM = &H0008
673
674' MIDI input device capabilities structure
675Type MIDIINCAPSW
676 wMid As Word
677 wPid As Word
678 vDriverVersion As MMVERSION
679 szPname[ELM(MAXPNAMELEN)] As WCHAR
680 dwSupport As DWord
681End Type
682TypeDef PMIDIINCAPSW = *MIDIINCAPSW
683TypeDef LPMIDIINCAPSW = *MIDIINCAPSW
684Type MIDIINCAPSA
685 wMid As Word
686 wPid As Word
687 vDriverVersion As MMVERSION
688 szPname[ELM(MAXPNAMELEN)] As SByte
689 dwSupport As DWord
690End Type
691TypeDef PMIDIINCAPSA = *MIDIINCAPSA
692TypeDef LPMIDIINCAPSA = *MIDIINCAPSA
693#ifdef UNICODE
694TypeDef MIDIINCAPS = MIDIINCAPSW
695#else
696TypeDef MIDIINCAPS = MIDIINCAPSA
697#endif
698TypeDef PMIDIINCAPS = *MIDIINCAPS
699TypeDef LPMIDIINCAPS = *MIDIINCAPS
700
701' MIDI data block header
702Type MIDIHDR
703 lpData As LPSTR
704 dwBufferLength As DWord
705 dwBytesRecorded As DWord
706 dwUser As DWord
707 dwFlags As DWord
708 lpNext As *MIDIHDR
709 reserved As DWord
710 dwOffset As DWord
711 dwReserved[ELM(8)] As DWord
712End Type
713TypeDef PMIDIHDR = *MIDIHDR
714TypeDef LPMIDIHDR = *MIDIHDR
715
716Type MIDIEVENT
717 dwDeltaTime As DWord
718 dwStreamID As DWord
719 dwEvent As DWord
720 dwParms[ELM(1)] As DWord
721End Type
722
723Type MIDISTRMBUFFVER
724 dwVersion As DWord
725 dwMid As DWord
726 dwOEMVersion As DWord
727End Type
728
729' flags for dwFlags field of MIDIHDR structure
730Const MHDR_DONE = &H00000001
731Const MHDR_PREPARED = &H00000002
732Const MHDR_INQUEUE = &H00000004
733Const MHDR_ISSTRM = &H00000008
734
735Const MEVT_F_SHORT = &H00000000
736Const MEVT_F_LONG = &H80000000
737Const MEVT_F_CALLBACK = &H40000000
738Const MEVT_EVENTTYPE(x) = ((x>>24) AND &HFF)
739Const MEVT_EVENTPARM(x) = (x AND &H00FFFFFF)
740Const MEVT_SHORTMSG = (&H00)
741Const MEVT_TEMPO = (&H01)
742Const MEVT_NOP = (&H02)
743Const MEVT_LONGMSG = (&H80)
744Const MEVT_COMMENT = (&H82)
745Const MEVT_VERSION = (&H84)
746
747Const MIDISTRM_ERROR = (-2)
748
749' Structures and defines for midiStreamProperty
750Const MIDIPROP_SET = &H80000000
751Const MIDIPROP_GET = &H40000000
752Const MIDIPROP_TIMEDIV = &H00000001
753Const MIDIPROP_TEMPO = &H00000002
754
755Type MIDIPROPTIMEDIV
756 cbStruct As DWord
757 dwTimeDiv As DWord
758End Type
759TypeDef LPMIDIPROPTIMEDIV = *MIDIPROPTIMEDIV
760
761Type MIDIPROPTEMPO
762 cbStruct As DWord
763 dwTempo As DWord
764End Type
765TypeDef LPMIDIPROPTEMPO = *MIDIPROPTEMPO
766
767
768' MIDI function prototypes
769Declare Function midiOutGetNumDevs Lib "winmm" () As DWord
770Declare Function midiStreamOpen Lib "winmm" (ByRef phms As HMIDISTRM, ByRef puDeviceID As DWord, cMidi As DWord, dwCallback As DWord, dwInstance As DWord, fdwOpen As DWord) As MMRESULT
771Declare Function midiStreamClose Lib "winmm" (hms As HMIDISTRM) As MMRESULT
772Declare Function midiStreamProperty Lib "winmm" (hms As HMIDISTRM, lppropdata As *Byte, dwProperty As DWord) As MMRESULT
773Declare Function midiStreamPosition Lib "winmm" (hms As HMIDISTRM, ByRef lpmmt As MMTIME, cbmmt As DWord) As MMRESULT
774Declare Function midiStreamOut Lib "winmm" (hms As HMIDISTRM, ByRef pmh As MIDIHDR, cbmh As DWord) As MMRESULT
775Declare Function midiStreamPause Lib "winmm" (hms As HMIDISTRM) As MMRESULT
776Declare Function midiStreamRestart Lib "winmm" (hms As HMIDISTRM) As MMRESULT
777Declare Function midiStreamStop Lib "winmm" (hms As HMIDISTRM) As MMRESULT
778
779Declare Function midiConnect Lib "winmm" (hmi As HMIDI, hmo As HMIDIOUT, pReserved As VoidPtr) As MMRESULT
780Declare Function midiDisconnect Lib "winmm" (hmi As HMIDI, hmo As HMIDIOUT, pReserved As VoidPtr) As MMRESULT
781Declare Function midiOutGetDevCaps Lib "winmm" Alias _FuncName_midiOutGetDevCaps (uDeviceID As DWord, ByRef moc As MIDIOUTCAPS, cbmoc As DWord) As MMRESULT
782Declare Function midiOutGetVolume Lib "winmm" (hmo As HMIDIOUT, ByRef pdwVolume As DWord) As MMRESULT
783Declare Function midiOutSetVolume Lib "winmm" (hmo As HMIDIOUT, dwVolume As DWord) As MMRESULT
784Declare Function midiOutGetErrorText Lib "winmm" Alias _FuncName_midiOutGetErrorText (mmrError As MMRESULT, pszText As LPTSTR, cchText As DWord) As MMRESULT
785Declare Function midiOutOpen Lib "winmm" (ByRef phmo As HMIDIOUT, uDeviceID As DWord, dwCallback As DWord, dwInstance As DWord, fdwOpen As DWord) As MMRESULT
786Declare Function midiOutClose Lib "winmm" (hmo As HMIDIOUT) As MMRESULT
787Declare Function midiOutPrepareHeader Lib "winmm" (hmo As HMIDIOUT, ByRef pmh As MIDIHDR, cbmh As DWord) As MMRESULT
788Declare Function midiOutUnprepareHeader Lib "winmm" (hmo As HMIDIOUT, ByRef pmh As MIDIHDR, cbmh As DWord) As MMRESULT
789Declare Function midiOutShortMsg Lib "winmm" (hmo As HMIDIOUT, dwMsg As DWord) As MMRESULT
790Declare Function midiOutLongMsg Lib "winmm" (hmo As HMIDIOUT, ByRef pmh As MIDIHDR, cbmh As DWord) As MMRESULT
791Declare Function midiOutReset Lib "winmm" (hmo As HMIDIOUT) As MMRESULT
792Declare Function midiOutCachePatches Lib "winmm" (hmo As HMIDIOUT, uBank As DWord, ByRef pwpa As Word, fuCache As DWord) As MMRESULT
793Declare Function midiOutCacheDrumPatches Lib "winmm" (hmo As HMIDIOUT, uPatch As DWord, ByRef pwkya As Word, fuCache As DWord) As MMRESULT
794Declare Function midiOutGetID Lib "winmm" (hmo As HMIDIOUT, ByRef puDeviceID As DWord) As MMRESULT
795Declare Function midiOutMessage Lib "winmm" (hmo As HMIDIOUT, uMsg As DWord, dw1 As DWord, dw2 As DWord) As MMRESULT
796
797Declare Function midiInGetNumDevs Lib "winmm" () As DWord
798Declare Function midiInGetDevCaps Lib "winmm" Alias _FuncName_midiInGetDevCaps (uDeviceID As DWord, ByRef pmic As MIDIINCAPS, cbmic As DWord) As MMRESULT
799Declare Function midiInGetErrorText Lib "winmm" Alias _FuncName_midiInGetErrorText (mmrError As MMRESULT, pszText As LPCTSTR, cchText As DWord) As MMRESULT
800Declare Function midiInOpen Lib "winmm" (ByRef phmi As HMIDIIN, uDeviceID As DWord, dwCallback As DWord, dwInstance As DWord, fdwOpen As DWord) As MMRESULT
801Declare Function midiInClose Lib "winmm" (hmi As HMIDIIN) As MMRESULT
802Declare Function midiInPrepareHeader Lib "winmm" (hmi As HMIDIIN, ByRef pmh As MIDIHDR, cbmh As DWord) As MMRESULT
803Declare Function midiInUnprepareHeader Lib "winmm" (hmi As HMIDIIN, ByRef pmh As MIDIHDR, cbmh As DWord) As MMRESULT
804Declare Function midiInAddBuffer Lib "winmm" (hmi As HMIDIIN, ByRef pmh As MIDIHDR, cbmh As DWord) As MMRESULT
805Declare Function midiInStart Lib "winmm" (hmi As HMIDIIN) As MMRESULT
806Declare Function midiInStop Lib "winmm" (hmi As HMIDIIN) As MMRESULT
807Declare Function midiInReset Lib "winmm" (hmi As HMIDIIN) As MMRESULT
808Declare Function midiInGetID Lib "winmm" (hmi As HMIDIIN, ByRef puDeviceID As DWord) As MMRESULT
809Declare Function midiInMessage Lib "winmm" (hmi As HMIDIIN, uMsg As DWord, dw1 As DWord, dw2 As DWord) As MMRESULT
810
811
812'--------------------------------------------------------
813' Auxiliary audio support
814
815' device ID for aux device mapper
816Const AUX_MAPPER = (-1)
817
818' Auxiliary audio device capabilities structure
819Type AUXCAPSW
820 wMid As Word
821 wPid As Word
822 vDriverVersion As MMVERSION
823 szPname[ELM(MAXPNAMELEN)] As WCHAR
824 wTechnology As Word
825 wReserved1 As Word
826 dwSupport As DWord
827End Type
828TypeDef PAUXCAPSW = *AUXCAPSW
829TypeDef NPAUXCAPSW = *AUXCAPSW
830TypeDef LPAUXCAPSW = *AUXCAPSW
831Type AUXCAPSA
832 wMid As Word
833 wPid As Word
834 vDriverVersion As MMVERSION
835 szPname[ELM(MAXPNAMELEN)] As SByte
836 wTechnology As Word
837 wReserved1 As Word
838 dwSupport As DWord
839End Type
840TypeDef PAUXCAPSA = *AUXCAPSA
841TypeDef NPAUXCAPSA = *AUXCAPSA
842TypeDef LPAUXCAPSA = *AUXCAPSA
843#ifdef UNICODE
844TypeDef AUXCAPS = AUXCAPSA
845#else
846TypeDef AUXCAPS = AUXCAPSA
847#endif
848TypeDef PAUXCAPS = *AUXCAPS
849TypeDef NPAUXCAPS = *AUXCAPS
850TypeDef LPAUXCAPS = *AUXCAPS
851
852Const AUXCAPS_CDAUDIO = 1
853Const AUXCAPS_AUXIN = 2
854
855Const AUXCAPS_VOLUME = &H0001
856Const AUXCAPS_LRVOLUME = &H0002
857
858' auxiliary audio function prototypes
859Declare Function auxGetNumDevs Lib "winmm" () As DWord
860Declare Function auxGetDevCaps Lib "winmm" Alias _FuncName_auxGetDevCaps (uDeviceID As DWord, pac As *AUXCAPS, cbac As DWord) As MMRESULT
861Declare Function auxSetVolume Lib "winmm" (uDeviceID As DWord, dwVolume As DWord) As MMRESULT
862Declare Function auxGetVolume Lib "winmm" (uDeviceID As DWord, pdwVolume As *DWord) As MMRESULT
863Declare Function auxOutMessage Lib "winmm" (uDeviceID As DWord, uMsg As DWord, dw1 As DWord, dw2 As DWord) As MMRESULT
864
865
866'--------------------------------------------------------
867' Mixer Support
868
869TypeDef HMIXEROBJ = VoidPtr
870TypeDef LPHMIXEROBJ = HMIXEROBJ
871TypeDef HMIXER = VoidPtr
872TypeDef LPHMIXER = *HMIXER
873
874Const MIXER_SHORT_NAME_CHARS = 16
875Const MIXER_LONG_NAME_CHARS = 64
876
877Const MIXERR_INVALLINE = (MIXERR_BASE + 0)
878Const MIXERR_INVALCONTROL = (MIXERR_BASE + 1)
879Const MIXERR_INVALVALUE = (MIXERR_BASE + 2)
880Const MIXERR_LASTERROR = (MIXERR_BASE + 2)
881
882Const MIXER_OBJECTF_HANDLE = &H80000000
883Const MIXER_OBJECTF_MIXER = &H00000000
884Const MIXER_OBJECTF_HMIXER = (MIXER_OBJECTF_HANDLE OR MIXER_OBJECTF_MIXER)
885Const MIXER_OBJECTF_WAVEOUT = &H10000000
886Const MIXER_OBJECTF_HWAVEOUT = (MIXER_OBJECTF_HANDLE OR MIXER_OBJECTF_WAVEOUT)
887Const MIXER_OBJECTF_WAVEIN = &H20000000
888Const MIXER_OBJECTF_HWAVEIN = (MIXER_OBJECTF_HANDLE OR MIXER_OBJECTF_WAVEIN)
889Const MIXER_OBJECTF_MIDIOUT = &H30000000
890Const MIXER_OBJECTF_HMIDIOUT = (MIXER_OBJECTF_HANDLE OR MIXER_OBJECTF_MIDIOUT)
891Const MIXER_OBJECTF_MIDIIN = &H40000000
892Const MIXER_OBJECTF_HMIDIIN = (MIXER_OBJECTF_HANDLE OR MIXER_OBJECTF_MIDIIN)
893Const MIXER_OBJECTF_AUX = &H50000000
894
895Declare Function mixerGetNumDevs Lib "winmm" () As DWord
896
897Type MIXERCAPSW
898 wMid As Word
899 wPid As Word
900 vDriverVersion As MMVERSION
901 szPname[ELM(MAXPNAMELEN)] As WCHAR
902 fdwSupport As DWord
903 cDestinations As DWord
904End Type
905TypeDef PMIXERCAPSW = *MIXERCAPSW
906TypeDef LPMIXERCAPSW = *MIXERCAPSW
907Type MIXERCAPSA
908 wMid As Word
909 wPid As Word
910 vDriverVersion As MMVERSION
911 szPname[ELM(MAXPNAMELEN)] As Char
912 fdwSupport As DWord
913 cDestinations As DWord
914End Type
915TypeDef PMIXERCAPSA = *MIXERCAPSA
916TypeDef LPMIXERCAPSA = *MIXERCAPSA
917#ifdef UNICODE
918TypeDef MIXERCAPS = MIXERCAPSW
919#else
920TypeDef MIXERCAPS = MIXERCAPSA
921#endif
922TypeDef PMIXERCAPS = *MIXERCAPS
923TypeDef LPMIXERCAPS = *MIXERCAPS
924
925Declare Function mixerGetDevCaps Lib "winmm" Alias _FuncName_mixerGetDevCaps (uMxId As DWord, pmxcaps As *MIXERCAPS, cbmxcaps As DWord) As MMRESULT
926Declare Function mixerOpen Lib "winmm" (phmx As *HMIXER, uMxId As DWord, dwCallback As DWord, dwInstance As DWord, fdwOpen As DWord) As MMRESULT
927Declare Function mixerClose Lib "winmm" (hmx As HMIXER) As MMRESULT
928Declare Function mixerMessage Lib "winmm" (hmx As HMIXER, uMsg As DWord, dwParam1 As DWord, dwParam2 As DWord) As DWord
929
930Type _MMSYSTEM_TARGETW
931 dwType As DWord
932 dwDeviceID As DWord
933 wMid As Word
934 wPid As Word
935 vDriverVersion As MMVERSION
936 szPname[ELM(MAXPNAMELEN)] As WCHAR
937End Type
938
939Type MIXERLINEW
940 cbStruct As DWord
941 dwDestination As DWord
942 dwSource As DWord
943 dwLineID As DWord
944 fdwLine As DWord
945 dwUser As DWord
946 dwComponentType As DWord
947 cChannels As DWord
948 cConnections As DWord
949 cControls As DWord
950 szShortName[ELM(MIXER_SHORT_NAME_CHARS)] As WCHAR
951 szName[ELM(MIXER_LONG_NAME_CHARS)] As WCHAR
952 Target As _MMSYSTEM_TARGETW
953End Type
954TypeDef PMIXERLINEW = *MIXERLINEW
955TypeDef LPMIXERLINEW = *MIXERLINEW
956
957Type _MMSYSTEM_TARGETA
958 dwType As DWord
959 dwDeviceID As DWord
960 wMid As Word
961 wPid As Word
962 vDriverVersion As MMVERSION
963 szPname[ELM(MAXPNAMELEN)] As SByte
964End Type
965
966Type MIXERLINEA
967 cbStruct As DWord
968 dwDestination As DWord
969 dwSource As DWord
970 dwLineID As DWord
971 fdwLine As DWord
972 dwUser As DWord
973 dwComponentType As DWord
974 cChannels As DWord
975 cConnections As DWord
976 cControls As DWord
977 szShortName[ELM(MIXER_SHORT_NAME_CHARS)] As SByte
978 szName[ELM(MIXER_LONG_NAME_CHARS)] As SByte
979 Target As _MMSYSTEM_TARGETA
980End Type
981TypeDef PMIXERLINEA = *MIXERLINEA
982TypeDef LPMIXERLINEA = *MIXERLINEA
983#ifdef UNICODE
984TypeDef MIXERLINE = MIXERLINEW
985#else
986TypeDef MIXERLINE = MIXERLINEA
987#endif
988TypeDef PMIXERLINE = *MIXERLINE
989TypeDef LPMIXERLINE = *MIXERLINE
990
991' MIXERLINE.fdwLine
992Const MIXERLINE_LINEF_ACTIVE = &H00000001
993Const MIXERLINE_LINEF_DISCONNECTED = &H00008000
994Const MIXERLINE_LINEF_SOURCE = &H80000000
995
996' MIXERLINE.dwComponentType
997Const MIXERLINE_COMPONENTTYPE_DST_FIRST = &H00000000
998Const MIXERLINE_COMPONENTTYPE_DST_UNDEFINED = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 0)
999Const MIXERLINE_COMPONENTTYPE_DST_DIGITAL = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 1)
1000Const MIXERLINE_COMPONENTTYPE_DST_LINE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 2)
1001Const MIXERLINE_COMPONENTTYPE_DST_MONITOR = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 3)
1002Const MIXERLINE_COMPONENTTYPE_DST_SPEAKERS = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 4)
1003Const MIXERLINE_COMPONENTTYPE_DST_HEADPHONES = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 5)
1004Const MIXERLINE_COMPONENTTYPE_DST_TELEPHONE = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 6)
1005Const MIXERLINE_COMPONENTTYPE_DST_WAVEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 7)
1006Const MIXERLINE_COMPONENTTYPE_DST_VOICEIN = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8)
1007Const MIXERLINE_COMPONENTTYPE_DST_LAST = (MIXERLINE_COMPONENTTYPE_DST_FIRST + 8)
1008
1009Const MIXERLINE_COMPONENTTYPE_SRC_FIRST = &H00001000
1010Const MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0)
1011Const MIXERLINE_COMPONENTTYPE_SRC_DIGITAL = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1)
1012Const MIXERLINE_COMPONENTTYPE_SRC_LINE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2)
1013Const MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3)
1014Const MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4)
1015Const MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5)
1016Const MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6)
1017Const MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7)
1018Const MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8)
1019Const MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9)
1020Const MIXERLINE_COMPONENTTYPE_SRC_ANALOG = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10)
1021Const MIXERLINE_COMPONENTTYPE_SRC_LAST = (MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10)
1022
1023' MIXERLINE.Target.dwType
1024Const MIXERLINE_TARGETTYPE_UNDEFINED = 0
1025Const MIXERLINE_TARGETTYPE_WAVEOUT = 1
1026Const MIXERLINE_TARGETTYPE_WAVEIN = 2
1027Const MIXERLINE_TARGETTYPE_MIDIOUT = 3
1028Const MIXERLINE_TARGETTYPE_MIDIIN = 4
1029Const MIXERLINE_TARGETTYPE_AUX = 5
1030
1031Declare Function mixerGetLineInfo Lib "winmm" Alias _FuncName_mixerGetLineInfo (hmxobj As HMIXEROBJ, pmxl As *MIXERLINE, fdwInfo As DWord) As MMRESULT
1032
1033Const MIXER_GETLINEINFOF_DESTINATION = &H00000000
1034Const MIXER_GETLINEINFOF_SOURCE = &H00000001
1035Const MIXER_GETLINEINFOF_LINEID = &H00000002
1036Const MIXER_GETLINEINFOF_COMPONENTTYPE = &H00000003
1037Const MIXER_GETLINEINFOF_TARGETTYPE = &H00000004
1038Const MIXER_GETLINEINFOF_QUERYMASK = &H0000000F
1039
1040Declare Function mixerGetID Lib "winmm" (hmxobj As HMIXEROBJ, puMxId As *DWord, fdwId As DWord) As MMRESULT
1041
1042Type MIXERCONTROLW
1043 cbStruct As DWord
1044 dwControlID As DWord
1045 dwControlType As DWord
1046 fdwControl As DWord
1047 cMultipleItems As DWord
1048 szShortName[ELM(MIXER_SHORT_NAME_CHARS)] As WCHAR
1049 szName[ELM(MIXER_LONG_NAME_CHARS)] As WCHAR
1050 Bounds[ELM(6)] As DWord
1051 Metrics[ELM(6)] As DWord
1052End Type
1053TypeDef PMIXERCONTROLW = *MIXERCONTROLW
1054TypeDef LPMIXERCONTROLW = *MIXERCONTROLW
1055Type MIXERCONTROLA
1056 cbStruct As DWord
1057 dwControlID As DWord
1058 dwControlType As DWord
1059 fdwControl As DWord
1060 cMultipleItems As DWord
1061 szShortName[ELM(MIXER_SHORT_NAME_CHARS)] As SByte
1062 szName[ELM(MIXER_LONG_NAME_CHARS)] As SByte
1063 Bounds[ELM(6)] As DWord
1064 Metrics[ELM(6)] As DWord
1065End Type
1066TypeDef PMIXERCONTROLA = *MIXERCONTROLA
1067TypeDef LPMIXERCONTROLA = *MIXERCONTROLA
1068#ifdef UNICODE
1069TypeDef MIXERCONTROL = MIXERCONTROLW
1070#else
1071TypeDef MIXERCONTROL = MIXERCONTROLA
1072#endif
1073TypeDef PMIXERCONTROL = *MIXERCONTROL
1074TypeDef LPMIXERCONTROL = *MIXERCONTROL
1075
1076' MIXERCONTROL.fdwControl
1077Const MIXERCONTROL_CONTROLF_UNIFORM = &H00000001
1078Const MIXERCONTROL_CONTROLF_MULTIPLE = &H00000002
1079Const MIXERCONTROL_CONTROLF_DISABLED = &H80000000
1080
1081' MIXERCONTROL_CONTROLTYPE_xxx
1082Const MIXERCONTROL_CT_CLASS_MASK = &HF0000000
1083Const MIXERCONTROL_CT_CLASS_CUSTOM = &H00000000
1084Const MIXERCONTROL_CT_CLASS_METER = &H10000000
1085Const MIXERCONTROL_CT_CLASS_SWITCH = &H20000000
1086Const MIXERCONTROL_CT_CLASS_NUMBER = &H30000000
1087Const MIXERCONTROL_CT_CLASS_SLIDER = &H40000000
1088Const MIXERCONTROL_CT_CLASS_FADER = &H50000000
1089Const MIXERCONTROL_CT_CLASS_TIME = &H60000000
1090Const MIXERCONTROL_CT_CLASS_LIST = &H70000000
1091Const MIXERCONTROL_CT_SUBCLASS_MASK = &H0F000000
1092Const MIXERCONTROL_CT_SC_SWITCH_BOOLEAN = &H00000000
1093Const MIXERCONTROL_CT_SC_SWITCH_BUTTON = &H01000000
1094Const MIXERCONTROL_CT_SC_METER_POLLED = &H00000000
1095Const MIXERCONTROL_CT_SC_TIME_MICROSECS = &H00000000
1096Const MIXERCONTROL_CT_SC_TIME_MILLISECS = &H01000000
1097Const MIXERCONTROL_CT_SC_LIST_SINGLE = &H00000000
1098Const MIXERCONTROL_CT_SC_LIST_MULTIPLE = &H01000000
1099Const MIXERCONTROL_CT_UNITS_MASK = &H00FF0000
1100Const MIXERCONTROL_CT_UNITS_CUSTOM = &H00000000
1101Const MIXERCONTROL_CT_UNITS_BOOLEAN = &H00010000
1102Const MIXERCONTROL_CT_UNITS_SIGNED = &H00020000
1103Const MIXERCONTROL_CT_UNITS_UNSIGNED = &H00030000
1104Const MIXERCONTROL_CT_UNITS_DECIBELS = &H00040000
1105Const MIXERCONTROL_CT_UNITS_PERCENT = &H00050000
1106
1107' MIXERCONTROL.dwControlType
1108Const MIXERCONTROL_CONTROLTYPE_CUSTOM = (MIXERCONTROL_CT_CLASS_CUSTOM OR MIXERCONTROL_CT_UNITS_CUSTOM)
1109Const MIXERCONTROL_CONTROLTYPE_BOOLEANMETER = (MIXERCONTROL_CT_CLASS_METER OR MIXERCONTROL_CT_SC_METER_POLLED OR MIXERCONTROL_CT_UNITS_BOOLEAN)
1110Const MIXERCONTROL_CONTROLTYPE_SIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER OR MIXERCONTROL_CT_SC_METER_POLLED OR MIXERCONTROL_CT_UNITS_SIGNED)
1111Const MIXERCONTROL_CONTROLTYPE_PEAKMETER = (MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1)
1112Const MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER = (MIXERCONTROL_CT_CLASS_METER OR MIXERCONTROL_CT_SC_METER_POLLED OR MIXERCONTROL_CT_UNITS_UNSIGNED)
1113Const MIXERCONTROL_CONTROLTYPE_BOOLEAN = (MIXERCONTROL_CT_CLASS_SWITCH OR MIXERCONTROL_CT_SC_SWITCH_BOOLEAN OR MIXERCONTROL_CT_UNITS_BOOLEAN)
1114Const MIXERCONTROL_CONTROLTYPE_ONOFF = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1)
1115Const MIXERCONTROL_CONTROLTYPE_MUTE = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2)
1116Const MIXERCONTROL_CONTROLTYPE_MONO = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3)
1117Const MIXERCONTROL_CONTROLTYPE_LOUDNESS = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4)
1118Const MIXERCONTROL_CONTROLTYPE_STEREOENH = (MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5)
1119Const MIXERCONTROL_CONTROLTYPE_BUTTON = (MIXERCONTROL_CT_CLASS_SWITCH OR MIXERCONTROL_CT_SC_SWITCH_BUTTON OR MIXERCONTROL_CT_UNITS_BOOLEAN)
1120Const MIXERCONTROL_CONTROLTYPE_DECIBELS = (MIXERCONTROL_CT_CLASS_NUMBER OR MIXERCONTROL_CT_UNITS_DECIBELS)
1121Const MIXERCONTROL_CONTROLTYPE_SIGNED = (MIXERCONTROL_CT_CLASS_NUMBER OR MIXERCONTROL_CT_UNITS_SIGNED)
1122Const MIXERCONTROL_CONTROLTYPE_UNSIGNED = (MIXERCONTROL_CT_CLASS_NUMBER OR MIXERCONTROL_CT_UNITS_UNSIGNED)
1123Const MIXERCONTROL_CONTROLTYPE_PERCENT = (MIXERCONTROL_CT_CLASS_NUMBER OR MIXERCONTROL_CT_UNITS_PERCENT)
1124Const MIXERCONTROL_CONTROLTYPE_SLIDER = (MIXERCONTROL_CT_CLASS_SLIDER OR MIXERCONTROL_CT_UNITS_SIGNED)
1125Const MIXERCONTROL_CONTROLTYPE_PAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 1)
1126Const MIXERCONTROL_CONTROLTYPE_QSOUNDPAN = (MIXERCONTROL_CONTROLTYPE_SLIDER + 2)
1127Const MIXERCONTROL_CONTROLTYPE_FADER = (MIXERCONTROL_CT_CLASS_FADER OR MIXERCONTROL_CT_UNITS_UNSIGNED)
1128Const MIXERCONTROL_CONTROLTYPE_VOLUME = (MIXERCONTROL_CONTROLTYPE_FADER + 1)
1129Const MIXERCONTROL_CONTROLTYPE_BASS = (MIXERCONTROL_CONTROLTYPE_FADER + 2)
1130Const MIXERCONTROL_CONTROLTYPE_TREBLE = (MIXERCONTROL_CONTROLTYPE_FADER + 3)
1131Const MIXERCONTROL_CONTROLTYPE_EQUALIZER = (MIXERCONTROL_CONTROLTYPE_FADER + 4)
1132Const MIXERCONTROL_CONTROLTYPE_SINGLESELECT = (MIXERCONTROL_CT_CLASS_LIST OR MIXERCONTROL_CT_SC_LIST_SINGLE OR MIXERCONTROL_CT_UNITS_BOOLEAN)
1133Const MIXERCONTROL_CONTROLTYPE_MUX = (MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1)
1134Const MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT = (MIXERCONTROL_CT_CLASS_LIST OR MIXERCONTROL_CT_SC_LIST_MULTIPLE OR MIXERCONTROL_CT_UNITS_BOOLEAN)
1135Const MIXERCONTROL_CONTROLTYPE_MIXER = (MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1)
1136Const MIXERCONTROL_CONTROLTYPE_MICROTIME = (MIXERCONTROL_CT_CLASS_TIME OR MIXERCONTROL_CT_SC_TIME_MICROSECS OR MIXERCONTROL_CT_UNITS_UNSIGNED)
1137Const MIXERCONTROL_CONTROLTYPE_MILLITIME = (MIXERCONTROL_CT_CLASS_TIME OR MIXERCONTROL_CT_SC_TIME_MILLISECS OR MIXERCONTROL_CT_UNITS_UNSIGNED)
1138
1139Type MIXERLINECONTROLSW
1140 cbStruct As DWord
1141 dwLineID As DWord
1142 dwControl_ID_Type As DWord
1143 cControls As DWord
1144 cbmxctrl As DWord
1145 pamxctrl As *MIXERCONTROLW
1146End Type
1147TypeDef PMIXERLINECONTROLSW = *MIXERLINECONTROLSW
1148TypeDef LPMIXERLINECONTROLSW = *MIXERLINECONTROLSW
1149Type MIXERLINECONTROLSA
1150 cbStruct As DWord
1151 dwLineID As DWord
1152 dwControl_ID_Type As DWord
1153 cControls As DWord
1154 cbmxctrl As DWord
1155 pamxctrl As *MIXERCONTROLA
1156End Type
1157TypeDef PMIXERLINECONTROLSA = *MIXERLINECONTROLSA
1158TypeDef LPMIXERLINECONTROLSA = *MIXERLINECONTROLSA
1159#ifdef UNICODE
1160TypeDef MIXERLINECONTROLS = MIXERLINECONTROLSA
1161#else
1162TypeDef MIXERLINECONTROLS = MIXERLINECONTROLSA
1163#endif
1164TypeDef PMIXERLINECONTROLS = *MIXERLINECONTROLS
1165TypeDef LPMIXERLINECONTROLS = *MIXERLINECONTROLS
1166
1167Declare Function mixerGetLineControls Lib "winmm" Alias _FuncName_mixerGetLineControls (hmxobj As HMIXEROBJ, pmxlc As *MIXERLINECONTROLS, fdwControls As DWord) As MMRESULT
1168
1169Const MIXER_GETLINECONTROLSF_ALL = &H00000000
1170Const MIXER_GETLINECONTROLSF_ONEBYID = &H00000001
1171Const MIXER_GETLINECONTROLSF_ONEBYTYPE = &H00000002
1172Const MIXER_GETLINECONTROLSF_QUERYMASK = &H0000000F
1173
1174Type MIXERCONTROLDETAILS
1175 cbStruct As DWord
1176 dwControlID As DWord
1177 cChannels As DWord
1178 cMultipleItems As DWord
1179 cbDetails As DWord
1180 paDetails As VoidPtr
1181End Type
1182TypeDef PMIXERCONTROLDETAILS = *MIXERCONTROLDETAILS
1183TypeDef LPMIXERCONTROLDETAILS = *MIXERCONTROLDETAILS
1184
1185Type MIXERCONTROLDETAILS_LISTTEXTW
1186 dwParam1 As DWord
1187 dwParam2 As DWord
1188 szName[ELM(MIXER_LONG_NAME_CHARS)] As WCHAR
1189End Type
1190TypeDef PMIXERCONTROLDETAILS_LISTTEXTW = *MIXERCONTROLDETAILS_LISTTEXTW
1191TypeDef LPMIXERCONTROLDETAILS_LISTTEXTW = *MIXERCONTROLDETAILS_LISTTEXTW
1192Type MIXERCONTROLDETAILS_LISTTEXTA
1193 dwParam1 As DWord
1194 dwParam2 As DWord
1195 szName[ELM(MIXER_LONG_NAME_CHARS)] As SByte
1196End Type
1197TypeDef PMIXERCONTROLDETAILS_LISTTEXTA = *MIXERCONTROLDETAILS_LISTTEXTA
1198TypeDef LPMIXERCONTROLDETAILS_LISTTEXTA = *MIXERCONTROLDETAILS_LISTTEXTA
1199#ifdef UNICODE
1200TypeDef MIXERCONTROLDETAILS_LISTTEXT = MIXERCONTROLDETAILS_LISTTEXTW
1201#else
1202TypeDef MIXERCONTROLDETAILS_LISTTEXT = MIXERCONTROLDETAILS_LISTTEXTA
1203#endif
1204TypeDef PMIXERCONTROLDETAILS_LISTTEXT = *MIXERCONTROLDETAILS_LISTTEXT
1205TypeDef LPMIXERCONTROLDETAILS_LISTTEXT = *MIXERCONTROLDETAILS_LISTTEXT
1206
1207Type MIXERCONTROLDETAILS_BOOLEAN
1208 fValue As Long
1209End Type
1210TypeDef PMIXERCONTROLDETAILS_BOOLEAN = *MIXERCONTROLDETAILS_BOOLEAN
1211TypeDef LPMIXERCONTROLDETAILS_BOOLEAN = *MIXERCONTROLDETAILS_BOOLEAN
1212
1213Type MIXERCONTROLDETAILS_SIGNED
1214 lValue As Long
1215End Type
1216TypeDef PMIXERCONTROLDETAILS_SIGNED = *MIXERCONTROLDETAILS_SIGNED
1217TypeDef LPMIXERCONTROLDETAILS_SIGNED = *MIXERCONTROLDETAILS_SIGNED
1218
1219Type MIXERCONTROLDETAILS_UNSIGNED
1220 dwValue As DWord
1221End Type
1222TypeDef PMIXERCONTROLDETAILS_UNSIGNED = *MIXERCONTROLDETAILS_UNSIGNED
1223TypeDef LPMIXERCONTROLDETAILS_UNSIGNED = *MIXERCONTROLDETAILS_UNSIGNED
1224
1225Declare Function mixerGetControlDetailsA Lib "winmm" (hmxobj As HMIXEROBJ, pmxcd As *MIXERCONTROLDETAILS, fdwDetails As DWord) As MMRESULT
1226Declare Function mixerGetControlDetailsW Lib "winmm" (hmxobj As HMIXEROBJ, pmxcd As *MIXERCONTROLDETAILS, fdwDetails As DWord) As MMRESULT
1227Declare Function mixerGetControlDetails Lib "winmm" Alias _FuncName_mixerGetControlDetails (hmxobj As HMIXEROBJ, pmxcd As *MIXERCONTROLDETAILS, fdwDetails As DWord) As MMRESULT
1228
1229Const MIXER_GETCONTROLDETAILSF_VALUE = &H00000000
1230Const MIXER_GETCONTROLDETAILSF_LISTTEXT = &H00000001
1231Const MIXER_GETCONTROLDETAILSF_QUERYMASK = &H0000000F
1232
1233Declare Function mixerSetControlDetails Lib "winmm" (hmxobj As HMIXEROBJ, pmxcd As *MIXERCONTROLDETAILS, fdwDetails As DWord) As MMRESULT
1234
1235Const MIXER_SETCONTROLDETAILSF_VALUE = &H00000000
1236Const MIXER_SETCONTROLDETAILSF_CUSTOM = &H00000001
1237Const MIXER_SETCONTROLDETAILSF_QUERYMASK = &H0000000F
1238
1239
1240'--------------------------------------------------------
1241' Timer support
1242
1243' timer error
1244Const TIMERR_NOERROR = (0)
1245Const TIMERR_NOCANDO = (TIMERR_BASE+1)
1246Const TIMERR_STRUCT = (TIMERR_BASE+33)
1247
1248TypeDef LPTIMECALLBACK = *Sub(uTimerID As DWord, uMsg As DWord, dwUser As DWord, dw1 As DWord, dw2 As DWord)
1249
1250Const TIME_ONESHOT = &H0000
1251Const TIME_PERIODIC = &H0001
1252
1253Const TIME_CALLBACK_FUNCTION = &H0000
1254Const TIME_CALLBACK_EVENT_SET = &H0010
1255Const TIME_CALLBACK_EVENT_PULSE = &H0020
1256
1257' timer device capabilities data structure
1258Type TIMECAPS
1259 wPeriodMin As DWord
1260 wPeriodMax As DWord
1261End Type
1262TypeDef PTIMECAPS = *TIMECAPS
1263TypeDef NPTIMECAPS = *TIMECAPS
1264TypeDef LPTIMECAPS = *TIMECAPS
1265
1266' timer function prototypes
1267Declare Function timeGetSystemTime Lib "winmm" (pmmt As *MMTIME, cbmmt As DWord) As MMRESULT
1268Declare Function timeGetTime Lib "winmm" () As DWord
1269Declare Function timeSetEvent Lib "winmm" (uDelay As DWord, uResolution As DWord, fptc As LPTIMECALLBACK, dwUser As DWord, fuEvent As DWord) As MMRESULT
1270Declare Function timeKillEvent Lib "winmm" (uTimerID As DWord) As MMRESULT
1271Declare Function timeGetDevCaps Lib "winmm" (ptc As *TIMECAPS, cbtc As DWord) As MMRESULT
1272Declare Function timeBeginPeriod Lib "winmm" (uPeriod As DWord) As MMRESULT
1273Declare Function timeEndPeriod Lib "winmm" (uPeriod As DWord) As MMRESULT
1274
1275
1276'--------------------------------------------------------
1277' Joystick support
1278
1279' joystick error
1280Const JOYERR_NOERROR = (0)
1281Const JOYERR_PARMS = (JOYERR_BASE+5)
1282Const JOYERR_NOCANDO = (JOYERR_BASE+6)
1283Const JOYERR_UNPLUGGED = (JOYERR_BASE+7)
1284
1285' constants used with JOYINFO and JOYINFOEX structures and MM_JOY* messages
1286Const JOY_BUTTON1 = &H0001
1287Const JOY_BUTTON2 = &H0002
1288Const JOY_BUTTON3 = &H0004
1289Const JOY_BUTTON4 = &H0008
1290Const JOY_BUTTON1CHG = &H0100
1291Const JOY_BUTTON2CHG = &H0200
1292Const JOY_BUTTON3CHG = &H0400
1293Const JOY_BUTTON4CHG = &H0800
1294
1295' constants used with JOYINFOEX
1296Const JOY_BUTTON5 = &H00000010
1297Const JOY_BUTTON6 = &H00000020
1298Const JOY_BUTTON7 = &H00000040
1299Const JOY_BUTTON8 = &H00000080
1300Const JOY_BUTTON9 = &H00000100
1301Const JOY_BUTTON10 = &H00000200
1302Const JOY_BUTTON11 = &H00000400
1303Const JOY_BUTTON12 = &H00000800
1304Const JOY_BUTTON13 = &H00001000
1305Const JOY_BUTTON14 = &H00002000
1306Const JOY_BUTTON15 = &H00004000
1307Const JOY_BUTTON16 = &H00008000
1308Const JOY_BUTTON17 = &H00010000
1309Const JOY_BUTTON18 = &H00020000
1310Const JOY_BUTTON19 = &H00040000
1311Const JOY_BUTTON20 = &H00080000
1312Const JOY_BUTTON21 = &H00100000
1313Const JOY_BUTTON22 = &H00200000
1314Const JOY_BUTTON23 = &H00400000
1315Const JOY_BUTTON24 = &H00800000
1316Const JOY_BUTTON25 = &H01000000
1317Const JOY_BUTTON26 = &H02000000
1318Const JOY_BUTTON27 = &H04000000
1319Const JOY_BUTTON28 = &H08000000
1320Const JOY_BUTTON29 = &H10000000
1321Const JOY_BUTTON30 = &H20000000
1322Const JOY_BUTTON31 = &H40000000
1323Const JOY_BUTTON32 = &H80000000
1324
1325' constants used with JOYINFOEX structure
1326Const JOY_POVCENTERED = (-1)
1327Const JOY_POVFORWARD = 0
1328Const JOY_POVRIGHT = 9000
1329Const JOY_POVBACKWARD = 18000
1330Const JOY_POVLEFT = 27000
1331
1332Const JOY_RETURNX = &H00000001
1333Const JOY_RETURNY = &H00000002
1334Const JOY_RETURNZ = &H00000004
1335Const JOY_RETURNR = &H00000008
1336Const JOY_RETURNU = &H00000010
1337Const JOY_RETURNV = &H00000020
1338Const JOY_RETURNPOV = &H00000040
1339Const JOY_RETURNBUTTONS = &H00000080
1340Const JOY_RETURNRAWDATA = &H00000100
1341Const JOY_RETURNPOVCTS = &H00000200
1342Const JOY_RETURNCENTERED = &H00000400
1343Const JOY_USEDEADZONE = &H00000800
1344Const JOY_RETURNALL = (JOY_RETURNX OR JOY_RETURNY OR JOY_RETURNZ OR JOY_RETURNR OR JOY_RETURNU OR JOY_RETURNV OR JOY_RETURNPOV OR JOY_RETURNBUTTONS)
1345Const JOY_CAL_READALWAYS = &H00010000
1346Const JOY_CAL_READXYONLY = &H00020000
1347Const JOY_CAL_READ3 = &H00040000
1348Const JOY_CAL_READ4 = &H00080000
1349Const JOY_CAL_READXONLY = &H00100000
1350Const JOY_CAL_READYONLY = &H00200000
1351Const JOY_CAL_READ5 = &H00400000
1352Const JOY_CAL_READ6 = &H00800000
1353Const JOY_CAL_READZONLY = &H01000000
1354Const JOY_CAL_READRONLY = &H02000000
1355Const JOY_CAL_READUONLY = &H04000000
1356Const JOY_CAL_READVONLY = &H08000000
1357
1358' joystick ID constants
1359Const JOYSTICKID1 = 0
1360Const JOYSTICKID2 = 1
1361
1362' joystick driver capabilites
1363Const JOYCAPS_HASZ = &H0001
1364Const JOYCAPS_HASR = &H0002
1365Const JOYCAPS_HASU = &H0004
1366Const JOYCAPS_HASV = &H0008
1367Const JOYCAPS_HASPOV = &H0010
1368Const JOYCAPS_POV4DIR = &H0020
1369Const JOYCAPS_POVCTS = &H0040
1370
1371Type JOYCAPSW
1372 wMid As Word
1373 wPid As Word
1374 szPname[ELM(MAXPNAMELEN)] As WCHAR
1375 wXmin As DWord
1376 wXmax As DWord
1377 wYmin As DWord
1378 wYmax As DWord
1379 wZmin As DWord
1380 wZmax As DWord
1381 wNumButtons As DWord
1382 wPeriodMin As DWord
1383 wPeriodMax As DWord
1384 wRmin As DWord
1385 wRmax As DWord
1386 wUmin As DWord
1387 wUmax As DWord
1388 wVmin As DWord
1389 wVmax As DWord
1390 wCaps As DWord
1391 wMaxAxes As DWord
1392 wNumAxes As DWord
1393 wMaxButtons As DWord
1394 szRegKey[ELM(MAXPNAMELEN)] As WCHAR
1395 szOEMVxD[ELM(MAX_JOYSTICKOEMVXDNAME)] As WCHAR
1396End Type
1397TypeDef PJOYCAPSW = *JOYCAPSW
1398TypeDef NPJOYCAPSW = *JOYCAPSW
1399TypeDef LPJOYCAPSW = *JOYCAPSW
1400Type JOYCAPSA
1401 wMid As Word
1402 wPid As Word
1403 szPname[ELM(MAXPNAMELEN)] As SByte
1404 wXmin As DWord
1405 wXmax As DWord
1406 wYmin As DWord
1407 wYmax As DWord
1408 wZmin As DWord
1409 wZmax As DWord
1410 wNumButtons As DWord
1411 wPeriodMin As DWord
1412 wPeriodMax As DWord
1413 wRmin As DWord
1414 wRmax As DWord
1415 wUmin As DWord
1416 wUmax As DWord
1417 wVmin As DWord
1418 wVmax As DWord
1419 wCaps As DWord
1420 wMaxAxes As DWord
1421 wNumAxes As DWord
1422 wMaxButtons As DWord
1423 szRegKey[ELM(MAXPNAMELEN)] As SByte
1424 szOEMVxD[ELM(MAX_JOYSTICKOEMVXDNAME)] As SByte
1425End Type
1426TypeDef PJOYCAPSA = *JOYCAPSA
1427TypeDef NPJOYCAPSA = *JOYCAPSA
1428TypeDef LPJOYCAPSA = *JOYCAPSA
1429#ifdef UNICODE
1430TypeDef JOYCAPS = JOYCAPSW
1431#else
1432TypeDef JOYCAPS = JOYCAPSA
1433#endif
1434TypeDef PJOYCAPS = PJOYCAPSA
1435TypeDef NPJOYCAPS = NPJOYCAPSA
1436TypeDef LPJOYCAPS = LPJOYCAPSA
1437
1438Type JOYINFO
1439 wXpos As DWord
1440 wYpos As DWord
1441 wZpos As DWord
1442 wButtons As DWord
1443End Type
1444TypeDef PJOYINFO = *JOYINFO
1445TypeDef NPJOYINFO = *JOYINFO
1446TypeDef LPJOYINFO = *JOYINFO
1447
1448Type JOYINFOEX
1449 dwSize As DWord
1450 dwFlags As DWord
1451 dwXpos As DWord
1452 dwYpos As DWord
1453 dwZpos As DWord
1454 dwRpos As DWord
1455 dwUpos As DWord
1456 dwVpos As DWord
1457 dwButtons As DWord
1458 dwButtonNumber As DWord
1459 dwPOV As DWord
1460 dwReserved1 As DWord
1461 dwReserved2 As DWord
1462End Type
1463TypeDef PJOYINFOEX = *JOYINFOEX
1464TypeDef NPJOYINFOEX = *JOYINFOEX
1465TypeDef LPJOYINFOEX = *JOYINFOEX
1466
1467' joystick function prototypes
1468Declare Function joyGetNumDevs Lib "winmm" () As DWord
1469Declare Function joyGetDevCaps Lib "winmm" Alias _FuncName_joyGetDevCaps (uJoyID As DWord, pjc As *JOYCAPS, cbjc As DWord) As MMRESULT
1470Declare Function joyGetPos Lib "winmm" (uJoyID As DWord, pji As *JOYINFO) As MMRESULT
1471Declare Function joyGetPosEx Lib "winmm" (uJoyID As DWord, pji As *JOYINFOEX) As MMRESULT
1472Declare Function joyGetThreshold Lib "winmm" (uJoyID As DWord, puThreshold As *DWord) As MMRESULT
1473Declare Function joyReleaseCapture Lib "winmm" (uJoyID As DWord) As MMRESULT
1474Declare Function joySetCapture Lib "winmm" (hwnd As HWND, uJoyID As DWord, uPeriod As DWord, fChanged As BOOL) As MMRESULT
1475Declare Function joySetThreshold Lib "winmm" (uJoyID As DWord, uThreshold As DWord) As MMRESULT
1476
1477
1478'--------------------------------------------------------
1479' Multimedia File I/O support
1480
1481' MMIO error return values
1482Const MMIOERR_BASE = 256
1483Const MMIOERR_FILENOTFOUND = (MMIOERR_BASE + 1)
1484Const MMIOERR_OUTOFMEMORY = (MMIOERR_BASE + 2)
1485Const MMIOERR_CANNOTOPEN = (MMIOERR_BASE + 3)
1486Const MMIOERR_CANNOTCLOSE = (MMIOERR_BASE + 4)
1487Const MMIOERR_CANNOTREAD = (MMIOERR_BASE + 5)
1488Const MMIOERR_CANNOTWRITE = (MMIOERR_BASE + 6)
1489Const MMIOERR_CANNOTSEEK = (MMIOERR_BASE + 7)
1490Const MMIOERR_CANNOTEXPAND = (MMIOERR_BASE + 8)
1491Const MMIOERR_CHUNKNOTFOUND = (MMIOERR_BASE + 9)
1492Const MMIOERR_UNBUFFERED = (MMIOERR_BASE + 10)
1493Const MMIOERR_PATHNOTFOUND = (MMIOERR_BASE + 11)
1494Const MMIOERR_ACCESSDENIED = (MMIOERR_BASE + 12)
1495Const MMIOERR_SHARINGVIOLATION = (MMIOERR_BASE + 13)
1496Const MMIOERR_NETWORKERROR = (MMIOERR_BASE + 14)
1497Const MMIOERR_TOOMANYOPENFILES = (MMIOERR_BASE + 15)
1498Const MMIOERR_INVALIDFILE = (MMIOERR_BASE + 16)
1499
1500' MMIO constants
1501Const CFSEPCHAR = "+"
1502
1503' MMIO data types
1504TypeDef FOURCC = DWord
1505TypeDef HPSTR = *Char
1506TypeDef HMMIO = VoidPtr
1507
1508TypeDef LPMMIOPROC = *Function(lpmmioinfo As LPSTR, uMsg As DWord, lParam1 As LPARAM, lParam2 As LPARAM) As LRESULT
1509
1510Type MMIOINFO
1511 dwFlags As DWord
1512 fccIOProc As FOURCC
1513 pIOProc As LPMMIOPROC
1514 wErrorRet As DWord
1515 htask As HTASK
1516 cchBuffer As Long
1517 pchBuffer As HPSTR
1518 pchNext As HPSTR
1519 pchEndRead As HPSTR
1520 pchEndWrite As HPSTR
1521 lBufOffset As Long
1522 lDiskOffset As Long
1523 adwInfo[ELM(3)] As DWord
1524 dwReserved1 As DWord
1525 dwReserved2 As DWord
1526 hmmio As HMMIO
1527End Type
1528TypeDef PMMIOINFO = *MMIOINFO
1529TypeDef NPMMIOINFO = *MMIOINFO
1530TypeDef LPMMIOINFO = *MMIOINFO
1531
1532Type MMCKINFO
1533 ckid As FOURCC
1534 cksize As DWord
1535 fccType As FOURCC
1536 dwDataOffset As DWord
1537 dwFlags As DWord
1538End Type
1539TypeDef PMMCKINFO = *MMCKINFO
1540TypeDef NPMMCKINFO = *MMCKINFO
1541TypeDef LPMMCKINFO = *MMCKINFO
1542
1543Const MMIO_RWMODE = &H00000003
1544Const MMIO_SHAREMODE = &H00000070
1545Const MMIO_CREATE = &H00001000
1546Const MMIO_PARSE = &H00000100
1547Const MMIO_DELETE = &H00000200
1548Const MMIO_EXIST = &H00004000
1549Const MMIO_ALLOCBUF = &H00010000
1550Const MMIO_GETTEMP = &H00020000
1551Const MMIO_DIRTY = &H10000000
1552Const MMIO_READ = &H00000000
1553Const MMIO_WRITE = &H00000001
1554Const MMIO_READWRITE = &H00000002
1555Const MMIO_COMPAT = &H00000000
1556Const MMIO_EXCLUSIVE = &H00000010
1557Const MMIO_DENYWRITE = &H00000020
1558Const MMIO_DENYREAD = &H00000030
1559Const MMIO_DENYNONE = &H00000040
1560Const MMIO_FHOPEN = &H0010
1561Const MMIO_EMPTYBUF = &H0010
1562Const MMIO_TOUPPER = &H0010
1563Const MMIO_INSTALLPROC = &H00010000
1564Const MMIO_GLOBALPROC = &H10000000
1565Const MMIO_REMOVEPROC = &H00020000
1566Const MMIO_UNICODEPROC = &H01000000
1567Const MMIO_FINDPROC = &H00040000
1568Const MMIO_FINDCHUNK = &H0010
1569Const MMIO_FINDRIFF = &H0020
1570Const MMIO_FINDLIST = &H0040
1571Const MMIO_CREATERIFF = &H0020
1572Const MMIO_CREATELIST = &H0040
1573
1574Const MMIOM_READ = MMIO_READ
1575Const MMIOM_WRITE = MMIO_WRITE
1576Const MMIOM_SEEK = 2
1577Const MMIOM_OPEN = 3
1578Const MMIOM_CLOSE = 4
1579Const MMIOM_WRITEFLUSH = 5
1580Const MMIOM_RENAME = 6
1581Const MMIOM_USER = &H8000
1582
1583Const FOURCC_RIFF = MAKEFOURCC(&H52, &H49, &H46, &H46)
1584Const FOURCC_LIST = MAKEFOURCC(&H4C, &H49, &H53, &H54)
1585Const FOURCC_DOS = MAKEFOURCC(&H44, &H4F, &H53, &H20)
1586Const FOURCC_MEM = MAKEFOURCC(&H4D, &H45, &H4D, &H20)
1587
1588Const SEEK_SET = 0
1589Const SEEK_CUR = 1
1590Const SEEK_END = 2
1591
1592Const MMIO_DEFAULTBUFFER = 8192
1593
1594Function mmioFOURCC(ch0 As String, ch1 As String, ch2 As String, ch3 As String) As FOURCC
1595 mmioFOURCC = MAKEFOURCC(Asc(ch0), Asc(ch1), Asc(ch2), Asc(ch3))
1596End Function
1597
1598' MMIO function prototypes
1599Declare Function mmioStringToFOURCC Lib "winmm" Alias _FuncName_mmioStringToFOURCC (sz As LPCTSTR, uFlags As DWord) As FOURCC
1600Declare Function mmioInstallIOProc Lib "winmm" Alias _FuncName_mmioInstallIOProc (fccIOProc As FOURCC, pIOProc As LPMMIOPROC, dwFlags As DWord) As LPMMIOPROC
1601Declare Function mmioOpen Lib "winmm" Alias _FuncName_mmioOpen (pszFileName As LPTSTR, pmmioinfo As *MMIOINFO, fdwOpen As DWord) As HMMIO
1602Declare Function mmioRename Lib "winmm" Alias _FuncName_mmioRename (pszFileName As LPCTSTR, pszNewFileName As LPCTSTR, pmmioinfo As *MMIOINFO, fdwRename As DWord) As MMRESULT
1603Declare Function mmioClose Lib "winmm" (hmmio As HMMIO, fuClose As DWord) As MMRESULT
1604Declare Function mmioRead Lib "winmm" (hmmio As HMMIO, pch As HPSTR, cch As Long) As Long
1605Declare Function mmioWrite Lib "winmm" (hmmio As HMMIO, pch As HPSTR, cch As Long) As Long
1606Declare Function mmioSeek Lib "winmm" (hmmio As HMMIO, lOffset As Long, iOrigin As Long) As Long
1607Declare Function mmioGetInfo Lib "winmm" (hmmio As HMMIO, pmmioinfo As *MMIOINFO, fuInfo As DWord) As MMRESULT
1608Declare Function mmioSetInfo Lib "winmm" (hmmio As HMMIO, pmmioinfo As *MMIOINFO, fuInfo As DWord) As MMRESULT
1609Declare Function mmioSetBuffer Lib "winmm" (hmmio As HMMIO, pchBuffer As LPSTR, cchBuffer As Long, fuBuffer As DWord) As MMRESULT
1610Declare Function mmioFlush Lib "winmm" (hmmio As HMMIO, fuFlush As DWord) As MMRESULT
1611Declare Function mmioAdvance Lib "winmm" (hmmio As HMMIO, pmmioinfo As *MMIOINFO, fuAdvance As DWord) As MMRESULT
1612Declare Function mmioSendMessage Lib "winmm" (hmmio As HMMIO, uMsg As DWord, lParam1 As LPARAM, lParam2 As LPARAM) As LRESULT
1613Declare Function mmioDescend Lib "winmm" (hmmio As HMMIO, pmmcki As *MMCKINFO, pmmckiParent As *MMCKINFO, fuDescend As DWord) As MMRESULT
1614Declare Function mmioAscend Lib "winmm" (hmmio As HMMIO, pmmcki As *MMCKINFO, fuAscend As DWord) As MMRESULT
1615Declare Function mmioCreateChunk Lib "winmm" (hmmio As HMMIO, pmmcki As *MMCKINFO, fuCreate As DWord) As MMRESULT
1616
1617
1618'--------------------------------------------------------
1619' MCI support
1620
1621TypeDef MCIERROR = DWord
1622TypeDef MCIDEVICEID = DWord
1623TypeDef YIELDPROC = *Function(mciId As MCIDEVICEID, dwYieldData As DWord) As DWord
1624
1625' MCI Functions
1626Declare Function mciSendCommand Lib "winmm" Alias _FuncName_mciSendCommand (mciId As MCIDEVICEID, uMsg As DWord, dwParam1 As ULONG_PTR, ByRef dwParam2 As Any) As MCIERROR
1627Declare Function mciSendString Lib "winmm" Alias _FuncName_mciSendString (lpstrCommand As LPTSTR, lpstrReturnString As LPTSTR, uReturnLength As DWord, hwndCallback As HWND) As MCIERROR
1628Declare Function mciGetDeviceID Lib "winmm" Alias _FuncName_mciGetDeviceID (pszDevice As LPCTSTR) As MCIDEVICEID
1629
1630Declare Function mciGetErrorString Lib "winmm" Alias _FuncName_mciGetErrorString (mcierr As MCIERROR, pszText As LPSTR, cchText As DWord) As BOOL
1631Declare Function mciSetYieldProc Lib "winmm" (mciId As MCIDEVICEID, fpYieldProc As YIELDPROC, dwYieldData As DWord) As BOOL
1632Declare Function mciGetCreatorTask Lib "winmm" (mciId As MCIDEVICEID) As HTASK
1633Declare Function mciGetYieldProc Lib "winmm" (mciId As MCIDEVICEID, pdwYieldData As *DWord) As YIELDPROC
1634Declare Function mciExecute Lib "winmm" (pszCommand As LPSTR) As BOOL
1635
1636Const MCIERR_INVALID_DEVICE_ID = (MCIERR_BASE + 1)
1637Const MCIERR_UNRECOGNIZED_KEYWORD = (MCIERR_BASE + 3)
1638Const MCIERR_UNRECOGNIZED_COMMAND = (MCIERR_BASE + 5)
1639Const MCIERR_HARDWARE = (MCIERR_BASE + 6)
1640Const MCIERR_INVALID_DEVICE_NAME = (MCIERR_BASE + 7)
1641Const MCIERR_OUT_OF_MEMORY = (MCIERR_BASE + 8)
1642Const MCIERR_DEVICE_OPEN = (MCIERR_BASE + 9)
1643Const MCIERR_CANNOT_LOAD_DRIVER = (MCIERR_BASE + 10)
1644Const MCIERR_MISSING_COMMAND_STRING = (MCIERR_BASE + 11)
1645Const MCIERR_PARAM_OVERFLOW = (MCIERR_BASE + 12)
1646Const MCIERR_MISSING_STRING_ARGUMENT = (MCIERR_BASE + 13)
1647Const MCIERR_BAD_INTEGER = (MCIERR_BASE + 14)
1648Const MCIERR_PARSER_INTERNAL = (MCIERR_BASE + 15)
1649Const MCIERR_DRIVER_INTERNAL = (MCIERR_BASE + 16)
1650Const MCIERR_MISSING_PARAMETER = (MCIERR_BASE + 17)
1651Const MCIERR_UNSUPPORTED_FUNCTION = (MCIERR_BASE + 18)
1652Const MCIERR_FILE_NOT_FOUND = (MCIERR_BASE + 19)
1653Const MCIERR_DEVICE_NOT_READY = (MCIERR_BASE + 20)
1654Const MCIERR_INTERNAL = (MCIERR_BASE + 21)
1655Const MCIERR_DRIVER = (MCIERR_BASE + 22)
1656Const MCIERR_CANNOT_USE_ALL = (MCIERR_BASE + 23)
1657Const MCIERR_MULTIPLE = (MCIERR_BASE + 24)
1658Const MCIERR_EXTENSION_NOT_FOUND = (MCIERR_BASE + 25)
1659Const MCIERR_OUTOFRANGE = (MCIERR_BASE + 26)
1660Const MCIERR_FLAGS_NOT_COMPATIBLE = (MCIERR_BASE + 28)
1661Const MCIERR_FILE_NOT_SAVED = (MCIERR_BASE + 30)
1662Const MCIERR_DEVICE_TYPE_REQUIRED = (MCIERR_BASE + 31)
1663Const MCIERR_DEVICE_LOCKED = (MCIERR_BASE + 32)
1664Const MCIERR_DUPLICATE_ALIAS = (MCIERR_BASE + 33)
1665Const MCIERR_BAD_CONSTANT = (MCIERR_BASE + 34)
1666Const MCIERR_MUST_USE_SHAREABLE = (MCIERR_BASE + 35)
1667Const MCIERR_MISSING_DEVICE_NAME = (MCIERR_BASE + 36)
1668Const MCIERR_BAD_TIME_FORMAT = (MCIERR_BASE + 37)
1669Const MCIERR_NO_CLOSING_QUOTE = (MCIERR_BASE + 38)
1670Const MCIERR_DUPLICATE_FLAGS = (MCIERR_BASE + 39)
1671Const MCIERR_INVALID_FILE = (MCIERR_BASE + 40)
1672Const MCIERR_NULL_PARAMETER_BLOCK = (MCIERR_BASE + 41)
1673Const MCIERR_UNNAMED_RESOURCE = (MCIERR_BASE + 42)
1674Const MCIERR_NEW_REQUIRES_ALIAS = (MCIERR_BASE + 43)
1675Const MCIERR_NOTIFY_ON_AUTO_OPEN = (MCIERR_BASE + 44)
1676Const MCIERR_NO_ELEMENT_ALLOWED = (MCIERR_BASE + 45)
1677Const MCIERR_NONAPPLICABLE_FUNCTION = (MCIERR_BASE + 46)
1678Const MCIERR_ILLEGAL_FOR_AUTO_OPEN = (MCIERR_BASE + 47)
1679Const MCIERR_FILENAME_REQUIRED = (MCIERR_BASE + 48)
1680Const MCIERR_EXTRA_CHARACTERS = (MCIERR_BASE + 49)
1681Const MCIERR_DEVICE_NOT_INSTALLED = (MCIERR_BASE + 50)
1682Const MCIERR_GET_CD = (MCIERR_BASE + 51)
1683Const MCIERR_SET_CD = (MCIERR_BASE + 52)
1684Const MCIERR_SET_DRIVE = (MCIERR_BASE + 53)
1685Const MCIERR_DEVICE_LENGTH = (MCIERR_BASE + 54)
1686Const MCIERR_DEVICE_ORD_LENGTH = (MCIERR_BASE + 55)
1687Const MCIERR_NO_INTEGER = (MCIERR_BASE + 56)
1688
1689Const MCIERR_WAVE_OUTPUTSINUSE = (MCIERR_BASE + 64)
1690Const MCIERR_WAVE_SETOUTPUTINUSE = (MCIERR_BASE + 65)
1691Const MCIERR_WAVE_INPUTSINUSE = (MCIERR_BASE + 66)
1692Const MCIERR_WAVE_SETINPUTINUSE = (MCIERR_BASE + 67)
1693Const MCIERR_WAVE_OUTPUTUNSPECIFIED = (MCIERR_BASE + 68)
1694Const MCIERR_WAVE_INPUTUNSPECIFIED = (MCIERR_BASE + 69)
1695Const MCIERR_WAVE_OUTPUTSUNSUITABLE = (MCIERR_BASE + 70)
1696Const MCIERR_WAVE_SETOUTPUTUNSUITABLE = (MCIERR_BASE + 71)
1697Const MCIERR_WAVE_INPUTSUNSUITABLE = (MCIERR_BASE + 72)
1698Const MCIERR_WAVE_SETINPUTUNSUITABLE = (MCIERR_BASE + 73)
1699
1700Const MCIERR_SEQ_DIV_INCOMPATIBLE = (MCIERR_BASE + 80)
1701Const MCIERR_SEQ_PORT_INUSE = (MCIERR_BASE + 81)
1702Const MCIERR_SEQ_PORT_NONEXISTENT = (MCIERR_BASE + 82)
1703Const MCIERR_SEQ_PORT_MAPNODEVICE = (MCIERR_BASE + 83)
1704Const MCIERR_SEQ_PORT_MISCERROR = (MCIERR_BASE + 84)
1705Const MCIERR_SEQ_TIMER = (MCIERR_BASE + 85)
1706Const MCIERR_SEQ_PORTUNSPECIFIED = (MCIERR_BASE + 86)
1707Const MCIERR_SEQ_NOMIDIPRESENT = (MCIERR_BASE + 87)
1708
1709Const MCIERR_NO_WINDOW = (MCIERR_BASE + 90)
1710Const MCIERR_CREATEWINDOW = (MCIERR_BASE + 91)
1711Const MCIERR_FILE_READ = (MCIERR_BASE + 92)
1712Const MCIERR_FILE_WRITE = (MCIERR_BASE + 93)
1713Const MCIERR_NO_IDENTITY = (MCIERR_BASE + 94)
1714Const MCIERR_CUSTOM_DRIVER_BASE = (MCIERR_BASE + 256)
1715
1716Const MCI_FIRST = DRV_MCI_FIRST
1717Const MCI_OPEN = &H0803
1718Const MCI_CLOSE = &H0804
1719Const MCI_ESCAPE = &H0805
1720Const MCI_PLAY = &H0806
1721Const MCI_SEEK = &H0807
1722Const MCI_STOP = &H0808
1723Const MCI_PAUSE = &H0809
1724Const MCI_INFO = &H080A
1725Const MCI_GETDEVCAPS = &H080B
1726Const MCI_SPIN = &H080C
1727Const MCI_SET = &H080D
1728Const MCI_STEP = &H080E
1729Const MCI_RECORD = &H080F
1730Const MCI_SYSINFO = &H0810
1731Const MCI_BREAK = &H0811
1732Const MCI_SAVE = &H0813
1733Const MCI_STATUS = &H0814
1734Const MCI_CUE = &H0830
1735Const MCI_REALIZE = &H0840
1736Const MCI_WINDOW = &H0841
1737Const MCI_PUT = &H0842
1738Const MCI_WHERE = &H0843
1739Const MCI_FREEZE = &H0844
1740Const MCI_UNFREEZE = &H0845
1741Const MCI_LOAD = &H0850
1742Const MCI_CUT = &H0851
1743Const MCI_COPY = &H0852
1744Const MCI_PASTE = &H0853
1745Const MCI_UPDATE = &H0854
1746Const MCI_RESUME = &H0855
1747Const MCI_DELETE = &H0856
1748
1749Const MCI_USER_MESSAGES = (DRV_MCI_FIRST + &H400)
1750Const MCI_LAST = &H0FFF
1751
1752Const MCI_ALL_DEVICE_ID = (-1)
1753
1754' constants for predefined MCI device types
1755Const MCI_DEVTYPE_VCR = 513
1756Const MCI_DEVTYPE_VIDEODISC = 514
1757Const MCI_DEVTYPE_OVERLAY = 515
1758Const MCI_DEVTYPE_CD_AUDIO = 516
1759Const MCI_DEVTYPE_DAT = 517
1760Const MCI_DEVTYPE_SCANNER = 518
1761Const MCI_DEVTYPE_ANIMATION = 519
1762Const MCI_DEVTYPE_DIGITAL_VIDEO = 520
1763Const MCI_DEVTYPE_OTHER = 521
1764Const MCI_DEVTYPE_WAVEFORM_AUDIO = 522
1765Const MCI_DEVTYPE_SEQUENCER = 523
1766Const MCI_DEVTYPE_FIRST = MCI_DEVTYPE_VCR
1767Const MCI_DEVTYPE_LAST = MCI_DEVTYPE_SEQUENCER
1768Const MCI_DEVTYPE_FIRST_USER = &H1000
1769
1770' return values for 'status mode' command
1771Const MCI_MODE_NOT_READY = MCI_STRING_OFFSET + 12
1772Const MCI_MODE_STOP = MCI_STRING_OFFSET + 13
1773Const MCI_MODE_PLAY = MCI_STRING_OFFSET + 14
1774Const MCI_MODE_RECORD = MCI_STRING_OFFSET + 15
1775Const MCI_MODE_SEEK = MCI_STRING_OFFSET + 16
1776Const MCI_MODE_PAUSE = MCI_STRING_OFFSET + 17
1777Const MCI_MODE_OPEN = MCI_STRING_OFFSET + 18
1778
1779'--------------------------------------------------------
1780' Time Format(used in MCI_SET_PARAMS, MCI_STATUS_PARAMS)
1781
1782Const MCI_FORMAT_MILLISECONDS = 0
1783Const MCI_FORMAT_HMS = 1
1784Const MCI_FORMAT_MSF = 2
1785Const MCI_FORMAT_FRAMES = 3
1786Const MCI_FORMAT_SMPTE_24 = 4
1787Const MCI_FORMAT_SMPTE_25 = 5
1788Const MCI_FORMAT_SMPTE_30 = 6
1789Const MCI_FORMAT_SMPTE_30DROP = 7
1790Const MCI_FORMAT_BYTES = 8
1791Const MCI_FORMAT_SAMPLES = 9
1792Const MCI_FORMAT_TMSF = 10
1793
1794'------------
1795' MCI Macros
1796
1797'MSF
1798Function MCI_MSF_MINUTE(msf As DWord) As Byte
1799 Return (&HFF AND msf)
1800End Function
1801Function MCI_MSF_SECOND(msf As DWord) As Byte
1802 Return (&HFF AND (msf>> 8))
1803End Function
1804Function MCI_MSF_FRAME(msf As DWord) As Byte
1805 Return (&HFF AND (msf>>16))
1806End Function
1807Function MCI_MAKE_MSF(minutes As Byte, seconds As Byte, frames As Byte) As DWord
1808 Return MAKELONG(minutes,MAKEWORD(seconds,frames))
1809End Function
1810
1811'TMSF
1812Function MCI_TMSF_TRACK(tmsf As DWord) As Byte
1813 Return (&HFF AND (tmsf))
1814End Function
1815Function MCI_TMSF_MINUTE(tmsf As DWord) As Byte
1816 Return (&HFF AND (((tmsf)) >> 8))
1817End Function
1818Function MCI_TMSF_SECOND(tmsf As DWord) As Byte
1819 Return (&HFF AND ((tmsf)>>16))
1820End Function
1821Function MCI_TMSF_FRAME(tmsf As DWord) As Byte
1822 Return (&HFF AND ((tmsf)>>24))
1823End Function
1824Function MCI_MAKE_TMSF(tracks As Byte, minutes As Byte, seconds As Byte, frames As Byte) As DWord
1825 Return MAKELONG(MAKEWORD(tracks,minutes),MAKEWORD(seconds,frames))
1826End Function
1827
1828'HMS
1829Function MCI_HMS_HOUR(hms As DWord) As Byte
1830 Return (&HFF AND (hms))
1831End Function
1832Function MCI_HMS_MINUTE(hms As DWord) As Byte
1833 Return (&HFF AND ((hms)>> 8))
1834End Function
1835Function MCI_HMS_SECOND(hms As DWord) As Byte
1836 Return (&HFF AND ((hms)>>16))
1837End Function
1838Function MCI_MAKE_HMS(hours As Byte, minutes As Byte, seconds As Byte) As DWord
1839 Return MAKELONG(hours,MAKEWORD(minutes,seconds))
1840End Function
1841
1842' flags for wParam of MM_MCINOTIFY message
1843Const MCI_NOTIFY_SUCCESSFUL = &H0001
1844Const MCI_NOTIFY_SUPERSEDED = &H0002
1845Const MCI_NOTIFY_ABORTED = &H0004
1846Const MCI_NOTIFY_FAILURE = &H0008
1847
1848' common flags for dwFlags parameter of MCI command messages
1849Const MCI_NOTIFY = &H00000001
1850Const MCI_WAIT = &H00000002
1851Const MCI_FROM = &H00000004
1852Const MCI_TO = &H00000008
1853Const MCI_TRACK = &H00000010
1854
1855' flags for dwFlags parameter of MCI_OPEN command message
1856Const MCI_OPEN_SHAREABLE = &H00000100
1857Const MCI_OPEN_ELEMENT = &H00000200
1858Const MCI_OPEN_ALIAS = &H00000400
1859Const MCI_OPEN_ELEMENT_ID = &H00000800
1860Const MCI_OPEN_TYPE_ID = &H00001000
1861Const MCI_OPEN_TYPE = &H00002000
1862
1863' flags for dwFlags parameter of MCI_SEEK command message
1864Const MCI_SEEK_TO_START = &H00000100
1865Const MCI_SEEK_TO_END = &H00000200
1866
1867' flags for dwFlags parameter of MCI_STATUS command message
1868Const MCI_STATUS_ITEM = &H00000100
1869Const MCI_STATUS_START = &H00000200
1870
1871' flags for dwItem field of the MCI_STATUS_PARMS parameter block
1872Const MCI_STATUS_LENGTH = &H00000001
1873Const MCI_STATUS_POSITION = &H00000002
1874Const MCI_STATUS_NUMBER_OF_TRACKS = &H00000003
1875Const MCI_STATUS_MODE = &H00000004
1876Const MCI_STATUS_MEDIA_PRESENT = &H00000005
1877Const MCI_STATUS_TIME_FORMAT = &H00000006
1878Const MCI_STATUS_READY = &H00000007
1879Const MCI_STATUS_CURRENT_TRACK = &H00000008
1880
1881' flags for dwFlags parameter of MCI_INFO command message
1882Const MCI_INFO_PRODUCT = &H00000100
1883Const MCI_INFO_FILE = &H00000200
1884Const MCI_INFO_MEDIA_UPC = &H00000400
1885Const MCI_INFO_MEDIA_IDENTITY = &H00000800
1886Const MCI_INFO_NAME = &H00001000
1887Const MCI_INFO_COPYRIGHT = &H00002000
1888
1889' flags for dwFlags parameter of MCI_GETDEVCAPS command message
1890Const MCI_GETDEVCAPS_ITEM = &H00000100
1891
1892' flags for dwItem field of the MCI_GETDEVCAPS_PARMS parameter block
1893Const MCI_GETDEVCAPS_CAN_RECORD = &H00000001
1894Const MCI_GETDEVCAPS_HAS_AUDIO = &H00000002
1895Const MCI_GETDEVCAPS_HAS_VIDEO = &H00000003
1896Const MCI_GETDEVCAPS_DEVICE_TYPE = &H00000004
1897Const MCI_GETDEVCAPS_USES_FILES = &H00000005
1898Const MCI_GETDEVCAPS_COMPOUND_DEVICE = &H00000006
1899Const MCI_GETDEVCAPS_CAN_EJECT = &H00000007
1900Const MCI_GETDEVCAPS_CAN_PLAY = &H00000008
1901Const MCI_GETDEVCAPS_CAN_SAVE = &H00000009
1902
1903' flags for dwFlags parameter of MCI_SYSINFO command message
1904Const MCI_SYSINFO_QUANTITY = &H00000100
1905Const MCI_SYSINFO_OPEN = &H00000200
1906Const MCI_SYSINFO_NAME = &H00000400
1907Const MCI_SYSINFO_INSTALLNAME = &H00000800
1908
1909' flags for dwFlags parameter of MCI_SET command message
1910Const MCI_SET_DOOR_OPEN = &H00000100
1911Const MCI_SET_DOOR_CLOSED = &H00000200
1912Const MCI_SET_TIME_FORMAT = &H00000400
1913Const MCI_SET_AUDIO = &H00000800
1914Const MCI_SET_VIDEO = &H00001000
1915Const MCI_SET_ON = &H00002000
1916Const MCI_SET_OFF = &H00004000
1917
1918' flags for dwAudio field of MCI_SET_PARMS or MCI_SEQ_SET_PARMS
1919Const MCI_SET_AUDIO_ALL = &H00000000
1920Const MCI_SET_AUDIO_LEFT = &H00000001
1921Const MCI_SET_AUDIO_RIGHT = &H00000002
1922
1923' flags for dwFlags parameter of MCI_BREAK command message
1924Const MCI_BREAK_KEY = &H00000100
1925Const MCI_BREAK_HWND = &H00000200
1926Const MCI_BREAK_OFF = &H00000400
1927
1928' flags for dwFlags parameter of MCI_RECORD command message
1929Const MCI_RECORD_INSERT = &H00000100
1930Const MCI_RECORD_OVERWRITE = &H00000200
1931
1932' flags for dwFlags parameter of MCI_SAVE command message
1933Const MCI_SAVE_FILE = &H00000100
1934
1935' flags for dwFlags parameter of MCI_LOAD command message
1936Const MCI_LOAD_FILE = &H00000100
1937
1938Type MCI_GENERIC_PARMS
1939 dwCallback As DWord
1940End Type
1941TypeDef PMCI_GENERIC_PARMS = *MCI_GENERIC_PARMS
1942TypeDef LPMCI_GENERIC_PARMS = *MCI_GENERIC_PARMS
1943
1944Type MCI_OPEN_PARMSW
1945 dwCallback As DWord
1946 wDeviceID As DWord
1947 lpstrDeviceType As LPCWSTR
1948 lpstrElementName As LPCWSTR
1949 lpstrAlias As LPCWSTR
1950End Type
1951TypeDef PMCI_OPEN_PARMSW = *MCI_OPEN_PARMSW
1952TypeDef LPMCI_OPEN_PARMSW = *MCI_OPEN_PARMSW
1953Type MCI_OPEN_PARMSA
1954 dwCallback As DWord
1955 wDeviceID As DWord
1956 lpstrDeviceType As LPCSTR
1957 lpstrElementName As LPCSTR
1958 lpstrAlias As LPCSTR
1959End Type
1960TypeDef PMCI_OPEN_PARMSA = *MCI_OPEN_PARMSA
1961TypeDef LPMCI_OPEN_PARMSA = *MCI_OPEN_PARMSA
1962#ifdef UNICODE
1963TypeDef MCI_OPEN_PARMS = MCI_OPEN_PARMSW
1964#else
1965TypeDef MCI_OPEN_PARMS = MCI_OPEN_PARMSA
1966#endif
1967TypeDef PMCI_OPEN_PARMS = *MCI_OPEN_PARMS
1968TypeDef LPMCI_OPEN_PARMS = *MCI_OPEN_PARMS
1969
1970Type MCI_PLAY_PARMS
1971 dwCallback As DWord
1972 dwFrom As DWord
1973 dwTo As DWord
1974End Type
1975TypeDef PMCI_PLAY_PARMS = *MCI_PLAY_PARMS
1976TypeDef LPMCI_PLAY_PARMS = *MCI_PLAY_PARMS
1977
1978Type MCI_SEEK_PARMS
1979 dwCallback As DWord
1980 dwTo As DWord
1981End Type
1982TypeDef PMCI_SEEK_PARMS = *MCI_SEEK_PARMS
1983TypeDef LPMCI_SEEK_PARMS = *MCI_SEEK_PARMS
1984
1985Type MCI_STATUS_PARMS
1986 dwCallback As DWord
1987 dwReturn As DWord
1988 dwItem As DWord
1989 dwTrack As DWord
1990End Type
1991TypeDef PMCI_STATUS_PARMS = *MCI_STATUS_PARMS
1992TypeDef LPMCI_STATUS_PARMS = *MCI_STATUS_PARMS
1993
1994Type MCI_INFO_PARMSW
1995 dwCallback As DWord
1996 lpstrReturn As LPWSTR
1997 dwRetSize As DWord
1998End Type
1999TypeDef PMCI_INFO_PARMSW = *MCI_INFO_PARMSW
2000TypeDef LPMCI_INFO_PARMSW = *MCI_INFO_PARMSW
2001Type MCI_INFO_PARMSA
2002 dwCallback As DWord
2003 lpstrReturn As LPSTR
2004 dwRetSize As DWord
2005End Type
2006TypeDef PMCI_INFO_PARMSA = *MCI_INFO_PARMSA
2007TypeDef LPMCI_INFO_PARMSA = *MCI_INFO_PARMSA
2008#ifdef UNICODE
2009TypeDef MCI_INFO_PARMS = MCI_INFO_PARMSW
2010#else
2011TypeDef MCI_INFO_PARMS = MCI_INFO_PARMSA
2012#endif
2013TypeDef PMCI_INFO_PARMS = *MCI_INFO_PARMS
2014TypeDef LPMCI_INFO_PARMS = *MCI_INFO_PARMS
2015
2016Type MCI_GETDEVCAPS_PARMS
2017 dwCallback As DWord
2018 dwReturn As DWord
2019 dwItem As DWord
2020End Type
2021TypeDef PMCI_GETDEVCAPS_PARMS = *MCI_GETDEVCAPS_PARMS
2022TypeDef LPMCI_GETDEVCAPS_PARMS = *MCI_GETDEVCAPS_PARMS
2023
2024Type MCI_SYSINFO_PARMSW
2025 dwCallback As DWord
2026 lpstrReturn As LPWSTR
2027 dwRetSize As DWord
2028 dwNumber As DWord
2029 wDeviceType As DWord
2030End Type
2031TypeDef PMCI_SYSINFO_PARMSW = *MCI_SYSINFO_PARMSW
2032TypeDef LPMCI_SYSINFO_PARMSW = *MCI_SYSINFO_PARMSW
2033Type MCI_SYSINFO_PARMSA
2034 dwCallback As DWord
2035 lpstrReturn As LPSTR
2036 dwRetSize As DWord
2037 dwNumber As DWord
2038 wDeviceType As DWord
2039End Type
2040TypeDef PMCI_SYSINFO_PARMSA = *MCI_SYSINFO_PARMSA
2041TypeDef LPMCI_SYSINFO_PARMSA = *MCI_SYSINFO_PARMSA
2042#ifdef UNICODE
2043TypeDef MCI_SYSINFO_PARMS = MCI_SYSINFO_PARMSA
2044#else
2045TypeDef MCI_SYSINFO_PARMS = MCI_SYSINFO_PARMSW
2046#endif
2047TypeDef PMCI_SYSINFO_PARMS = *MCI_SYSINFO_PARMS
2048TypeDef LPMCI_SYSINFO_PARMS = *MCI_SYSINFO_PARMS
2049
2050Type MCI_SET_PARMS
2051 dwCallback As DWord
2052 dwTimeFormat As DWord
2053 dwAudio As DWord
2054End Type
2055TypeDef PMCI_SET_PARMS = *MCI_SET_PARMS
2056TypeDef LPMCI_SET_PARMS = *MCI_SET_PARMS
2057
2058Type MCI_BREAK_PARMS
2059 dwCallback As DWord
2060 nVirtKey As Long
2061 hwndBreak As HWND
2062End Type
2063TypeDef PMCI_BREAK_PARMS = *MCI_BREAK_PARMS
2064TypeDef LPMCI_BREAK_PARMS = *MCI_BREAK_PARMS
2065
2066Type MCI_SAVE_PARMSW
2067 dwCallback As DWord
2068 lpfilename As LPCWSTR
2069End Type
2070TypeDef PMCI_SAVE_PARMSW = *MCI_SAVE_PARMSW
2071TypeDef LPMCI_SAVE_PARMSW = *MCI_SAVE_PARMSW
2072Type MCI_SAVE_PARMSA
2073 dwCallback As DWord
2074 lpfilename As LPCSTR
2075End Type
2076TypeDef PMCI_SAVE_PARMSA = *MCI_SAVE_PARMSA
2077TypeDef LPMCI_SAVE_PARMSA = *MCI_SAVE_PARMSA
2078#ifdef UNICODE
2079TypeDef MCI_SAVE_PARMS = MCI_SAVE_PARMSW
2080#else
2081TypeDef MCI_SAVE_PARMS = MCI_SAVE_PARMSA
2082#endif
2083TypeDef PMCI_SAVE_PARMS = *MCI_SAVE_PARMS
2084TypeDef LPMCI_SAVE_PARMS = *MCI_SAVE_PARMS
2085
2086Type MCI_LOAD_PARMSW
2087 dwCallback As DWord
2088 lpfilename As LPCWSTR
2089End Type
2090TypeDef PMCI_LOAD_PARMSW = *MCI_LOAD_PARMSW
2091TypeDef LPMCI_LOAD_PARMSW = *MCI_LOAD_PARMSW
2092Type MCI_LOAD_PARMSA
2093 dwCallback As DWord
2094 lpfilename As LPCSTR
2095End Type
2096TypeDef PMCI_LOAD_PARMSA = *MCI_LOAD_PARMSA
2097TypeDef LPMCI_LOAD_PARMSA = *MCI_LOAD_PARMSA
2098#ifdef UNICODE
2099TypeDef MCI_LOAD_PARMS = MCI_LOAD_PARMSW
2100#else
2101TypeDef MCI_LOAD_PARMS = MCI_LOAD_PARMSA
2102#endif
2103TypeDef PMCI_LOAD_PARMS = *MCI_LOAD_PARMS
2104TypeDef LPMCI_LOAD_PARMS = *MCI_LOAD_PARMS
2105
2106Type MCI_RECORD_PARMS
2107 dwCallback As DWord
2108 dwFrom As DWord
2109 dwTo As DWord
2110End Type
2111TypeDef PMCI_RECORD_PARMS = *MCI_RECORD_PARMS
2112TypeDef LPMCI_RECORD_PARMS = *MCI_RECORD_PARMS
2113
2114' MCI extensions for videodisc devices
2115Const MCI_VD_MODE_PARK = (MCI_VD_OFFSET + 1)
2116Const MCI_VD_MEDIA_CLV = (MCI_VD_OFFSET + 2)
2117Const MCI_VD_MEDIA_CAV = (MCI_VD_OFFSET + 3)
2118Const MCI_VD_MEDIA_OTHER = (MCI_VD_OFFSET + 4)
2119Const MCI_VD_FORMAT_TRACK = &H4001
2120Const MCI_VD_PLAY_REVERSE = &H00010000
2121Const MCI_VD_PLAY_FAST = &H00020000
2122Const MCI_VD_PLAY_SPEED = &H00040000
2123Const MCI_VD_PLAY_SCAN = &H00080000
2124Const MCI_VD_PLAY_SLOW = &H00100000
2125Const MCI_VD_SEEK_REVERSE = &H00010000
2126Const MCI_VD_STATUS_SPEED = &H00004002
2127Const MCI_VD_STATUS_FORWARD = &H00004003
2128Const MCI_VD_STATUS_MEDIA_TYPE = &H00004004
2129Const MCI_VD_STATUS_SIDE = &H00004005
2130Const MCI_VD_STATUS_DISC_SIZE = &H00004006
2131Const MCI_VD_GETDEVCAPS_CLV = &H00010000
2132Const MCI_VD_GETDEVCAPS_CAV = &H00020000
2133Const MCI_VD_SPIN_UP = &H00010000
2134Const MCI_VD_SPIN_DOWN = &H00020000
2135Const MCI_VD_GETDEVCAPS_CAN_REVERSE = &H00004002
2136Const MCI_VD_GETDEVCAPS_FAST_RATE = &H00004003
2137Const MCI_VD_GETDEVCAPS_SLOW_RATE = &H00004004
2138Const MCI_VD_GETDEVCAPS_NORMAL_RATE = &H00004005
2139Const MCI_VD_STEP_FRAMES = &H00010000
2140Const MCI_VD_STEP_REVERSE = &H00020000
2141Const MCI_VD_ESCAPE_STRING = &H00000100
2142
2143Type MCI_VD_PLAY_PARMS
2144 dwCallback As DWord
2145 dwFrom As DWord
2146 dwTo As DWord
2147 dwSpeed As DWord
2148End Type
2149TypeDef PMCI_VD_PLAY_PARMS = *MCI_VD_PLAY_PARMS
2150TypeDef LPMCI_VD_PLAY_PARMS = *MCI_VD_PLAY_PARMS
2151
2152Type MCI_VD_STEP_PARMS
2153 dwCallback As DWord
2154 dwFrames As DWord
2155End Type
2156TypeDef PMCI_VD_STEP_PARMS = *MCI_VD_STEP_PARMS
2157TypeDef LPMCI_VD_STEP_PARMS = *MCI_VD_STEP_PARMS
2158
2159Type MCI_VD_ESCAPE_PARMSW
2160 dwCallback As DWord
2161 lpstrCommand As LPCWSTR
2162End Type
2163TypeDef PMCI_VD_ESCAPE_PARMSW = *MCI_VD_ESCAPE_PARMSW
2164TypeDef LPMCI_VD_ESCAPE_PARMSW = *MCI_VD_ESCAPE_PARMSW
2165Type MCI_VD_ESCAPE_PARMSA
2166 dwCallback As DWord
2167 lpstrCommand As LPCSTR
2168End Type
2169TypeDef PMCI_VD_ESCAPE_PARMSA = *MCI_VD_ESCAPE_PARMSA
2170TypeDef LPMCI_VD_ESCAPE_PARMSA = *MCI_VD_ESCAPE_PARMSA
2171#ifdef UNICODE
2172TypeDef MCI_VD_ESCAPE_PARMS = MCI_VD_ESCAPE_PARMSW
2173#else
2174TypeDef MCI_VD_ESCAPE_PARMS = MCI_VD_ESCAPE_PARMSA
2175#endif
2176TypeDef PMCI_VD_ESCAPE_PARMS = *MCI_VD_ESCAPE_PARMS
2177TypeDef LPMCI_VD_ESCAPE_PARMS = *MCI_VD_ESCAPE_PARMS
2178
2179' MCI extensions for CD audio devices
2180Const MCI_CDA_STATUS_TYPE_TRACK = &H00004001
2181Const MCI_CDA_TRACK_AUDIO = (MCI_CD_OFFSET + 0)
2182Const MCI_CDA_TRACK_OTHER = (MCI_CD_OFFSET + 1)
2183
2184' MCI extensions for waveform audio devices
2185Const MCI_WAVE_PCM = (MCI_WAVE_OFFSET + 0)
2186Const MCI_WAVE_MAPPER = (MCI_WAVE_OFFSET + 1)
2187Const MCI_WAVE_OPEN_BUFFER = &H00010000
2188Const MCI_WAVE_SET_FORMATTAG = &H00010000
2189Const MCI_WAVE_SET_CHANNELS = &H00020000
2190Const MCI_WAVE_SET_SAMPLESPERSEC = &H00040000
2191Const MCI_WAVE_SET_AVGBYTESPERSEC = &H00080000
2192Const MCI_WAVE_SET_BLOCKALIGN = &H00100000
2193Const MCI_WAVE_SET_BITSPERSAMPLE = &H00200000
2194Const MCI_WAVE_INPUT = &H00400000
2195Const MCI_WAVE_OUTPUT = &H00800000
2196Const MCI_WAVE_STATUS_FORMATTAG = &H00004001
2197Const MCI_WAVE_STATUS_CHANNELS = &H00004002
2198Const MCI_WAVE_STATUS_SAMPLESPERSEC = &H00004003
2199Const MCI_WAVE_STATUS_AVGBYTESPERSEC = &H00004004
2200Const MCI_WAVE_STATUS_BLOCKALIGN = &H00004005
2201Const MCI_WAVE_STATUS_BITSPERSAMPLE = &H00004006
2202Const MCI_WAVE_STATUS_LEVEL = &H00004007
2203Const MCI_WAVE_SET_ANYINPUT = &H04000000
2204Const MCI_WAVE_SET_ANYOUTPUT = &H08000000
2205Const MCI_WAVE_GETDEVCAPS_INPUTS = &H00004001
2206Const MCI_WAVE_GETDEVCAPS_OUTPUTS = &H00004002
2207
2208Type MCI_WAVE_OPEN_PARMSW
2209 dwCallback As DWord
2210 wDeviceID As MCIDEVICEID
2211 lpstrDeviceType As LPCWSTR
2212 lpstrElementName As LPCWSTR
2213 lpstrAlias As LPCWSTR
2214 dwBufferSeconds As DWord
2215End Type
2216TypeDef PMCI_WAVE_OPEN_PARMSW = *MCI_WAVE_OPEN_PARMSW
2217TypeDef LPMCI_WAVE_OPEN_PARMSW = *MCI_WAVE_OPEN_PARMSW
2218Type MCI_WAVE_OPEN_PARMSA
2219 dwCallback As DWord
2220 wDeviceID As MCIDEVICEID
2221 lpstrDeviceType As LPCSTR
2222 lpstrElementName As LPCSTR
2223 lpstrAlias As LPCSTR
2224 dwBufferSeconds As DWord
2225End Type
2226TypeDef PMCI_WAVE_OPEN_PARMSA = *MCI_WAVE_OPEN_PARMSA
2227TypeDef LPMCI_WAVE_OPEN_PARMSA = *MCI_WAVE_OPEN_PARMSA
2228#ifdef UNICODE
2229TypeDef MCI_WAVE_OPEN_PARMS = MCI_WAVE_OPEN_PARMSW
2230#else
2231TypeDef MCI_WAVE_OPEN_PARMS = MCI_WAVE_OPEN_PARMSA
2232#endif
2233TypeDef PMCI_WAVE_OPEN_PARMS = *MCI_WAVE_OPEN_PARMS
2234TypeDef LPMCI_WAVE_OPEN_PARMS = *MCI_WAVE_OPEN_PARMS
2235
2236Type MCI_WAVE_DELETE_PARMS
2237 dwCallback As DWord
2238 dwFrom As DWord
2239 dwTo As DWord
2240End Type
2241TypeDef PMCI_WAVE_DELETE_PARMS = *MCI_WAVE_DELETE_PARMS
2242TypeDef LPMCI_WAVE_DELETE_PARMS = *MCI_WAVE_DELETE_PARMS
2243
2244Type MCI_WAVE_SET_PARMS
2245 dwCallback As DWord
2246 dwTimeFormat As DWord
2247 dwAudio As DWord
2248 wInput As DWord
2249 wOutput As DWord
2250 wFormatTag As Word
2251 wReserved2 As Word
2252 nChannels As Word
2253 wReserved3 As Word
2254 nSamplesPerSec As DWord
2255 nAvgBytesPerSec As DWord
2256 nBlockAlign As Word
2257 wReserved4 As Word
2258 wBitsPerSample As Word
2259 wReserved5 As Word
2260End Type
2261TypeDef PMCI_WAVE_SET_PARMS = *MCI_WAVE_SET_PARMS
2262TypeDef LPMCI_WAVE_SET_PARMS = *MCI_WAVE_SET_PARMS
2263
2264' MCI extensions for MIDI sequencer devices
2265Const MCI_SEQ_DIV_PPQN = (0 + MCI_SEQ_OFFSET)
2266Const MCI_SEQ_DIV_SMPTE_24 = (1 + MCI_SEQ_OFFSET)
2267Const MCI_SEQ_DIV_SMPTE_25 = (2 + MCI_SEQ_OFFSET)
2268Const MCI_SEQ_DIV_SMPTE_30DROP = (3 + MCI_SEQ_OFFSET)
2269Const MCI_SEQ_DIV_SMPTE_30 = (4 + MCI_SEQ_OFFSET)
2270Const MCI_SEQ_FORMAT_SONGPTR = &H4001
2271Const MCI_SEQ_FILE = &H4002
2272Const MCI_SEQ_MIDI = &H4003
2273Const MCI_SEQ_SMPTE = &H4004
2274Const MCI_SEQ_NONE = 65533
2275Const MCI_SEQ_MAPPER = 65535
2276Const MCI_SEQ_STATUS_TEMPO = &H00004002
2277Const MCI_SEQ_STATUS_PORT = &H00004003
2278Const MCI_SEQ_STATUS_SLAVE = &H00004007
2279Const MCI_SEQ_STATUS_MASTER = &H00004008
2280Const MCI_SEQ_STATUS_OFFSET = &H00004009
2281Const MCI_SEQ_STATUS_DIVTYPE = &H0000400A
2282Const MCI_SEQ_STATUS_NAME = &H0000400B
2283Const MCI_SEQ_STATUS_COPYRIGHT = &H0000400C
2284Const MCI_SEQ_SET_TEMPO = &H00010000
2285Const MCI_SEQ_SET_PORT = &H00020000
2286Const MCI_SEQ_SET_SLAVE = &H00040000
2287Const MCI_SEQ_SET_MASTER = &H00080000
2288Const MCI_SEQ_SET_OFFSET = &H01000000
2289
2290Type MCI_SEQ_SET_PARMS
2291 dwCallback As DWord
2292 dwTimeFormat As DWord
2293 dwAudio As DWord
2294 dwTempo As DWord
2295 dwPort As DWord
2296 dwSlave As DWord
2297 dwMaster As DWord
2298 dwOffset As DWord
2299End Type
2300TypeDef PMCI_SEQ_SET_PARMS = *MCI_SEQ_SET_PARMS
2301TypeDef LPMCI_SEQ_SET_PARMS = *MCI_SEQ_SET_PARMS
2302
2303' MCI extensions for animation devices
2304Const MCI_ANIM_OPEN_WS = &H00010000
2305Const MCI_ANIM_OPEN_PARENT = &H00020000
2306Const MCI_ANIM_OPEN_NOSTATIC = &H00040000
2307Const MCI_ANIM_PLAY_SPEED = &H00010000
2308Const MCI_ANIM_PLAY_REVERSE = &H00020000
2309Const MCI_ANIM_PLAY_FAST = &H00040000
2310Const MCI_ANIM_PLAY_SLOW = &H00080000
2311Const MCI_ANIM_PLAY_SCAN = &H00100000
2312Const MCI_ANIM_STEP_REVERSE = &H00010000
2313Const MCI_ANIM_STEP_FRAMES = &H00020000
2314Const MCI_ANIM_STATUS_SPEED = &H00004001
2315Const MCI_ANIM_STATUS_FORWARD = &H00004002
2316Const MCI_ANIM_STATUS_HWND = &H00004003
2317Const MCI_ANIM_STATUS_HPAL = &H00004004
2318Const MCI_ANIM_STATUS_STRETCH = &H00004005
2319Const MCI_ANIM_INFO_TEXT = &H00010000
2320Const MCI_ANIM_GETDEVCAPS_CAN_REVERSE = &H00004001
2321Const MCI_ANIM_GETDEVCAPS_FAST_RATE = &H00004002
2322Const MCI_ANIM_GETDEVCAPS_SLOW_RATE = &H00004003
2323Const MCI_ANIM_GETDEVCAPS_NORMAL_RATE = &H00004004
2324Const MCI_ANIM_GETDEVCAPS_PALETTES = &H00004006
2325Const MCI_ANIM_GETDEVCAPS_CAN_STRETCH = &H00004007
2326Const MCI_ANIM_GETDEVCAPS_MAX_WINDOWS = &H00004008
2327Const MCI_ANIM_REALIZE_NORM = &H00010000
2328Const MCI_ANIM_REALIZE_BKGD = &H00020000
2329Const MCI_ANIM_WINDOW_HWND = &H00010000
2330Const MCI_ANIM_WINDOW_STATE = &H00040000
2331Const MCI_ANIM_WINDOW_TEXT = &H00080000
2332Const MCI_ANIM_WINDOW_ENABLE_STRETCH = &H00100000
2333Const MCI_ANIM_WINDOW_DISABLE_STRETCH = &H00200000
2334Const MCI_ANIM_WINDOW_DEFAULT = &H00000000
2335Const MCI_ANIM_RECT = &H00010000
2336Const MCI_ANIM_PUT_SOURCE = &H00020000
2337Const MCI_ANIM_PUT_DESTINATION = &H00040000
2338Const MCI_ANIM_WHERE_SOURCE = &H00020000
2339Const MCI_ANIM_WHERE_DESTINATION = &H00040000
2340Const MCI_ANIM_UPDATE_HDC = &H00020000
2341
2342Type MCI_ANIM_OPEN_PARMSW
2343 dwCallback As DWord
2344 wDeviceID As MCIDEVICEID
2345 lpstrDeviceType As LPCWSTR
2346 lpstrElementName As LPCWSTR
2347 lpstrAlias As LPCWSTR
2348 dwStyle As DWord
2349 hWndParent As HWND
2350End Type
2351TypeDef PMCI_ANIM_OPEN_PARMSW = *MCI_ANIM_OPEN_PARMSW
2352TypeDef LPMCI_ANIM_OPEN_PARMSW = *MCI_ANIM_OPEN_PARMSW
2353Type MCI_ANIM_OPEN_PARMSA
2354 dwCallback As DWord
2355 wDeviceID As MCIDEVICEID
2356 lpstrDeviceType As LPCSTR
2357 lpstrElementName As LPCSTR
2358 lpstrAlias As LPCSTR
2359 dwStyle As DWord
2360 hWndParent As HWND
2361End Type
2362TypeDef PMCI_ANIM_OPEN_PARMSA = *MCI_ANIM_OPEN_PARMSA
2363TypeDef LPMCI_ANIM_OPEN_PARMSA = *MCI_ANIM_OPEN_PARMSA
2364#ifdef UNICODE
2365TypeDef MCI_ANIM_OPEN_PARMS = MCI_ANIM_OPEN_PARMSW
2366#else
2367TypeDef MCI_ANIM_OPEN_PARMS = MCI_ANIM_OPEN_PARMSA
2368#endif
2369TypeDef PMCI_ANIM_OPEN_PARMS = *MCI_ANIM_OPEN_PARMS
2370TypeDef LPMCI_ANIM_OPEN_PARMS = *MCI_ANIM_OPEN_PARMS
2371
2372Type MCI_ANIM_PLAY_PARMS
2373 dwCallback As DWord
2374 dwFrom As DWord
2375 dwTo As DWord
2376 dwSpeed As DWord
2377End Type
2378TypeDef PMCI_ANIM_PLAY_PARMS = *MCI_ANIM_PLAY_PARMS
2379TypeDef LPMCI_ANIM_PLAY_PARMS = *MCI_ANIM_PLAY_PARMS
2380
2381Type MCI_ANIM_STEP_PARMS
2382 dwCallback As DWord
2383 dwFrames As DWord
2384End Type
2385TypeDef PMCI_ANIM_STEP_PARMS = *MCI_ANIM_STEP_PARMS
2386TypeDef LPMCI_ANIM_STEP_PARMS = *MCI_ANIM_STEP_PARMS
2387
2388Type MCI_ANIM_WINDOW_PARMSW
2389 dwCallback As DWord
2390 hWnd As HWND
2391 nCmdShow As DWord
2392 lpstrText As LPCWSTR
2393End Type
2394TypeDef PMCI_ANIM_WINDOW_PARMSW = *MCI_ANIM_WINDOW_PARMSW
2395TypeDef LPMCI_ANIM_WINDOW_PARMSW = *MCI_ANIM_WINDOW_PARMSW
2396Type MCI_ANIM_WINDOW_PARMSA
2397 dwCallback As DWord
2398 hWnd As HWND
2399 nCmdShow As DWord
2400 lpstrText As LPCSTR
2401End Type
2402TypeDef PMCI_ANIM_WINDOW_PARMSA = *MCI_ANIM_WINDOW_PARMSA
2403TypeDef LPMCI_ANIM_WINDOW_PARMSA = *MCI_ANIM_WINDOW_PARMSA
2404#ifdef UNICODE
2405TypeDef MCI_ANIM_WINDOW_PARMS = MCI_ANIM_WINDOW_PARMSW
2406#else
2407TypeDef MCI_ANIM_WINDOW_PARMS = MCI_ANIM_WINDOW_PARMSA
2408#endif
2409TypeDef PMCI_ANIM_WINDOW_PARMS = *MCI_ANIM_WINDOW_PARMS
2410TypeDef LPMCI_ANIM_WINDOW_PARMS = *MCI_ANIM_WINDOW_PARMS
2411
2412Type MCI_ANIM_RECT_PARMS
2413 dwCallback As DWord
2414 rc As RECT
2415End Type
2416TypeDef PMCI_ANIM_RECT_PARMS = *MCI_ANIM_RECT_PARMS
2417TypeDef LPMCI_ANIM_RECT_PARMS = *MCI_ANIM_RECT_PARMS
2418
2419Type MCI_ANIM_UPDATE_PARMS
2420 dwCallback As DWord
2421 rc As RECT
2422 hDC As HDC
2423End Type
2424TypeDef PMCI_ANIM_UPDATE_PARMS = *MCI_ANIM_UPDATE_PARMS
2425TypeDef LPMCI_ANIM_UPDATE_PARMS = *MCI_ANIM_UPDATE_PARMS
2426
2427' MCI extensions for video overlay devices
2428Const MCI_OVLY_OPEN_WS = &H00010000
2429Const MCI_OVLY_OPEN_PARENT = &H00020000
2430Const MCI_OVLY_STATUS_HWND = &H00004001
2431Const MCI_OVLY_STATUS_STRETCH = &H00004002
2432Const MCI_OVLY_INFO_TEXT = &H00010000
2433Const MCI_OVLY_GETDEVCAPS_CAN_STRETCH = &H00004001
2434Const MCI_OVLY_GETDEVCAPS_CAN_FREEZE = &H00004002
2435Const MCI_OVLY_GETDEVCAPS_MAX_WINDOWS = &H00004003
2436Const MCI_OVLY_WINDOW_HWND = &H00010000
2437Const MCI_OVLY_WINDOW_STATE = &H00040000
2438Const MCI_OVLY_WINDOW_TEXT = &H00080000
2439Const MCI_OVLY_WINDOW_ENABLE_STRETCH = &H00100000
2440Const MCI_OVLY_WINDOW_DISABLE_STRETCH = &H00200000
2441Const MCI_OVLY_WINDOW_DEFAULT = &H00000000
2442Const MCI_OVLY_RECT = &H00010000
2443Const MCI_OVLY_PUT_SOURCE = &H00020000
2444Const MCI_OVLY_PUT_DESTINATION = &H00040000
2445Const MCI_OVLY_PUT_FRAME = &H00080000
2446Const MCI_OVLY_PUT_VIDEO = &H00100000
2447Const MCI_OVLY_WHERE_SOURCE = &H00020000
2448Const MCI_OVLY_WHERE_DESTINATION = &H00040000
2449Const MCI_OVLY_WHERE_FRAME = &H00080000
2450Const MCI_OVLY_WHERE_VIDEO = &H00100000
2451
2452Type MCI_OVLY_OPEN_PARMSAW
2453 dwCallback As DWord
2454 wDeviceID As MCIDEVICEID
2455 lpstrDeviceType As LPCWSTR
2456 lpstrElementName As LPCWSTR
2457 lpstrAlias As LPCWSTR
2458 dwStyle As DWord
2459 hWndParent As HWND
2460End Type
2461TypeDef PMCI_OVLY_OPEN_PARMSW = *MCI_OVLY_OPEN_PARMSW
2462TypeDef LPMCI_OVLY_OPEN_PARMSW = *MCI_OVLY_OPEN_PARMSW
2463Type MCI_OVLY_OPEN_PARMSA
2464 dwCallback As DWord
2465 wDeviceID As MCIDEVICEID
2466 lpstrDeviceType As LPCSTR
2467 lpstrElementName As LPCSTR
2468 lpstrAlias As LPCSTR
2469 dwStyle As DWord
2470 hWndParent As HWND
2471End Type
2472TypeDef PMCI_OVLY_OPEN_PARMSA = *MCI_OVLY_OPEN_PARMSA
2473TypeDef LPMCI_OVLY_OPEN_PARMSA = *MCI_OVLY_OPEN_PARMSA
2474#ifdef UNICODE
2475TypeDef MCI_OVLY_OPEN_PARMS = MCI_OVLY_OPEN_PARMSW
2476#else
2477TypeDef MCI_OVLY_OPEN_PARMS = MCI_OVLY_OPEN_PARMSA
2478#endif
2479TypeDef PMCI_OVLY_OPEN_PARMS = *MCI_OVLY_OPEN_PARMS
2480TypeDef LPMCI_OVLY_OPEN_PARMS = *MCI_OVLY_OPEN_PARMS
2481
2482Type MCI_OVLY_WINDOW_PARMSW
2483 dwCallback As DWord
2484 hWnd As HWND
2485 nCmdShow As DWord
2486 lpstrText As LPCWSTR
2487End Type
2488TypeDef PMCI_OVLY_WINDOW_PARMSW = *MCI_OVLY_WINDOW_PARMSW
2489TypeDef LPMCI_OVLY_WINDOW_PARMSW = *MCI_OVLY_WINDOW_PARMSW
2490Type MCI_OVLY_WINDOW_PARMSA
2491 dwCallback As DWord
2492 hWnd As HWND
2493 nCmdShow As DWord
2494 lpstrText As LPCSTR
2495End Type
2496TypeDef PMCI_OVLY_WINDOW_PARMSA = *MCI_OVLY_WINDOW_PARMSA
2497TypeDef LPMCI_OVLY_WINDOW_PARMSA = *MCI_OVLY_WINDOW_PARMSA
2498#ifdef UNICODE
2499TypeDef MCI_OVLY_WINDOW_PARMS = MCI_OVLY_WINDOW_PARMSW
2500#else
2501TypeDef MCI_OVLY_WINDOW_PARMS = MCI_OVLY_WINDOW_PARMSA
2502#endif
2503TypeDef PMCI_OVLY_WINDOW_PARMS = *MCI_OVLY_WINDOW_PARMS
2504TypeDef LPMCI_OVLY_WINDOW_PARMS = *MCI_OVLY_WINDOW_PARMS
2505
2506Type MCI_OVLY_RECT_PARMS
2507 dwCallback As DWord
2508 rc As RECT
2509End Type
2510TypeDef PMCI_OVLY_RECT_PARMS = *MCI_OVLY_RECT_PARMS
2511TypeDef LPMCI_OVLY_RECT_PARMS = *MCI_OVLY_RECT_PARMS
2512
2513Type MCI_OVLY_SAVE_PARMSW
2514 dwCallback As DWord
2515 lpfilename As LPCWSTR
2516 rc As RECT
2517End Type
2518TypeDef PMCI_OVLY_SAVE_PARMSW = *MCI_OVLY_SAVE_PARMSW
2519TypeDef LPMCI_OVLY_SAVE_PARMSW = *MCI_OVLY_SAVE_PARMSW
2520Type MCI_OVLY_SAVE_PARMSA
2521 dwCallback As DWord
2522 lpfilename As LPCSTR
2523 rc As RECT
2524End Type
2525TypeDef PMCI_OVLY_SAVE_PARMSA = *MCI_OVLY_SAVE_PARMSA
2526TypeDef LPMCI_OVLY_SAVE_PARMSA = *MCI_OVLY_SAVE_PARMSA
2527#ifdef UNICODE
2528TypeDef MCI_OVLY_SAVE_PARMS = MCI_OVLY_SAVE_PARMSW
2529#else
2530TypeDef MCI_OVLY_SAVE_PARMS = MCI_OVLY_SAVE_PARMSA
2531#endif
2532TypeDef PMCI_OVLY_SAVE_PARMS = *MCI_OVLY_SAVE_PARMS
2533TypeDef LPMCI_OVLY_SAVE_PARMS = *MCI_OVLY_SAVE_PARMS
2534
2535Type MCI_OVLY_LOAD_PARMSA
2536 dwCallback As DWord
2537 lpfilename As LPSTR
2538 rc As RECT
2539End Type
2540TypeDef PMCI_OVLY_LOAD_PARMSA = *MCI_OVLY_LOAD_PARMSA
2541TypeDef LPMCI_OVLY_LOAD_PARMSA = *MCI_OVLY_LOAD_PARMSA
2542TypeDef MCI_OVLY_LOAD_PARMS = MCI_OVLY_LOAD_PARMSA
2543TypeDef PMCI_OVLY_LOAD_PARMS = PMCI_OVLY_LOAD_PARMSA
2544TypeDef LPMCI_OVLY_LOAD_PARMS = LPMCI_OVLY_LOAD_PARMSA
2545
2546' DISPLAY Driver extensions
2547Const NEWTRANSPARENT = 3
2548Const QUERYROPSUPPORT = 40
2549
2550' DIB Driver extensions
2551Const SELECTDIB = 41
2552Const DIBINDEX(n) = MAKELONG(n, &H10FF)
2553
2554#endif '_INC_MMSYS
Note: See TracBrowser for help on using the repository browser.