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 + -
显示快捷键?