source: branches/kmk/Lucide/gui/os2tk/mmioos2.h @ 307

Last change on this file since 307 was 307, checked in by dmik, 11 years ago

branches/kmk: Added MMIOS2 headers from OS2TK to avoid dependency (we link to MMI functions dynamically).

  • Property svn:executable set to *
File size: 44.2 KB
Line 
1/***************************************************************************\
2*
3* Module Name: MMIOOS2.H
4*
5* OS/2 2.0 Multimedia Extensions Input/Output Manager Definitions file
6*  NOTE:  All structures are PACKED(4)
7*
8* Copyright (c) International Business Machines Corporation 1990,1991,1992
9*                         All Rights Reserved
10*
11*
12\****************************************************************************/
13#ifdef __cplusplus
14   extern "C" {
15#endif
16
17
18
19#ifndef _MMIO_H_
20#define _MMIO_H_
21
22#pragma pack(4)
23
24/*
25 * MMIO symbols.
26 */
27
28#ifndef _OS2MEDEF_H
29typedef ULONG  HMMIO;
30#endif
31
32typedef HMMIO  HMMCF;
33typedef ULONG  FOURCC;
34typedef FOURCC *PFOURCC;
35
36/*
37 * MS compat defines.
38 */
39
40#define HPSTR PSZ
41
42/*
43 * Define MMIO public data structures.
44 */
45
46typedef struct _MMCKINFO {    /* mmckinfo                             */
47   FOURCC   ckid;             /* Chunk id (FOURCC)                    */
48   ULONG    ckSize;           /* Chunk Size (bytes)                   */
49   FOURCC   fccType;          /* FourCC Type (if ckid RIFF or LIST)   */
50   ULONG    ulDataOffset;     /* File Offset of data portion of chunk */
51   ULONG    ulFlags;          /* MMIO_DIRTY (if new chunk)            */
52   } MMCKINFO;
53
54typedef MMCKINFO FAR *PMMCKINFO;
55#define PMMCKINFO  PMMCKINFO     /* MS compat define */
56
57typedef LONG (APIENTRY MMIOPROC)                    /*  Format must       */
58                                ( PVOID pmmioinfo,  /*  appear this       */
59                                  USHORT usMsg,     /*  way for h2inc     */
60                                  LONG lParam1,     /*  to work properly. */
61                                  LONG lParam2 );
62
63typedef MMIOPROC FAR *PMMIOPROC;
64typedef MMIOPROC FAR **PPMMIOPROC;
65#define PMMIOPROC  PMMIOPROC     /* MS compat define */
66
67typedef struct _MMIOINFO {       /* mmioinfo                    */
68   ULONG       ulFlags;          /* Open flags                  */
69   FOURCC      fccIOProc;        /* FOURCC of the IOProc to use */
70   PMMIOPROC   pIOProc;          /* Function Pointer to IOProc to use */
71   ULONG       ulErrorRet;       /* Extended Error return code  */
72   LONG        cchBuffer;        /* I/O buff size (if used), Fsize if MEM */
73   PCHAR       pchBuffer;        /* Start of I/O buff           */
74   PCHAR       pchNext;          /* Next char to read or write in buff */
75   PCHAR       pchEndRead;       /* Last char in buff can be read + 1  */
76   PCHAR       pchEndWrite;      /* Last char in buff can be written + 1 */
77   LONG        lBufOffset;       /* Offset in buff to pchNext */
78   LONG        lDiskOffset;      /* Disk offset in file       */
79   ULONG       aulInfo[4];       /* IOProc specific fields    */
80   LONG        lLogicalFilePos;  /* Actual file position, buffered or not */
81   ULONG       ulTranslate;      /* Translation field         */
82   FOURCC      fccChildIOProc;   /* FOURCC of Child IOProc    */
83   PVOID       pExtraInfoStruct; /* Pointer to a structure of related data */
84   HMMIO       hmmio;            /* Handle to media element   */
85   } MMIOINFO;
86
87typedef MMIOINFO FAR *PMMIOINFO;
88#define PMMIOINFO  PMMIOINFO     /* MS compat define */
89
90typedef struct _MMCFINFO {       /* mmcfinfo                  */
91   ULONG    ulHeaderSize;        /* CTOC header size          */
92   ULONG    ulEntriesTotal;      /* Num of CTOC table entries */
93   ULONG    ulEntriesDeleted;    /* Num of CTOC table entries deleted */
94   ULONG    ulEntriesUnused;     /* Num of unused CTOC entries */
95   ULONG    ulBytesTotal;        /* Combined byte size of all CGRP elements */
96   ULONG    ulBytesDeleted;      /* Byte size of all deleted CGRP elements */
97   ULONG    ulHeaderFlags;       /* Info about entire compound file (CF)  */
98   USHORT   usEntrySize;         /* Size of each CTOC table entry */
99   USHORT   usNameSize;          /* Size of name field in entry, default 13 */
100   USHORT   usExHdrFields;       /* Num CTOC header extra fields */
101   USHORT   usExEntFields;       /* Num CTOC entry extra fields  */
102   } MMCFINFO;
103
104/*
105 * Note:  The are variable length ULONG arrays that may be present
106 *        at the end of the MMCFINFO structure.
107 */
108
109/*   ULONG    (*aulExHdrFldUsage)[];  * Array of header extra usage fields */
110/*   ULONG    (*aulExtEntFldUsage)[]; * Array of entry extra usage fields  */
111/*   ULONG    (*aulExHdrField)[];     * Array of header extra fields       */
112
113typedef MMCFINFO FAR *PMMCFINFO;
114#define PMMCFINFO  PMMCFINFO     /* MS compat define */
115
116typedef struct _MMCTOCENTRY {    /* mmctocentry                   */
117   ULONG    ulOffset;            /* Offset of element within CGRP */
118   ULONG    ulSize;              /* Size of element               */
119   ULONG    ulMedType;           /* Fourcc of element             */
120   ULONG    ulMedUsage;          /* Possible sub type             */
121   ULONG    ulCompressTech;      /* Compression technique used    */
122   ULONG    ulUncompressBytes;   /* Actual size of uncompressed element */
123   } MMCTOCENTRY;
124
125/*
126 * Note:  A variable length name field and possibly a ULONG array may
127 *        be present at the end of the MMCTOCENTRY structure.
128 */
129
130/*   ULONG    (*aulExEntField)[];  * Array of entry extra fields */
131/*   PSZ      pszElementName[];    * Name of element, variable length */
132
133typedef MMCTOCENTRY FAR *PMMCTOCENTRY;
134#define PMMCTOCENTRY  PMMCTOCENTRY /* MS compat define */
135
136/*
137 * Conversion Flags/Data Structures:
138 */
139
140#define MMIO_MEDIATYPE_IMAGE        0x00000001L  /* Image media */
141#define MMIO_MEDIATYPE_AUDIO        0x00000002L  /* Audio media */
142#define MMIO_MEDIATYPE_MIDI         0x00000004L  /* MIDI media  */
143#define MMIO_MEDIATYPE_COMPOUND     0x00000008L  /* Cmpd media  */
144#define MMIO_MEDIATYPE_OTHER        0x00000010L  /* Other media */
145#define MMIO_MEDIATYPE_UNKNOWN      0x00000020L  /* Unknown media */
146#define MMIO_MEDIATYPE_DIGITALVIDEO 0x00000040L  /* Digital Video */
147#define MMIO_MEDIATYPE_ANIMATION    0x00000080L  /* Future: Not Supported */
148#define MMIO_MEDIATYPE_MOVIE        0x00000100L  /* Movie File */
149
150#define MMIO_CANREADTRANSLATED              0x00000001L /*IOProc Cpbilty Flgs*/
151#define MMIO_CANWRITETRANSLATED             0x00000002L /* "       "       " */
152#define MMIO_CANREADWRITETRANSLATED         0x00000004L /* "       "       " */
153#define MMIO_CANREADUNTRANSLATED            0x00000008L /* "       "       " */
154#define MMIO_CANWRITEUNTRANSLATED           0x00000010L /* "       "       " */
155#define MMIO_CANREADWRITEUNTRANSLATED       0x00000020L /* "       "       " */
156#define MMIO_CANSEEKTRANSLATED              0x00000040L /* "       "       " */
157#define MMIO_CANSEEKUNTRANSLATED            0x00000080L /* "       "       " */
158#define MMIO_CANINSERTUNTRANSLATED          0x00000100L /* "       "       " */
159#define MMIO_CANSAVEUNTRANSLATED            0x00000200L /* "       "       " */
160#define MMIO_CANINSERTTRANSLATED            0x00000400L /* "       "       " */
161#define MMIO_CANSAVETRANSLATED              0x00000800L /* "       "       " */
162#define MMIO_CANMULTITRACKREADTRANSLATED    0x00001000L /* "       "       " */
163#define MMIO_CANMULTITRACKREADUNTRANSLATED  0x00002000L /* "       "       " */
164#define MMIO_CANMULTITRACKWRITETRANSLATED   0x00004000L /* "       "       " */
165#define MMIO_CANMULTITRACKWRITEUNTRANSLATED 0x00008000L /* "       "       " */
166#define MMIO_CANTRACKSEEKTRANSLATED         0x00010000L /* "       "       " */
167#define MMIO_CANTRACKSEEKUNTRANSLATED       0x00020000L /* "       "       " */
168#define MMIO_CANTRACKREADTRANSLATED         0x00040000L /* "       "       " */
169#define MMIO_CANTRACKREADUNTRANSLATED       0x00080000L /* "       "       " */
170#define MMIO_CANTRACKWRITETRANSLATED        0x00100000L /* "       "       " */
171#define MMIO_CANTRACKWRITEUNTRANSLATED      0x00200000L /* "       "       " */
172
173#define MMIO_IOPROC_STORAGESYSTEM     0x00000001L  /* IOProc Types */
174#define MMIO_IOPROC_FILEFORMAT        0x00000002L
175#define MMIO_IOPROC_DATAFORMAT        0x00000004L
176
177typedef struct _MMFORMATINFO {         /* mmformatinfo             */
178   ULONG    ulStructLen;               /* Length of this structure */
179   FOURCC   fccIOProc;                 /* IOProc identifier        */
180   ULONG    ulIOProcType;              /* Type of IOProc           */
181   ULONG    ulMediaType;               /* Media Type               */
182   ULONG    ulFlags;                   /* IOProc capability flags  */
183   CHAR     szDefaultFormatExt[sizeof(FOURCC)  + 1];
184                                       /* Default extension 4 + null */
185   ULONG    ulCodePage;                /* Code Page                  */
186   ULONG    ulLanguage;                /* Language                   */
187   LONG     lNameLength;               /* length of identifier string */
188   } MMFORMATINFO;
189
190typedef MMFORMATINFO *PMMFORMATINFO;
191
192#define MMIO_IMAGE_UNKNOWN          0x00000000L  /* Unknown image content */
193#define MMIO_IMAGE_DRAWING          0x00000001L  /* Simple drawing        */
194#define MMIO_IMAGE_GRAPH            0x00000002L  /* Graphs & Cartoons     */
195#define MMIO_IMAGE_PHOTO            0x00000004L  /* Varying Color & Shades */
196
197#ifdef INCL_GPI
198#ifdef INCL_GPIBITMAPS
199
200#define MAX_PALETTE  256
201
202typedef struct _XDIBHDR_PREFIX {             /* XDIB Header Prefix */
203   ULONG ulMemSize;                          /* Length of bitmap   */
204   ULONG ulPelFormat;
205   USHORT usTransType;
206   ULONG ulTransVal;
207   } XDIBHDR_PREFIX;
208
209typedef struct _MMXDIBHEADER {               /* XDIB Header */
210   XDIBHDR_PREFIX    XDIBHeaderPrefix;
211   BITMAPINFOHEADER2 BMPInfoHeader2;
212   } MMXDIBHEADER;
213
214typedef MMXDIBHEADER *PMMXDIBHEADER;
215
216typedef struct _MMIMAGEHEADER {              /* mmimageheader   */
217   ULONG             ulHeaderLength;         /* Length in Bytes */
218   ULONG             ulContentType;          /* Image content   */
219   ULONG             ulMediaType;            /* Media Type      */
220   MMXDIBHEADER      mmXDIBHeader;           /* OS/2 2.0 PM compat header */
221   RGB2              bmiColors[MAX_PALETTE]; /* PM compatible palette */
222   } MMIMAGEHEADER;
223
224typedef MMIMAGEHEADER *PMMIMAGEHEADER;
225
226#endif
227#endif
228
229#define MMIO_AUDIO_UNKNOWN          0x00000000L  /* Unknown image content  */
230#define MMIO_AUDIO_VOICE            0x00000001L  /* Limited Range          */
231#define MMIO_AUDIO_MUSIC            0x00000002L  /* FM Radio or equivalent */
232#define MMIO_AUDIO_HIFI             0x00000004L  /* High quality recording */
233
234typedef struct _WAVE_HEADER {                /* waveheader          */
235   USHORT          usFormatTag;              /* Type of wave format */
236   USHORT          usChannels;               /* Number of channels  */
237   ULONG           ulSamplesPerSec;          /* Sampling rate       */
238   ULONG           ulAvgBytesPerSec;         /* Avg bytes per sec   */
239   USHORT          usBlockAlign;             /* Block Alignment in bytes */
240   USHORT          usBitsPerSample;          /* Bits per sample     */
241   } WAVE_HEADER;
242
243typedef struct _XWAV_HEADERINFO {            /* xwaveheader info        */
244   ULONG           ulAudioLengthInMS;        /* Audio data in millisecs */
245   ULONG           ulAudioLengthInBytes;     /* Audio data in bytes     */
246   PVOID           pAdditionalInformation;
247   } XWAV_HEADERINFO;
248
249typedef struct _MMXWAV_HEADER {              /* mmxwaveheader            */
250   WAVE_HEADER     WAVEHeader;               /* Per RIFF WAVE Definition */
251   XWAV_HEADERINFO XWAVHeaderInfo;           /* Extended wave definition */
252   } MMXWAV_HEADER;
253
254typedef struct _MMAUDIOHEADER {              /* mmaudioheader   */
255   ULONG           ulHeaderLength;           /* Length in Bytes */
256   ULONG           ulContentType;            /* Image content   */
257   ULONG           ulMediaType;              /* Media Type      */
258   MMXWAV_HEADER   mmXWAVHeader;             /* header          */
259   } MMAUDIOHEADER;
260
261typedef MMAUDIOHEADER *PMMAUDIOHEADER;
262
263#define MMIO_MIDI_UNKNOWN          0x00000000L  /* Unknown midi content   */
264#define MMIO_MIDI_VOICE            0x00000001L  /* Limited Range          */
265#define MMIO_MIDI_MUSIC            0x00000002L  /* FM Radio or equivalent */
266#define MMIO_MIDI_HIFI             0x00000004L  /* High quality recording */
267
268/*
269 * MMPMMMIO.INI file structure and definitions.
270 */
271
272#define DLLNAME_SIZE     CCHMAXPATH
273#define PROCNAME_SIZE    32
274#define MAX_EXTENSION_NAME  4
275
276typedef struct _MMINIFILEINFO {               /* mminifileinfo          */
277   FOURCC      fccIOProc;                     /* IOProc identifier      */
278   CHAR        szDLLName[DLLNAME_SIZE];       /* DLL name string        */
279   CHAR        szProcName[PROCNAME_SIZE];     /* Procedure name string  */
280   ULONG       ulFlags;                       /* Capability Flags       */
281   ULONG       ulExtendLen;                   /* Length of ext fields   */
282   ULONG       ulMediaType;                   /* Media type             */
283   ULONG       ulIOProcType;                  /* Type of IOProc         */
284   CHAR        szDefExt[sizeof(MAX_EXTENSION_NAME)];
285                                              /* Default file extension */
286   } MMINIFILEINFO;
287
288typedef MMINIFILEINFO *PMMINIFILEINFO;
289
290/*
291 * CODEC Structures and type definitions for Rel. 1.1
292 */
293
294
295#define CODEC_INFO_SIZE    8
296#define CODEC_HW_NAME_SIZE 32
297
298#ifdef INCL_MMIO_CODEC
299
300typedef MMIOPROC FAR *PCODECPROC;
301
302typedef struct _CODECINIFILEINFO {           /* codecinifileinfo            */
303   ULONG       ulStructLen;                  /* length of this structure    */
304   FOURCC      fcc;                          /* File Format ID              */
305   CHAR        szDLLName[DLLNAME_SIZE];      /* DLL name string             */
306   CHAR        szProcName[PROCNAME_SIZE];    /* Procedure name string       */
307   ULONG       ulCompressType;               /* Compression Type            */
308   ULONG       ulCompressSubType;            /* Compression SubType         */
309   ULONG       ulMediaType;                  /* Media type                  */
310   ULONG       ulCapsFlags;                  /* capabilities flags          */
311   ULONG       ulFlags;                      /* flags                       */
312   CHAR        szHWID[CODEC_HW_NAME_SIZE];   /* specific information        */
313   ULONG       ulMaxSrcBufLen;               /* max source buffer length    */
314   ULONG       ulSyncMethod;                 /* Synchronization method      */
315   ULONG       fccPreferredFormat;           /* Preferred output format     */
316   ULONG       ulXalignment;                 /* x alignment - video only    */
317   ULONG       ulYalignment;                 /* y alignment - video only    */
318   ULONG       ulSpecInfo[CODEC_INFO_SIZE];  /* specific information        */
319   } CODECINIFILEINFO;
320
321typedef CODECINIFILEINFO *PCODECINIFILEINFO;
322
323/*
324 * CODECINIFILEINFO synchronization method (ulSyncMethod) values.
325 */
326
327#define CODEC_SYNC_METHOD_NO_DROP_FRAMES                  0
328#define CODEC_SYNC_METHOD_DROP_FRAMES_IMMEDIATELY         1
329#define CODEC_SYNC_METHOD_DROP_FRAMES_PRECEDING_KEY       2
330#define CODEC_SYNC_METHOD_HARDWARE                        3
331
332
333
334/*
335 * CODECINIFILEINFO capabilities (ulCapsFlags) values.
336 */
337
338#define CODEC_COMPRESS            0x00000001
339#define CODEC_DECOMPRESS          0x00000002
340#define CODEC_WINDOW_CLIPPING     0x00000004
341#define CODEC_PALETTE_TRANS       0x00000008
342#define CODEC_SELFHEAL            0x00000010
343#define CODEC_SCALE_PEL_DOUBLE    0x00000020
344#define CODEC_SCALE_PEL_HALVED    0x00000040
345#define CODEC_SCALE_CONTINUOUS    0x00000080
346#define CODEC_MULAPERTURE         0x00000100
347#define CODEC_4_BIT_COLOR         0x00000200
348#define CODEC_8_BIT_COLOR         0x00000400
349#define CODEC_16_BIT_COLOR        0x00000800
350#define CODEC_24_BIT_COLOR        0x00001000
351#define CODEC_HARDWARE            0x00002000
352#define CODEC_SYMMETRIC           0x00004000
353#define CODEC_ASYMMETRIC          0x00008000
354#define CODEC_DIRECT_DISPLAY      0x00010000
355#define CODEC_DEFAULT             0x00020000
356#define CODEC_ORIGIN_LOWERLEFT    0x00040000
357#define CODEC_ORIGIN_UPPERLEFT    0x00080000
358#define CODEC_SET_QUALITY         0x00100000  /* quality level is settable */
359#define CODEC_DATA_CONSTRAINT     0x00200000  /* data constraint supported */
360#define CODEC_HW_OVERLAY          0x00400000
361#define CODEC_MULTI_BUFFER        0x00800000
362#define CODEC_DITHER_OUTPUT       0x01000000
363
364
365/* Audio related flags */
366#define CODEC_COMP_REALTIME       0x00020000
367#define CODEC_DECOMP_REALTIME     0x00040000
368
369
370/*
371 * CODECINIFILEINFO Flag Values (ulFlags) values.
372 */
373
374
375/* Bit definitions for mmioSet() */
376#define         MMIO_SET_EXTENDEDINFO                   0X0001
377#define         MMIO_QUERY_EXTENDEDINFO_BASE            0x0002
378#define         MMIO_QUERY_EXTENDEDINFO_ALL             0x0004
379
380
381/* CODECASSOC structure */
382typedef  struct _CODECASSOC{             /* codec information */
383   PVOID  pCodecOpen;                    /* codec specific open header */
384   PCODECINIFILEINFO pCODECIniFileInfo;  /* codecinifileinfo           */
385   } CODECASSOC;
386
387/* PCODECASSOC definition */
388typedef CODECASSOC      *PCODECASSOC;
389
390
391/* MMEXTENDINFO structure */
392typedef  struct _MMEXTENDINFO{            /* extended file information */
393   ULONG        ulStructLen;              /* length of this structure  */
394   ULONG        ulBufSize;                /* total buffer size */
395   ULONG        ulFlags;                  /* flags */
396   ULONG        ulTrackID;                /* track ID */
397   ULONG        ulNumCODECs;              /* number of codec entries */
398   PCODECASSOC  pCODECAssoc;              /* pointer to codec info array */
399   } MMEXTENDINFO;
400
401/* PMMEXTENDINFO definition */
402typedef MMEXTENDINFO    *PMMEXTENDINFO;
403
404/*
405 * MMEXTENDINFO operation (ulFlags) values.
406 */
407#define MMIO_TRACK                0x00000001
408#define MMIO_NORMAL_READ          0x00000002
409#define MMIO_SCAN_READ            0x00000004
410#define MMIO_REVERSE_READ         0x00000008
411#define MMIO_CODEC_ASSOC          0x00000100
412
413/* Audio Related defines */
414
415#define MMIO_REALTIME_CODEC       0x00000200
416
417#define MMIO_RESETTRACKS          -1       /*  Turns off the active track number. */
418
419#define CODEC_START              0x0EC0
420#define CODEC_END                0x0EFF
421
422#define MMIOM_CODEC_CLOSE             CODEC_START + 1
423#define MMIOM_CODEC_OPEN              CODEC_START + 2
424#define MMIOM_CODEC_QUERYNAME         CODEC_START + 3
425#define MMIOM_CODEC_QUERYNAMELENGTH   CODEC_START + 4
426#define MMIOM_CODEC_COMPRESS          CODEC_START + 5
427#define MMIOM_CODEC_DECOMPRESS        CODEC_START + 6
428#define MMIOM_CODEC_HW_CONTROL        CODEC_START + 7
429
430#define MMIOMP_CODEC_HW_CONTROL_STOP_DISCARD   0
431#define MMIOMP_CODEC_HW_CONTROL_STOP_FLUSH     1
432#define MMIOMP_CODEC_HW_CONTROL_STOP_PAUSE     2
433#define MMIOMP_CODEC_HW_CONTROL_DATATYPE       3
434
435#endif
436/* End CODEC include */
437
438/*
439 * Flags:
440 */
441
442#define MMIO_CREATE     0x00000001L       /* Open */
443#define MMIO_CTOCFIRST  0x00000002L       /* Open */
444#define MMIO_READ       0x00000004L       /* Open */
445#define MMIO_WRITE      0x00000008L       /* Open */
446#define MMIO_READWRITE  0x00000010L       /* Open */
447#define MMIO_COMPAT     0x00000020L       /* Open */
448#define MMIO_EXCLUSIVE  0x00000040L       /* Open */
449#define MMIO_DENYWRITE  0x00000080L       /* Open */
450#define MMIO_DENYREAD   0x00000100L       /* Open */
451#define MMIO_DENYNONE   0x00000200L       /* Open */
452#define MMIO_ALLOCBUF   0x00000400L       /* Open */
453#define MMIO_DELETE     0x00000800L       /* Open */
454
455#define MMIO_USE_TEMP   0x00001000L       /* Open/Close/Save */
456
457#define MMIO_INSERTON   0x00000001L       /* Insert */
458#define MMIO_INSERTOFF  0x00000002L       /* Insert */
459
460#define MMIO_RWMODE     0x00001000L       /* Open */
461#define MMIO_SHAREMODE  0x00002000L       /* Open */
462
463#define MMIO_DIRTY      0x00004000L       /* Write */
464
465#define MMIO_VERTBAR     0x00008000L       /* Open */
466#define MMIO_BUFSHARED   0x00010000L       /* Open */
467#define MMIO_APPEND      0x00020000L       /* Open */
468#define MMIO_NOIDENTIFY  0x00040000L       /* Open */
469
470
471#define MMIO_FINDFIRST   0x00000001L       /* CF Find Entry */
472#define MMIO_FINDNEXT    0x00000002L       /* CF Find Entry */
473#define MMIO_FINDUNUSED  0x00000004L       /* CF Find Entry */
474#define MMIO_FINDDELETED 0x00000008L       /* CF Find Entry */
475
476#define MMIO_CHANGEDELETED 0x0001         /* CF Change Entry */
477
478#define MMIO_CF_FQNAME     0x0001         /* CF Compact      */
479
480#define MMIO_FHOPEN      0x0001           /* Close */
481
482#define MMIO_EMPTYBUF    0x0001           /* Flush */
483
484#define MMIO_CREATERIFF  0x0001           /* CreateChunk */
485#define MMIO_CREATELIST  0x0002           /* CreateChunk */
486#define MMIO_FINDCHUNK   0x0004           /* Descend     */
487#define MMIO_FINDRIFF    0x0008           /* Descend     */
488#define MMIO_FINDLIST    0x0010           /* Descend     */
489
490#define CTOC_HF_SEQUENTIAL 0x00000001L    /* CTOC ulHeaderFlags */
491#define CTOC_HF_MEDSUBTYPE 0x00000002L    /* CTOC ulHeaderFlags */
492
493#define CTOC_EFU_UNUSED          0x00000000L /* CTOC extra usage code */
494#define CTOC_EFU_LASTMODTIME     0x00000001L /* CTOC extra usage code */
495#define CTOC_EFU_CODEPAGE        0x00000002L /* CTOC extra usage code */
496#define CTOC_EFU_LANGUAGE        0x00000003L /* CTOC extra usage code */
497#define CTOC_EFU_COMPRESSPARAM0  0x00000005L /* CTOC extra usage code */
498#define CTOC_EFU_COMPRESSPARAM1  0x00000006L /* CTOC extra usage code */
499#define CTOC_EFU_COMPRESSPARAM2  0x00000007L /* CTOC extra usage code */
500#define CTOC_EFU_COMPRESSPARAM3  0x00000008L /* CTOC extra usage code */
501#define CTOC_EFU_COMPRESSPARAM4  0x00000009L /* CTOC extra usage code */
502#define CTOC_EFU_COMPRESSPARAM5  0x0000000AL /* CTOC extra usage code */
503#define CTOC_EFU_COMPRESSPARAM6  0x0000000BL /* CTOC extra usage code */
504#define CTOC_EFU_COMPRESSPARAM7  0x0000000CL /* CTOC extra usage code */
505#define CTOC_EFU_COMPRESSPARAM8  0x0000000DL /* CTOC extra usage code */
506#define CTOC_EFU_COMPRESSPARAM9  0x0000000EL /* CTOC extra usage code */
507#define CTOC_CHARSET_STANDARD    0x00000000L /* CTOC charset value    */
508
509#define MMIO_INSTALLPROC         0x00000001L /* Install IO Proc */
510#define MMIO_REMOVEPROC          0x00000002L /* Install IO Proc */
511#define MMIO_FINDPROC            0x00000004L /* Install IO Proc */
512
513#define MMIO_MATCHFIRST          0x00000010L /* Ini File Handler */
514#define MMIO_MATCHNEXT           0x00000020L /* Ini File Handler */
515#define MMIO_MATCHFOURCC         0x00000040L /* Ini File Handler */
516#define MMIO_MATCHDLL            0x00000080L /* Ini File Handler */
517#define MMIO_MATCHPROCEDURENAME  0x00000100L /* Ini File Handler */
518#define MMIO_FULLPATH            0x00000200L /* Ini File Handler */
519#define MMIO_NOVERIFY            0x00000400L /* Ini File Handler */
520#define MMIO_MATCHCOMPRESSTYPE   0x00000800L /* Ini File Handler */
521#define MMIO_EXTENDED_STRUCT     0x00001000L /* Ini File ulFlags */
522#define MMIO_MATCHCOMPRESSSUBTYPE 0x00002000L /* Ini File Handler */
523#define MMIO_MATCHHWID           0x00004000L /* Ini File Handler */
524#define MMIO_MATCHCAPSFLAGS      0x00008000L /* Ini File Handler */
525#define MMIO_SKIPMATCH           0x00010000L /* Ini/Load Handler */
526
527#define MMIO_TOUPPER             0x0001      /* StringToFourcc */
528
529#define MMIO_CF_ENTRY_EXISTS     0x00000001L /* Add CGRP element */
530
531#define MMIO_FORCE_IDENTIFY_SS   0x00000001L /* Identify */
532#define MMIO_FORCE_IDENTIFY_FF   0x00000002L /* Identify */
533
534#define MMIO_NOTRANSLATE         0x00000000L /* Translation */
535#define MMIO_TRANSLATEDATA       0x00000001L /* Translation */
536#define MMIO_TRANSLATEHEADER     0x00000002L /* Translation */
537#define MMIO_DECOMPRESS          0x00000004L /* CODEC Decompress */
538
539#define MMIO_DEFAULTBUFFER  8192    /* two pages under OS/2 2.0 */
540
541#define MMIO_SEEK_IFRAME         0x00010000L  /* Seek to nearest previous IFRAME */
542
543
544
545/*
546 * Messages :
547 */
548
549#define MMIOM_START              0x0E00
550#define MMIOM_END                0x0EFF
551
552#define MMIOM_GETCF              MMIOM_START + 1
553#define MMIOM_GETCFENTRY         MMIOM_START + 2
554
555#define MMIOM_CLOSE              MMIOM_START + 3
556#define MMIOM_OPEN               MMIOM_START + 4
557#define MMIOM_READ               MMIOM_START + 5
558#define MMIOM_SEEK               MMIOM_START + 6
559#define MMIOM_WRITE              MMIOM_START + 7
560
561#define MMIOM_IDENTIFYFILE       MMIOM_START + 8
562#define MMIOM_GETHEADER          MMIOM_START + 9
563#define MMIOM_SETHEADER          MMIOM_START + 10
564#define MMIOM_QUERYHEADERLENGTH  MMIOM_START + 11
565#define MMIOM_GETFORMATNAME      MMIOM_START + 12
566#define MMIOM_GETFORMATINFO      MMIOM_START + 13
567#define MMIOM_SEEKBYTIME         MMIOM_START + 14
568#define MMIOM_TEMPCHANGE         MMIOM_START + 15
569#define MMIOM_BEGININSERT        MMIOM_START + 16
570#define MMIOM_ENDINSERT          MMIOM_START + 17
571#define MMIOM_SAVE               MMIOM_START + 18
572#define MMIOM_SET                MMIOM_START + 19
573#define MMIOM_COMPRESS           MMIOM_START + 20
574#define MMIOM_DECOMPRESS         MMIOM_START + 21
575#define MMIOM_MULTITRACKREAD     MMIOM_START + 22
576#define MMIOM_MULTITRACKWRITE    MMIOM_START + 23
577#define MMIOM_DELETE             MMIOM_START + 24
578#define MMIOM_BEGINGROUP         MMIOM_START + 25
579#define MMIOM_ENDGROUP           MMIOM_START + 26
580#define MMIOM_UNDO               MMIOM_START + 27
581#define MMIOM_REDO               MMIOM_START + 28
582#define MMIOM_BEGINSTREAM        MMIOM_START + 29
583#define MMIOM_ENDSTREAM          MMIOM_START + 30
584
585
586#define MMIOM_CUT                MMIOM_START + 31
587#define MMIOM_COPY               MMIOM_START + 32
588#define MMIOM_PASTE              MMIOM_START + 33
589#define MMIOM_CLEAR              MMIOM_START + 34
590#define MMIOM_STATUS             MMIOM_START + 35
591#define MMIOM_WINMSG             MMIOM_START + 36
592#define MMIOM_BEGINRECORD        MMIOM_START + 37
593#define MMIOM_ENDRECORD          MMIOM_START + 38
594
595
596/* These 3 new messages were added with feature 11710 */
597
598#define MMIOM_QUERYIMAGE         MMIOM_START + 39
599#define MMIOM_QUERYIMAGECOUNT    MMIOM_START + 40
600#define MMIOM_SETIMAGE           MMIOM_START + 41
601
602
603#define MMIO_REALTIME             0x00000001
604#define MMIO_NONREALTIME          0x00000002
605
606#define MMIOM_USER                0x0F00
607#define MMIOM_USER_END            0x0FFF
608
609
610/* Parameter structure for MMIOM_STATUS */
611
612typedef struct _MMIO_STATUS_PARMS {       /* this comment needed by h2inc */
613    HWND    hwndWindow;                   /* Some items require a window handle */
614    ULONG   ulReturn;                     /* Return field */
615    ULONG   ulItem;                       /* Use MCI_STATUS_... flags here */
616    ULONG   ulValue;                      /* Status value field */
617    ULONG   ulType;                       /* MCI_FORMAT_... of ulReturn */
618} MMIO_STATUS_PARMS, *PMMIO_STATUS_PARMS;
619
620/* Parameter structure for MMIOM_COPY, MMIOM_CUT, MMIOM_CLEAR and MMIOM_PASTE */
621
622typedef LONG USEC;                        /* microsecond time format */
623
624typedef struct _MMIO_MEDIT_PARMS {        /* this comment needed by h2inc */
625   ULONG    ulStrucLen;                   /* length of this structure */
626   HWND     hwndWindow;                   /* window handle */
627   USEC     ulStartTime;                  /* starting time in usec */
628   USEC     ulDuration;                   /* duration in usec */
629   ULONG    ulCurrentFilePosition;        /* current file position in usec */
630   ULONG    ulNewFilePosition;            /* returned by IO proc in usec, MCD will issue a seek */
631   ULONG    ulNewFileLength;              /* return by IO proc in usec, MCD updates its headers */
632   PVOID    pBuffer;                      /* optional buffer */
633   ULONG    ulBufferLength;               /* optional buffer's length */
634   PVOID    pHeader;                      /* optional pointer to header for buffer */
635   BOOL     fUseBuffer;                   /* flag to use Buffer instead of clipboard */
636} MMIO_EDIT_PARMS, *PMMIO_EDIT_PARMS;
637
638/* Parameter structure for MMIOM_WIN_MESSAGE */
639
640typedef struct _MMIO_WINMSG {             /* this comment needed by h2inc */
641   HWND     hwndWindow;                   /* these are the parameters */
642   USHORT   usMessage;                    /*  ... passed to the       */
643   PVOID    pParam1;                      /*  ... window procedure    */
644   PVOID    pParam2;                      /*  ... by PM               */
645} MMIO_WINMSG, *PMMIO_WINMSG;
646
647/* JPEG IOproc specific structure */
648
649#define YUV_YVU           0x0080  /*v013 Compressed data is YUV */
650#define DST_Y              20
651#define DST_YY             25
652
653typedef struct _JPEGOPTIONS   {            /* this comment needed by h2inc         */
654    ULONG    ulStructLen;                    /* size of this sturcture                   */
655    USHORT  usQuantization[4];              /* Each number may be 1 - 65535       */
656    USHORT  usScale;                        /* 1 (1/8 Size) - 8 (Full Size; default)   */
657    ULONG    ulColorOrder;                   /* YUV_YVU (Default) or ~YUV_YVU      */
658    USHORT  usColorSpaceOut;               /* DST_YY (Default) or DST_Y            */
659    } JPEGOPTIONS;
660
661typedef JPEGOPTIONS *PJPEGOPTIONS;
662
663/*
664 * Include error codes for MMIO only.
665 */
666
667#ifndef _MEERROR_H_
668#define INCL_MMIO_ERRORS
669#include <meerror.h>
670#endif
671
672#define MMIO_SUCCESS                    0L
673#define MMIO_WARNING                    2L
674#define MMIO_ERROR                      0xFFFFFFFF
675#define MMIOERR_UNSUPPORTED_MESSAGE     0xFFFFFFFE
676
677#define MMIO_CF_SUCCESS                 0L
678#define MMIO_CF_FAILURE                 1L
679
680#define mmioFOURCC( ch0, ch1, ch2, ch3 )                         \
681                  ( (ULONG)(BYTE)(ch0) | ( (ULONG)(BYTE)(ch1) << 8 ) |    \
682                  ( (ULONG)(BYTE)(ch2) << 16 ) | ( (ULONG)(BYTE)(ch3) << 24 ) )
683
684#define FOURCC_RIFF   mmioFOURCC( 'R', 'I', 'F', 'F' )
685#define FOURCC_LIST   mmioFOURCC( 'L', 'I', 'S', 'T' )
686#define FOURCC_MEM    mmioFOURCC( 'M', 'E', 'M', ' ' )
687#define FOURCC_DOS    mmioFOURCC( 'D', 'O', 'S', ' ' )
688#define FOURCC_BND    mmioFOURCC( 'B', 'N', 'D', ' ' )
689#define FOURCC_FREE   mmioFOURCC( 'F', 'R', 'E', 'E' )
690#define FOURCC_DEL    mmioFOURCC( 'D', 'E', 'L', ' ' )
691#define FOURCC_CTOC   mmioFOURCC( 'C', 'T', 'O', 'C' )
692#define FOURCC_CGRP   mmioFOURCC( 'C', 'G', 'R', 'P' )
693#define FOURCC_CF     mmioFOURCC( 'C', 'F', ' ', ' ' )
694
695#define MMIO_NLS_CHARSET_INFO    8000   /* RCDATA Name ID for NLS          */
696#define MMIO_IOPROC_NAME_TABLE   8500   /* RCDATA Name ID for string table */
697#define MMIO_CODEC_NAME_TABLE    9000   /* RCDATA Name ID for Codec  table */
698
699/*
700 * Numeric equivalents of fourcc's.  These are needed for the resource
701 * compiler.
702 */
703
704#define HEX_FOURCC_DOS 0x20534f44L
705#define HEX_FOURCC_MEM 0x204d454dL
706#define HEX_FOURCC_BND 0x20444e42L
707#define HEX_FOURCC_CF  0x20204643L
708
709/*
710 * Country codes (CC), languages (LC), and dialects (DC).
711 */
712
713#define MMIO_DEFAULT_CODE_PAGE            437
714
715#define MMIO_CC_NONE                        0
716#define MMIO_CC_USA                         1
717#define MMIO_CC_CANADA                      2
718#define MMIO_CC_LATIN_AMERICA               3
719#define MMIO_CC_GREECE                     30
720#define MMIO_CC_NETHERLANDS                31
721#define MMIO_CC_BELGIUM                    32
722#define MMIO_CC_FRANCE                     33
723#define MMIO_CC_SPAIN                      34
724#define MMIO_CC_ITALY                      39
725#define MMIO_CC_SWITZERLAND                41
726#define MMIO_CC_AUSTRIA                    43
727#define MMIO_CC_UNITED_KINGDOM             44
728#define MMIO_CC_DENMARK                    45
729#define MMIO_CC_SWEDEN                     46
730#define MMIO_CC_NORWAY                     47
731#define MMIO_CC_WEST_GERMANY               49
732#define MMIO_CC_MEXICO                     52
733#define MMIO_CC_BRAZIL                     55
734#define MMIO_CC_AUSTRALIA                  61
735#define MMIO_CC_NEW_ZEALAND                64
736#define MMIO_CC_JAPAN                      81
737#define MMIO_CC_KOREA                      82
738#define MMIO_CC_CHINA                      86
739#define MMIO_CC_TAIWAN                     88
740#define MMIO_CC_TURKEY                     90
741#define MMIO_CC_PORTUGAL                  351
742#define MMIO_CC_LUXEMBOURG                352
743#define MMIO_CC_ICELAND                   354
744#define MMIO_CC_FINLAND                   358
745
746#define MMIO_LC_NONE                        0
747#define MMIO_DC_NONE                        0
748#define MMIO_LC_ARABIC                      1
749#define MMIO_DC_ARABIC                      1
750#define MMIO_LC_BULGARIAN                   2
751#define MMIO_DC_BULGARIAN                   1
752#define MMIO_LC_CATALAN                     3
753#define MMIO_DC_CATALAN                     1
754#define MMIO_LC_TRADITIONAL_CHINESE         4
755#define MMIO_DC_TRADITIONAL_CHINESE         1
756#define MMIO_LC_SIMPLE_CHINESE              4
757#define MMIO_DC_SIMPLE_CHINESE              2
758#define MMIO_LC_CZECH                       5
759#define MMIO_DC_CZECH                       1
760#define MMIO_LC_DANISH                      6
761#define MMIO_DC_DANISH                      1
762#define MMIO_LC_GERMAN                      7
763#define MMIO_DC_GERMAN                      1
764#define MMIO_LC_SWISS_GERMAN                7
765#define MMIO_DC_SWISS_GERMAN                2
766#define MMIO_LC_GREEK                       8
767#define MMIO_DC_GREEK                       1
768#define MMIO_LC_US_ENGLISH                  9
769#define MMIO_DC_US_ENGLISH                  1
770#define MMIO_LC_UK_ENGLISH                  9
771#define MMIO_DC_UK_ENGLISH                  2
772#define MMIO_LC_SPANISH                    10
773#define MMIO_DC_SPANISH                     1
774#define MMIO_LC_SPANISH_MEXICAN            10
775#define MMIO_DC_SPANISH_MEXICAN             2
776#define MMIO_LC_FINNISH                    11
777#define MMIO_DC_FINNISH                     1
778#define MMIO_LC_FRENCH                     12
779#define MMIO_DC_FRENCH                      1
780#define MMIO_LC_BELGIAN_FRENCH             12
781#define MMIO_DC_BELGIAN_FRENCH              2
782#define MMIO_LC_CANADIAN_FRENCH            12
783#define MMIO_DC_CANADIAN_FRENCH             3
784#define MMIO_LC_SWISS_FRENCH               12
785#define MMIO_DC_SWISS_FRENCH                4
786#define MMIO_LC_HEBREW                     13
787#define MMIO_DC_HEBREW                      1
788#define MMIO_LC_HUNGARIAN                  14
789#define MMIO_DC_HUNGARIAN                   1
790#define MMIO_LC_ICELANDIC                  15
791#define MMIO_DC_ICELANDIC                   1
792#define MMIO_LC_ITALIAN                    16
793#define MMIO_DC_ITALIAN                     1
794#define MMIO_LC_SWISS_ITALIAN              16
795#define MMIO_DC_SWISS_ITALIAN               2
796#define MMIO_LC_JAPANESE                   17
797#define MMIO_DC_JAPANESE                    1
798#define MMIO_LC_KOREAN                     18
799#define MMIO_DC_KOREAN                      1
800#define MMIO_LC_DUTCH                      19
801#define MMIO_DC_DUTCH                       1
802#define MMIO_LC_BELGIAN_DUTCH              19
803#define MMIO_DC_BELGIAN_DUTCH               2
804#define MMIO_LC_NORWEGIAN_BOKMAL           20
805#define MMIO_DC_NORWEGIAN_BOKMAL            1
806#define MMIO_LC_NORWEGIAN_NYNORSK          20
807#define MMIO_DC_NORWEGIAN_NYNORSK           2
808#define MMIO_LC_POLISH                     21
809#define MMIO_DC_POLISH                      1
810#define MMIO_LC_BRAZILIAN_PORTUGUESE       22
811#define MMIO_DC_BRAZILIAN_PORTUGUESE        1
812#define MMIO_LC_PORTUGUESE                 22
813#define MMIO_DC_PORTUGUESE                  2
814#define MMIO_LC_RHAETO_ROMANIC             23
815#define MMIO_DC_RHAETO_ROMANIC              1
816#define MMIO_LC_ROMANIAN                   24
817#define MMIO_DC_ROMANIAN                    1
818#define MMIO_LC_RUSSIAN                    25
819#define MMIO_DC_RUSSIAN                     1
820#define MMIO_LC_SERBO_CROATIAN_LATIN       26
821#define MMIO_DC_SERBO_CROATIAN_LATIN        1
822#define MMIO_LC_SERBO_CROATIAN_CYRILLIC    26
823#define MMIO_DC_SERBO_CROATIAN_CYRILLIC     2
824#define MMIO_LC_SLOVAK                     27
825#define MMIO_DC_SLOVAK                      1
826#define MMIO_LC_ALBANIAN                   28
827#define MMIO_DC_ALBANIAN                    1
828#define MMIO_LC_SWEDISH                    29
829#define MMIO_DC_SWEDISH                     1
830#define MMIO_LC_THAI                       30
831#define MMIO_DC_THAI                        1
832#define MMIO_LC_TURKISH                    31
833#define MMIO_DC_TURKISH                     1
834#define MMIO_LC_URDU                       32
835#define MMIO_DC_URDU                        1
836#define MMIO_LC_BAHASA                     33
837#define MMIO_DC_BAHASA                      1
838
839/*
840 * Base function prototypes:
841 */
842
843USHORT APIENTRY mmioAdvance( HMMIO hmmio,
844                           PMMIOINFO pmmioinfo,
845                           USHORT usFlags );
846
847USHORT APIENTRY mmioAscend( HMMIO hmmio,
848                          PMMCKINFO pckinfo,
849                          USHORT usFlags );
850
851USHORT APIENTRY mmioClose( HMMIO hmmio,
852                         USHORT usFlags );
853
854USHORT APIENTRY mmioCreateChunk( HMMIO hmmio,
855                               PMMCKINFO pckinfo,
856                               USHORT usFlags );
857
858USHORT APIENTRY mmioDescend( HMMIO hmmio,
859                           PMMCKINFO pckinfo,
860                           PMMCKINFO pckinfoParent,
861                           USHORT usFlags );
862
863USHORT APIENTRY mmioFlush( HMMIO hmmio,
864                         USHORT usFlags );
865
866USHORT APIENTRY mmioGetInfo( HMMIO hmmio,
867                           PMMIOINFO pmmioinfo,
868                           USHORT usFlags );
869
870ULONG APIENTRY mmioGetLastError( HMMIO hmmio );
871
872PMMIOPROC APIENTRY mmioInstallIOProc( FOURCC fccIOProc,
873                                      PMMIOPROC pIOProc,
874                                      ULONG ulFlags );
875
876LONG APIENTRY mmioIOProc( PMMIOINFO pmmioinfo,
877                          USHORT usMsg,
878                          LONG lParam1,
879                          LONG lParam2 );
880
881HMMIO APIENTRY mmioOpen( PSZ pszFileName,
882                         PMMIOINFO pmmioinfo,
883                         ULONG ulOpenFlags );
884
885LONG APIENTRY mmioRead( HMMIO hmmio,
886                        PCHAR pchBuffer,
887                        LONG cBytes );
888
889LONG APIENTRY mmioSeek( HMMIO hmmio,
890                        LONG lOffset,
891                        LONG lOrigin );
892
893LONG APIENTRY mmioSendMessage( HMMIO hmmio,
894                               USHORT usMsg,
895                               LONG lParam1,
896                               LONG lParam2 );
897
898USHORT APIENTRY mmioSetBuffer( HMMIO hmmio,
899                             PCHAR pchBuffer,
900                             LONG cBytes,
901                             USHORT usFlags );
902
903USHORT APIENTRY mmioSetInfo( HMMIO hmmio,
904                           PMMIOINFO pmmioinfo,
905                           USHORT usFlags );
906
907FOURCC APIENTRY mmioStringToFOURCC( PSZ pszString,
908                                    USHORT usFlags );
909
910LONG APIENTRY mmioWrite( HMMIO hmmio,
911                         PCHAR pchBuffer,
912                         LONG cBytes );
913
914/*
915 * Compound File function prototypes:
916 */
917
918HMMCF APIENTRY mmioCFOpen( PSZ pszFileName,
919                           PMMCFINFO pmmcfinfo,
920                           PMMIOINFO pmmioinfo,
921                           ULONG ulFlags );
922
923ULONG APIENTRY mmioCFClose( HMMCF hmmcf,
924                            ULONG ulFlags );
925
926ULONG APIENTRY mmioCFGetInfo( HMMCF hmmcf,
927                              PMMCFINFO pmmcfinfo,
928                              ULONG cBytes );
929
930ULONG APIENTRY mmioCFSetInfo( HMMCF hmmcf,
931                              PMMCFINFO pmmcfinfo,
932                              ULONG cBytes );
933
934ULONG APIENTRY mmioCFFindEntry( HMMCF hmmcf,
935                                PMMCTOCENTRY pmmctocentry,
936                                ULONG ulFlags );
937
938ULONG APIENTRY mmioCFAddEntry( HMMCF hmmcf,
939                               PMMCTOCENTRY pmmctocentry,
940                               ULONG ulFlags );
941
942ULONG APIENTRY mmioCFChangeEntry( HMMCF hmmcf,
943                                  PMMCTOCENTRY pmmctocentry,
944                                  ULONG ulFlags );
945
946ULONG APIENTRY mmioCFDeleteEntry( HMMCF hmmcf,
947                                  PMMCTOCENTRY pmmctocentry,
948                                  ULONG ulFlags );
949
950ULONG APIENTRY mmioCFAddElement( HMMCF hmmcf,
951                                 PSZ pszElementName,
952                                 FOURCC fccType,
953                                 PCHAR pchBuffer,
954                                 LONG cchBytes,
955                                 ULONG ulFlags );
956
957ULONG APIENTRY mmioCFCopy( HMMCF hmmcfSource,
958                           PSZ pszDestFileName,
959                           ULONG ulFlags );
960
961/*
962 * Conversion Utility function prototypes:
963 */
964
965ULONG APIENTRY mmioQueryFormatCount( PMMFORMATINFO pmmformatinfo,
966                                     PLONG plNumFormats,
967                                     ULONG ulReserved,
968                                     ULONG ulFlags );
969
970ULONG APIENTRY mmioGetFormats( PMMFORMATINFO pmmformatinfo,
971                               LONG lNumFormats,
972                               PVOID pFormatInfoList,
973                               PLONG plFormatsRead,
974                               ULONG ulReserved,
975                               ULONG ulFlags );
976
977ULONG APIENTRY mmioGetFormatName( PMMFORMATINFO pmmformatinfo,
978                                  PSZ pszFormatName,
979                                  PLONG plBytesRead,
980                                  ULONG ulReserved,
981                                  ULONG ulFlags );
982
983ULONG APIENTRY mmioIdentifyFile( PSZ pszFileName,
984                                 PMMIOINFO pmmioinfo,
985                                 PMMFORMATINFO pmmformatinfo,
986                                 PFOURCC pfccStorageSystem,
987                                 ULONG ulReserved,
988                                 ULONG ulFlags );
989
990ULONG APIENTRY mmioQueryHeaderLength( HMMIO hmmio,
991                                      PLONG plHeaderLength,
992                                      ULONG ulReserved,
993                                      ULONG ulFlags );
994
995ULONG APIENTRY mmioGetHeader( HMMIO hmmio,
996                              PVOID pHeader,
997                              LONG lHeaderLength,
998                              PLONG plBytesRead,
999                              ULONG ulReserved,
1000                              ULONG ulFlags );
1001
1002ULONG APIENTRY mmioSetHeader( HMMIO hmmio,
1003                              PVOID pHeader,
1004                              LONG lHeaderLength,
1005                              PLONG plBytesWritten,
1006                              ULONG ulReserved,
1007                              ULONG ulFlags );
1008
1009ULONG APIENTRY mmioIniFileHandler( PMMINIFILEINFO pmminifileinfo,
1010                                   ULONG ulFlags );
1011
1012ULONG APIENTRY mmioIdentifyStorageSystem( PSZ pszFileName,
1013                                          PMMIOINFO pmmioinfo,
1014                                          PFOURCC pfccStorageSystem );
1015
1016ULONG APIENTRY mmioDetermineSSIOProc( PSZ pszFileName,
1017                                      PMMIOINFO pmmioinfo,
1018                                      PFOURCC pfccStorageSystem,
1019                                      PSZ pszParsedRemainder );
1020
1021ULONG APIENTRY mmioQueryIOProcModuleHandle( PMMIOPROC pIOProc,
1022                                            PHMODULE phmodIOProc );
1023
1024ULONG APIENTRY mmioCFCompact( PSZ pszFileName, ULONG ulFlags );
1025
1026
1027/*
1028 * MMPMMMIO.INI file migration utility
1029 */
1030
1031ULONG APIENTRY mmioMigrateIniFile( ULONG ulFlags );
1032
1033/*
1034 * MMIO CODEC APIs
1035 */
1036
1037#ifdef INCL_MMIO_CODEC
1038
1039ULONG APIENTRY mmioIniFileCODEC( PCODECINIFILEINFO pCODECIniFileInfo,
1040                                 ULONG ulFlags );
1041ULONG APIENTRY mmioSet(HMMIO hmmio,
1042                       PMMEXTENDINFO pUserExtendmminfo,
1043                       ULONG ulFlags);
1044
1045ULONG APIENTRY mmioQueryCODECName( PCODECINIFILEINFO pCODECIniFileinfo,
1046                                  PSZ pszCODECName,
1047                                  PULONG pulBytesRead );
1048
1049ULONG APIENTRY mmioQueryCODECNameLength( PCODECINIFILEINFO pCODECIniFileinfo,
1050                                         PULONG pulNameLength );
1051
1052PCODECPROC  APIENTRY mmioLoadCODECProc( PCODECINIFILEINFO pCODECIniFileInfo,
1053                                      PHMODULE phMod, ULONG ulFlags );
1054
1055USHORT APIENTRY mmioGetData( HMMIO hmmio,
1056                           PMMIOINFO pmmioinfo,
1057                           USHORT usFlags );
1058
1059#endif
1060
1061
1062#pragma pack()
1063
1064#endif /* _MMIO_H_ */
1065
1066#ifdef __cplusplus
1067}
1068#endif
1069
Note: See TracBrowser for help on using the repository browser.