mmddk.h

来自「用于查询PC机上的USB端口是否有设备挂接上」· C头文件 代码 · 共 916 行 · 第 1/3 页

H
916
字号
/*XLATOFF*/							/* ;Internal*/

#if 0								/* ;BeginInternal*/
/* Used to create the INC version of the structs */
/*XLATON*/
typedef struct JOYCALIBRATE {
	WORD	jcal_wXbase;
	WORD	jcal_wXdelta;
	WORD	jcal_wYbase;
	WORD	jcal_wYdelta;
	WORD	jcal_wZbase;
	WORD	jcal_wZdelta;
} JOYCALIBRATE;

typedef struct joypos_tag {
    DWORD	jpos_dwX;
    DWORD	jpos_dwY;
    DWORD	jpos_dwZ;
    DWORD	jpos_dwR;
    DWORD	jpos_dwU;
    DWORD	jpos_dwV;
} JOYPOS;

typedef struct joyrange_tag {
    joypos_tag	jrange_jpMin;
    joypos_tag	jrange_jpMax;
    joypos_tag	jrange_jpCenter;
} JOYRANGE;

typedef struct joyreguservalues_tag {
    DWORD	jreguv_dwTimeOut;
    joyrange_tag jreguv_jrvRanges;
    joypos_tag	jreguv_jpDeadZone;
} JOYREGUSERVALUES;

typedef struct joyreghwsettings_tag {
    DWORD	jreghws_dwFlags;
    DWORD	jreghws_dwNumButtons;
} JOYREGHWSETTINGS;

typedef struct joyreghwvalues_tag {
    joyrange_tag jreghwv_jrvHardware;
    DWORD	jreghwv_dwPOVValues[JOY_POV_NUMDIRS];
    DWORD	reghwv_dwCalFlags;
} JOYREGHWVALUES;

typedef struct joyreghwconfig_tag {
    joyreghwsettings_tag jreghwc_hws;
    DWORD		jreghwc_dwUsageSettings;
    joyreghwvalues_tag	jreghwc_hwv;
    DWORD		jreghwc_dwType;
} JOYREGHWCONFIG, FAR *LPJOYREGHWCONFIG;
/*XLATOFF*/
#endif								/* ;EndInternal*/

/* struct for storing x,y, z, and rudder values */
typedef struct joypos_tag {
    DWORD	dwX;
    DWORD	dwY;
    DWORD	dwZ;
    DWORD	dwR;
    DWORD	dwU;
    DWORD	dwV;
} JOYPOS, FAR *LPJOYPOS;

/* struct for storing ranges */
typedef struct joyrange_tag {
    JOYPOS	jpMin;
    JOYPOS	jpMax;
    JOYPOS	jpCenter;
} JOYRANGE,FAR *LPJOYRANGE;

typedef struct joyreguservalues_tag {
    DWORD	dwTimeOut;	/* value at which to timeout joystick polling */
    JOYRANGE	jrvRanges;	/* range of values app wants returned for axes */
    JOYPOS	jpDeadZone;	/* area around center to be considered
    				   as "dead". specified as a percentage
				   (0-100). Only X & Y handled by system driver */
} JOYREGUSERVALUES, FAR *LPJOYREGUSERVALUES;

typedef struct joyreghwsettings_tag {
    DWORD	dwFlags;
    DWORD	dwNumButtons;		/* number of buttons */
} JOYREGHWSETTINGS, FAR *LPJOYHWSETTINGS;

/* range of values returned by the hardware (filled in by calibration) */
typedef struct joyreghwvalues_tag {
    JOYRANGE	jrvHardware;		/* values returned by hardware */
    DWORD	dwPOVValues[JOY_POV_NUMDIRS];/* POV values returned by hardware */
    DWORD	dwCalFlags;		/* what has been calibrated */
} JOYREGHWVALUES, FAR *LPJOYREGHWVALUES;

/* hardware configuration */
typedef struct joyreghwconfig_tag {
    JOYREGHWSETTINGS	hws;		/* hardware settings */
    DWORD		dwUsageSettings;/* usage settings */
    JOYREGHWVALUES	hwv;		/* values returned by hardware */
    DWORD		dwType;		/* type of joystick */
    DWORD		dwReserved;	/* reserved for OEM drivers */
} JOYREGHWCONFIG, FAR *LPJOYREGHWCONFIG;

/* 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 */
#ifndef _WIN32_VXD
typedef UINT (CALLBACK JOYDEVMSGPROC)(DWORD dwID, UINT uMessage, LPARAM lParam1, LPARAM lParam2);
typedef JOYDEVMSGPROC FAR *LPJOYDEVMSGPROC;
#endif

/*XLATON*/							/* ;Internal*/
/* 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)
#define JDD_CONFIGCHANGED       (DRV_RESERVED + 0x0103)
#define JDD_GETPOSEX            (DRV_RESERVED + 0x0104)

#endif  /*ifndef MMNOJOYDEV */


#ifndef MMNOMCIDEV
#ifndef _WIN32_VXD
/****************************************************************************

                        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)
/*XLATOFF*/							/* ;Internal*/
#if 0								/* ;BeginInternal*/
/* Used to create the INC version of the struct */
/*XLATON*/
typedef struct MCI_OPEN_DRIVER_PARMS {
	WORD	mciodrv_wDeviceID;
	DWORD	mciodrv_lpstrParams;
	WORD	mciodrv_wCustomCommandTable;
	WORD	mciodrv_wType;
} MCI_OPEN_DRIVER_PARMS;
/*XLATOFF*/
#endif								/* ;EndInternal*/

/* 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;

/*XLATON*/							/* ;Internal*/
/* 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

/*XLATOFF*/							/* ;Internal*/
/* function prototypes for MCI driver functions */
WINMMAPI DWORD WINAPI mciGetDriverData(UINT uDeviceID);
WINMMAPI BOOL  WINAPI mciSetDriverData(UINT uDeviceID, DWORD dwData);
WINMMAPI UINT  WINAPI mciDriverYield(UINT uDeviceID);
WINMMAPI BOOL  WINAPI mciDriverNotify(HWND hwndCallback, UINT uDeviceID,
    UINT uStatus);
#ifdef _WIN32
WINMMAPI UINT  WINAPI mciLoadCommandResource(HINSTANCE hInstance, LPCWSTR lpResName, UINT uType);
#else
UINT  WINAPI mciLoadCommandResource(HINSTANCE hInstance, LPCSTR lpResName, UINT uType);
#endif
WINMMAPI BOOL  WINAPI mciFreeCommandResource(UINT uTable);
/*XLATON*/							/* ;Internal*/

#endif  /*ifndef _WIN32_VXD */
#endif  /*ifndef MMNOMCIDEV */


#ifndef MMNOTASKDEV
/*XLATOFF*/							/* ;Internal*/
#ifndef _WIN32_VXD
#ifndef _WIN32
/*****************************************************************************

                               Task support

*****************************************************************************/

/* error return values */
/*XLATON*/							/* ;Internal*/
#define TASKERR_NOTASKSUPPORT   1
#define TASKERR_OUTOFMEMORY     2
/*XLATOFF*/							/* ;Internal*/

/* 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;

WINMMAPI UINT    WINAPI mmTaskCreate(LPTASKCALLBACK lpfnTaskProc, HTASK FAR * lphTask, DWORD dwInst);
WINMMAPI UINT    WINAPI mmTaskBlock(HTASK h);
WINMMAPI BOOL    WINAPI mmTaskSignal(HTASK h);
WINMMAPI void    WINAPI mmTaskYield(void);
WINMMAPI HTASK   WINAPI mmGetCurrentTask(void);

/* mmThread function prototypes and defines */		/* ;Internal */
UINT  WINAPI mmThreadCreate(LPTASKCALLBACK lpfn, LPHANDLE lphmt, DWORD dwParam, DWORD dwFlags);   /* ;Internal */
VOID  WINAPI mmThreadSignal(HANDLE hmt);		/* ;Internal */
VOID  WINAPI mmThreadBlock(HANDLE hmt);			/* ;Internal */
BOOL  WINAPI mmThreadIsCurrent(HANDLE hmt);		/* ;Internal */
BOOL  WINAPI mmThreadIsValid(HANDLE hmt);		/* ;Internal */
HTASK WINAPI mmThreadGetTask(HANDLE hmt);		/* ;Internal */

#endif  /*infdef _WIN32 */
#define MMTHREAD_CREATEF_16BIT	    (0x00000001)	/* ;Internal */
#define MMTHREAD_CREATEF_KERNEL	    (0x00000002)	/* ;Internal */
#endif /* ifndef _WIN32_VXD */
/*XLATON*/							/* ;Internal*/
#endif  /*ifndef MMNOTASKDEV */
/*XLATOFF*/							/* ;Internal*/

#define MMDDKINC                /* ;Internal */

#ifdef __cplusplus
}                       /* End of extern "C" { */
#endif  /* __cplusplus */

#ifndef RC_INVOKED
#pragma pack()          /* Revert to default packing */
#endif

#endif  /* _INC_MMDDK */

⌨️ 快捷键说明

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