home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / detk45he.zip / mmdrvos2.h < prev    next >
C/C++ Source or Header  |  1999-03-15  |  16KB  |  317 lines

  1. #ifdef __cplusplus
  2.    extern "C" {
  3. #endif
  4.  
  5. #ifndef MMDRVOS2_H
  6. #define MMDRVOS2_H
  7.  
  8. /****************************************************************************/
  9. /*                                                                          */
  10. /* Module Name: MMDRVOS2.H                                                  */
  11. /*                                                                          */
  12. /* This is the multimedia include file that has the typedefs, defines and   */
  13. /* function prototyes for MCI drivers using OS2 notation.                   */
  14. /*                                                                          */
  15. /*         Copyright (c) International Business Machines Corporation        */
  16. /*                          1991, 1992, 1993                                */
  17. /*                        All Rights Reserved                               */
  18. /*                                                                          */
  19. /****************************************************************************/
  20. #ifndef _SSM_H_
  21. #include <ssm.h>
  22. #endif
  23.  
  24. typedef    USHORT   GID;
  25.  
  26. /****************************************************************************/
  27. /*             MCI Driver  message identifiers                              */
  28. /****************************************************************************/
  29. #define MCIDRV_SAVE                 900
  30. #define MCIDRV_RESTORE              901
  31. #define MCIDRV_SYNC                 902
  32. #define MCIDRV_CHANGERESOURCE       903
  33. #define MCIDRV_CONNECT              904
  34. #define MCIDRV_ASSOCIATE            905
  35. #define MCIDRV_DISCONNECT           906
  36. #define MCIDRV_TEST_CONNECTION      907
  37. #define MCIDRV_START                908
  38. #define MCIDRV_SEEK                 909
  39. #define MCIDRV_STOP                 910
  40. #define MCIDRV_MODIFY_CONNECTION    911
  41. #define MCIDRV_INIT_CONNECTION      912
  42. #define MCIDRV_DEINIT_CONNECTION    913
  43. #define MCIDRV_ENABLE_EVENT         915
  44. #define MCIDRV_GETTIME              917
  45.  
  46.  
  47.  
  48.  
  49. /*********************************************************************/
  50. /* The following messages are used by the MCIDRV_CONNECT message     */
  51. /*********************************************************************/
  52.  
  53. #define MCIDRV_CONNECT_TARGET       0x00010000
  54. #define MCIDRV_CONNECT_SOURCE       0x00020000
  55. #define MCIDRV_SET_CONNNECTOR_TYPE  0x00040000
  56. #define MCIDRV_CHANGE_SEM           0x00080000
  57.  
  58. /*********************************************************************/
  59. /* The following messages are used by MCIDRV_MODIFY_CONNECTION       */
  60. /*********************************************************************/
  61.  
  62.  
  63. #define MCIDRV_MODIFY_10            0x00100000L // back level MCI driver.
  64. #define MCIDRV_MIX_STANDALONE       0x00200000L
  65.  
  66.  
  67. /*********************************************************************/
  68. /* The following messages are used by MCIDRV_START                   */
  69. /*********************************************************************/
  70.  
  71. #define MCIDRV_CUE_PLAYBACK         0x00010000
  72. #define MCIDRV_CUE_RECORD           0x00020000
  73. #define MCIDRV_START_PLAYBACK       0x00040000
  74. #define MCIDRV_START_RECORD         0x00080000
  75. #define MCIDRV_START_PREROLL        0x00100000
  76.  
  77. /*********************************************************************/
  78. /* The following messages are used by MCIDRV_ASSOCIATE               */
  79. /*********************************************************************/
  80.  
  81. #define MCIDRV_OUTPUT               0x00010000
  82. #define MCIDRV_INPUT                0x00020000
  83.  
  84. /*********************************************************************/
  85. /* The following messages are used by MCIDRV_STOP                    */
  86. /*********************************************************************/
  87.  
  88. #define MCIDRV_PAUSE_STREAM_NETWORK   0x00010000
  89. #define MCIDRV_FLUSH_STREAM_NETWORK   0x00020000
  90. #define MCIDRV_DISCARD_STREAM_NETWORK 0x00040000
  91.  
  92.  
  93. /*********************************************************************/
  94. /* The following messages are used by MCIDRV_DEINIT_CONNECTION       */
  95. /*********************************************************************/
  96.  
  97. #define MCIDRV_MODIFY_HANDLER         0x00010000
  98.  
  99. /*********************************************************************/
  100. /* The following range of message ID's are reserved for internal use */
  101. /*  by MCI drivers                                                   */
  102. /*********************************************************************/
  103. #define MCI_INTERNAL_MESSAGES_START    1000
  104. #define MCI_INTERNAL_MESSAGES_END      1999
  105.  
  106. /*********************************************************************/
  107. /* Flags used by the string parser for command tables                */
  108. /* NOTE: All flags must have an "L" suffix in order to be parsed as  */
  109. /* ULONGs by the resource compiler                                   */
  110. /*********************************************************************/
  111. #define MCI_COMMAND_HEAD                 0x00000001L
  112. #define MCI_END_COMMAND                  0x00000002L
  113. #define MCI_END_COMMAND_LIST             0x00000003L
  114. #define MCI_RETURN                       0x00000004L
  115. #define MCI_STRING                       0x00000005L
  116. #define MCI_FLAG                         0x00000006L
  117. #define MCI_INTEGER                      0x00000007L
  118. #define MCI_CONSTANT                     0x00000008L
  119. #define MCI_CONSTANT_INTEGER             0x00000009L
  120. #define MCI_CONSTANT_STRING              0x0000000AL
  121. #define MCI_END_CONSTANT                 0x0000000BL
  122. #define MCI_DEFAULT_STRING               0x0000000CL
  123. #define MCI_DEFAULT_INTEGER              0x0000000DL
  124. #define MCI_RETURN_TYPE                  0x0000000EL
  125. #define MCI_RETURN_TYPE_STRING           0x0000000FL
  126. #define MCI_END_RETURN_TYPE              0x00000010L
  127. #define MCI_CONSTANT_2                   0x00000011L
  128. #define MCI_END_CONSTANT_2               0x00000012L
  129. #define MCI_CONSTANT_PAIR                0x00000013L
  130. #define MCI_END_CONSTANT_PAIR            0x00000014L
  131. #define MCI_CONSTANT_INTEGER_PAIR        0x00000015L
  132. #define MCI_CONSTANT_STRING_PAIR         0x00000016L
  133. #define MCI_RECTL                        0x00000017L
  134. #define MCI_CONSTANT_4                   0x00000018L
  135. #define MCI_END_CONSTANT_4               0x00000019L
  136. #define MCI_FOURCC                       0x0000001AL
  137. #define MCI_OR                           0x0000001BL
  138. #define MCI_END_OR                       0x0000001CL
  139. #define MCI_STRING_LIST                  0x0000001DL
  140.  
  141. /*********************************************************************/
  142. /* Return types supported by mciSendString                           */
  143. /*   Values 0x0000 -> 0xFF00  are reserved by MMPM2                  */
  144. /*   Values 0xFF01 -> 0xFFFF  are user definable                     */
  145. /*********************************************************************/
  146. #define MCI_INTEGER_RETURNED                     0x1000
  147. #define MCI_COLONIZED2_RETURN                    0x2000
  148. #define MCI_COLONIZED3_RETURN                    0x3000
  149. #define MCI_COLONIZED4_RETURN                    0x4000
  150. #define MCI_TRUE_FALSE_RETURN                    0x5000
  151. #define MCI_ON_OFF_RETURN                        0x6000
  152. #define MCI_DEVICENAME_RETURN                    0x7000
  153. #define MCI_TIME_FORMAT_RETURN                   0x8000
  154. #define MCI_SPEED_FORMAT_RETURN                  0x9000
  155. #define MCI_MODE_RETURN                          0xA000
  156. #define MCI_MEDIA_TYPE_RETURN                    0xB000
  157. #define MCI_TRACK_TYPE_RETURN                    0xC000
  158. #define MCI_CONNECTOR_TYPE_RETURN                0xD000
  159. #define MCI_CDXA_CHANNEL_DESTINATION_RETURN      0xE000
  160. #define MCI_PREROLL_TYPE_RETURN                  0xF000
  161. #define MCI_FORMAT_TAG_RETURN                    0xF100
  162. #define MCI_SEQ_SYNCHRONIZATION_RETURN           0xF200
  163. #define MCI_VIDEO_QUALITY_RETURN                 0xF300
  164. #define MCI_AUDIO_QUALITY_RETURN                 0xF400
  165. #define MCI_IMAGE_QUALITY_RETURN                 0xF500
  166. #define MCI_VIDEO_COMPRESSION_RETURN             0xF600
  167. #define MCI_AUDIO_COMPRESSION_RETURN             0xF700
  168. #define MCI_IMAGE_COMPRESSION_RETURN             0xF800
  169. #define MCI_RECTL_RETURN                         0xF900
  170. #define MCI_FOURCC_RETURN                        0xFA00
  171. #define MCI_IMAGE_PELFORMAT_RETURN               0xFB00
  172. #define MCI_DIRECTION_RETURN                     0xFC00
  173. #define MCI_SIGNED_INTEGER_RETURN                0xFD00
  174.  
  175.  
  176. #define MCI_USER_RETURN                          0xFF01
  177.  
  178. /*********************************************************************/
  179. /* End of msg text used by mciGetErrorString                         */
  180. /*********************************************************************/
  181. #define MCIERR_MSG_TABLE_END    MCIERR_BASE + 7000
  182.  
  183. /*********************************************************************/
  184. /*                                                                   */
  185. /*  MCI DEVICE shareability categories                               */
  186. /*                                                                   */
  187. /*********************************************************************/
  188. #define FIXEDSINGLECONTEXT            0x0001
  189. #define DYNAMICSINGLECONTEXT          0x0002
  190. #define LIMITEDMULTIPLECONTEXT        0x0003
  191. #define UNLIMITEDMULTIPLECONTEXT      0x0004
  192.  
  193. /*********************************************************************/
  194. /* MCI driver flag for close during exit list processing             */
  195. /*********************************************************************/
  196. #define MCI_CLOSE_EXIT                 0x10000000L
  197.  
  198. /*********************************************************************/
  199. /* MCI driver specific error table resource number base              */
  200. /*********************************************************************/
  201. #define MMERROR_TABLE_BASE      500
  202.  
  203. /*********************************************************************/
  204. /*                                                                   */
  205. /*  MCIDRV_CHANGERESOURCE  message flags                             */
  206. /*                                                                   */
  207. /*********************************************************************/
  208. #pragma pack(1)
  209.  
  210. typedef struct _MCIDRV_CHANGERESOURCE_PARMS {
  211.    PVOID      pInstance;             /* pointer to device instance   */
  212.    USHORT     usResourceUnits;       /* required resource units      */
  213.    USHORT     usResourceClass;       /* resource class               */
  214.    USHORT     usResourcePriority;    /* resource priority            */
  215. } MCIDRV_CHANGERESOURCE_PARMS;
  216. typedef MCIDRV_CHANGERESOURCE_PARMS  *PMCIDRV_CHANGERESOURCE_PARMS;
  217.  
  218.  
  219.  
  220. /*********************************************************************/
  221. /*                                                                   */
  222. /*  MCIDRV_ENABLE_EVENT message flags                                */
  223. /*                                                                   */
  224. /*********************************************************************/
  225.  
  226. typedef struct _MCIDRV_EVENT_PARMS {
  227.    ULONG   ulLength;   /* Length of event parms                     */
  228.    PEVCB   pevcb;      /* pointer to event control block            */
  229.    PHEVENT phevent;    /* pointer to the event to enable in network */
  230.  
  231. } MCIDRV_EVENT_PARMS;
  232. typedef MCIDRV_EVENT_PARMS  *PMCIDRV_EVENT_PARMS;
  233.  
  234.  
  235. /*********************************************************************/
  236. /*                                                                   */
  237. /*  MCIDRV_SYNC  message flags                                       */
  238. /*                                                                   */
  239. /*********************************************************************/
  240. #define MCIDRV_SYNC_ENABLE           0x00000100L
  241. #define MCIDRV_SYNC_DISABLE          0x00000200L
  242. #define MCIDRV_SYNC_REC_PULSE        0x00000400L
  243. #define MCIDRV_SYNC_MASTER           0x00000800L
  244. #define MCIDRV_SYNC_SET_MASTER       0x00001000L
  245.  
  246. typedef struct _MCIDRV_SYNC_PARMS {
  247.     HSTREAM   *hStreams;        /* Pointer to list of stream IDs     */
  248.     ULONG      ulNumStreams;    /* number of stream IDs              */
  249.     MMTIME     mmTime;          /* Sync Pulse Time                   */
  250.     BOOL       NonStreamMaster; /* TRUE if this device can be master */
  251.     PSYNC_EVCB pevcbSyncPulse;  /* pointer to EVCB address (output)  */
  252.     HID        hidMaster;       /* Master NULL sh ID (valid only on  */
  253.                                 /*    MCIDRV_SYNC_MASTER             */
  254.     ULONG      ulReserved1;     /* Reserved field                    */
  255.     ULONG      ulReserved2;     /* Reserved field                    */
  256. } MCIDRV_SYNC_PARMS;
  257. typedef MCIDRV_SYNC_PARMS *PMCIDRV_SYNC_PARMS;
  258.  
  259.  
  260. /*********************************************************************/
  261. /* contains information for open message for MCI drivers             */
  262. /*********************************************************************/
  263. typedef struct __MMDRV_OPEN_PARMS{
  264.     HWND    hwndCallback;  /* call back handle                       */
  265.     USHORT  usDeviceID;    /* The device ID assigned to this instance*/
  266.     USHORT  usDeviceType;  /* The device type number                 */
  267.     USHORT  usDeviceOrd;   /* The device ordinal number              */
  268.     PVOID   pInstance;     /* pointer to the instance structure allocated */
  269.                            /* initialized by the driver. The MCI driver   */
  270.                            /* will fill in this parameter.                */
  271.     CHAR    szDevDLLName[260]; /* Character string containing the device  */
  272.                                /* specific DLL name to call for the open. */
  273.                                /* (ie. ACPA.DLL)                          */
  274.     PSZ     pszElementName;/*   typically a file name or NULL             */
  275.     USHORT  usDevParmLen;  /* Device parameters data block length.        */
  276.     PVOID   pDevParm;      /* Device parameters data block. This data     */
  277.                            /* block is unique to each type of device.     */
  278.                            /* (ie. LVD "COM1 9600 N 7 1").                */
  279.     ULONG   ulStructLength;           /* size of MMDRV_OPEN_PARMS */
  280.     USHORT  usResourceUnitsRequired;  /* number of resource units this instance */
  281.                                       /* requires.                              */
  282.     USHORT  usResourceClass;          /* resource class this instance belongs to*/
  283.     USHORT  usResourcePriority;       /* resource priority for this instance    */
  284.     ULONG   ulParam2;                 /* Pointer to MCI_OPEN structure          */
  285.     CHAR    szPDDName[ MAX_PDD_NAME + 1 ];  /* Name of device driver */
  286.     CHAR    szProductInfo[MAX_PRODINFO+1];  /* Product info for the driver */
  287.     ULONG   ulPID;
  288. } MMDRV_OPEN_PARMS;
  289. typedef MMDRV_OPEN_PARMS  *PMMDRV_OPEN_PARMS;
  290.  
  291.  
  292. /*********************************************************************/
  293. /*                                                                   */
  294. /*  MCIDRV_RESTORE message flags                                     */
  295. /*                                                                   */
  296. /*********************************************************************/
  297.  
  298. typedef struct _MCIDRV_RESTORE_PARMS {
  299.    ULONG   ulLength;        /* Length of restore parms               */
  300.    ULONG   ulMasterVolume;  /* Master volume value                   */
  301. } MCIDRV_RESTORE_PARMS;
  302. typedef MCIDRV_RESTORE_PARMS  *PMCIDRV_RESTORE_PARMS;
  303.  
  304.  
  305. #pragma pack()
  306. ULONG APIENTRY mdmDriverNotify (USHORT  usDeviceID,
  307.                                 HWND    hwnd,
  308.                                 USHORT  usMsgType,
  309.                                 USHORT  usUserParm,
  310.                                 ULONG   ulMsgParm);
  311. #endif
  312.  
  313. #ifdef __cplusplus
  314. }
  315. #endif
  316.  
  317.