home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / tolkit45.zip / os2tk45 / inc / mmio.inc < prev    next >
Text File  |  1999-04-30  |  30KB  |  697 lines

  1. ;****************************************************************************
  2. ; Module Name: MMIO.H
  3. ;
  4. ; OS/2 2.0 Multimedia Extensions Input/Output Manager Definitions file
  5. ;  NOTE:  All structures are UNPACKED!!
  6. ;
  7. ; Copyright (c) International Business Machines Corporation 1990,1991,1992
  8. ;                         All Rights Reserved
  9. ;
  10. ;
  11. ;***************************************************************************  
  12. ifndef _MMIO_H_
  13. _MMIO_H_    EQU    1
  14.  
  15. ;* MMIO symbols.
  16. ;  
  17. ifndef _OS2MEDEF_H
  18. endif
  19. ;* MS compat defines.
  20. ;  
  21. ifndef _OS2MEDEF_H
  22. LPSTR    EQU    PSZ
  23. endif
  24. HPSTR    EQU    PSZ
  25. ;* Define MMIO public data structures.
  26. ;  
  27.  
  28. MMCKINFO    STRUC
  29. mmckinfo_ckid    DD    ?             ;  Chunk id (FOURCC)                      
  30. mmckinfo_ckSize    DD    ?           ;  Chunk Size (bytes)                     
  31. mmckinfo_fccType    DD    ?          ;  FourCC Type (if ckid RIFF or LIST)     
  32. mmckinfo_dwDataOffset    DD    ?     ;  File Offset of data portion of chunk   
  33. mmckinfo_dwFlags    DD    ?          ;  MMIO_DIRTY (if new chunk)              
  34. MMCKINFO    ENDS
  35. LPMMCKINFO    EQU    PMMCKINFO     ;  MS compat define   
  36. LPMMIOPROC    EQU    PMMIOPROC     ;  MS compat define   
  37.  
  38. MMIOINFO    STRUC
  39. mmioinfo_dwFlags    DD    ?          ;  Open flags                    
  40. mmioinfo_fccIOProc    DD    ?        ;  FOURCC of the IOProc to use   
  41. mmioinfo_pIOProc    DD    ?          ;  Function Pointer to IOProc to use   
  42. mmioinfo_dwErrorRet    DD    ?       ;  Extended Error return code    
  43. mmioinfo_cchBuffer    DD    ?        ;  I/O buff size (if used), Fsize if MEM   
  44. mmioinfo_pchBuffer    DD    ?        ;  Start of I/O buff             
  45. mmioinfo_pchNext    DD    ?          ;  Next char to read or write in buff   
  46. mmioinfo_pchEndRead    DD    ?       ;  Last char in buff can be read + 1    
  47. mmioinfo_pchEndWrite    DD    ?      ;  Last char in buff can be written + 1   
  48. mmioinfo_lBufOffset    DD    ?       ;  Offset in buff to pchNext   
  49. mmioinfo_lDiskOffset    DD    ?      ;  Disk offset in file         
  50. mmioinfo_adwInfo    DD    4 DUP (?)       ;  IOProc specific fields      
  51. mmioinfo_lLogicalFilePos    DD    ?  ;  Actual file position, buffered or not   
  52. mmioinfo_dwTranslate    DD    ?      ;  Translation field           
  53. mmioinfo_fccChildIOProc    DD    ?   ;  FOURCC of Child IOProc      
  54. mmioinfo_pExtraInfoStruct    DD    ? ;  Pointer to a structure of related data   
  55. mmioinfo_hmmio    DD    ?            ;  Handle to media element     
  56. MMIOINFO    ENDS
  57. LPMMIOINFO    EQU    PMMIOINFO     ;  MS compat define   
  58.  
  59. MMCFINFO    STRUC
  60. mmcfinfo_dwHeaderSize    DD    ?        ;  CTOC header size            
  61. mmcfinfo_dwEntriesTotal    DD    ?      ;  Num of CTOC table entries   
  62. mmcfinfo_dwEntriesDeleted    DD    ?    ;  Num of CTOC table entries deleted   
  63. mmcfinfo_dwEntriesUnused    DD    ?     ;  Num of unused CTOC entries   
  64. mmcfinfo_dwBytesTotal    DD    ?        ;  Combined byte size of all CGRP elements   
  65. mmcfinfo_dwBytesDeleted    DD    ?      ;  Byte size of all deleted CGRP elements   
  66. mmcfinfo_dwHeaderFlags    DD    ?       ;  Info about entire compound file (CF)    
  67. mmcfinfo_wEntrySize    DW    ?          ;  Size of each CTOC table entry   
  68. mmcfinfo_wNameSize    DW    ?           ;  Size of name field in entry, default 13   
  69. mmcfinfo_wExHdrFields    DW    ?        ;  Num CTOC header extra fields   
  70. mmcfinfo_wExEntFields    DW    ?        ;  Num CTOC entry extra fields    
  71. MMCFINFO    ENDS
  72. ;* Note:  The are variable length DWORD arrays that may be present
  73. ;*        at the end of the MMCFINFO structure.
  74. ;  
  75. ;    DWORD    (*adwExHdrFldUsage)[];       /* Array of header extra usage fields */
  76. ;    DWORD    (*adwExtEntFldUsage)[];      /* Array of entry extra usage fields  */
  77. ;    DWORD    (*adwExHdrField)[];          /* Array of header extra fields       */
  78. LPMMCFINFO    EQU    PMMCFINFO     ;  MS compat define   
  79.  
  80. MMCTOCENTRY    STRUC
  81. mmctocentry_dwOffset    DD    ?            ;  Offset of element within CGRP   
  82. mmctocentry_dwSize    DD    ?              ;  Size of element                 
  83. mmctocentry_dwMedType    DD    ?           ;  Fourcc of element               
  84. mmctocentry_dwMedUsage    DD    ?          ;  Possible sub type               
  85. mmctocentry_dwCompressTech    DD    ?      ;  Compression technique used      
  86. mmctocentry_dwUncompressBytes    DD    ?   ;  Actual size of uncompressed element   
  87. MMCTOCENTRY    ENDS
  88. ;* Note:  A variable length name field and possibly a DWORD array may
  89. ;*        be present at the end of the MMCTOCENTRY structure.
  90. ;  
  91. ;    DWORD    (*adwExEntField)[];      /* Array of entry extra fields */
  92. ;    PSZ      pszElementName[];        /* Name of element, variable length */
  93. LPMMCTOCENTRY    EQU    PMMCTOCENTRY ;  MS compat define   
  94. ;* Conversion Flags/Data Structures:
  95. ;  
  96. MMIO_MEDIATYPE_IMAGE    EQU    00000001H   ;  Image media   
  97. MMIO_MEDIATYPE_AUDIO    EQU    00000002H   ;  Audio media   
  98. MMIO_MEDIATYPE_MIDI    EQU    00000004H   ;  MIDI media    
  99. MMIO_MEDIATYPE_COMPOUND    EQU    00000008H   ;  Cmpd media    
  100. MMIO_MEDIATYPE_OTHER    EQU    00000010H   ;  Other media   
  101. MMIO_MEDIATYPE_UNKNOWN    EQU    00000020H   ;  Unknown media   
  102. MMIO_MEDIATYPE_DIGITALVIDEO    EQU    00000040H   ;  Digital Video   
  103. MMIO_MEDIATYPE_ANIMATION    EQU    00000080H   ;  Future: Not Supported   
  104. MMIO_MEDIATYPE_MOVIE    EQU    00000100H   ;  Movie File   
  105. MMIO_CANREADTRANSLATED    EQU    00000001H  ; IOProc Cpbilty Flgs  
  106. MMIO_CANWRITETRANSLATED    EQU    00000002H  ;  "       "       "   
  107. MMIO_CANREADWRITETRANSLATED    EQU    00000004H  ;  "       "       "   
  108. MMIO_CANREADUNTRANSLATED    EQU    00000008H  ;  "       "       "   
  109. MMIO_CANWRITEUNTRANSLATED    EQU    00000010H  ;  "       "       "   
  110. MMIO_CANREADWRITEUNTRANSLATED    EQU    00000020H  ;  "       "       "   
  111. MMIO_CANSEEKTRANSLATED    EQU    00000040H  ;  "       "       "   
  112. MMIO_CANSEEKUNTRANSLATED    EQU    00000080H  ;  "       "       "   
  113. MMIO_CANINSERTUNTRANSLATED    EQU    00000100H  ;  "       "       "   
  114. MMIO_CANSAVEUNTRANSLATED    EQU    00000200H  ;  "       "       "   
  115. MMIO_CANINSERTTRANSLATED    EQU    00000400H  ;  "       "       "   
  116. MMIO_CANSAVETRANSLATED    EQU    00000800H  ;  "       "       "   
  117. MMIO_CANMULTITRACKREADTRANSLATED    EQU    00001000H  ;  "       "       "   
  118. MMIO_CANMULTITRACKREADUNTRANSLATED    EQU    00002000H  ;  "       "       "   
  119. MMIO_CANMULTITRACKWRITETRANSLATED    EQU    00004000H  ;  "       "       "   
  120. MMIO_CANMULTITRACKWRITEUNTRANSLATED    EQU    00008000H  ;  "       "       "   
  121. MMIO_CANTRACKSEEKTRANSLATED    EQU    00010000H  ;  "       "       "   
  122. MMIO_CANTRACKSEEKUNTRANSLATED    EQU    00020000H  ;  "       "       "   
  123. MMIO_CANTRACKREADTRANSLATED    EQU    00040000H  ;  "       "       "   
  124. MMIO_CANTRACKREADUNTRANSLATED    EQU    00080000H  ;  "       "       "   
  125. MMIO_CANTRACKWRITETRANSLATED    EQU    00100000H  ;  "       "       "   
  126. MMIO_CANTRACKWRITEUNTRANSLATED    EQU    00200000H  ;  "       "       "   
  127. MMIO_IOPROC_STORAGESYSTEM    EQU    00000001H   ;  IOProc Types   
  128. MMIO_IOPROC_FILEFORMAT    EQU    00000002H 
  129. MMIO_IOPROC_DATAFORMAT    EQU    00000004H 
  130.  
  131. MMFORMATINFO    STRUC
  132. mmformatinfo_dwStructLen    DD    ?               ;  Length of this structure   
  133. mmformatinfo_fccIOProc    DD    ?                 ;  IOProc identifier          
  134. mmformatinfo_dwIOProcType    DD    ?              ;  Type of IOProc             
  135. mmformatinfo_dwMediaType    DD    ?               ;  Media Type                 
  136. mmformatinfo_dwFlags    DD    ?                   ;  IOProc capability flags    
  137. mmformatinfo_achDefaultFormatExt    DB    SIZE   FOURCC  + 1 DUP (?)
  138.                                        ;  Default extension 4 + null   
  139. mmformatinfo_dwCodePage    DD    ?                ;  Code Page                    
  140. mmformatinfo_dwLanguage    DD    ?                ;  Language                     
  141. mmformatinfo_lNameLength    DD    ?               ;  length of identifier string   
  142. MMFORMATINFO    ENDS
  143. MMIO_IMAGE_UNKNOWN    EQU    00000000H   ;  Unknown image content   
  144. MMIO_IMAGE_DRAWING    EQU    00000001H   ;  Simple drawing          
  145. MMIO_IMAGE_GRAPH    EQU    00000002H   ;  Graphs & Cartoons       
  146. MMIO_IMAGE_PHOTO    EQU    00000004H   ;  Varying Color & Shades   
  147. ifdef INCL_GPI
  148. ifdef INCL_GPIBITMAPS
  149. MAX_PALETTE    EQU    256 
  150.  
  151. XDIBHDR_PREFIX    STRUC
  152. XDIB_ulMemSize    DD    ?                          ;  Length of bitmap     
  153. XDIB_ulPelFormat    DD    ?
  154. XDIB_usTransType    DW    ?
  155. XDIB_ulTransVal    DD    ?
  156. XDIBHDR_PREFIX    ENDS
  157.  
  158. MMXDIBHEADER    STRUC
  159. XDIB_XDIBHeaderPrefix    DB    SIZE XDIBHDR_PREFIX DUP (?)
  160. XDIB_BMPInfoHeader2    DB    SIZE BITMAPINFOHEADER2 DUP (?)
  161. MMXDIBHEADER    ENDS
  162.  
  163. MMIMAGEHEADER    STRUC
  164. mmimageheader_dwHeaderLength    DD    ?         ;  Length in Bytes   
  165. mmimageheader_dwContentType    DD    ?          ;  Image content     
  166. mmimageheader_dwMediaType    DD    ?            ;  Media Type        
  167. mmimageheader_mmXDIBHeader    DB    SIZE MMXDIBHEADER DUP (?)           ;  OS/2 2.0 PM compat header   
  168. mmimageheader_bmiColors    DB    SIZE RGB2 * MAX_PALETTE DUP (?) ;  PM compatible palette   
  169. MMIMAGEHEADER    ENDS
  170. endif
  171. endif
  172. MMIO_AUDIO_UNKNOWN    EQU    00000000H   ;  Unknown image content    
  173. MMIO_AUDIO_VOICE    EQU    00000001H   ;  Limited Range            
  174. MMIO_AUDIO_MUSIC    EQU    00000002H   ;  FM Radio or equivalent   
  175. MMIO_AUDIO_HIFI    EQU    00000004H   ;  High quality recording   
  176.  
  177. WAVE_HEADER    STRUC
  178. waveheader_usFormatTag    DW    ?              ;  Type of wave format   
  179. waveheader_usChannels    DW    ?               ;  Number of channels    
  180. waveheader_ulSamplesPerSec    DD    ?          ;  Sampling rate         
  181. waveheader_ulAvgBytesPerSec    DD    ?         ;  Avg bytes per sec     
  182. waveheader_usBlockAlign    DW    ?             ;  Block Alignment in bytes   
  183. waveheader_usBitsPerSample    DW    ?          ;  Bits per sample       
  184. WAVE_HEADER    ENDS
  185.  
  186. XWAV_HEADERINFO    STRUC
  187. xwaveheader_ulAudioLengthInMS    DD    ?        ;  Audio data in millisecs   
  188. xwaveheader_ulAudioLengthInBytes    DD    ?     ;  Audio data in bytes       
  189. xwaveheader_pAdditionalInformation    DD    ?
  190. XWAV_HEADERINFO    ENDS
  191.  
  192. MMXWAV_HEADER    STRUC
  193. mmxwaveheader_WAVEHeader    DB    SIZE WAVE_HEADER DUP (?)               ;  Per RIFF WAVE Definition   
  194. mmxwaveheader_XWAVHeaderInfo    DB    SIZE XWAV_HEADERINFO DUP (?)           ;  Extended wave definition   
  195. MMXWAV_HEADER    ENDS
  196.  
  197. MMAUDIOHEADER    STRUC
  198. mmaudioheader_dwHeaderLength    DD    ?           ;  Length in Bytes   
  199. mmaudioheader_dwContentType    DD    ?            ;  Image content     
  200. mmaudioheader_dwMediaType    DD    ?              ;  Media Type        
  201. mmaudioheader_mmXWAVHeader    DB    SIZE MMXWAV_HEADER DUP (?)             ;  header            
  202. MMAUDIOHEADER    ENDS
  203. MMIO_MIDI_UNKNOWN    EQU    00000000H   ;  Unknown midi content     
  204. MMIO_MIDI_VOICE    EQU    00000001H   ;  Limited Range            
  205. MMIO_MIDI_MUSIC    EQU    00000002H   ;  FM Radio or equivalent   
  206. MMIO_MIDI_HIFI    EQU    00000004H   ;  High quality recording   
  207. ;* MMPMMMIO.INI file structure and definitions.
  208. ;  
  209. DLLNAME_SIZE    EQU    CCHMAXPATH
  210. PROCNAME_SIZE    EQU    32 
  211. MAX_EXTENSION_NAME    EQU    4 
  212.  
  213. MMINIFILEINFO    STRUC
  214. mminifileinfo_fccIOProc    DD    ?                     ;  IOProc identifier        
  215. mminifileinfo_szDLLName    DB    DLLNAME_SIZE DUP (?)       ;  DLL name string          
  216. mminifileinfo_szProcName    DB    PROCNAME_SIZE DUP (?)     ;  Procedure name string    
  217. mminifileinfo_dwFlags    DD    ?                       ;  Capability flags         
  218. mminifileinfo_dwExtendLen    DD    ?                   ;  Length of ext fields     
  219. mminifileinfo_dwMediaType    DD    ?                   ;  Media type               
  220. mminifileinfo_dwIOProcType    DD    ?                  ;  Type of IOProc           
  221. mminifileinfo_szDefExt    DB    SIZE   MAX_EXTENSION_NAME  DUP (?)
  222.                                               ;  Default file extension   
  223. MMINIFILEINFO    ENDS
  224. ;* CODEC Structures and type definitions for Rel. 1.1
  225. ;  
  226. CODEC_INFO_SIZE    EQU    8 
  227. CODEC_HW_NAME_SIZE    EQU    32 
  228. ifdef INCL_MMIO_CODEC
  229.  
  230. CODECINIFILEINFO    STRUC
  231. codecinifileinfo_ulStructLen    DD    ?                  ;  length of this structure      
  232. codecinifileinfo_fcc    DD    ?                          ;  File Format ID                
  233. codecinifileinfo_szDLLName    DB    DLLNAME_SIZE DUP (?)      ;  DLL name string               
  234. codecinifileinfo_szProcName    DB    PROCNAME_SIZE DUP (?)    ;  Procedure name string         
  235. codecinifileinfo_ulCompressType    DD    ?               ;  Compression Type              
  236. codecinifileinfo_ulCompressSubType    DD    ?            ;  Compression SubType           
  237. codecinifileinfo_ulMediaType    DD    ?                  ;  Media type                    
  238. codecinifileinfo_ulCapsFlags    DD    ?                  ;  capabilities flags            
  239. codecinifileinfo_ulFlags    DD    ?                      ;  flags                         
  240. codecinifileinfo_szHWID    DB    CODEC_HW_NAME_SIZE DUP (?)  ;  specific information          
  241. codecinifileinfo_ulMaxSrcBufLen    DD    ?               ;  max source buffer length      
  242. codecinifileinfo_ulSyncMethod    DD    ?                 ;  Synchronization method        
  243. codecinifileinfo_fccPreferredFormat    DD    ?           ;  Preferred output format       
  244. codecinifileinfo_ulXalignment    DD    ?                 ;  x alignment - video only      
  245. codecinifileinfo_ulYalignment    DD    ?                 ;  y alignment - video only      
  246. codecinifileinfo_ulSpecInfo    DD    CODEC_INFO_SIZE DUP (?) ;  specific information          
  247. CODECINIFILEINFO    ENDS
  248. ;* CODECINIFILEINFO synchronization method (ulSyncMethod) values.
  249. ;  
  250. CODEC_SYNC_METHOD_NO_DROP_FRAMES    EQU    0 
  251. CODEC_SYNC_METHOD_DROP_FRAMES_IMMEDIATELY    EQU    1 
  252. CODEC_SYNC_METHOD_DROP_FRAMES_PRECEDING_KEY    EQU    2 
  253. CODEC_SYNC_METHOD_HARDWARE    EQU    3 
  254. ;* CODECINIFILEINFO capabilities (ulCapsFlags) values.
  255. ;  
  256. CODEC_COMPRESS    EQU    00000001H 
  257. CODEC_DECOMPRESS    EQU    00000002H 
  258. CODEC_WINDOW_CLIPPING    EQU    00000004H 
  259. CODEC_PALETTE_TRANS    EQU    00000008H 
  260. CODEC_SELFHEAL    EQU    00000010H 
  261. CODEC_SCALE_PEL_DOUBLE    EQU    00000020H 
  262. CODEC_SCALE_PEL_HALVED    EQU    00000040H 
  263. CODEC_SCALE_CONTINUOUS    EQU    00000080H 
  264. CODEC_MULAPERTURE    EQU    00000100H 
  265. CODEC_4_BIT_COLOR    EQU    00000200H 
  266. CODEC_8_BIT_COLOR    EQU    00000400H 
  267. CODEC_16_BIT_COLOR    EQU    00000800H 
  268. CODEC_24_BIT_COLOR    EQU    00001000H 
  269. CODEC_HARDWARE    EQU    00002000H 
  270. CODEC_SYMMETRIC    EQU    00004000H 
  271. CODEC_ASYMMETRIC    EQU    00008000H 
  272. CODEC_DIRECT_DISPLAY    EQU    00010000H 
  273. CODEC_DEFAULT    EQU    00020000H 
  274. CODEC_ORIGIN_LOWERLEFT    EQU    00040000H 
  275. CODEC_ORIGIN_UPPERLEFT    EQU    00080000H 
  276. CODEC_SET_QUALITY    EQU    00100000H   ;  quality level is settable   
  277. CODEC_DATA_CONSTRAINT    EQU    00200000H   ;  data constraint supported   
  278. CODEC_HW_OVERLAY    EQU    00400000H 
  279. CODEC_MULTI_BUFFER    EQU    00800000H 
  280. CODEC_DITHER_OUTPUT    EQU    01000000H 
  281. ;  Audio related flags   
  282. CODEC_COMP_REALTIME    EQU    00020000H 
  283. CODEC_DECOMP_REALTIME    EQU    00040000H 
  284. ;* CODECINIFILEINFO Flag Values (ulFlags) values.
  285. ;  
  286. ;  Bit definitions for mmioSet()   
  287. MMIO_SET_EXTENDEDINFO    EQU    0001H 
  288. MMIO_QUERY_EXTENDEDINFO_BASE    EQU    0002H 
  289. MMIO_QUERY_EXTENDEDINFO_ALL    EQU    0004H 
  290. ;  CODECASSOC structure   
  291.  
  292. CODECASSOC    STRUC
  293. codec_pCodecOpen    DD    ?                    ;  codec specific open header   
  294. codec_pCODECIniFileInfo    DD    ?  ;  codecinifileinfo             
  295. CODECASSOC    ENDS
  296. ;  PCODECASSOC definition   
  297. ;  MMEXTENDINFO structure   
  298.  
  299. MMEXTENDINFO    STRUC
  300. extended_ulStructLen    DD    ?              ;  length of this structure    
  301. extended_ulBufSize    DD    ?                ;  total buffer size   
  302. extended_ulFlags    DD    ?                  ;  flags   
  303. extended_ulTrackID    DD    ?                ;  track ID   
  304. extended_ulNumCODECs    DD    ?              ;  number of codec entries   
  305. extended_pCODECAssoc    DD    ?              ;  pointer to codec info array   
  306. MMEXTENDINFO    ENDS
  307. ;  PMMEXTENDINFO definition   
  308. ;* MMEXTENDINFO operation (ulFlags) values.
  309. ;  
  310. MMIO_TRACK    EQU    00000001H 
  311. MMIO_NORMAL_READ    EQU    00000002H 
  312. MMIO_SCAN_READ    EQU    00000004H 
  313. MMIO_REVERSE_READ    EQU    00000008H 
  314. MMIO_CODEC_ASSOC    EQU    00000100H 
  315. ;  Audio Related defines   
  316. MMIO_REALTIME_CODEC    EQU    00000200H 
  317. MMIO_RESETTRACKS    EQU    -1        ;   Turns off the active track number.   
  318. CODEC_START    EQU    0EC0H 
  319. CODEC_END    EQU    0EFFH 
  320. MMIOM_CODEC_CLOSE    EQU    CODEC_START + 1 
  321. MMIOM_CODEC_OPEN    EQU    CODEC_START + 2 
  322. MMIOM_CODEC_QUERYNAME    EQU    CODEC_START + 3 
  323. MMIOM_CODEC_QUERYNAMELENGTH    EQU    CODEC_START + 4 
  324. MMIOM_CODEC_COMPRESS    EQU    CODEC_START + 5 
  325. MMIOM_CODEC_DECOMPRESS    EQU    CODEC_START + 6 
  326. MMIOM_CODEC_HW_CONTROL    EQU    CODEC_START + 7 
  327. MMIOMP_CODEC_HW_CONTROL_STOP_DISCARD    EQU    0 
  328. MMIOMP_CODEC_HW_CONTROL_STOP_FLUSH    EQU    1 
  329. MMIOMP_CODEC_HW_CONTROL_STOP_PAUSE    EQU    2 
  330. endif
  331. ;  End CODEC include   
  332. ;* Flags:
  333. ;  
  334. MMIO_CREATE    EQU    00000001H        ;  Open   
  335. MMIO_CTOCFIRST    EQU    00000002H        ;  Open   
  336. MMIO_READ    EQU    00000004H        ;  Open   
  337. MMIO_WRITE    EQU    00000008H        ;  Open   
  338. MMIO_READWRITE    EQU    00000010H        ;  Open   
  339. MMIO_COMPAT    EQU    00000020H        ;  Open   
  340. MMIO_EXCLUSIVE    EQU    00000040H        ;  Open   
  341. MMIO_DENYWRITE    EQU    00000080H        ;  Open   
  342. MMIO_DENYREAD    EQU    00000100H        ;  Open   
  343. MMIO_DENYNONE    EQU    00000200H        ;  Open   
  344. MMIO_ALLOCBUF    EQU    00000400H        ;  Open   
  345. MMIO_DELETE    EQU    00000800H        ;  Open   
  346. MMIO_USE_TEMP    EQU    00001000H        ;  Open/Close/Save   
  347. MMIO_INSERTON    EQU    00000001H        ;  Insert   
  348. MMIO_INSERTOFF    EQU    00000002H        ;  Insert   
  349. MMIO_RWMODE    EQU    00001000H        ;  Open   
  350. MMIO_SHAREMODE    EQU    00002000H        ;  Open   
  351. MMIO_DIRTY    EQU    00004000H        ;  Write   
  352. MMIO_VERTBAR    EQU    00008000H        ;  Open   
  353. MMIO_BUFSHARED    EQU    00010000H        ;  Open   
  354. MMIO_APPEND    EQU    00020000H        ;  Open   
  355. MMIO_NOIDENTIFY    EQU    00040000H        ;  Open   
  356. MMIO_FINDFIRST    EQU    00000001H        ;  CF Find Entry   
  357. MMIO_FINDNEXT    EQU    00000002H        ;  CF Find Entry   
  358. MMIO_FINDUNUSED    EQU    00000004H        ;  CF Find Entry   
  359. MMIO_FINDDELETED    EQU    00000008H        ;  CF Find Entry   
  360. MMIO_CHANGEDELETED    EQU    0001H          ;  CF Change Entry   
  361. MMIO_CF_FQNAME    EQU    0001H          ;  CF Compact        
  362. MMIO_FHOPEN    EQU    0001H            ;  Close   
  363. MMIO_EMPTYBUF    EQU    0001H            ;  Flush   
  364. MMIO_CREATERIFF    EQU    0001H            ;  CreateChunk   
  365. MMIO_CREATELIST    EQU    0002H            ;  CreateChunk   
  366. MMIO_FINDCHUNK    EQU    0004H            ;  Descend       
  367. MMIO_FINDRIFF    EQU    0008H            ;  Descend       
  368. MMIO_FINDLIST    EQU    0010H            ;  Descend       
  369. CTOC_HF_SEQUENTIAL    EQU    00000001H     ;  CTOC dwHeaderFlags   
  370. CTOC_HF_MEDSUBTYPE    EQU    00000002H     ;  CTOC dwHeaderFlags   
  371. CTOC_EFU_UNUSED    EQU    00000000H  ;  CTOC extra usage code   
  372. CTOC_EFU_LASTMODTIME    EQU    00000001H  ;  CTOC extra usage code   
  373. CTOC_EFU_CODEPAGE    EQU    00000002H  ;  CTOC extra usage code   
  374. CTOC_EFU_LANGUAGE    EQU    00000003H  ;  CTOC extra usage code   
  375. CTOC_EFU_COMPRESSPARAM0    EQU    00000005H  ;  CTOC extra usage code   
  376. CTOC_EFU_COMPRESSPARAM1    EQU    00000006H  ;  CTOC extra usage code   
  377. CTOC_EFU_COMPRESSPARAM2    EQU    00000007H  ;  CTOC extra usage code   
  378. CTOC_EFU_COMPRESSPARAM3    EQU    00000008H  ;  CTOC extra usage code   
  379. CTOC_EFU_COMPRESSPARAM4    EQU    00000009H  ;  CTOC extra usage code   
  380. CTOC_EFU_COMPRESSPARAM5    EQU    0000000AH  ;  CTOC extra usage code   
  381. CTOC_EFU_COMPRESSPARAM6    EQU    0000000BH  ;  CTOC extra usage code   
  382. CTOC_EFU_COMPRESSPARAM7    EQU    0000000CH  ;  CTOC extra usage code   
  383. CTOC_EFU_COMPRESSPARAM8    EQU    0000000DH  ;  CTOC extra usage code   
  384. CTOC_EFU_COMPRESSPARAM9    EQU    0000000EH  ;  CTOC extra usage code   
  385. CTOC_CHARSET_STANDARD    EQU    00000000H  ;  CTOC charset value      
  386. MMIO_INSTALLPROC    EQU    00000001H  ;  Install IO Proc   
  387. MMIO_REMOVEPROC    EQU    00000002H  ;  Install IO Proc   
  388. MMIO_FINDPROC    EQU    00000004H  ;  Install IO Proc   
  389. MMIO_MATCHFIRST    EQU    00000010H  ;  Ini File Handler   
  390. MMIO_MATCHNEXT    EQU    00000020H  ;  Ini File Handler   
  391. MMIO_MATCHFOURCC    EQU    00000040H  ;  Ini File Handler   
  392. MMIO_MATCHDLL    EQU    00000080H  ;  Ini File Handler   
  393. MMIO_MATCHPROCEDURENAME    EQU    00000100H  ;  Ini File Handler   
  394. MMIO_FULLPATH    EQU    00000200H  ;  Ini File Handler   
  395. MMIO_NOVERIFY    EQU    00000400H  ;  Ini File Handler   
  396. MMIO_MATCHCOMPRESSTYPE    EQU    00000800H  ;  Ini File Handler   
  397. MMIO_EXTENDED_STRUCT    EQU    00001000H  ;  Ini File ulFlags   
  398. MMIO_MATCHCOMPRESSSUBTYPE    EQU    00002000H  ;  Ini File Handler   
  399. MMIO_MATCHHWID    EQU    00004000H  ;  Ini File Handler   
  400. MMIO_MATCHCAPSFLAGS    EQU    00008000H  ;  Ini File Handler   
  401. MMIO_SKIPMATCH    EQU    00010000H  ;  Ini/Load Handler   
  402. MMIO_TOUPPER    EQU    0001H       ;  StringToFourcc   
  403. MMIO_CF_ENTRY_EXISTS    EQU    00000001H  ;  Add CGRP element   
  404. MMIO_FORCE_IDENTIFY_SS    EQU    00000001H  ;  Identify   
  405. MMIO_FORCE_IDENTIFY_FF    EQU    00000002H  ;  Identify   
  406. MMIO_NOTRANSLATE    EQU    00000000H  ;  Translation   
  407. MMIO_TRANSLATEDATA    EQU    00000001H  ;  Translation   
  408. MMIO_TRANSLATEHEADER    EQU    00000002H  ;  Translation   
  409. MMIO_DECOMPRESS    EQU    00000004H  ;  CODEC Decompress   
  410. MMIO_DEFAULTBUFFER    EQU    8192     ;  two pages under OS/2 2.0   
  411. MMIO_SEEK_IFRAME    EQU    00010000H   ;  Seek to nearest previous IFRAME   
  412. ;* Messages :
  413. ;  
  414. MMIOM_START    EQU    0E00H 
  415. MMIOM_END    EQU    0EFFH 
  416. MMIOM_GETCF    EQU    MMIOM_START + 1 
  417. MMIOM_GETCFENTRY    EQU    MMIOM_START + 2 
  418. MMIOM_CLOSE    EQU    MMIOM_START + 3 
  419. MMIOM_OPEN    EQU    MMIOM_START + 4 
  420. MMIOM_READ    EQU    MMIOM_START + 5 
  421. MMIOM_SEEK    EQU    MMIOM_START + 6 
  422. MMIOM_WRITE    EQU    MMIOM_START + 7 
  423. MMIOM_IDENTIFYFILE    EQU    MMIOM_START + 8 
  424. MMIOM_GETHEADER    EQU    MMIOM_START + 9 
  425. MMIOM_SETHEADER    EQU    MMIOM_START + 10 
  426. MMIOM_QUERYHEADERLENGTH    EQU    MMIOM_START + 11 
  427. MMIOM_GETFORMATNAME    EQU    MMIOM_START + 12 
  428. MMIOM_GETFORMATINFO    EQU    MMIOM_START + 13 
  429. MMIOM_SEEKBYTIME    EQU    MMIOM_START + 14 
  430. MMIOM_TEMPCHANGE    EQU    MMIOM_START + 15 
  431. MMIOM_BEGININSERT    EQU    MMIOM_START + 16 
  432. MMIOM_ENDINSERT    EQU    MMIOM_START + 17 
  433. MMIOM_SAVE    EQU    MMIOM_START + 18 
  434. MMIOM_SET    EQU    MMIOM_START + 19 
  435. MMIOM_COMPRESS    EQU    MMIOM_START + 20 
  436. MMIOM_DECOMPRESS    EQU    MMIOM_START + 21 
  437. MMIOM_MULTITRACKREAD    EQU    MMIOM_START + 22 
  438. MMIOM_MULTITRACKWRITE    EQU    MMIOM_START + 23 
  439. MMIOM_DELETE    EQU    MMIOM_START + 24 
  440. MMIOM_BEGINGROUP    EQU    MMIOM_START + 25 
  441. MMIOM_ENDGROUP    EQU    MMIOM_START + 26 
  442. MMIOM_UNDO    EQU    MMIOM_START + 27 
  443. MMIOM_REDO    EQU    MMIOM_START + 28 
  444. MMIOM_BEGINSTREAM    EQU    MMIOM_START + 29 
  445. MMIOM_ENDSTREAM    EQU    MMIOM_START + 30 
  446. MMIOM_CUT    EQU    MMIOM_START + 31 
  447. MMIOM_COPY    EQU    MMIOM_START + 32 
  448. MMIOM_PASTE    EQU    MMIOM_START + 33 
  449. MMIOM_CLEAR    EQU    MMIOM_START + 34 
  450. MMIOM_STATUS    EQU    MMIOM_START + 35 
  451. MMIOM_WINMSG    EQU    MMIOM_START + 36 
  452. MMIOM_BEGINRECORD    EQU    MMIOM_START + 37 
  453. MMIOM_ENDRECORD    EQU    MMIOM_START + 38 
  454. ;  These 3 new messages were added with feature 11710   
  455. MMIOM_QUERYIMAGE    EQU    MMIOM_START + 39 
  456. MMIOM_QUERYIMAGECOUNT    EQU    MMIOM_START + 40 
  457. MMIOM_SETIMAGE    EQU    MMIOM_START + 41 
  458. MMIOM_USER    EQU    0F00H 
  459. MMIOM_USER_END    EQU    0FFFH 
  460. ;  Parameter structure for MMIOM_STATUS   
  461.  
  462. MMIO_STATUS_PARMS    STRUC
  463. mmio_status_parms_hwndWindow    DD    ?                   ;  Some items require a window handle   
  464. mmio_status_parms_ulReturn    DD    ?                     ;  Return field   
  465. mmio_status_parms_ulItem    DD    ?                       ;  Use MCI_STATUS_... flags here   
  466. mmio_status_parms_ulValue    DD    ?                      ;  Status value field   
  467. mmio_status_parms_ulType    DD    ?                       ;  MCI_FORMAT_... of ulReturn   
  468. MMIO_STATUS_PARMS    ENDS
  469. ;  Parameter structure for MMIOM_COPY, MMIOM_CUT, MMIOM_CLEAR and MMIOM_PASTE   
  470.  
  471. MMIO_EDIT_PARMS    STRUC
  472. mmio_medit_parms_ulStrucLen    DD    ?                   ;  length of this structure   
  473. mmio_medit_parms_hwndWindow    DD    ?                   ;  window handle   
  474. mmio_medit_parms_ulStartTime    DD    ?                  ;  starting time in usec   
  475. mmio_medit_parms_ulDuration    DD    ?                   ;  duration in usec   
  476. mmio_medit_parms_ulCurrentFilePosition    DD    ?        ;  current file position in usec   
  477. mmio_medit_parms_ulNewFilePosition    DD    ?            ;  returned by IO proc in usec, MCD will issue a seek   
  478. mmio_medit_parms_ulNewFileLength    DD    ?              ;  return by IO proc in usec, MCD updates its headers   
  479. mmio_medit_parms_pBuffer    DD    ?                      ;  optional buffer   
  480. mmio_medit_parms_ulBufferLength    DD    ?               ;  optional buffer's length   
  481. mmio_medit_parms_pHeader    DD    ?                      ;  optional pointer to header for buffer   
  482. mmio_medit_parms_fUseBuffer    DD    ?                   ;  flag to use Buffer instead of clipboard   
  483. MMIO_EDIT_PARMS    ENDS
  484. ;  Parameter structure for MMIOM_WINMSG   
  485.  
  486. MMIO_WINMSG    STRUC
  487. this_hwndWindow    DD    ?                   ;  these are the parameters   
  488. this_usMessage    DW    ?                    ;   ... passed to the         
  489. this_pParam1    DD    ?                      ;   ... window procedure      
  490. this_pParam2    DD    ?                      ;   ... by PM                 
  491. MMIO_WINMSG    ENDS
  492. ;  JPEG IOproc specific structure   
  493. YUV_YVU    EQU    0080H   ; v013 Compressed data is YUV   
  494. DST_Y    EQU    20 
  495. DST_YY    EQU    25 
  496.  
  497. JPEGOPTIONS    STRUC
  498. this_ulStructLen    DD    ?                    ;  size of this sturcture                     
  499. this_usQuantization    DW    4 DUP (?)              ;  Each number may be 1 - 65535         
  500. this_usScale    DW    ?                        ;  1 (1/8 Size) - 8 (Full Size; default)     
  501. this_ulColorOrder    DD    ?                   ;  YUV_YVU (Default) or ~YUV_YVU        
  502. this_usColorSpaceOut    DW    ?               ;  DST_YY (Default) or DST_Y              
  503. JPEGOPTIONS    ENDS
  504. ;* Include error codes for MMIO only.
  505. ;  
  506. ifndef _MEERROR_H_
  507. INCL_MMIO_ERRORS    EQU    1
  508.  
  509. INCLUDE meerror.INC
  510. endif
  511. MMIO_SUCCESS    EQU    0 
  512. MMIO_WARNING    EQU    2 
  513. MMIO_ERROR    EQU    0FFFFFFFFH 
  514. MMIOERR_UNSUPPORTED_MESSAGE    EQU    0FFFFFFFEH 
  515. MMIO_CF_SUCCESS    EQU    0 
  516. MMIO_CF_FAILURE    EQU    1 
  517. FOURCC_RIFF    EQU    mmioFOURCC( 'R', 'I', 'F', 'F' )
  518. FOURCC_LIST    EQU    mmioFOURCC( 'L', 'I', 'S', 'T' )
  519. FOURCC_MEM    EQU    mmioFOURCC( 'M', 'E', 'M', ' ' )
  520. FOURCC_DOS    EQU    mmioFOURCC( 'D', 'O', 'S', ' ' )
  521. FOURCC_BND    EQU    mmioFOURCC( 'B', 'N', 'D', ' ' )
  522. FOURCC_FREE    EQU    mmioFOURCC( 'F', 'R', 'E', 'E' )
  523. FOURCC_DEL    EQU    mmioFOURCC( 'D', 'E', 'L', ' ' )
  524. FOURCC_CTOC    EQU    mmioFOURCC( 'C', 'T', 'O', 'C' )
  525. FOURCC_CGRP    EQU    mmioFOURCC( 'C', 'G', 'R', 'P' )
  526. FOURCC_CF    EQU    mmioFOURCC( 'C', 'F', ' ', ' ' )
  527. MMIO_NLS_CHARSET_INFO    EQU    8000    ;  RCDATA Name ID for NLS            
  528. MMIO_IOPROC_NAME_TABLE    EQU    8500    ;  RCDATA Name ID for string table   
  529. MMIO_CODEC_NAME_TABLE    EQU    9000    ;  RCDATA Name ID for Codec  table   
  530. ;* Numeric equivalents of fourcc's.  These are needed for the resource
  531. ;* compiler.
  532. ;  
  533. HEX_FOURCC_DOS    EQU    20534f44H 
  534. HEX_FOURCC_MEM    EQU    204d454dH 
  535. HEX_FOURCC_BND    EQU    20444e42H 
  536. HEX_FOURCC_CF    EQU    20204643H 
  537. ;* Country codes (CC), languages (LC), and dialects (DC).
  538. ;  
  539. MMIO_DEFAULT_CODE_PAGE    EQU    437 
  540. MMIO_CC_NONE    EQU    0 
  541. MMIO_CC_USA    EQU    1 
  542. MMIO_CC_CANADA    EQU    2 
  543. MMIO_CC_LATIN_AMERICA    EQU    3 
  544. MMIO_CC_GREECE    EQU    30 
  545. MMIO_CC_NETHERLANDS    EQU    31 
  546. MMIO_CC_BELGIUM    EQU    32 
  547. MMIO_CC_FRANCE    EQU    33 
  548. MMIO_CC_SPAIN    EQU    34 
  549. MMIO_CC_ITALY    EQU    39 
  550. MMIO_CC_SWITZERLAND    EQU    41 
  551. MMIO_CC_AUSTRIA    EQU    43 
  552. MMIO_CC_UNITED_KINGDOM    EQU    44 
  553. MMIO_CC_DENMARK    EQU    45 
  554. MMIO_CC_SWEDEN    EQU    46 
  555. MMIO_CC_NORWAY    EQU    47 
  556. MMIO_CC_WEST_GERMANY    EQU    49 
  557. MMIO_CC_MEXICO    EQU    52 
  558. MMIO_CC_BRAZIL    EQU    55 
  559. MMIO_CC_AUSTRALIA    EQU    61 
  560. MMIO_CC_NEW_ZEALAND    EQU    64 
  561. MMIO_CC_JAPAN    EQU    81 
  562. MMIO_CC_KOREA    EQU    82 
  563. MMIO_CC_CHINA    EQU    86 
  564. MMIO_CC_TAIWAN    EQU    88 
  565. MMIO_CC_TURKEY    EQU    90 
  566. MMIO_CC_PORTUGAL    EQU    351 
  567. MMIO_CC_LUXEMBOURG    EQU    352 
  568. MMIO_CC_ICELAND    EQU    354 
  569. MMIO_CC_FINLAND    EQU    358 
  570. MMIO_LC_NONE    EQU    0 
  571. MMIO_DC_NONE    EQU    0 
  572. MMIO_LC_ARABIC    EQU    1 
  573. MMIO_DC_ARABIC    EQU    1 
  574. MMIO_LC_BULGARIAN    EQU    2 
  575. MMIO_DC_BULGARIAN    EQU    1 
  576. MMIO_LC_CATALAN    EQU    3 
  577. MMIO_DC_CATALAN    EQU    1 
  578. MMIO_LC_TRADITIONAL_CHINESE    EQU    4 
  579. MMIO_DC_TRADITIONAL_CHINESE    EQU    1 
  580. MMIO_LC_SIMPLE_CHINESE    EQU    4 
  581. MMIO_DC_SIMPLE_CHINESE    EQU    2 
  582. MMIO_LC_CZECH    EQU    5 
  583. MMIO_DC_CZECH    EQU    1 
  584. MMIO_LC_DANISH    EQU    6 
  585. MMIO_DC_DANISH    EQU    1 
  586. MMIO_LC_GERMAN    EQU    7 
  587. MMIO_DC_GERMAN    EQU    1 
  588. MMIO_LC_SWISS_GERMAN    EQU    7 
  589. MMIO_DC_SWISS_GERMAN    EQU    2 
  590. MMIO_LC_GREEK    EQU    8 
  591. MMIO_DC_GREEK    EQU    1 
  592. MMIO_LC_US_ENGLISH    EQU    9 
  593. MMIO_DC_US_ENGLISH    EQU    1 
  594. MMIO_LC_UK_ENGLISH    EQU    9 
  595. MMIO_DC_UK_ENGLISH    EQU    2 
  596. MMIO_LC_SPANISH    EQU    10 
  597. MMIO_DC_SPANISH    EQU    1 
  598. MMIO_LC_SPANISH_MEXICAN    EQU    10 
  599. MMIO_DC_SPANISH_MEXICAN    EQU    2 
  600. MMIO_LC_FINNISH    EQU    11 
  601. MMIO_DC_FINNISH    EQU    1 
  602. MMIO_LC_FRENCH    EQU    12 
  603. MMIO_DC_FRENCH    EQU    1 
  604. MMIO_LC_BELGIAN_FRENCH    EQU    12 
  605. MMIO_DC_BELGIAN_FRENCH    EQU    2 
  606. MMIO_LC_CANADIAN_FRENCH    EQU    12 
  607. MMIO_DC_CANADIAN_FRENCH    EQU    3 
  608. MMIO_LC_SWISS_FRENCH    EQU    12 
  609. MMIO_DC_SWISS_FRENCH    EQU    4 
  610. MMIO_LC_HEBREW    EQU    13 
  611. MMIO_DC_HEBREW    EQU    1 
  612. MMIO_LC_HUNGARIAN    EQU    14 
  613. MMIO_DC_HUNGARIAN    EQU    1 
  614. MMIO_LC_ICELANDIC    EQU    15 
  615. MMIO_DC_ICELANDIC    EQU    1 
  616. MMIO_LC_ITALIAN    EQU    16 
  617. MMIO_DC_ITALIAN    EQU    1 
  618. MMIO_LC_SWISS_ITALIAN    EQU    16 
  619. MMIO_DC_SWISS_ITALIAN    EQU    2 
  620. MMIO_LC_JAPANESE    EQU    17 
  621. MMIO_DC_JAPANESE    EQU    1 
  622. MMIO_LC_KOREAN    EQU    18 
  623. MMIO_DC_KOREAN    EQU    1 
  624. MMIO_LC_DUTCH    EQU    19 
  625. MMIO_DC_DUTCH    EQU    1 
  626. MMIO_LC_BELGIAN_DUTCH    EQU    19 
  627. MMIO_DC_BELGIAN_DUTCH    EQU    2 
  628. MMIO_LC_NORWEGIAN_BOKMAL    EQU    20 
  629. MMIO_DC_NORWEGIAN_BOKMAL    EQU    1 
  630. MMIO_LC_NORWEGIAN_NYNORSK    EQU    20 
  631. MMIO_DC_NORWEGIAN_NYNORSK    EQU    2 
  632. MMIO_LC_POLISH    EQU    21 
  633. MMIO_DC_POLISH    EQU    1 
  634. MMIO_LC_BRAZILIAN_PORTUGUESE    EQU    22 
  635. MMIO_DC_BRAZILIAN_PORTUGUESE    EQU    1 
  636. MMIO_LC_PORTUGUESE    EQU    22 
  637. MMIO_DC_PORTUGUESE    EQU    2 
  638. MMIO_LC_RHAETO_ROMANIC    EQU    23 
  639. MMIO_DC_RHAETO_ROMANIC    EQU    1 
  640. MMIO_LC_ROMANIAN    EQU    24 
  641. MMIO_DC_ROMANIAN    EQU    1 
  642. MMIO_LC_RUSSIAN    EQU    25 
  643. MMIO_DC_RUSSIAN    EQU    1 
  644. MMIO_LC_SERBO_CROATIAN_LATIN    EQU    26 
  645. MMIO_DC_SERBO_CROATIAN_LATIN    EQU    1 
  646. MMIO_LC_SERBO_CROATIAN_CYRILLIC    EQU    26 
  647. MMIO_DC_SERBO_CROATIAN_CYRILLIC    EQU    2 
  648. MMIO_LC_SLOVAK    EQU    27 
  649. MMIO_DC_SLOVAK    EQU    1 
  650. MMIO_LC_ALBANIAN    EQU    28 
  651. MMIO_DC_ALBANIAN    EQU    1 
  652. MMIO_LC_SWEDISH    EQU    29 
  653. MMIO_DC_SWEDISH    EQU    1 
  654. MMIO_LC_THAI    EQU    30 
  655. MMIO_DC_THAI    EQU    1 
  656. MMIO_LC_TURKISH    EQU    31 
  657. MMIO_DC_TURKISH    EQU    1 
  658. MMIO_LC_URDU    EQU    32 
  659. MMIO_DC_URDU    EQU    1 
  660. MMIO_LC_BAHASA    EQU    33 
  661. MMIO_DC_BAHASA    EQU    1 
  662. ;* Base function prototypes:
  663. ;  
  664. ;* Compound File function prototypes:
  665. ;  
  666. ;* Conversion Utility function prototypes:
  667. ;  
  668. ;* MMPMMMIO.INI file migration utility
  669. ;  
  670. ;* MMIO CODEC APIs
  671. ;  
  672. ifdef INCL_MMIO_CODEC
  673. endif
  674. endif ;  _MMIO_H_   
  675.