564 lines
19 KiB
C
564 lines
19 KiB
C
|
/*==========================================================================;
|
||
|
*
|
||
|
* mmddk.h -- Include file for Multimedia Device Development
|
||
|
*
|
||
|
* Version 4.00
|
||
|
*
|
||
|
* Copyright (C) 1992-1994 Microsoft Corporation. All rights reserved.
|
||
|
*
|
||
|
*--------------------------------------------------------------------------;
|
||
|
* Note: You must include the WINDOWS.H and MMSYSTEM.H header files
|
||
|
* before including this file.
|
||
|
*
|
||
|
* Define: Prevent inclusion of:
|
||
|
* -------------- --------------------------------------------------------
|
||
|
* MMNOMIDIDEV MIDI support
|
||
|
* MMNOWAVEDEV Waveform support
|
||
|
* MMNOAUXDEV Auxiliary output support
|
||
|
* MMNOMIXERDEV Mixer support
|
||
|
* MMNOTIMERDEV Timer support
|
||
|
* MMNOJOYDEV Joystick support
|
||
|
* MMNOMCIDEV MCI support
|
||
|
* MMNOTASKDEV Task support
|
||
|
*
|
||
|
*==========================================================================;
|
||
|
*/
|
||
|
|
||
|
#ifndef _INC_MMDDK
|
||
|
#define _INC_MMDDK /* #defined if mmddk.h has been included */
|
||
|
|
||
|
#ifndef RC_INVOKED
|
||
|
#pragma pack(1) /* Assume byte packing throughout */
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" { /* Assume C declarations for C++ */
|
||
|
#endif /* __cplusplus */
|
||
|
|
||
|
/***************************************************************************
|
||
|
|
||
|
Helper functions for drivers
|
||
|
|
||
|
***************************************************************************/
|
||
|
|
||
|
#ifdef WIN32
|
||
|
|
||
|
#ifndef NODRIVERS
|
||
|
#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_RESERVED 0x0800
|
||
|
#define DRV_USER 0x4000
|
||
|
|
||
|
#define DRIVERS_SECTION TEXT("DRIVERS32") // Section name for installed drivers
|
||
|
#define MCI_SECTION TEXT("MCI32") // Section name for installed MCI drivers
|
||
|
|
||
|
LRESULT WINAPI DefDriverProc(DWORD dwDriverIdentifier, HDRVR hdrvr, UINT uMsg, LPARAM lParam1, LPARAM lParam2);
|
||
|
#endif /* !NODRIVERS */
|
||
|
|
||
|
#endif /* ifdef WIN32 */
|
||
|
|
||
|
#if (WINVER < 0x0400)
|
||
|
#define DCB_NOSWITCH 0x0008 /* obsolete switch */
|
||
|
#endif
|
||
|
#define DCB_TYPEMASK 0x0007 /* callback type mask */
|
||
|
#define DCB_NULL 0x0000 /* unknown callback type */
|
||
|
|
||
|
/* flags for wFlags parameter of DriverCallback() */
|
||
|
#define DCB_WINDOW 0x0001 /* dwCallback is a HWND */
|
||
|
#define DCB_TASK 0x0002 /* dwCallback is a HTASK */
|
||
|
#define DCB_FUNCTION 0x0003 /* dwCallback is a FARPROC */
|
||
|
#define DCB_WINDOW32 0x0004 /* dwCallback is a WINDOW */ /* ;Internal */
|
||
|
|
||
|
BOOL WINAPI DriverCallback(DWORD dwCallback, UINT uFlags,
|
||
|
HANDLE hDevice, UINT uMessage, DWORD dwUser, DWORD dwParam1, DWORD dwParam2);
|
||
|
|
||
|
#if (WINVER < 0x0400)
|
||
|
void WINAPI StackEnter(void);
|
||
|
void WINAPI StackLeave(void);
|
||
|
#endif
|
||
|
|
||
|
/* generic prototype for audio device driver entry-point functions */
|
||
|
/* midMessage(), modMessage(), widMessage(), wodMessage(), auxMessage() */
|
||
|
typedef DWORD (CALLBACK SOUNDDEVMSGPROC)(UINT uDeviceID, UINT uMessage,
|
||
|
DWORD dwInstance, DWORD dwParam1, DWORD dwParam2);
|
||
|
typedef SOUNDDEVMSGPROC FAR *LPSOUNDDEVMSGPROC;
|
||
|
|
||
|
/*
|
||
|
* Message sent by mmsystem to media specific entry points when it first
|
||
|
* initializes the drivers, and when they are closed.
|
||
|
*/
|
||
|
|
||
|
#define DRVM_INIT 100
|
||
|
#define DRVM_EXIT 101
|
||
|
|
||
|
// message base for driver specific messages.
|
||
|
//
|
||
|
#define DRVM_MAPPER 0x2000
|
||
|
#define DRVM_USER 0x4000
|
||
|
#define DRVM_MAPPER_STATUS (DRVM_MAPPER+0)
|
||
|
#define DRVM_MAPPER_RECONFIGURE (DRVM_MAPPER+1)
|
||
|
|
||
|
#if (WINVER >= 0x0400)
|
||
|
#define DRV_QUERYDRVENTRY (DRV_RESERVED + 1)
|
||
|
#define DRV_QUERYDEVNODE (DRV_RESERVED + 2)
|
||
|
#define DRV_QUERYNAME (DRV_RESERVED + 3)
|
||
|
|
||
|
#define DRV_F_ADD 0x00000000
|
||
|
#define DRV_F_REMOVE 0x00000001
|
||
|
#define DRV_F_CHANGE 0x00000002
|
||
|
#define DRV_F_PROP_INSTR 0x00000004
|
||
|
#define DRV_F_PARAM_IS_DEVNODE 0x10000000
|
||
|
#endif
|
||
|
|
||
|
/* PnP version of device caps */
|
||
|
typedef struct {
|
||
|
DWORD cbSize;
|
||
|
LPVOID pCaps;
|
||
|
} DEVICECAPSEX;
|
||
|
|
||
|
#ifndef MMNOWAVEDEV
|
||
|
/****************************************************************************
|
||
|
|
||
|
Waveform device driver support
|
||
|
|
||
|
****************************************************************************/
|
||
|
|
||
|
/* maximum number of wave device drivers loaded */
|
||
|
#define MAXWAVEDRIVERS 10
|
||
|
|
||
|
/* waveform input and output device open information structure */
|
||
|
typedef struct waveopendesc_tag {
|
||
|
HWAVE hWave; /* handle */
|
||
|
const WAVEFORMAT FAR* lpFormat; /* format of wave data */
|
||
|
DWORD dwCallback; /* callback */
|
||
|
DWORD dwInstance; /* app's private instance information */
|
||
|
UINT uMappedDeviceID; /* device to map to if WAVE_MAPPED set */
|
||
|
DWORD dnDevNode; /* if device is PnP */
|
||
|
} WAVEOPENDESC;
|
||
|
typedef WAVEOPENDESC FAR *LPWAVEOPENDESC;
|
||
|
|
||
|
#define WODM_USER DRVM_USER
|
||
|
#define WIDM_USER DRVM_USER
|
||
|
#define WODM_MAPPER DRVM_MAPPER
|
||
|
#define WIDM_MAPPER DRVM_MAPPER
|
||
|
|
||
|
#define WODM_INIT DRVM_INIT
|
||
|
#define WIDM_INIT DRVM_INIT
|
||
|
|
||
|
/* messages sent to wodMessage() entry-point function */
|
||
|
#define WODM_GETNUMDEVS 3
|
||
|
#define WODM_GETDEVCAPS 4
|
||
|
#define WODM_OPEN 5
|
||
|
#define WODM_CLOSE 6
|
||
|
#define WODM_PREPARE 7
|
||
|
#define WODM_UNPREPARE 8
|
||
|
#define WODM_WRITE 9
|
||
|
#define WODM_PAUSE 10
|
||
|
#define WODM_RESTART 11
|
||
|
#define WODM_RESET 12
|
||
|
#define WODM_GETPOS 13
|
||
|
#define WODM_GETPITCH 14
|
||
|
#define WODM_SETPITCH 15
|
||
|
#define WODM_GETVOLUME 16
|
||
|
#define WODM_SETVOLUME 17
|
||
|
#define WODM_GETPLAYBACKRATE 18
|
||
|
#define WODM_SETPLAYBACKRATE 19
|
||
|
#define WODM_BREAKLOOP 20
|
||
|
#if (WINVER >= 0x0400)
|
||
|
#define WODM_MAPPER_STATUS (DRVM_MAPPER_STATUS + 0)
|
||
|
#define WAVEOUT_MAPPER_STATUS_DEVICE 0
|
||
|
#define WAVEOUT_MAPPER_STATUS_MAPPED 1
|
||
|
#define WAVEOUT_MAPPER_STATUS_FORMAT 2
|
||
|
#endif
|
||
|
|
||
|
/* messages sent to widMessage() entry-point function */
|
||
|
#define WIDM_GETNUMDEVS 50
|
||
|
#define WIDM_GETDEVCAPS 51
|
||
|
#define WIDM_OPEN 52
|
||
|
#define WIDM_CLOSE 53
|
||
|
#define WIDM_PREPARE 54
|
||
|
#define WIDM_UNPREPARE 55
|
||
|
#define WIDM_ADDBUFFER 56
|
||
|
#define WIDM_START 57
|
||
|
#define WIDM_STOP 58
|
||
|
#define WIDM_RESET 59
|
||
|
#define WIDM_GETPOS 60
|
||
|
#if (WINVER >= 0x0400)
|
||
|
#define WIDM_MAPPER_STATUS (DRVM_MAPPER_STATUS + 0)
|
||
|
#define WAVEIN_MAPPER_STATUS_DEVICE 0
|
||
|
#define WAVEIN_MAPPER_STATUS_MAPPED 1
|
||
|
#define WAVEIN_MAPPER_STATUS_FORMAT 2
|
||
|
#endif
|
||
|
#endif /*ifndef MMNOWAVEDEV */
|
||
|
|
||
|
|
||
|
#ifndef MMNOMIDIDEV
|
||
|
/****************************************************************************
|
||
|
|
||
|
MIDI device driver support
|
||
|
|
||
|
****************************************************************************/
|
||
|
|
||
|
/* maximum number of MIDI device drivers loaded */
|
||
|
#define MAXMIDIDRIVERS 10
|
||
|
|
||
|
#define MODM_USER DRVM_USER
|
||
|
#define MIDM_USER DRVM_USER
|
||
|
#define MODM_MAPPER DRVM_MAPPER
|
||
|
#define MIDM_MAPPER DRVM_MAPPER
|
||
|
|
||
|
#define MODM_INIT DRVM_INIT
|
||
|
#define MIDM_INIT DRVM_INIT
|
||
|
|
||
|
/* MIDI input and output device open information structure */
|
||
|
typedef struct midiopendesc_tag {
|
||
|
HMIDI hMidi; /* handle */
|
||
|
DWORD dwCallback; /* callback */
|
||
|
DWORD dwInstance; /* app's private instance information */
|
||
|
UINT uMappedDeviceID; /* device to map to if WAVE_MAPPED set */
|
||
|
DWORD dnDevNode; /* if device is PnP */
|
||
|
} MIDIOPENDESC;
|
||
|
typedef MIDIOPENDESC FAR *LPMIDIOPENDESC;
|
||
|
|
||
|
#if (WINVER >= 0x0400)
|
||
|
/* structure pointed to by lParam1 for MODM_GET/MODM_SETTIMEPARMS */
|
||
|
|
||
|
typedef struct miditimeparms_tag {
|
||
|
DWORD dwTimeDivision; /* time division ala MIDI file spec */
|
||
|
DWORD dwTempo; /* tempo ala MIDI file spec */
|
||
|
} MIDITIMEPARMS,
|
||
|
FAR *LPMIDITIMEPARMS;
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
/* messages sent to modMessage() entry-point function */
|
||
|
#define MODM_GETNUMDEVS 1
|
||
|
#define MODM_GETDEVCAPS 2
|
||
|
#define MODM_OPEN 3
|
||
|
#define MODM_CLOSE 4
|
||
|
#define MODM_PREPARE 5
|
||
|
#define MODM_UNPREPARE 6
|
||
|
#define MODM_DATA 7
|
||
|
#define MODM_LONGDATA 8
|
||
|
#define MODM_RESET 9
|
||
|
#define MODM_GETVOLUME 10
|
||
|
#define MODM_SETVOLUME 11
|
||
|
#define MODM_CACHEPATCHES 12
|
||
|
#define MODM_CACHEDRUMPATCHES 13
|
||
|
|
||
|
#if (WINVER >= 0x0400)
|
||
|
#define MODM_POLYMSG 14
|
||
|
//#define MODM_SETTIMEPARMS 15
|
||
|
//#define MODM_GETTIMEPARMS 16
|
||
|
#define MODM_GETPOS 17
|
||
|
#define MODM_PAUSE 18
|
||
|
#define MODM_RESTART 19
|
||
|
#define MODM_STOP 20
|
||
|
#define MODM_PROPERTIES 21
|
||
|
#define MODM_RECONFIGURE (MODM_USER+0x0768)
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
/* messages sent to midMessage() entry-point function */
|
||
|
#define MIDM_GETNUMDEVS 53
|
||
|
#define MIDM_GETDEVCAPS 54
|
||
|
#define MIDM_OPEN 55
|
||
|
#define MIDM_CLOSE 56
|
||
|
#define MIDM_PREPARE 57
|
||
|
#define MIDM_UNPREPARE 58
|
||
|
#define MIDM_ADDBUFFER 59
|
||
|
#define MIDM_START 60
|
||
|
#define MIDM_STOP 61
|
||
|
#define MIDM_RESET 62
|
||
|
#if (WINVER >= 0x0400)
|
||
|
//#define MIDM_SETTIMEPARMS 63
|
||
|
//#define MIDM_GETTIMEPARMS 64 /* Who will need to call this? */
|
||
|
#define MIDM_GETPOS 65
|
||
|
#define MIDM_PROPERTIES 66
|
||
|
#endif
|
||
|
|
||
|
#endif /*ifndef MMNOMIDIDEV */
|
||
|
|
||
|
|
||
|
#ifndef MMNOAUXDEV
|
||
|
/****************************************************************************
|
||
|
|
||
|
Auxiliary audio device driver support
|
||
|
|
||
|
****************************************************************************/
|
||
|
|
||
|
/* maximum number of auxiliary device drivers loaded */
|
||
|
#define MAXAUXDRIVERS 10
|
||
|
|
||
|
#define AUXM_INIT DRVM_INIT
|
||
|
#define AUXM_USER DRVM_USER
|
||
|
#define AUXDM_MAPPER DRVM_MAPPER
|
||
|
|
||
|
/* messages sent to auxMessage() entry-point function */
|
||
|
#define AUXDM_GETNUMDEVS 3
|
||
|
#define AUXDM_GETDEVCAPS 4
|
||
|
#define AUXDM_GETVOLUME 5
|
||
|
#define AUXDM_SETVOLUME 6
|
||
|
|
||
|
#endif /*ifndef MMNOAUXDEV */
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#ifndef MMNOMIXERDEV
|
||
|
#if (WINVER >= 0x0400)
|
||
|
/****************************************************************************
|
||
|
|
||
|
Mixer Driver Support
|
||
|
|
||
|
****************************************************************************/
|
||
|
|
||
|
//
|
||
|
// maximum number of mixer drivers that can be loaded by MSMIXMGR.DLL
|
||
|
//
|
||
|
#define MAXMIXERDRIVERS 10
|
||
|
|
||
|
//
|
||
|
// mixer device open information structure
|
||
|
//
|
||
|
//
|
||
|
typedef struct tMIXEROPENDESC
|
||
|
{
|
||
|
HMIXER hmx; // handle that will be used
|
||
|
LPVOID pReserved0; // reserved--driver should ignore
|
||
|
DWORD dwCallback; // callback
|
||
|
DWORD dwInstance; // app's private instance information
|
||
|
DWORD dnDevNode; // if device is PnP
|
||
|
|
||
|
} MIXEROPENDESC, *PMIXEROPENDESC, FAR *LPMIXEROPENDESC;
|
||
|
|
||
|
//
|
||
|
//
|
||
|
//
|
||
|
//
|
||
|
#define MXDM_INIT DRVM_INIT
|
||
|
#define MXDM_USER DRVM_USER
|
||
|
#define MXDM_MAPPER DRVM_MAPPER
|
||
|
|
||
|
#define MXDM_BASE (1)
|
||
|
#define MXDM_GETNUMDEVS (MXDM_BASE + 0)
|
||
|
#define MXDM_GETDEVCAPS (MXDM_BASE + 1)
|
||
|
#define MXDM_OPEN (MXDM_BASE + 2)
|
||
|
#define MXDM_CLOSE (MXDM_BASE + 3)
|
||
|
#define MXDM_GETLINEINFO (MXDM_BASE + 4)
|
||
|
#define MXDM_GETLINECONTROLS (MXDM_BASE + 5)
|
||
|
#define MXDM_GETCONTROLDETAILS (MXDM_BASE + 6)
|
||
|
#define MXDM_SETCONTROLDETAILS (MXDM_BASE + 7)
|
||
|
|
||
|
#endif /* ifdef WINVER >= 0x0400 */
|
||
|
#endif /* ifndef MMNOMIXERDEV */
|
||
|
|
||
|
|
||
|
#ifndef MMNOTIMERDEV
|
||
|
/****************************************************************************
|
||
|
|
||
|
Timer device driver support
|
||
|
|
||
|
****************************************************************************/
|
||
|
|
||
|
typedef struct timerevent_tag {
|
||
|
UINT wDelay; /* delay required */
|
||
|
UINT wResolution; /* resolution required */
|
||
|
LPTIMECALLBACK lpFunction; /* ptr to callback function */
|
||
|
DWORD dwUser; /* user DWORD */
|
||
|
UINT wFlags; /* defines how to program event */
|
||
|
} TIMEREVENT;
|
||
|
typedef TIMEREVENT FAR *LPTIMEREVENT;
|
||
|
|
||
|
/* messages sent to tddMessage() function */
|
||
|
#define TDD_KILLTIMEREVENT (DRV_RESERVED + 0) /* indices into a table of */
|
||
|
#define TDD_SETTIMEREVENT (DRV_RESERVED + 4) /* functions; thus offset by */
|
||
|
#define TDD_GETSYSTEMTIME (DRV_RESERVED + 8) /* four each time... */
|
||
|
#define TDD_GETDEVCAPS (DRV_RESERVED + 12) /* room for future expansion */
|
||
|
#define TDD_BEGINMINPERIOD (DRV_RESERVED + 16) /* room for future expansion */
|
||
|
#define TDD_ENDMINPERIOD (DRV_RESERVED + 20) /* room for future expansion */
|
||
|
|
||
|
#endif /*ifndef MMNOTIMERDEV */
|
||
|
|
||
|
|
||
|
#ifndef MMNOJOYDEV
|
||
|
/****************************************************************************
|
||
|
|
||
|
Joystick device driver support
|
||
|
|
||
|
****************************************************************************/
|
||
|
|
||
|
/* joystick calibration info structure */
|
||
|
typedef struct joycalibrate_tag {
|
||
|
UINT wXbase;
|
||
|
UINT wXdelta;
|
||
|
UINT wYbase;
|
||
|
UINT wYdelta;
|
||
|
UINT wZbase;
|
||
|
UINT wZdelta;
|
||
|
} JOYCALIBRATE;
|
||
|
typedef JOYCALIBRATE FAR *LPJOYCALIBRATE;
|
||
|
|
||
|
/* prototype for joystick message function */
|
||
|
typedef UINT (CALLBACK JOYDEVMSGPROC)(DWORD dwID, UINT uMessage, LPARAM lParam1, LPARAM lParam2);
|
||
|
typedef JOYDEVMSGPROC FAR *LPJOYDEVMSGPROC;
|
||
|
|
||
|
/* messages sent to joystick driver's DriverProc() function */
|
||
|
#define JDD_GETNUMDEVS (DRV_RESERVED + 0x0001)
|
||
|
#define JDD_GETDEVCAPS (DRV_RESERVED + 0x0002)
|
||
|
#define JDD_GETPOS (DRV_RESERVED + 0x0101)
|
||
|
#define JDD_SETCALIBRATION (DRV_RESERVED + 0x0102)
|
||
|
|
||
|
#endif /*ifndef MMNOJOYDEV */
|
||
|
|
||
|
|
||
|
#ifndef MMNOMCIDEV
|
||
|
/****************************************************************************
|
||
|
|
||
|
MCI device driver support
|
||
|
|
||
|
****************************************************************************/
|
||
|
|
||
|
/* internal MCI messages */
|
||
|
#define MCI_OPEN_DRIVER (DRV_RESERVED + 0x0001)
|
||
|
#define MCI_CLOSE_DRIVER (DRV_RESERVED + 0x0002)
|
||
|
|
||
|
#define MAKEMCIRESOURCE(wRet, wRes) MAKELRESULT((wRet), (wRes))
|
||
|
|
||
|
/* string return values only used with MAKEMCIRESOURCE */
|
||
|
#define MCI_FALSE (MCI_STRING_OFFSET + 19)
|
||
|
#define MCI_TRUE (MCI_STRING_OFFSET + 20)
|
||
|
|
||
|
/* resource string return values */
|
||
|
#define MCI_FORMAT_RETURN_BASE MCI_FORMAT_MILLISECONDS_S
|
||
|
#define MCI_FORMAT_MILLISECONDS_S (MCI_STRING_OFFSET + 21)
|
||
|
#define MCI_FORMAT_HMS_S (MCI_STRING_OFFSET + 22)
|
||
|
#define MCI_FORMAT_MSF_S (MCI_STRING_OFFSET + 23)
|
||
|
#define MCI_FORMAT_FRAMES_S (MCI_STRING_OFFSET + 24)
|
||
|
#define MCI_FORMAT_SMPTE_24_S (MCI_STRING_OFFSET + 25)
|
||
|
#define MCI_FORMAT_SMPTE_25_S (MCI_STRING_OFFSET + 26)
|
||
|
#define MCI_FORMAT_SMPTE_30_S (MCI_STRING_OFFSET + 27)
|
||
|
#define MCI_FORMAT_SMPTE_30DROP_S (MCI_STRING_OFFSET + 28)
|
||
|
#define MCI_FORMAT_BYTES_S (MCI_STRING_OFFSET + 29)
|
||
|
#define MCI_FORMAT_SAMPLES_S (MCI_STRING_OFFSET + 30)
|
||
|
#define MCI_FORMAT_TMSF_S (MCI_STRING_OFFSET + 31)
|
||
|
|
||
|
#define MCI_VD_FORMAT_TRACK_S (MCI_VD_OFFSET + 5)
|
||
|
|
||
|
#define WAVE_FORMAT_PCM_S (MCI_WAVE_OFFSET + 0)
|
||
|
#define WAVE_MAPPER_S (MCI_WAVE_OFFSET + 1)
|
||
|
|
||
|
#define MCI_SEQ_MAPPER_S (MCI_SEQ_OFFSET + 5)
|
||
|
#define MCI_SEQ_FILE_S (MCI_SEQ_OFFSET + 6)
|
||
|
#define MCI_SEQ_MIDI_S (MCI_SEQ_OFFSET + 7)
|
||
|
#define MCI_SEQ_SMPTE_S (MCI_SEQ_OFFSET + 8)
|
||
|
#define MCI_SEQ_FORMAT_SONGPTR_S (MCI_SEQ_OFFSET + 9)
|
||
|
#define MCI_SEQ_NONE_S (MCI_SEQ_OFFSET + 10)
|
||
|
#define MIDIMAPPER_S (MCI_SEQ_OFFSET + 11)
|
||
|
|
||
|
/* parameters for internal version of MCI_OPEN message sent from */
|
||
|
/* mciOpenDevice() to the driver */
|
||
|
typedef struct {
|
||
|
MCIDEVICEID wDeviceID; /* device ID */
|
||
|
LPCSTR lpstrParams; /* parameter string for entry in SYSTEM.INI */
|
||
|
UINT wCustomCommandTable; /* custom command table (0xFFFF if none) */
|
||
|
/* filled in by the driver */
|
||
|
UINT wType; /* driver type */
|
||
|
/* filled in by the driver */
|
||
|
} MCI_OPEN_DRIVER_PARMS,
|
||
|
FAR *LPMCI_OPEN_DRIVER_PARMS;
|
||
|
|
||
|
/* maximum length of an MCI device type */
|
||
|
#define MCI_MAX_DEVICE_TYPE_LENGTH 80
|
||
|
|
||
|
/* flags for mciSendCommandInternal() which direct mciSendString() how to */
|
||
|
/* interpret the return value */
|
||
|
#define MCI_RESOURCE_RETURNED 0x00010000 /* resource ID */
|
||
|
#define MCI_COLONIZED3_RETURN 0x00020000 /* colonized ID, 3 bytes data */
|
||
|
#define MCI_COLONIZED4_RETURN 0x00040000 /* colonized ID, 4 bytes data */
|
||
|
#define MCI_INTEGER_RETURNED 0x00080000 /* integer conversion needed */
|
||
|
#define MCI_RESOURCE_DRIVER 0x00100000 /* driver owns returned resource */
|
||
|
|
||
|
/* invalid command table ID */
|
||
|
#define MCI_NO_COMMAND_TABLE -1
|
||
|
|
||
|
/* command table information type tags */
|
||
|
#define MCI_COMMAND_HEAD 0
|
||
|
#define MCI_STRING 1
|
||
|
#define MCI_INTEGER 2
|
||
|
#define MCI_END_COMMAND 3
|
||
|
#define MCI_RETURN 4
|
||
|
#define MCI_FLAG 5
|
||
|
#define MCI_END_COMMAND_LIST 6
|
||
|
#define MCI_RECT 7
|
||
|
#define MCI_CONSTANT 8
|
||
|
#define MCI_END_CONSTANT 9
|
||
|
|
||
|
/* function prototypes for MCI driver functions */
|
||
|
DWORD WINAPI mciGetDriverData(UINT uDeviceID);
|
||
|
BOOL WINAPI mciSetDriverData(UINT uDeviceID, DWORD dwData);
|
||
|
UINT WINAPI mciDriverYield(UINT uDeviceID);
|
||
|
BOOL WINAPI mciDriverNotify(HWND hwndCallback, UINT uDeviceID,
|
||
|
UINT uStatus);
|
||
|
#ifdef WIN32
|
||
|
UINT WINAPI mciLoadCommandResource(HINSTANCE hInstance, LPCWSTR lpResName, UINT uType);
|
||
|
#else
|
||
|
UINT WINAPI mciLoadCommandResource(HINSTANCE hInstance, LPCSTR lpResName, UINT uType);
|
||
|
#endif
|
||
|
BOOL WINAPI mciFreeCommandResource(UINT uTable);
|
||
|
|
||
|
#endif /*ifndef MMNOMCIDEV */
|
||
|
|
||
|
|
||
|
#ifndef MMNOTASKDEV
|
||
|
/*****************************************************************************
|
||
|
|
||
|
Task support
|
||
|
|
||
|
*****************************************************************************/
|
||
|
|
||
|
/* error return values */
|
||
|
#define TASKERR_NOTASKSUPPORT 1
|
||
|
#define TASKERR_OUTOFMEMORY 2
|
||
|
|
||
|
/* task support function prototypes */
|
||
|
#ifdef BUILDDLL /* ;Internal */
|
||
|
typedef void (FAR PASCAL TASKCALLBACK) (DWORD dwInst); /* ;Internal */
|
||
|
#else /*ifdef BUILDDLL*/ /* ;Internal */
|
||
|
typedef void (CALLBACK TASKCALLBACK) (DWORD dwInst);
|
||
|
#endif /*ifdef BUILDDLL*/ /* ;Internal */
|
||
|
|
||
|
typedef TASKCALLBACK FAR *LPTASKCALLBACK;
|
||
|
|
||
|
UINT WINAPI mmTaskCreate(LPTASKCALLBACK lpfnTaskProc, HTASK FAR * lphTask, DWORD dwInst);
|
||
|
UINT WINAPI mmTaskBlock(HTASK h);
|
||
|
BOOL WINAPI mmTaskSignal(HTASK h);
|
||
|
void WINAPI mmTaskYield(void);
|
||
|
HTASK WINAPI mmGetCurrentTask(void);
|
||
|
|
||
|
|
||
|
#endif /*ifndef MMNOTASKDEV */
|
||
|
|
||
|
#define MMDDKINC /* ;Internal */
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
} /* End of extern "C" { */
|
||
|
#endif /* __cplusplus */
|
||
|
|
||
|
#ifndef RC_INVOKED
|
||
|
#pragma pack() /* Revert to default packing */
|
||
|
#endif
|
||
|
|
||
|
#endif /* _INC_MMDDK */
|