mmsystem.mh

来自「开放源码的编译器open watcom 1.6.0版的源代码」· MH 代码 · 共 1,149 行 · 第 1/3 页

MH
1,149
字号
/*
 *  mmsystem.h  Multimedia functions
 *
:include crwatcnt.sp
 */

#ifndef _INC_MMSYSTEM
#define _INC_MMSYSTEM

:include readonly.sp
#ifndef _INC_WINDOWS
#include <windows.h>
#endif

#if (WINVER < 0x30a)
#error  Multimedia APIs require Windows 3.1
#endif

:include cpluspro.sp

#pragma pack(push,1)

#define MAXPNAMELEN     32
#define MAXERRORLENGTH  128
#define TIME_MS 1
#define TIME_SAMPLES    2
#define TIME_BYTES      4
#define TIME_SMPTE      8
#define TIME_MIDI       0x10
#define MM_JOY1MOVE     0x3A0
#define MM_JOY2MOVE     0x3A1
#define MM_JOY1ZMOVE    0x3A2
#define MM_JOY2ZMOVE    0x3A3
#define MM_JOY1BUTTONDOWN       0x3B5
#define MM_JOY2BUTTONDOWN       0x3B6
#define MM_JOY1BUTTONUP 0x3B7
#define MM_JOY2BUTTONUP 0x3B8
#define MM_MCINOTIFY    0x3B9
#define MM_WOM_OPEN     0x3BB
#define MM_WOM_CLOSE    0x3BC
#define MM_WOM_DONE     0x3BD
#define MM_WIM_OPEN     0x3BE
#define MM_WIM_CLOSE    0x3BF
#define MM_WIM_DATA     0x3C0
#define MM_MIM_OPEN     0x3C1
#define MM_MIM_CLOSE    0x3C2
#define MM_MIM_DATA     0x3C3
#define MM_MIM_LONGDATA 0x3C4
#define MM_MIM_ERROR    0x3C5
#define MM_MIM_LONGERROR        0x3C6
#define MM_MOM_OPEN     0x3C7
#define MM_MOM_CLOSE    0x3C8
#define MM_MOM_DONE     0x3C9
#define MMSYSERR_BASE   0
#define WAVERR_BASE     32
#define MIDIERR_BASE    64
#define TIMERR_BASE     96
#define JOYERR_BASE     160
#define MCIERR_BASE     256
#define MCI_STRING_OFFSET       512
#define MCI_VD_OFFSET   1024
#define MCI_CD_OFFSET   1088
#define MCI_WAVE_OFFSET 1152
#define MCI_SEQ_OFFSET  1216
#define MMSYSERR_NOERROR        0
#define MMSYSERR_ERROR  (MMSYSERR_BASE  +       1)
#define MMSYSERR_BADDEVICEID    (MMSYSERR_BASE  +       2)
#define MMSYSERR_NOTENABLED     (MMSYSERR_BASE  +       3)
#define MMSYSERR_ALLOCATED      (MMSYSERR_BASE  +       4)
#define MMSYSERR_INVALHANDLE    (MMSYSERR_BASE  +       5)
#define MMSYSERR_NODRIVER       (MMSYSERR_BASE  +       6)
#define MMSYSERR_NOMEM  (MMSYSERR_BASE  +       7)
#define MMSYSERR_NOTSUPPORTED   (MMSYSERR_BASE  +       8)
#define MMSYSERR_BADERRNUM      (MMSYSERR_BASE  +       9)
#define MMSYSERR_INVALFLAG      (MMSYSERR_BASE  +       10)
#define MMSYSERR_INVALPARAM     (MMSYSERR_BASE  +       11)
#define MMSYSERR_LASTERROR      (MMSYSERR_BASE  +       11)
#if (WINVER < 0x030A)
#define DRV_LOAD            0x0001
#define DRV_ENABLE          0x0002
#define DRV_OPEN            0x0003
#define DRV_CLOSE           0x0004
#define DRV_DISABLE         0x0005
#define DRV_FREE            0x0006
#define DRV_CONFIGURE       0x0007
#define DRV_QUERYCONFIGURE  0x0008
#define DRV_INSTALL         0x0009
#define DRV_REMOVE          0x000A
#define DRV_EXITSESSION     0x000B
#define DRV_EXITAPPLICATION 0x000C
#define DRV_POWER           0x000F
#define DRV_RESERVED        0x0800
#define DRV_USER            0x4000
#endif
#if (WINVER >= 0x030A)
#define DRV_CANCEL      DRVCNF_CANCEL
#define DRV_OK  DRVCNF_OK
#define DRV_RESTART     DRVCNF_RESTART
#endif
#define DRV_MCI_FIRST   DRV_RESERVED
#define DRV_MCI_LAST    (DRV_RESERVED + 0xFFF)
#define CALLBACK_TYPEMASK       0x70000l
#define CALLBACK_NULL   0
#define CALLBACK_WINDOW 0x10000l
#define CALLBACK_TASK   0x20000l
#define CALLBACK_FUNCTION       0x30000l
#define SND_SYNC        0
#define SND_ASYNC       1
#define SND_NODEFAULT   2
#define SND_MEMORY      4
#define SND_LOOP        8
#define SND_NOSTOP      0x10
#define MM_MICROSOFT    1
#define MM_MIDI_MAPPER  1
#define MM_WAVE_MAPPER  2
#define MM_SNDBLST_MIDIOUT      3
#define MM_SNDBLST_MIDIIN       4
#define MM_SNDBLST_SYNTH        5
#define MM_SNDBLST_WAVEOUT      6
#define MM_SNDBLST_WAVEIN       7
#define MM_ADLIB        9
#define MM_MPU401_MIDIOUT       10
#define MM_MPU401_MIDIIN        11
#define MM_PC_JOYSTICK  12
#define WAVERR_BADFORMAT        (WAVERR_BASE + 0)
#define WAVERR_STILLPLAYING     (WAVERR_BASE + 1)
#define WAVERR_UNPREPARED       (WAVERR_BASE + 2)
#define WAVERR_SYNC     (WAVERR_BASE + 3)
#define WAVERR_LASTERROR        (WAVERR_BASE + 3)
#define WOM_OPEN        MM_WOM_OPEN
#define WOM_CLOSE       MM_WOM_CLOSE
#define WOM_DONE        MM_WOM_DONE
#define WIM_OPEN        MM_WIM_OPEN
#define WIM_CLOSE       MM_WIM_CLOSE
#define WIM_DATA        MM_WIM_DATA
#define WAVE_MAPPER     (-1)
#define WAVE_FORMAT_QUERY       1
#define WAVE_ALLOWSYNC  2
#define WHDR_DONE       1
#define WHDR_PREPARED   2
#define WHDR_BEGINLOOP  4
#define WHDR_ENDLOOP    8
#define WHDR_INQUEUE    0x10
#define WAVECAPS_PITCH  1
#define WAVECAPS_PLAYBACKRATE   2
#define WAVECAPS_VOLUME 4
#define WAVECAPS_LRVOLUME       8
#define WAVECAPS_SYNC   0x10
#define WAVE_INVALIDFORMAT      0
#define WAVE_FORMAT_1M08        1
#define WAVE_FORMAT_1S08        2
#define WAVE_FORMAT_1M16        4
#define WAVE_FORMAT_1S16        8
#define WAVE_FORMAT_2M08        0x10
#define WAVE_FORMAT_2S08        0x20
#define WAVE_FORMAT_2M16        0x40
#define WAVE_FORMAT_2S16        0x80
#define WAVE_FORMAT_4M08        0x100
#define WAVE_FORMAT_4S08        0x200
#define WAVE_FORMAT_4M16        0x400
#define WAVE_FORMAT_4S16        0x800
#define WAVE_FORMAT_PCM 1
#define MIDIERR_UNPREPARED      (MIDIERR_BASE + 0)
#define MIDIERR_STILLPLAYING    (MIDIERR_BASE + 1)
#define MIDIERR_NOMAP   (MIDIERR_BASE + 2)
#define MIDIERR_NOTREADY        (MIDIERR_BASE + 3)
#define MIDIERR_NODEVICE        (MIDIERR_BASE + 4)
#define MIDIERR_INVALIDSETUP    (MIDIERR_BASE + 5)
#define MIDIERR_LASTERROR       (MIDIERR_BASE + 5)
#define MIDIPATCHSIZE   128
#define MIM_OPEN        MM_MIM_OPEN
#define MIM_CLOSE       MM_MIM_CLOSE
#define MIM_DATA        MM_MIM_DATA
#define MIM_LONGDATA    MM_MIM_LONGDATA
#define MIM_ERROR       MM_MIM_ERROR
#define MIM_LONGERROR   MM_MIM_LONGERROR
#define MOM_OPEN        MM_MOM_OPEN
#define MOM_CLOSE       MM_MOM_CLOSE
#define MOM_DONE        MM_MOM_DONE
#define MIDIMAPPER      (-1)
#define MIDI_MAPPER     (-1)
#define MIDI_CACHE_ALL  1
#define MIDI_CACHE_BESTFIT      2
#define MIDI_CACHE_QUERY        3
#define MIDI_UNCACHE    4
#define MOD_MIDIPORT    1
#define MOD_SYNTH       2
#define MOD_SQSYNTH     3
#define MOD_FMSYNTH     4
#define MOD_MAPPER      5
#define MIDICAPS_VOLUME 1
#define MIDICAPS_LRVOLUME       2
#define MIDICAPS_CACHE  4
#define MHDR_DONE       1
#define MHDR_PREPARED   2
#define MHDR_INQUEUE    4
#define AUX_MAPPER      (-1)
#define AUXCAPS_CDAUDIO 1
#define AUXCAPS_AUXIN   2
#define AUXCAPS_VOLUME  1
#define AUXCAPS_LRVOLUME        2
#define TIMERR_NOERROR  (0)
#define TIMERR_NOCANDO  (TIMERR_BASE+1)
#define TIMERR_struct   (TIMERR_BASE+33)
#define TIME_ONESHOT    0
#define TIME_PERIODIC   1
#define JOYERR_NOERROR  (0)
#define JOYERR_PARMS    (JOYERR_BASE+5)
#define JOYERR_NOCANDO  (JOYERR_BASE+6)
#define JOYERR_UNPLUGGED        (JOYERR_BASE+7)
#define JOY_BUTTON1     1
#define JOY_BUTTON2     2
#define JOY_BUTTON3     4
#define JOY_BUTTON4     8
#define JOY_BUTTON1CHG  0x100
#define JOY_BUTTON2CHG  0x200
#define JOY_BUTTON3CHG  0x400
#define JOY_BUTTON4CHG  0x800
#define JOYSTICKID1     0
#define JOYSTICKID2     1
#define MMIOERR_BASE    256
#define MMIOERR_FILENOTFOUND    (MMIOERR_BASE + 1)
#define MMIOERR_OUTOFMEMORY     (MMIOERR_BASE + 2)
#define MMIOERR_CANNOTOPEN      (MMIOERR_BASE + 3)
#define MMIOERR_CANNOTCLOSE     (MMIOERR_BASE + 4)
#define MMIOERR_CANNOTREAD      (MMIOERR_BASE + 5)
#define MMIOERR_CANNOTWRITE     (MMIOERR_BASE + 6)
#define MMIOERR_CANNOTSEEK      (MMIOERR_BASE + 7)
#define MMIOERR_CANNOTEXPAND    (MMIOERR_BASE + 8)
#define MMIOERR_CHUNKNOTFOUND   (MMIOERR_BASE + 9)
#define MMIOERR_UNBUFFERED      (MMIOERR_BASE + 10)
#define CFSEPCHAR       '+'
#define MMIO_RWMODE     3
#define MMIO_SHAREMODE  0x70
#define MMIO_CREATE     0x1000
#define MMIO_PARSE      0x100
#define MMIO_DELETE     0x200
#define MMIO_EXIST      0x4000
#define MMIO_ALLOCBUF   0x10000
#define MMIO_GETTEMP    0x20000
#define MMIO_DIRTY      0x10000000
#define MMIO_READ       0
#define MMIO_WRITE      1
#define MMIO_READWRITE  2
#define MMIO_COMPAT     0
#define MMIO_EXCLUSIVE  0x10
#define MMIO_DENYWRITE  0x20
#define MMIO_DENYREAD   0x30
#define MMIO_DENYNONE   0x40
#define MMIO_FHOPEN     0x10
#define MMIO_EMPTYBUF   0x10
#define MMIO_TOUPPER    0x10
#define MMIO_INSTALLPROC        0x10000
#define MMIO_GLOBALPROC 0x10000000
#define MMIO_REMOVEPROC 0x20000
#define MMIO_FINDPROC   0x40000
#define MMIO_FINDCHUNK  0x10
#define MMIO_FINDRIFF   0x20
#define MMIO_FINDLIST   0x40
#define MMIO_CREATERIFF 0x20
#define MMIO_CREATELIST 0x40
#define MMIOM_READ      MMIO_READ
#define MMIOM_WRITE     MMIO_WRITE
#define MMIOM_SEEK      2
#define MMIOM_OPEN      3
#define MMIOM_CLOSE     4
#define MMIOM_WRITEFLUSH        5
#if     (WINVER >= 0x30a)
#define MMIOM_RENAME    6
#endif
#define MMIOM_USER      0x8000
#define FOURCC_RIFF     mmioFOURCC('R','I','F','F')
#define FOURCC_LIST     mmioFOURCC('L','I','S','T')
#define FOURCC_DOS      mmioFOURCC('D','O','S',' ')
#define FOURCC_MEM      mmioFOURCC('M','E','M',' ')
#ifndef SEEK_SET
#define SEEK_SET        0
#define SEEK_CUR        1
#define SEEK_END        2
#endif
#define MMIO_DEFAULTBUFFER      8192
#define mmioFOURCC(c0,c1,c2,c3) ((DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8)|((DWORD)(BYTE)(c2)<<16)|((DWORD)(BYTE)(c3)<<24))
#define MCIERR_INVALID_DEVICE_ID        (MCIERR_BASE + 1)
#define MCIERR_UNRECOGNIZED_KEYWORD     (MCIERR_BASE + 3)
#define MCIERR_UNRECOGNIZED_COMMAND     (MCIERR_BASE + 5)
#define MCIERR_HARDWARE (MCIERR_BASE + 6)
#define MCIERR_INVALID_DEVICE_NAME      (MCIERR_BASE + 7)
#define MCIERR_OUT_OF_MEMORY    (MCIERR_BASE + 8)
#define MCIERR_DEVICE_OPEN      (MCIERR_BASE + 9)
#define MCIERR_CANNOT_LOAD_DRIVER       (MCIERR_BASE + 10)
#define MCIERR_MISSING_COMMAND_STRING   (MCIERR_BASE + 11)
#define MCIERR_PARAM_OVERFLOW   (MCIERR_BASE + 12)
#define MCIERR_MISSING_STRING_ARGUMENT  (MCIERR_BASE + 13)
#define MCIERR_BAD_INTEGER      (MCIERR_BASE + 14)
#define MCIERR_PARSER_INTERNAL  (MCIERR_BASE + 15)
#define MCIERR_DRIVER_INTERNAL  (MCIERR_BASE + 16)
#define MCIERR_MISSING_PARAMETER        (MCIERR_BASE + 17)
#define MCIERR_UNSUPPORTED_FUNCTION     (MCIERR_BASE + 18)
#define MCIERR_FILE_NOT_FOUND   (MCIERR_BASE + 19)
#define MCIERR_DEVICE_NOT_READY (MCIERR_BASE + 20)
#define MCIERR_INTERNAL (MCIERR_BASE + 21)
#define MCIERR_DRIVER   (MCIERR_BASE + 22)
#define MCIERR_CANNOT_USE_ALL   (MCIERR_BASE + 23)
#define MCIERR_MULTIPLE (MCIERR_BASE + 24)
#define MCIERR_EXTENSION_NOT_FOUND      (MCIERR_BASE + 25)
#define MCIERR_OUTOFRANGE       (MCIERR_BASE + 26)
#define MCIERR_FLAGS_NOT_COMPATIBLE     (MCIERR_BASE + 28)
#define MCIERR_FILE_NOT_SAVED   (MCIERR_BASE + 30)
#define MCIERR_DEVICE_TYPE_REQUIRED     (MCIERR_BASE + 31)
#define MCIERR_DEVICE_LOCKED    (MCIERR_BASE + 32)
#define MCIERR_DUPLICATE_ALIAS  (MCIERR_BASE + 33)
#define MCIERR_BAD_CONSTANT     (MCIERR_BASE + 34)
#define MCIERR_MUST_USE_SHAREABLE       (MCIERR_BASE + 35)
#define MCIERR_MISSING_DEVICE_NAME      (MCIERR_BASE + 36)
#define MCIERR_BAD_TIME_FORMAT  (MCIERR_BASE + 37)
#define MCIERR_NO_CLOSING_QUOTE (MCIERR_BASE + 38)
#define MCIERR_DUPLICATE_FLAGS  (MCIERR_BASE + 39)
#define MCIERR_INVALID_FILE     (MCIERR_BASE + 40)
#define MCIERR_NULL_PARAMETER_BLOCK     (MCIERR_BASE + 41)
#define MCIERR_UNNAMED_RESOURCE (MCIERR_BASE + 42)
#define MCIERR_NEW_REQUIRES_ALIAS       (MCIERR_BASE + 43)
#define MCIERR_NOTIFY_ON_AUTO_OPEN      (MCIERR_BASE + 44)
#define MCIERR_NO_ELEMENT_ALLOWED       (MCIERR_BASE + 45)
#define MCIERR_NONAPPLICABLE_FUNCTION   (MCIERR_BASE + 46)
#define MCIERR_ILLEGAL_FOR_AUTO_OPEN    (MCIERR_BASE + 47)
#define MCIERR_FILENAME_REQUIRED        (MCIERR_BASE + 48)
#define MCIERR_EXTRA_CHARACTERS (MCIERR_BASE + 49)
#define MCIERR_DEVICE_NOT_INSTALLED     (MCIERR_BASE + 50)
#define MCIERR_GET_CD   (MCIERR_BASE + 51)
#define MCIERR_SET_CD   (MCIERR_BASE + 52)
#define MCIERR_SET_DRIVE        (MCIERR_BASE + 53)
#define MCIERR_DEVICE_LENGTH    (MCIERR_BASE + 54)
#define MCIERR_DEVICE_ORD_LENGTH        (MCIERR_BASE + 55)
#define MCIERR_NO_INTEGER       (MCIERR_BASE + 56)
#define MCIERR_WAVE_OUTPUTSINUSE        (MCIERR_BASE + 64)
#define MCIERR_WAVE_SETOUTPUTINUSE      (MCIERR_BASE + 65)
#define MCIERR_WAVE_INPUTSINUSE (MCIERR_BASE + 66)
#define MCIERR_WAVE_SETINPUTINUSE       (MCIERR_BASE + 67)
#define MCIERR_WAVE_OUTPUTUNSPECIFIED   (MCIERR_BASE + 68)
#define MCIERR_WAVE_INPUTUNSPECIFIED    (MCIERR_BASE + 69)
#define MCIERR_WAVE_OUTPUTSUNSUITABLE   (MCIERR_BASE + 70)
#define MCIERR_WAVE_SETOUTPUTUNSUITABLE (MCIERR_BASE + 71)
#define MCIERR_WAVE_INPUTSUNSUITABLE    (MCIERR_BASE + 72)
#define MCIERR_WAVE_SETINPUTUNSUITABLE  (MCIERR_BASE + 73)
#define MCIERR_SEQ_DIV_INCOMPATIBLE     (MCIERR_BASE + 80)
#define MCIERR_SEQ_PORT_INUSE   (MCIERR_BASE + 81)
#define MCIERR_SEQ_PORT_NONEXISTENT     (MCIERR_BASE + 82)
#define MCIERR_SEQ_PORT_MAPNODEVICE     (MCIERR_BASE + 83)
#define MCIERR_SEQ_PORT_MISCERROR       (MCIERR_BASE + 84)
#define MCIERR_SEQ_TIMER        (MCIERR_BASE + 85)
#define MCIERR_SEQ_PORTUNSPECIFIED      (MCIERR_BASE + 86)
#define MCIERR_SEQ_NOMIDIPRESENT        (MCIERR_BASE + 87)
#define MCIERR_NO_WINDOW        (MCIERR_BASE + 90)
#define MCIERR_CREATEWINDOW     (MCIERR_BASE + 91)
#define MCIERR_FILE_READ        (MCIERR_BASE + 92)
#define MCIERR_FILE_WRITE       (MCIERR_BASE + 93)
#define MCIERR_CUSTOM_DRIVER_BASE       (MCIERR_BASE + 256)
#define MCI_OPEN        0x803
#define MCI_CLOSE       0x804
#define MCI_ESCAPE      0x805
#define MCI_PLAY        0x806
#define MCI_SEEK        0x807
#define MCI_STOP        0x808
#define MCI_PAUSE       0x809
#define MCI_INFO        0x80A
#define MCI_GETDEVCAPS  0x80B
#define MCI_SPIN        0x80C
#define MCI_SET 0x80D
#define MCI_STEP        0x80E
#define MCI_RECORD      0x80F
#define MCI_SYSINFO     0x810
#define MCI_BREAK       0x811
#define MCI_SOUND       0x812
#define MCI_SAVE        0x813
#define MCI_STATUS      0x814
#define MCI_CUE 0x830
#define MCI_REALIZE     0x840
#define MCI_WINDOW      0x841
#define MCI_PUT 0x842
#define MCI_WHERE       0x843
#define MCI_FREEZE      0x844
#define MCI_UNFREEZE    0x845
#define MCI_LOAD        0x850

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?