132 lines
3.7 KiB
C
132 lines
3.7 KiB
C
|
/*
|
||
|
mcihand.h
|
||
|
|
||
|
This file defines the constants, structures and APIs used
|
||
|
to implement the MCI handler interface.
|
||
|
|
||
|
6/17/91 NigelT
|
||
|
|
||
|
*/
|
||
|
|
||
|
#ifndef MCIHAND_H
|
||
|
#define MCIHAND_H
|
||
|
|
||
|
//
|
||
|
// Define the name of a handler entry point
|
||
|
//
|
||
|
|
||
|
#define MCI_HANDLER_PROC_NAME "DriverProc"
|
||
|
|
||
|
//
|
||
|
// Typedef the entry routine for a driver
|
||
|
//
|
||
|
|
||
|
typedef LONG (HANDLERPROC)(DWORD dwId, UINT msg, LONG lp1, LONG lp2);
|
||
|
typedef HANDLERPROC *LPHANDLERPROC;
|
||
|
|
||
|
//
|
||
|
// Define the messages sent to a handler which are generic to the
|
||
|
// handler rather than a specific device handled by it.
|
||
|
//
|
||
|
|
||
|
#define MCI_OPEN_HANDLER 0x0001
|
||
|
#define MCI_CLOSE_HANDLER 0x0002
|
||
|
#define MCI_QUERY_CONFIGURE 0x0003
|
||
|
#define MCI_CONFIGURE 0x0004
|
||
|
|
||
|
//
|
||
|
// Define the device specific messages sent to the handlers
|
||
|
//
|
||
|
|
||
|
#define MCI_OPEN_DEVICE 0x0800
|
||
|
#define MCI_CLOSE_DEVICE 0x0801
|
||
|
|
||
|
/*
|
||
|
// #ifndef MAKEMCIRESOURCE
|
||
|
// #define MAKEMCIRESOURCE(wRet, wRes) MAKELONG((wRet), (wRes))
|
||
|
// #endif
|
||
|
*/
|
||
|
|
||
|
//
|
||
|
// Define the return code for happy campers
|
||
|
// This is returned in response to driver messages which succeed
|
||
|
//
|
||
|
|
||
|
#define MCI_SUCCESS 0x00000000
|
||
|
|
||
|
|
||
|
//
|
||
|
// String return values only used with MAKEMCIRESOURCE
|
||
|
//
|
||
|
|
||
|
#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 WAVE_FORMAT_PCM_S (MCI_WAVE_OFFSET + 0)
|
||
|
#define WAVE_MAPPER_S (MCI_WAVE_OFFSET + 1)
|
||
|
|
||
|
#define MIDIMAPPER_S (MCI_SEQ_OFFSET + 11)
|
||
|
|
||
|
//
|
||
|
// Parameters for internal version of MCI_OPEN message sent from
|
||
|
// mciOpenDevice to the handler. The wCustomCommandTable field is
|
||
|
// set by the driver. It is set to MCI_TABLE_NOT_PRESENT if there
|
||
|
// is no table. The wType field is also set by the driver.
|
||
|
//
|
||
|
|
||
|
typedef struct {
|
||
|
LPSTR lpstrParams; // parameter string for entry in ini file
|
||
|
DWORD wDeviceID; // device ID
|
||
|
UINT wCustomCommandTable; // custom command table
|
||
|
UINT wType; // driver type
|
||
|
} MCI_OPEN_HANDLER_PARMS;
|
||
|
typedef MCI_OPEN_HANDLER_PARMS FAR * LPMCI_OPEN_HANDLER_PARMS;
|
||
|
|
||
|
//
|
||
|
// The 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
|
||
|
|
||
|
//
|
||
|
// Command table information type tags
|
||
|
//
|
||
|
|
||
|
#define MCI_TABLE_NOT_PRESENT (-1)
|
||
|
#define MCI_CUSTOM_TABLE 0
|
||
|
|
||
|
#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
|
||
|
|
||
|
|
||
|
#endif /* MCIHAND_H */
|