home *** CD-ROM | disk | FTP | other *** search
- /****************************************************************************/
- /* */
- /* Module Name: MMDRVOS2.H */
- /* */
- /* This is the multimedia include file that has the typedefs, defines and */
- /* function prototyes for MCI drivers using OS2 notation. */
- /* */
- /* Copyright (c) International Business Machines Corporation */
- /* 1991, 1992, 1993 */
- /* All Rights Reserved */
- /* */
- /****************************************************************************/
-
- typedef USHORT GID;
-
- /****************************************************************************/
- /* MCI Driver message identifiers */
- /****************************************************************************/
- #define MCIDRV_SAVE 900
- #define MCIDRV_RESTORE 901
- #define MCIDRV_SYNC 902
- #define MCIDRV_CHANGERESOURCE 903
-
- /*********************************************************************/
- /* The following range of message ID's are reserved for internal use */
- /* by MCI drivers */
- /*********************************************************************/
- #define MCI_INTERNAL_MESSAGES_START 1000
- #define MCI_INTERNAL_MESSAGES_END 1999
-
- /*********************************************************************/
- /* Flags used by the string parser for command tables */
- /* NOTE: All flags must have an "L" suffix in order to be parsed as */
- /* ULONGs by the resource compiler */
- /*********************************************************************/
- #define MCI_COMMAND_HEAD 0x00000001L
- #define MCI_END_COMMAND 0x00000002L
- #define MCI_END_COMMAND_LIST 0x00000003L
- #define MCI_RETURN 0x00000004L
- #define MCI_STRING 0x00000005L
- #define MCI_FLAG 0x00000006L
- #define MCI_INTEGER 0x00000007L
- #define MCI_CONSTANT 0x00000008L
- #define MCI_CONSTANT_INTEGER 0x00000009L
- #define MCI_CONSTANT_STRING 0x0000000AL
- #define MCI_END_CONSTANT 0x0000000BL
- #define MCI_DEFAULT_STRING 0x0000000CL
- #define MCI_DEFAULT_INTEGER 0x0000000DL
- #define MCI_RETURN_TYPE 0x0000000EL
- #define MCI_RETURN_TYPE_STRING 0x0000000FL
- #define MCI_END_RETURN_TYPE 0x00000010L
- #define MCI_CONSTANT_2 0x00000011L
- #define MCI_END_CONSTANT_2 0x00000012L
- #define MCI_CONSTANT_PAIR 0x00000013L
- #define MCI_END_CONSTANT_PAIR 0x00000014L
- #define MCI_CONSTANT_INTEGER_PAIR 0x00000015L
- #define MCI_CONSTANT_STRING_PAIR 0x00000016L
- #define MCI_RECTL 0x00000017L
- #define MCI_CONSTANT_4 0x00000018L
- #define MCI_END_CONSTANT_4 0x00000019L
- #define MCI_FOURCC 0x0000001AL
- #define MCI_OR 0x0000001BL
- #define MCI_END_OR 0x0000001CL
- #define MCI_STRING_LIST 0x0000001DL
-
- /*********************************************************************/
- /* Return types supported by mciSendString */
- /* Values 0x0000 -> 0xFF00 are reserved by MMPM2 */
- /* Values 0xFF01 -> 0xFFFF are user definable */
- /*********************************************************************/
- #define MCI_INTEGER_RETURNED 0x1000
- #define MCI_COLONIZED2_RETURN 0x2000
- #define MCI_COLONIZED3_RETURN 0x3000
- #define MCI_COLONIZED4_RETURN 0x4000
- #define MCI_TRUE_FALSE_RETURN 0x5000
- #define MCI_ON_OFF_RETURN 0x6000
- #define MCI_DEVICENAME_RETURN 0x7000
- #define MCI_TIME_FORMAT_RETURN 0x8000
- #define MCI_SPEED_FORMAT_RETURN 0x9000
- #define MCI_MODE_RETURN 0xA000
- #define MCI_MEDIA_TYPE_RETURN 0xB000
- #define MCI_TRACK_TYPE_RETURN 0xC000
- #define MCI_CONNECTOR_TYPE_RETURN 0xD000
- #define MCI_CDXA_CHANNEL_DESTINATION_RETURN 0xE000
- #define MCI_PREROLL_TYPE_RETURN 0xF000
- #define MCI_FORMAT_TAG_RETURN 0xF100
- #define MCI_SEQ_SYNCHRONIZATION_RETURN 0xF200
- #define MCI_VIDEO_QUALITY_RETURN 0xF300
- #define MCI_AUDIO_QUALITY_RETURN 0xF400
- #define MCI_IMAGE_QUALITY_RETURN 0xF500
- #define MCI_VIDEO_COMPRESSION_RETURN 0xF600
- #define MCI_AUDIO_COMPRESSION_RETURN 0xF700
- #define MCI_IMAGE_COMPRESSION_RETURN 0xF800
- #define MCI_RECTL_RETURN 0xF900
- #define MCI_FOURCC_RETURN 0xFA00
-
-
- #define MCI_USER_RETURN 0xFF01
-
- /*********************************************************************/
- /* End of msg text used by mciGetErrorString */
- /*********************************************************************/
- #define MCIERR_MSG_TABLE_END MCIERR_BASE + 7000
-
- /*********************************************************************/
- /* */
- /* MCI DEVICE shareability categories */
- /* */
- /*********************************************************************/
- #define FIXEDSINGLECONTEXT 0x0001
- #define DYNAMICSINGLECONTEXT 0x0002
- #define LIMITEDMULTIPLECONTEXT 0x0003
- #define UNLIMITEDMULTIPLECONTEXT 0x0004
-
- /*********************************************************************/
- /* MCI driver flag for close during exit list processing */
- /*********************************************************************/
- #define MCI_CLOSE_EXIT 0x10000000L
-
- /*********************************************************************/
- /* MCI driver specific error table resource number base */
- /*********************************************************************/
- #define MMERROR_TABLE_BASE 500
-
- /*********************************************************************/
- /* */
- /* MCIDRV_CHANGERESOURCE message flags */
- /* */
- /*********************************************************************/
- #pragma pack(1)
-
- typedef struct _MCIDRV_CHANGERESOURCE_PARMS {
- PVOID pInstance; /* pointer to device instance */
- USHORT usResourceUnits; /* required resource units */
- USHORT usResourceClass; /* resource class */
- USHORT usResourcePriority; /* resource priority */
- } MCIDRV_CHANGERESOURCE_PARMS;
- typedef MCIDRV_CHANGERESOURCE_PARMS *PMCIDRV_CHANGERESOURCE_PARMS;
-
- /*********************************************************************/
- /* */
- /* MCIDRV_SYNC message flags */
- /* */
- /*********************************************************************/
- #define MCIDRV_SYNC_ENABLE 0x00000100L
- #define MCIDRV_SYNC_DISABLE 0x00000200L
- #define MCIDRV_SYNC_REC_PULSE 0x00000400L
- #define MCIDRV_SYNC_MASTER 0x00000800L
- #define MCIDRV_SYNC_SET_MASTER 0x00001000L
-
- typedef struct _MCIDRV_SYNC_PARMS {
- HSTREAM *hStreams; // Pointer to list of stream IDs
- ULONG ulNumStreams; // number of stream IDs
- MMTIME mmTime; // Sync Pulse Time
- BOOL NonStreamMaster; // TRUE if this device can be master
- PSYNC_EVCB pevcbSyncPulse; // pointer to EVCB address (output)
- HID hidMaster; // Master NULL sh ID (valid only on
- // MCIDRV_SYNC_MASTER
- ULONG ulReserved1; // Reserved field
- ULONG ulReserved2; // Reserved field
- } MCIDRV_SYNC_PARMS;
- typedef MCIDRV_SYNC_PARMS *PMCIDRV_SYNC_PARMS;
-
-
- /*********************************************************************/
- /* contains information for open message for MCI drivers */
- /*********************************************************************/
- typedef struct __MMDRV_OPEN_PARMS{
- HWND hwndCallback; /* call back handle */
- USHORT usDeviceID; /* The device ID assigned to this instance*/
- USHORT usDeviceType; /* The device type number */
- USHORT usDeviceOrd; /* The device ordinal number */
- PVOID pInstance; /* pointer to the instance structure allocated */
- /* initialized by the driver. The MCI driver */
- /* will fill in this parameter. */
- CHAR szDevDLLName[260]; /* Character string containing the device */
- /* specific DLL name to call for the open. */
- /* (ie. ACPA.DLL) */
- PSZ pszElementName;/* typically a file name or NULL */
- USHORT usDevParmLen; /* Device parameters data block length. */
- PVOID pDevParm; /* Device parameters data block. This data */
- /* block is unique to each type of device. */
- /* (ie. LVD "COM1 9600 N 7 1"). */
- PVOID Reserved0;
- USHORT usResourceUnitsRequired; /* number of resource units this instance */
- /* requires. */
- USHORT usResourceClass; /* resource class this instance belongs to*/
- USHORT usResourcePriority; /* resource priority for this instance */
- ULONG ulParam2; /* Pointer to MCI_OPEN structure */
- } MMDRV_OPEN_PARMS;
- typedef MMDRV_OPEN_PARMS *PMMDRV_OPEN_PARMS;
-
-
- #pragma pack()
- ULONG APIENTRY mdmDriverNotify (USHORT usDeviceID,
- HWND hwnd,
- USHORT usMsgType,
- USHORT usUserParm,
- ULONG ulMsgParm);
-