mmddk.h
来自「用于查询PC机上的USB端口是否有设备挂接上」· C头文件 代码 · 共 916 行 · 第 1/3 页
H
916 行
/****************************************************************************
MIDI device driver support
****************************************************************************/
/* maximum number of MIDI device drivers loaded */
/*XLATON*/ /* ;Internal*/
#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
/*XLATOFF*/ /* ;Internal*/
#if 0 /* ;BeginInternal*/
/* Used to create the INC version of the struct */
/*XLATON*/
typedef struct MIDIOPENDESC {
WORD mod_hMidi;
DWORD mod_dwCallback;
DWORD mod_dwInstance;
} MIDIOPENDESC;
/*XLATOFF*/
#endif /* ;EndInternal*/
typedef struct midiopenstrmid_tag {
DWORD dwStreamID;
WORD wDeviceID;
} MIDIOPENSTRMID;
/* 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 */
WORD uReserved; /* Remove me */
DWORD dnDevNode; /* if device is PnP */
DWORD cIds; /* If stream open, # stream ids */
MIDIOPENSTRMID rgIds[1]; /* Array of device ID's (actually [cIds])*/
} 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;
/* Flags for MODM_OPEN */
#define MIDI_IO_PACKED 0x00000000L /* Compatibility mode */
#define MIDI_IO_COOKED 0x00000002L
#endif
/*XLATON*/ /* ;Internal*/
/* 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
/*XLATOFF*/ /* ;Internal*/
#if (WINVER >= 0x0400)
#define MODM_STRMDATA 14
#define MODM_GETPOS 17
#define MODM_PAUSE 18
#define MODM_RESTART 19
#define MODM_STOP 20
#define MODM_PROPERTIES 21
#define MODM_PREFERRED 22
#define MODM_RECONFIGURE (MODM_USER+0x0768)
#endif
/*XLATON*/ /* ;Internal*/
/* 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
#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 */
/*XLATOFF*/ /* ;Internal*/
#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 */
/*XLATON*/ /* ;Internal*/
#ifndef MMNOTIMERDEV
#ifndef _WIN32_VXD
/*XLATOFF*/ /* ;Internal*/
/****************************************************************************
Timer device driver support
****************************************************************************/
#if 0 /* ;BeginInternal*/
/* Used to create the INC version of the struct */
/*XLATON*/
typedef struct TIMEREVENT {
WORD te_wDelay;
WORD te_wResolution;
DWORD te_lpFunction;
DWORD te_dwUser;
WORD te_wFlags;
} TIMEREVENT;
/*XLATOFF*/
#endif /* ;EndInternal*/
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;
/*XLATON*/ /* ;Internal*/
/* 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 _WIN32_VXD */
#endif /*ifndef MMNOTIMERDEV */
#ifndef MMNOJOYDEV
/*XLATOFF*/ /* ;Internal*/
/****************************************************************************
Joystick device driver support
****************************************************************************/
/*XLATON*/ /* ;Internal*/
/* RegisterWindowMessage with this to get msg id of config changes */
#define JOY_CONFIGCHANGED_MSGSTRING "MSJSTICK_VJOYD_MSGSTR"
/* pre-defined joystick types */
#define JOY_HW_NONE 0
#define JOY_HW_CUSTOM 1
#define JOY_HW_2A_2B_GENERIC 2
#define JOY_HW_2A_4B_GENERIC 3
#define JOY_HW_2B_GAMEPAD 4
#define JOY_HW_2B_FLIGHTYOKE 5
#define JOY_HW_2B_FLIGHTYOKETHROTTLE 6
#define JOY_HW_3A_2B_GENERIC 7
#define JOY_HW_3A_4B_GENERIC 8
#define JOY_HW_4B_GAMEPAD 9
#define JOY_HW_4B_FLIGHTYOKE 10
#define JOY_HW_4B_FLIGHTYOKETHROTTLE 11
#define JOY_HW_LASTENTRY 12
/* calibration flags */
#define JOY_ISCAL_XY 0x00000001l /* XY are calibrated */
#define JOY_ISCAL_Z 0x00000002l /* Z is calibrated */
#define JOY_ISCAL_R 0x00000004l /* R is calibrated */
#define JOY_ISCAL_U 0x00000008l /* U is calibrated */
#define JOY_ISCAL_V 0x00000010l /* V is calibrated */
#define JOY_ISCAL_POV 0x00000020l /* POV is calibrated */
/* point of view constants */
#define JOY_POV_NUMDIRS 4
#define JOY_POVVAL_FORWARD 0
#define JOY_POVVAL_BACKWARD 1
#define JOY_POVVAL_LEFT 2
#define JOY_POVVAL_RIGHT 3
/* Specific settings for joystick hardware */
#define JOY_HWS_HASZ 0x00000001l /* has Z info? */
#define JOY_HWS_HASPOV 0x00000002l /* point of view hat present */
#define JOY_HWS_POVISBUTTONCOMBOS 0x00000004l /* pov done through combo of buttons */
#define JOY_HWS_POVISPOLL 0x00000008l /* pov done through polling */
#define JOY_HWS_ISYOKE 0x00000010l /* joystick is a flight yoke */
#define JOY_HWS_ISGAMEPAD 0x00000020l /* joystick is a game pad */
#define JOY_HWS_ISCARCTRL 0x00000040l /* joystick is a car controller */
/* X defaults to J1 X axis */
#define JOY_HWS_XISJ1Y 0x00000080l /* X is on J1 Y axis */
#define JOY_HWS_XISJ2X 0x00000100l /* X is on J2 X axis */
#define JOY_HWS_XISJ2Y 0x00000200l /* X is on J2 Y axis */
/* Y defaults to J1 Y axis */
#define JOY_HWS_YISJ1X 0x00000400l /* Y is on J1 X axis */
#define JOY_HWS_YISJ2X 0x00000800l /* Y is on J2 X axis */
#define JOY_HWS_YISJ2Y 0x00001000l /* Y is on J2 Y axis */
/* Z defaults to J2 Y axis */
#define JOY_HWS_ZISJ1X 0x00002000l /* Z is on J1 X axis */
#define JOY_HWS_ZISJ1Y 0x00004000l /* Z is on J1 Y axis */
#define JOY_HWS_ZISJ2X 0x00008000l /* Z is on J2 X axis */
/* POV defaults to J2 Y axis, if it is not button based */
#define JOY_HWS_POVISJ1X 0x00010000l /* pov done through J1 X axis */
#define JOY_HWS_POVISJ1Y 0x00020000l /* pov done through J1 Y axis */
#define JOY_HWS_POVISJ2X 0x00040000l /* pov done through J2 X axis */
/* R defaults to J2 X axis */
#define JOY_HWS_HASR 0x00080000l /* has R (4th axis) info */
#define JOY_HWS_RISJ1X 0x00100000l /* R done through J1 X axis */
#define JOY_HWS_RISJ1Y 0x00200000l /* R done through J1 Y axis */
#define JOY_HWS_RISJ2Y 0x00400000l /* R done through J2 X axis */
/* U & V for future hardware */
#define JOY_HWS_HASU 0x00800000l /* has U (5th axis) info */
#define JOY_HWS_HASV 0x01000000l /* has V (6th axis) info */
/* Usage settings */
#define JOY_US_HASRUDDER 0x00000001l /* joystick configured with rudder */
#define JOY_US_PRESENT 0x00000002l /* is joystick actually present? */
#define JOY_US_ISOEM 0x00000004l /* joystick is an OEM defined type */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?