source: 2.19_branch/Sibyl/RTL/MMIO.PAS@ 376

Last change on this file since 376 was 8, checked in by RBRi, 19 years ago

+ rest of sibyl stuff

  • Property svn:eol-style set to native
File size: 200.3 KB
Line 
1UNIT MMIO;
2
3{***************************************************************************\
4*
5* Module Name: MMIO.H
6*
7* OS/2 2.0 Multimedia Extensions Input/Output Manager Definitions file
8* NOTE: All structures are UNPACKED!!
9*
10* Copyright (c) International Business Machines Corporation 1990,1991,1992
11* All Rights Reserved
12*
13*
14\****************************************************************************/}
15
16INTERFACE
17
18USES Os2Def,BseDos,PmBitmap,PmWin;
19
20TYPE
21 HMMIO=LONGWORD;
22 HMMCF=LONGWORD;
23 FOURCC=LONGWORD;
24 PFOURCC=^FOURCC;
25
26TYPE
27 PMMCKINFO=^MMCKINFO;
28 MMCKINFO=RECORD
29 ckid:FOURCC;
30 ckSize:LONGWORD;
31 fccType:FOURCC;
32 dwDataOffset:LONGWORD;
33 dwFlags:LONGWORD;
34 END;
35
36TYPE MMIOPROC=FUNCTION(VAR pmmioInfo;wMsg:LONGWORD;lParam1,lParam2:LONG):LONG;APIENTRY;
37 PMMIOPROC=^MMIOPROC;
38
39TYPE
40 PMMIOINFO=^MMIOINFO;
41 MMIOINFO=RECORD
42 dwFlags:LONGWORD;
43 fccIOProc:FOURCC;
44 pIOProc:PMMIOPROC;
45 dwErrorRet:LONGWORD;
46 cchBuffer:LONG;
47 pchBuffer:PChar;
48 pchNext:PChar;
49 pchEndRead:PChar;
50 pchEndWrite:PChar;
51 lBufOffset:LONG;
52 lDiskOffset:LONG;
53 adwInfo:ARRAY[0..3] OF LONGWORD;
54 lLogicalFilePos:LONG;
55 ulTranslate:LONGWORD;
56 fccChildIOProc:FOURCC;
57 pExtraInfoStruct:POINTER;
58 hmmio:HMMIO;
59 END;
60
61 PMMCFINFO=^MMCFINFO;
62 MMCFINFO=RECORD
63 dwHeaderSize:LONGWORD;
64 dwEntriesTotal:LONGWORD;
65 dwEntriesDeleted:LONGWORD;
66 dwEntriesUnused:LONGWORD;
67 dwBytesTotal:LONGWORD;
68 dwBytesDeleted:LONGWORD;
69 dwHeaderFlags:LONGWORD;
70 wEntrySize:WORD;
71 wNameSize:WORD;
72 wExHdrFields:WORD;
73 wExEntFields:WORD;
74 END;
75
76 PMMCTOCENTRY=^MMCTOCENTRY;
77 MMCTOCENTRY=RECORD
78 dwOffset:LONGWORD;
79 dwSize:LONGWORD;
80 dwMedType:LONGWORD;
81 dwMedUsage:LONGWORD;
82 dwCompressTech:LONGWORD;
83 dwUncompressBytes:LONGWORD;
84 END;
85
86CONST
87 MMIO_MEDIATYPE_IMAGE =$00000001; /* Image media */
88 MMIO_MEDIATYPE_AUDIO =$00000002; /* Audio media */
89 MMIO_MEDIATYPE_MIDI =$00000004; /* MIDI media */
90 MMIO_MEDIATYPE_COMPOUND =$00000008; /* Cmpd media */
91 MMIO_MEDIATYPE_OTHER =$00000010; /* Other media */
92 MMIO_MEDIATYPE_UNKNOWN =$00000020; /* Unknown media */
93 MMIO_MEDIATYPE_DIGITALVIDEO=$00000040; /* Digital Video */
94 MMIO_MEDIATYPE_ANIMATION =$00000080; /* Future: Not Supported */
95 MMIO_MEDIATYPE_MOVIE =$00000100; /* Movie File */
96
97 MMIO_CANREADTRANSLATED = $00000001; /*IOProc Cpbilty Flgs*/
98 MMIO_CANWRITETRANSLATED = $00000002; /* " " " */
99 MMIO_CANREADWRITETRANSLATED = $00000004; /* " " " */
100 MMIO_CANREADUNTRANSLATED = $00000008; /* " " " */
101 MMIO_CANWRITEUNTRANSLATED = $00000010; /* " " " */
102 MMIO_CANREADWRITEUNTRANSLATED = $00000020; /* " " " */
103 MMIO_CANSEEKTRANSLATED = $00000040; /* " " " */
104 MMIO_CANSEEKUNTRANSLATED = $00000080; /* " " " */
105 MMIO_CANINSERTUNTRANSLATED = $00000100; /* " " " */
106 MMIO_CANSAVEUNTRANSLATED = $00000200; /* " " " */
107 MMIO_CANINSERTTRANSLATED = $00000400; /* " " " */
108 MMIO_CANSAVETRANSLATED = $00000800; /* " " " */
109 MMIO_CANMULTITRACKREADTRANSLATED = $00001000; /* " " " */
110 MMIO_CANMULTITRACKREADUNTRANSLATED= $00002000; /* " " " */
111 MMIO_CANMULTITRACKWRITETRANSLATED = $00004000; /* " " " */
112 MMIO_CANMULTITRACKWRITEUNTRANSLATED=$00008000; /* " " " */
113 MMIO_CANTRACKSEEKTRANSLATED = $00010000; /* " " " */
114 MMIO_CANTRACKSEEKUNTRANSLATED = $00020000; /* " " " */
115 MMIO_CANTRACKREADTRANSLATED = $00040000; /* " " " */
116 MMIO_CANTRACKREADUNTRANSLATED = $00080000; /* " " " */
117 MMIO_CANTRACKWRITETRANSLATED = $00100000; /* " " " */
118 MMIO_CANTRACKWRITEUNTRANSLATED = $00200000; /* " " " */
119
120 MMIO_IOPROC_STORAGESYSTEM = $00000001; /* IOProc Types */
121 MMIO_IOPROC_FILEFORMAT = $00000002;
122 MMIO_IOPROC_DATAFORMAT = $00000004;
123
124TYPE
125 PMMFORMATINFO=^MMFORMATINFO;
126 MMFORMATINFO=RECORD
127 dwStructLen:LONGWORD;
128 fccIOProc:FOURCC;
129 dwIOProcType:LONGWORD;
130 dwMediaType:LONGWORD;
131 dwFlags:LONGWORD;
132 achDefaultFormatExt:CSTRING[sizeof(FOURCC){+1}];
133 /* Default extension 4 + null */
134 dwCodePage:LONGWORD;
135 dwLanguage:LONGWORD;
136 lNameLength:LONG;
137 END;
138
139CONST
140 MMIO_IMAGE_UNKNOWN = $00000000; /* Unknown image content */
141 MMIO_IMAGE_DRAWING = $00000001; /* Simple drawing */
142 MMIO_IMAGE_GRAPH = $00000002; /* Graphs & Cartoons */
143 MMIO_IMAGE_PHOTO = $00000004; /* Varying Color & Shades */
144
145CONST
146 MAX_PALETTE =256;
147
148TYPE
149 XDIBHDR_PREFIX=RECORD
150 ulMemSize:LONGWORD;
151 ulPelFormat:LONGWORD;
152 usTransType:WORD;
153 ulTransVal:LONGWORD;
154 END;
155
156 PMMXDIBHEADER=^MMXDIBHEADER;
157 MMXDIBHEADER=RECORD
158 XDIBHeaderPrefix:XDIBHDR_PREFIX;
159 BMPInfoHeader2:BITMAPINFOHEADER2;
160 END;
161
162
163 PMMIMAGEHEADER=^MMIMAGEHEADER;
164 MMIMAGEHEADER=RECORD
165 dwHeaderLength:LONGWORD;
166 dwContentType:LONGWORD;
167 dwMediaType:LONGWORD;
168 mmXDIBHeader:MMXDIBHEADER;
169 bmiColors:ARRAY[0..MAX_PALETTE-1] OF RGB2;
170 END;
171
172(*
173#ifndef WORD
174typedef USHORT WORD;
175#endif
176
177#ifndef DWORD
178typedef ULONG DWORD;
179#endif
180
181typedef WORD VERSION;
182typedef FAR * LPSTR;
183typedef FAR * LPTR;
184typedef FAR * LPRECT;
185typedef HWND HANDLE;
186typedef WORD * PW;
187typedef WORD * PAW;
188typedef WORD * PWORD;
189typedef PFN FAR * PPFN;
190typedef DWORD (APIENTRY FNMCI) (LPTR, WORD, DWORD, DWORD, WORD);
191typedef FNMCI *PFNMCI;
192
193/* XLATON */
194
195#ifdef XXXXX
196typedef PVOID PFNMCI;
197typedef PVOID LPTR;
198#endif
199
200typedef char SZ; /* ASCIIZ char string type*/
201*)
202TYPE
203 PMMTIME=^MMTIME;
204 MMTIME=LONGWORD;
205
206(*
207typedef ULONG HMMIO; /* Handle to an MMIO object*/
208typedef HMMIO FAR *PHMMIO; /* Handle to an MMIO object*/
209
210
211/**********************************************
212 *
213 * SPCBKEY - Stream Protocol Key
214 *
215 **********************************************/
216typedef struct _SPCBKEY { /* spcbkey SPCB key (Stream data type) */
217 ULONG ulDataType;
218 ULONG ulDataSubType;
219 ULONG ulIntKey; /* generated internal key */
220 } SPCBKEY;
221typedef SPCBKEY FAR *PSPCBKEY;
222 _SPCBKEY_DEFINED 1
223*)
224
225TYPE
226 PMMTRACKINFO=^MMTRACKINFO;
227 MMTRACKINFO=RECORD
228 ulTrackID:LONGWORD;
229 ulMediaType:LONGWORD;
230 ulCountry:LONGWORD;
231 ulCodePage:LONGWORD;
232 ulReserved1:LONGWORD;
233 ulReserved2:LONGWORD;
234 END;
235
236(*
237/************************
238 * Clipboard formats
239 ************************/
240 CF_RMID 10
241 CF_RIFF 11
242 CF_WAVE 12
243 CF_AVI 13
244
245/************************
246 * Resource formats
247 ************************/
248 RT_RMID 100
249 RT_RIFF 101
250 RT_WAVE 102
251 RT_AVI 103
252 RT_AVS 104
253
254/************************
255 * Sampling Rate
256 ************************/
257 HZ_8000 8000 /* 8.0 kHz*/
258 HZ_11025 11025 /* 11.025 kHz*/
259 HZ_14700 14700 /* 14.700 kHz (SPV/2)*/
260 HZ_18900 18900 /* 18.900 kHz (CD/XA LVL C)*/
261 HZ_22050 22050 /* 22.050 kHz*/
262 HZ_37800 37800 /* 37.800 kHz (CD/XA LVL B)*/
263 HZ_44100 44100 /* 44.100 kHz*/
264
265/************************
266 * Bits per Sample
267 ************************/
268 BPS_4 4 /* 4 bits/sample (ADPCM)*/
269 BPS_8 8 /* 8 bits/sample (PCM)*/
270 BPS_16 16 /* 16 bits/sample(PCM)*/
271
272/************************
273 * Channels
274 ************************/
275 CH_1 1 /* Mono*/
276 CH_2 2 /* Stereo*/
277 CH_4 4 /* Quad*/
278
279/*************************************************************************
280 * Multimedia Datatypes (spcbkey values)
281 *************************************************************************/
282
283
284/****************
285 * NULL datatype
286 ****************/
287 DATATYPE_NULL $0000L /* NULL stream data type (NULL)*/
288 SUBTYPE_NONE $0000L /* No subtype for this data type*/
289
290
291/*********************
292 * WAVEFORM datatypes
293 *********************/
294 DATATYPE_WAVEFORM $0001L /* WAVEFORM audio (PCM)*/
295
296/* Subtypes for DATATYPE_WAVEFORM:*/
297 WAVE_FORMAT_1M08 $0001L /* 11.025kHz, Mono , 8-bit*/
298 WAVE_FORMAT_1S08 $0002L /* 11.025kHz, Stereo, 8-bit*/
299 WAVE_FORMAT_1M16 $0003L /* 11.025kHz, Mono , 16-bit*/
300 WAVE_FORMAT_1S16 $0004L /* 11.025kHz, Stereo, 16-bit*/
301 WAVE_FORMAT_2M08 $0005L /* 22.05kHz , Mono , 8-bit*/
302 WAVE_FORMAT_2S08 $0006L /* 22.05kHz , Stereo, 8-bit*/
303 WAVE_FORMAT_2M16 $0007L /* 22.05kHz , Mono , 16-bit*/
304 WAVE_FORMAT_2S16 $0008L /* 22.05kHz , Stereo, 16-bit*/
305 WAVE_FORMAT_4M08 $0009L /* 44.1kHz , Mono , 8-bit*/
306 WAVE_FORMAT_4S08 $000aL /* 44.1kHz , Stereo, 8-bit*/
307 WAVE_FORMAT_4M16 $000bL /* 44.1kHz , Mono , 16-bit*/
308 WAVE_FORMAT_4S16 $000cL /* 44.1kHz , Stereo, 16-bit*/
309 WAVE_FORMAT_8M08 $000dL /* 8.0kHz , Mono , 8-bit*/
310 WAVE_FORMAT_8S08 $000eL /* 8.0kHz , Stereo, 8-bit*/
311 WAVE_FORMAT_8M16 $000fL /* 8.0kHz , Mono , 16-bit*/
312 WAVE_FORMAT_8S16 $0010L /* 8.0kHz , Stereo, 16-bit*/
313
314
315/*********************
316 * DIGVIDEO datatypes
317 *********************/
318 DATATYPE_DIGVIDEO $0002L /* Digital Video */
319
320/* Subtypes for DATATYPE_DIGVIDEO:*/
321 DIGVIDEO_PHOTOM $544F4850L /* Photmotion video, FOURCC value for phio */
322 DIGVIDEO_ULTIM $49544c55L /* Ultimotion video, FOURCC value for ulio */
323 DIGVIDEO_AVI $20495641L /* AVI video, FOURCC value for avio */
324 DIGVIDEO_MONITOR $206E6F6DL /* MONITOR video, FOURCC value for monitoring */
325 DIGVIDEO_FLC $63696C66L /* FLIC video, FOURCC value for flic */
326 DIGVIDEO_MPEG $4745504DL /* MPEG video, FOURCC value for MPEG */
327
328
329/******************
330 * MuLaw datatypes
331 ******************/
332 DATATYPE_MULAW $0101L /* MuLaw*/
333 DATATYPE_RIFF_MULAW $0007L /* MuLaw*/
334
335/* Subtypes for DATATYPE_MULAW:*/
336 MULAW_8B8KS $0001L /* 8bit 8kHz stereo*/
337 MULAW_8B11KS $0002L /* 8bit 11kHz stereo*/
338 MULAW_8B22KS $0003L /* 8bit 22kHz stereo*/
339 MULAW_8B44KS $0004L /* 8bit 44kHz stereo*/
340 MULAW_8B8KM $0005L /* 8bit 8kHz mono*/
341 MULAW_8B11KM $0006L /* 8bit 11kHz mono*/
342 MULAW_8B22KM $0007L /* 8bit 22kHz mono*/
343 MULAW_8B44KM $0008L /* 8bit 44kHz mono*/
344
345/*****************
346 * ALaw datatypes
347 *****************/
348 DATATYPE_ALAW $0102L /* ALaw*/
349 DATATYPE_RIFF_ALAW $0006L /* ALaw*/
350
351/* Subtypes for DATATYPE_ALAW:*/
352 ALAW_8B8KS $0001L /* 8bit 8kHz stereo*/
353 ALAW_8B11KS $0002L /* 8bit 11kHz stereo*/
354 ALAW_8B22KS $0003L /* 8bit 22kHz stereo*/
355 ALAW_8B44KS $0004L /* 8bit 44kHz stereo*/
356 ALAW_8B8KM $0005L /* 8bit 8kHz mono*/
357 ALAW_8B11KM $0006L /* 8bit 11kHz mono*/
358 ALAW_8B22KM $0007L /* 8bit 22kHz mono*/
359 ALAW_8B44KM $0008L /* 8bit 44kHz mono*/
360
361
362/*******************************
363 * AVC ADPCM WAVEFORM datatypes
364 *******************************/
365 DATATYPE_ADPCM_AVC $0103L /* ADPCM audio*/
366
367/* Subtypes for DATATYPE_ADPCM_AVC:*/
368 ADPCM_AVC_VOICE $0001L
369 ADPCM_AVC_MUSIC $0002L
370 ADPCM_AVC_STEREO $0003L
371 ADPCM_AVC_HQ $0004L
372
373/******************
374 * CT_ADPCM datatypes
375 ******************/
376 DATATYPE_CT_ADPCM $0200L /* Creative technologies */
377
378/* Subtypes for DATATYPE_CT_ADPCM:*/
379 CT_ADPCM_16B8KS $0001L /* 16bit 8kHz stereo*/
380 CT_ADPCM_16B11KS $0002L /* 16bit 11kHz stereo*/
381 CT_ADPCM_16B22KS $0003L /* 16bit 22kHz stereo*/
382 CT_ADPCM_16B44KS $0004L /* 16bit 44kHz stereo*/
383 CT_ADPCM_16B8KM $0005L /* 16bit 8kHz mono*/
384 CT_ADPCM_16B11KM $0006L /* 16bit 11kHz mono*/
385 CT_ADPCM_16B22KM $0007L /* 16bit 22kHz mono*/
386 CT_ADPCM_16B44KM $0008L /* 16bit 44kHz mono*/
387
388/****************
389 * MIDI datatype
390 ****************/
391 DATATYPE_MIDI $0201L /* MIDI*/
392/* SUBTYPE_NONE $0000L No subtype for this data type*/
393
394
395/********************
396 * GENERIC datatypes
397 ********************/
398 DATATYPE_GENERIC $0202L /* Generic for files / memory. This*/
399 /* datatype will match any other*/
400 /* datatype at stream creation time.*/
401
402/**************************
403 * Speech Viewer datatypes
404 **************************/
405 DATATYPE_SPV2 $0203L /* Speech Viewer*/
406
407/* Subtypes for DATATYPE_SPV2:*/
408 SPV2_BPCM $0001L
409 SPV2_PCM $0002L
410 SPV2_NONE $0003L
411
412
413/******************
414 * CD-XA datatypes
415 ******************/
416 DATATYPE_CDXA_VIDEO $0204L /* CD-XA Video datatype*/
417 DATATYPE_CDXA_DATA $0205L /* CD-XA sub-band data datatype*/
418 DATATYPE_CDXA_AUDIO $0206L /* CD-XA ADPCM Audio datatype*/
419 DATATYPE_CDXA_AUDIO_HD $0207L /* CD-XA ADPCM Audio with Headers*/
420 DATATYPE_CDXA_HEADERS $0208L /* CD-XA Headers and Subheaders*/
421
422
423/* Subtypes for DATATYPE_CDXA_AUDIO:*/
424 CDXA_LEVELB $0000L /* LEVEL B Audio Stereo*/
425 CDXA_LEVELC $0001L /* LEVEL C Audio Stereo*/
426 CDXA_LEVELB_MONO $0002L /* LEVEL B Audio Mono*/
427 CDXA_LEVELC_MONO $0003L /* LEVEL C Audio Mono*/
428
429
430/*********************
431 * DIGISPEECH datatype
432 *********************/
433 DATATYPE_DIGISPEECH $0208L /* DIGISPEECH */
434 DIGISPEECH_NATIVE $0001L /* Native digispeech */
435
436
437/*********************
438 * MPEG-1 Audio datatypes
439 *********************/
440 DATATYPE_MPEG1AUDIO $0050L /* MPEG-1 Audio */
441
442/* Subtypes for DATATYPE_MPEG1AUDIO:*/
443 MPEG1_FORMAT_3M16 $0001L /* 32.000kHz, Mono , 16-bit*/
444 MPEG1_FORMAT_3S16 $0002L /* 32.000kHz, Stereo, 16-bit*/
445 MPEG1_FORMAT_4M16 $0003L /* 44.1/48kHz, Mono , 16-bit*/
446 MPEG1_FORMAT_4S16 $0004L /* 44.1/48kHz, Stereo, 16-bit*/
447
448/*******************
449 * UNKNOWN datatype
450 *******************/
451 DATATYPE_UNKNOWN $FFFFFFFFL /* Unknown datatype */
452/* SUBTYPE_NONE $0000L No subtype for this data type*/
453
454
455/* XLATOFF */
456#endif
457/* XLATON */
458
459
460typedef MMIMAGEHEADER *PMMIMAGEHEADER;
461
462#endif
463#endif
464
465 MMIO_AUDIO_UNKNOWN $00000000L /* Unknown image content */
466 MMIO_AUDIO_VOICE $00000001L /* Limited Range */
467 MMIO_AUDIO_MUSIC $00000002L /* FM Radio or equivalent */
468 MMIO_AUDIO_HIFI $00000004L /* High quality recording */
469
470typedef struct _WAVE_HEADER { /* waveheader */
471 USHORT usFormatTag; /* Type of wave format */
472 USHORT usChannels; /* Number of channels */
473 ULONG ulSamplesPerSec; /* Sampling rate */
474 ULONG ulAvgBytesPerSec; /* Avg bytes per sec */
475 USHORT usBlockAlign; /* Block Alignment in bytes */
476 USHORT usBitsPerSample; /* Bits per sample */
477 } WAVE_HEADER;
478
479typedef struct _XWAV_HEADERINFO { /* xwaveheader info */
480 ULONG ulAudioLengthInMS; /* Audio data in millisecs */
481 ULONG ulAudioLengthInBytes; /* Audio data in bytes */
482 PVOID pAdditionalInformation;
483 } XWAV_HEADERINFO;
484
485typedef struct _MMXWAV_HEADER { /* mmxwaveheader */
486 WAVE_HEADER WAVEHeader; /* Per RIFF WAVE Definition */
487 XWAV_HEADERINFO XWAVHeaderInfo; /* Extended wave definition */
488 } MMXWAV_HEADER;
489
490typedef struct _MMAUDIOHEADER { /* mmaudioheader */
491 DWORD dwHeaderLength; /* Length in Bytes */
492 DWORD dwContentType; /* Image content */
493 DWORD dwMediaType; /* Media Type */
494 MMXWAV_HEADER mmXWAVHeader; /* header */
495 } MMAUDIOHEADER;
496
497typedef MMAUDIOHEADER *PMMAUDIOHEADER;
498
499 MMIO_MIDI_UNKNOWN $00000000L /* Unknown midi content */
500 MMIO_MIDI_VOICE $00000001L /* Limited Range */
501 MMIO_MIDI_MUSIC $00000002L /* FM Radio or equivalent */
502 MMIO_MIDI_HIFI $00000004L /* High quality recording */
503*)
504
505CONST
506 DLLNAME_SIZE =CCHMAXPATH;
507 PROCNAME_SIZE =32;
508 MAX_EXTENSION_NAME =4;
509
510(*
511typedef struct _MMINIFILEINFO { /* mminifileinfo */
512 FOURCC fccIOProc; /* IOProc identifier */
513 CHAR szDLLName[DLLNAME_SIZE]; /* DLL name string */
514 CHAR szProcName[PROCNAME_SIZE]; /* Procedure name string */
515 DWORD dwFlags; /* Flags for Preload */
516 DWORD dwExtendLen; /* Length of ext fields */
517 DWORD dwMediaType; /* Media type */
518 DWORD dwIOProcType; /* Type of IOProc */
519 CHAR szDefExt[sizeof(MAX_EXTENSION_NAME)];
520 /* Default file extension */
521 } MMINIFILEINFO;
522
523typedef MMINIFILEINFO *PMMINIFILEINFO;
524
525/*
526 * CODEC Structures and type definitions for Rel. 1.1
527 */
528
529*)
530CONST
531 CODEC_INFO_SIZE =8;
532 CODEC_HW_NAME_SIZE =32;
533
534TYPE
535 PCODECPROC=^MMIOPROC;
536
537TYPE
538 PCODECINIFILEINFO=^CODECINIFILEINFO;
539 CODECINIFILEINFO=RECORD
540 ulStructLen:LONGWORD;
541 fcc:FOURCC;
542 szDLLName:CSTRING[DLLNAME_SIZE-1];
543 szProcName:CSTRING[PROCNAME_SIZE-1];
544 ulCompressType:LONGWORD;
545 ulCompressSubType:LONGWORD;
546 ulMediaType:LONGWORD;
547 ulCapsFlags:LONGWORD;
548 ulFlags:LONGWORD;
549 szHWID:CSTRING[CODEC_HW_NAME_SIZE-1];
550 ulMaxSrcBufLen:LONGWORD;
551 ulSyncMethod:LONGWORD;
552 fccPreferredFormat:LONGWORD;
553 ulXalignment:LONGWORD;
554 ulYalignment:LONGWORD;
555 ulSpecInfo:CSTRING[CODEC_INFO_SIZE-1];
556 END;
557
558CONST
559 CODEC_SYNC_METHOD_NO_DROP_FRAMES =0;
560 CODEC_SYNC_METHOD_DROP_FRAMES_IMMEDIATELY =1;
561 CODEC_SYNC_METHOD_DROP_FRAMES_PRECEDING_KEY =2;
562 CODEC_SYNC_METHOD_HARDWARE =3;
563
564
565 CODEC_COMPRESS =$00000001;
566 CODEC_DECOMPRESS =$00000002;
567 CODEC_WINDOW_CLIPPING =$00000004;
568 CODEC_PALETTE_TRANS =$00000008;
569 CODEC_SELFHEAL =$00000010;
570 CODEC_SCALE_PEL_DOUBLE =$00000020;
571 CODEC_SCALE_PEL_HALVED =$00000040;
572 CODEC_SCALE_CONTINUOUS =$00000080;
573 CODEC_MULAPERTURE =$00000100;
574 CODEC_4_BIT_COLOR =$00000200;
575 CODEC_8_BIT_COLOR =$00000400;
576 CODEC_16_BIT_COLOR =$00000800;
577 CODEC_24_BIT_COLOR =$00001000;
578 CODEC_HARDWARE =$00002000;
579 CODEC_SYMMETRIC =$00004000;
580 CODEC_ASYMMETRIC =$00008000;
581 CODEC_DIRECT_DISPLAY =$00010000;
582 CODEC_DEFAULT =$00020000;
583 CODEC_ORIGIN_LOWERLEFT =$00040000;
584 CODEC_ORIGIN_UPPERLEFT =$00080000;
585 CODEC_SET_QUALITY =$00100000;
586 CODEC_DATA_CONSTRAINT =$00200000;
587 CODEC_HW_OVERLAY =$00400000;
588 CODEC_MULTI_BUFFER =$00800000;
589 CODEC_DITHER_OUTPUT =$01000000;
590 CODEC_COMP_REALTIME =$00020000;
591 CODEC_DECOMP_REALTIME =$00040000;
592
593 MMIO_SET_EXTENDEDINFO =$0001;
594 MMIO_QUERY_EXTENDEDINFO_BASE =$0002;
595 MMIO_QUERY_EXTENDEDINFO_ALL =$0004;
596
597TYPE
598 PCODECASSOC=^CODECASSOC;
599 CODECASSOC=RECORD
600 pCodecOpen:POINTER;
601 pCodecIniFileInfo:PCODECINIFILEINFO;
602 END;
603
604 PMMEXTENDINFO=^MMEXTENDINFO;
605 MMEXTENDINFO=RECORD
606 ulStructLen:LONGWORD;
607 ulBufSize:LONGWORD;
608 ulFlags:LONGWORD;
609 ulTrackID:LONGWORD;
610 ulNumCODECs:LONGWORD;
611 pCODECAssoc:PCODECASSOC;
612 END;
613
614CONST
615 MMIO_TRACK =$00000001;
616 MMIO_NORMAL_READ =$00000002;
617 MMIO_SCAN_READ =$00000004;
618 MMIO_REVERSE_READ =$00000008;
619 MMIO_CODEC_ASSOC =$00000100;
620
621(*
622/* Audio Related defines */
623
624 MMIO_REALTIME_CODEC $00000200
625*)
626CONST
627 MMIO_RESETTRACKS =-1;
628(*
629 CODEC_START $0EC0
630 CODEC_END $0EFF
631
632 MMIOM_CODEC_CLOSE CODEC_START + 1
633 MMIOM_CODEC_OPEN CODEC_START + 2
634 MMIOM_CODEC_QUERYNAME CODEC_START + 3
635 MMIOM_CODEC_QUERYNAMELENGTH CODEC_START + 4
636 MMIOM_CODEC_COMPRESS CODEC_START + 5
637 MMIOM_CODEC_DECOMPRESS CODEC_START + 6
638
639
640#endif
641/* End CODEC include */
642
643*)
644CONST
645 MMIO_CREATE =$00000001; /* Open */
646 MMIO_CTOCFIRST =$00000002; /* Open */
647 MMIO_READ =$00000004; /* Open */
648 MMIO_WRITE =$00000008; /* Open */
649 MMIO_READWRITE =$00000010; /* Open */
650 MMIO_COMPAT =$00000020; /* Open */
651 MMIO_EXCLUSIVE =$00000040; /* Open */
652 MMIO_DENYWRITE =$00000080; /* Open */
653 MMIO_DENYREAD =$00000100; /* Open */
654 MMIO_DENYNONE =$00000200; /* Open */
655 MMIO_ALLOCBUF =$00000400; /* Open */
656 MMIO_DELETE =$00000800; /* Open */
657
658 MMIO_USE_TEMP =$00001000; /* Open/Close/Save */
659
660 MMIO_INSERTON =$00000001; /* Insert */
661 MMIO_INSERTOFF =$00000002; /* Insert */
662
663 MMIO_RWMODE =$00001000; /* Open */
664 MMIO_SHAREMODE =$00002000; /* Open */
665
666 MMIO_DIRTY =$00004000; /* Write */
667
668 MMIO_VERTBAR =$00008000; /* Open */
669 MMIO_BUFSHARED =$00010000; /* Open */
670 MMIO_APPEND =$00020000; /* Open */
671 MMIO_NOIDENTIFY =$00040000; /* Open */
672
673
674 MMIO_FINDFIRST =$00000001; /* CF Find Entry */
675 MMIO_FINDNEXT =$00000002; /* CF Find Entry */
676 MMIO_FINDUNUSED =$00000004; /* CF Find Entry */
677 MMIO_FINDDELETED =$00000008; /* CF Find Entry */
678
679 MMIO_CHANGEDELETED =$0001; /* CF Change Entry */
680
681 MMIO_CF_FQNAME =$0001; /* CF Compact */
682
683 MMIO_FHOPEN =$0001; /* Close */
684
685 MMIO_EMPTYBUF =$0001; /* Flush */
686
687 MMIO_CREATERIFF =$0001; /* CreateChunk */
688 MMIO_CREATELIST =$0002; /* CreateChunk */
689 MMIO_FINDCHUNK =$0004; /* Descend */
690 MMIO_FINDRIFF =$0008; /* Descend */
691 MMIO_FINDLIST =$0010; /* Descend */
692
693 CTOC_HF_SEQUENTIAL =$00000001; /* CTOC dwHeaderFlags */
694 CTOC_HF_MEDSUBTYPE =$00000002; /* CTOC dwHeaderFlags */
695
696 CTOC_EFU_UNUSED =$00000000; /* CTOC extra usage code */
697 CTOC_EFU_LASTMODTIME =$00000001; /* CTOC extra usage code */
698 CTOC_EFU_CODEPAGE =$00000002; /* CTOC extra usage code */
699 CTOC_EFU_LANGUAGE =$00000003; /* CTOC extra usage code */
700 CTOC_EFU_COMPRESSPARAM0 =$00000005; /* CTOC extra usage code */
701 CTOC_EFU_COMPRESSPARAM1 =$00000006; /* CTOC extra usage code */
702 CTOC_EFU_COMPRESSPARAM2 =$00000007; /* CTOC extra usage code */
703 CTOC_EFU_COMPRESSPARAM3 =$00000008; /* CTOC extra usage code */
704 CTOC_EFU_COMPRESSPARAM4 =$00000009; /* CTOC extra usage code */
705 CTOC_EFU_COMPRESSPARAM5 =$0000000A; /* CTOC extra usage code */
706 CTOC_EFU_COMPRESSPARAM6 =$0000000B; /* CTOC extra usage code */
707 CTOC_EFU_COMPRESSPARAM7 =$0000000C; /* CTOC extra usage code */
708 CTOC_EFU_COMPRESSPARAM8 =$0000000D; /* CTOC extra usage code */
709 CTOC_EFU_COMPRESSPARAM9 =$0000000E; /* CTOC extra usage code */
710 CTOC_CHARSET_STANDARD =$00000000; /* CTOC charset value */
711
712 MMIO_INSTALLPROC =$00000001; /* Install IO Proc */
713 MMIO_REMOVEPROC =$00000002; /* Install IO Proc */
714 MMIO_FINDPROC =$00000004; /* Install IO Proc */
715
716 MMIO_MATCHFIRST =$00000010; /* Ini File Handler */
717 MMIO_MATCHNEXT =$00000020; /* Ini File Handler */
718 MMIO_MATCHFOURCC =$00000040; /* Ini File Handler */
719 MMIO_MATCHDLL =$00000080; /* Ini File Handler */
720 MMIO_MATCHPROCEDURENAME =$00000100; /* Ini File Handler */
721 MMIO_FULLPATH =$00000200; /* Ini File Handler */
722 MMIO_NOVERIFY =$00000400; /* Ini File Handler */
723 MMIO_MATCHCOMPRESSTYPE =$00000800; /* Ini File Handler */
724 MMIO_EXTENDED_STRUCT =$00001000; /* Ini File ulFlags */
725 MMIO_MATCHCOMPRESSSUBTYPE= $00002000; /* Ini File Handler */
726 MMIO_MATCHHWID =$00004000; /* Ini File Handler */
727 MMIO_MATCHCAPSFLAGS =$00008000; /* Ini File Handler */
728 MMIO_SKIPMATCH =$00010000; /* Ini/Load Handler */
729
730 MMIO_TOUPPER =$0001; /* StringToFourcc */
731
732 MMIO_CF_ENTRY_EXISTS =$00000001; /* Add CGRP element */
733
734 MMIO_FORCE_IDENTIFY_SS =$00000001; /* Identify */
735 MMIO_FORCE_IDENTIFY_FF =$00000002; /* Identify */
736
737 MMIO_NOTRANSLATE =$00000000; /* Translation */
738 MMIO_TRANSLATEDATA =$00000001; /* Translation */
739 MMIO_TRANSLATEHEADER =$00000002; /* Translation */
740 MMIO_DECOMPRESS =$00000004; /* CODEC Decompress */
741
742 MMIO_DEFAULTBUFFER = 8192; /* two pages under OS/2 2.0 */
743
744 MMIO_SEEK_IFRAME =$00010000; /* Seek to nearest previous IFRAME */
745
746(*
747
748/*
749 * Messages :
750 */
751
752 MMIOM_START $0E00
753 MMIOM_END $0EFF
754
755 MMIOM_GETCF MMIOM_START + 1
756 MMIOM_GETCFENTRY MMIOM_START + 2
757
758 MMIOM_CLOSE MMIOM_START + 3
759 MMIOM_OPEN MMIOM_START + 4
760 MMIOM_READ MMIOM_START + 5
761 MMIOM_SEEK MMIOM_START + 6
762 MMIOM_WRITE MMIOM_START + 7
763
764 MMIOM_IDENTIFYFILE MMIOM_START + 8
765 MMIOM_GETHEADER MMIOM_START + 9
766 MMIOM_SETHEADER MMIOM_START + 10
767 MMIOM_QUERYHEADERLENGTH MMIOM_START + 11
768 MMIOM_GETFORMATNAME MMIOM_START + 12
769 MMIOM_GETFORMATINFO MMIOM_START + 13
770 MMIOM_SEEKBYTIME MMIOM_START + 14
771 MMIOM_TEMPCHANGE MMIOM_START + 15
772 MMIOM_BEGININSERT MMIOM_START + 16
773 MMIOM_ENDINSERT MMIOM_START + 17
774 MMIOM_SAVE MMIOM_START + 18
775 MMIOM_SET MMIOM_START + 19
776 MMIOM_COMPRESS MMIOM_START + 20
777 MMIOM_DECOMPRESS MMIOM_START + 21
778 MMIOM_MULTITRACKREAD MMIOM_START + 22
779 MMIOM_MULTITRACKWRITE MMIOM_START + 23
780 MMIOM_DELETE MMIOM_START + 24
781 MMIOM_BEGINGROUP MMIOM_START + 25
782 MMIOM_ENDGROUP MMIOM_START + 26
783 MMIOM_UNDO MMIOM_START + 27
784 MMIOM_REDO MMIOM_START + 28
785 MMIOM_BEGINSTREAM MMIOM_START + 29
786 MMIOM_ENDSTREAM MMIOM_START + 30
787
788
789 MMIOM_CUT MMIOM_START + 31
790 MMIOM_COPY MMIOM_START + 32
791 MMIOM_PASTE MMIOM_START + 33
792 MMIOM_CLEAR MMIOM_START + 34
793 MMIOM_STATUS MMIOM_START + 35
794 MMIOM_WINMSG MMIOM_START + 36
795 MMIOM_BEGINRECORD MMIOM_START + 37
796 MMIOM_ENDRECORD MMIOM_START + 38
797
798/* These 3 new messages were added with feature 11710 */
799
800 MMIOM_QUERYIMAGE MMIOM_START + 39
801 MMIOM_QUERYIMAGECOUNT MMIOM_START + 40
802 MMIOM_SETIMAGE MMIOM_START + 41
803
804 MMIOM_USER $0F00
805 MMIOM_USER_END $0FFF
806
807
808/* Parameter structure for MMIOM_STATUS */
809
810typedef struct _MMIO_STATUS_PARMS { /* mmio_status_parms */
811 HWND hwndWindow; /* Some items require a window handle */
812 ULONG ulReturn; /* Return field */
813 ULONG ulItem; /* Use MCI_STATUS_... flags here */
814 ULONG ulValue; /* Status value field */
815 ULONG ulType; /* MCI_FORMAT_... of ulReturn */
816} MMIO_STATUS_PARMS;
817
818typedef MMIO_STATUS_PARMS *PMMIO_STATUS_PARMS;
819
820/* Parameter structure for MMIOM_COPY, MMIOM_CUT, MMIOM_CLEAR and MMIOM_PASTE */
821
822typedef LONG USEC; /* microsecond time format */
823
824typedef struct _MMIO_EDIT_PARMS { /* mmio_medit_parms */
825 ULONG ulStrucLen; /* length of this structure */
826 HWND hwndWindow; /* window handle */
827 USEC ulStartTime; /* starting time in usec */
828 USEC ulDuration; /* duration in usec */
829 ULONG ulCurrentFilePosition; /* current file position in usec */
830 ULONG ulNewFilePosition; /* returned by IO proc in usec, MCD will issue a seek */
831 ULONG ulNewFileLength; /* return by IO proc in usec, MCD updates its headers */
832 PVOID pBuffer; /* optional buffer */
833 ULONG ulBufferLength; /* optional buffer's length */
834 PVOID pHeader; /* optional pointer to header for buffer */
835} MMIO_EDIT_PARMS;
836
837typedef MMIO_EDIT_PARMS *PMMIO_EDIT_PARMS;
838
839/* Parameter structure for MMIOM_WINMSG */
840
841typedef struct _MMIO_WINMSG { /* this comment needed by h2inc */
842 HWND hwndWindow; /* these are the parameters */
843 USHORT usMessage; /* ... passed to the */
844 PVOID pParam1; /* ... window procedure */
845 PVOID pParam2; /* ... by PM */
846} MMIO_WINMSG;
847
848typedef MMIO_WINMSG *PMMIO_WINMSG;
849
850
851
852
853/*
854 * Include error codes for MMIO only.
855 */
856
857#ifndef _MEERROR_H_
858 INCL_MMIO_ERRORS
859#include <meerror.h>
860#endif
861*)
862CONST
863 MMIO_SUCCESS = 0;
864 MMIO_WARNING = 2;
865 MMIO_ERROR =-1;
866 MMIOERR_UNSUPPORTED_MESSAGE =-2;
867
868 MMIO_CF_SUCCESS = 0;
869 MMIO_CF_FAILURE = 1;
870(*
871 mmioFOURCC( ch0, ch1, ch2, ch3 ) \
872 ( (DWORD)(BYTE)(ch0) | ( (DWORD)(BYTE)(ch1) << 8 ) | \
873 ( (DWORD)(BYTE)(ch2) << 16 ) | ( (DWORD)(BYTE)(ch3) << 24 ) )
874
875 FOURCC_RIFF mmioFOURCC( 'R', 'I', 'F', 'F' )
876 FOURCC_LIST mmioFOURCC( 'L', 'I', 'S', 'T' )
877 FOURCC_MEM mmioFOURCC( 'M', 'E', 'M', ' ' )
878 FOURCC_DOS mmioFOURCC( 'D', 'O', 'S', ' ' )
879 FOURCC_BND mmioFOURCC( 'B', 'N', 'D', ' ' )
880 FOURCC_FREE mmioFOURCC( 'F', 'R', 'E', 'E' )
881 FOURCC_DEL mmioFOURCC( 'D', 'E', 'L', ' ' )
882 FOURCC_CTOC mmioFOURCC( 'C', 'T', 'O', 'C' )
883 FOURCC_CGRP mmioFOURCC( 'C', 'G', 'R', 'P' )
884 FOURCC_CF mmioFOURCC( 'C', 'F', ' ', ' ' )
885
886 MMIO_NLS_CHARSET_INFO 8000 /* RCDATA Name ID for NLS */
887 MMIO_IOPROC_NAME_TABLE 8500 /* RCDATA Name ID for string table */
888 MMIO_CODEC_NAME_TABLE 9000 /* RCDATA Name ID for Codec table */
889
890/*
891 * Numeric equivalents of fourcc's. These are needed for the resource
892 * compiler.
893 */
894
895 HEX_FOURCC_DOS $20534f44L
896 HEX_FOURCC_MEM $204d454dL
897 HEX_FOURCC_BND $20444e42L
898 HEX_FOURCC_CF $20204643L
899
900/*
901 * Country codes (CC), languages (LC), and dialects (DC).
902 */
903
904 MMIO_DEFAULT_CODE_PAGE 437
905
906 MMIO_CC_NONE 000
907 MMIO_CC_USA 001
908 MMIO_CC_CANADA 002
909 MMIO_CC_LATIN_AMERICA 003
910 MMIO_CC_GREECE 030
911 MMIO_CC_NETHERLANDS 031
912 MMIO_CC_BELGIUM 032
913 MMIO_CC_FRANCE 033
914 MMIO_CC_SPAIN 034
915 MMIO_CC_ITALY 039
916 MMIO_CC_SWITZERLAND 041
917 MMIO_CC_AUSTRIA 043
918 MMIO_CC_UNITED_KINGDOM 044
919 MMIO_CC_DENMARK 045
920 MMIO_CC_SWEDEN 046
921 MMIO_CC_NORWAY 047
922 MMIO_CC_WEST_GERMANY 049
923 MMIO_CC_MEXICO 052
924 MMIO_CC_BRAZIL 055
925 MMIO_CC_AUSTRALIA 061
926 MMIO_CC_NEW_ZEALAND 064
927 MMIO_CC_JAPAN 081
928 MMIO_CC_KOREA 082
929 MMIO_CC_CHINA 086
930 MMIO_CC_TAIWAN 088
931 MMIO_CC_TURKEY 090
932 MMIO_CC_PORTUGAL 351
933 MMIO_CC_LUXEMBOURG 352
934 MMIO_CC_ICELAND 354
935 MMIO_CC_FINLAND 358
936
937 MMIO_LC_NONE 0
938 MMIO_DC_NONE 0
939 MMIO_LC_ARABIC 1
940 MMIO_DC_ARABIC 1
941 MMIO_LC_BULGARIAN 2
942 MMIO_DC_BULGARIAN 1
943 MMIO_LC_CATALAN 3
944 MMIO_DC_CATALAN 1
945 MMIO_LC_TRADITIONAL_CHINESE 4
946 MMIO_DC_TRADITIONAL_CHINESE 1
947 MMIO_LC_SIMPLE_CHINESE 4
948 MMIO_DC_SIMPLE_CHINESE 2
949 MMIO_LC_CZECH 5
950 MMIO_DC_CZECH 1
951 MMIO_LC_DANISH 6
952 MMIO_DC_DANISH 1
953 MMIO_LC_GERMAN 7
954 MMIO_DC_GERMAN 1
955 MMIO_LC_SWISS_GERMAN 7
956 MMIO_DC_SWISS_GERMAN 2
957 MMIO_LC_GREEK 8
958 MMIO_DC_GREEK 1
959 MMIO_LC_US_ENGLISH 9
960 MMIO_DC_US_ENGLISH 1
961 MMIO_LC_UK_ENGLISH 9
962 MMIO_DC_UK_ENGLISH 2
963 MMIO_LC_SPANISH 10
964 MMIO_DC_SPANISH 1
965 MMIO_LC_SPANISH_MEXICAN 10
966 MMIO_DC_SPANISH_MEXICAN 2
967 MMIO_LC_FINNISH 11
968 MMIO_DC_FINNISH 1
969 MMIO_LC_FRENCH 12
970 MMIO_DC_FRENCH 1
971 MMIO_LC_BELGIAN_FRENCH 12
972 MMIO_DC_BELGIAN_FRENCH 2
973 MMIO_LC_CANADIAN_FRENCH 12
974 MMIO_DC_CANADIAN_FRENCH 3
975 MMIO_LC_SWISS_FRENCH 12
976 MMIO_DC_SWISS_FRENCH 4
977 MMIO_LC_HEBREW 13
978 MMIO_DC_HEBREW 1
979 MMIO_LC_HUNGARIAN 14
980 MMIO_DC_HUNGARIAN 1
981 MMIO_LC_ICELANDIC 15
982 MMIO_DC_ICELANDIC 1
983 MMIO_LC_ITALIAN 16
984 MMIO_DC_ITALIAN 1
985 MMIO_LC_SWISS_ITALIAN 16
986 MMIO_DC_SWISS_ITALIAN 2
987 MMIO_LC_JAPANESE 17
988 MMIO_DC_JAPANESE 1
989 MMIO_LC_KOREAN 18
990 MMIO_DC_KOREAN 1
991 MMIO_LC_DUTCH 19
992 MMIO_DC_DUTCH 1
993 MMIO_LC_BELGIAN_DUTCH 19
994 MMIO_DC_BELGIAN_DUTCH 2
995 MMIO_LC_NORWEGIAN_BOKMAL 20
996 MMIO_DC_NORWEGIAN_BOKMAL 1
997 MMIO_LC_NORWEGIAN_NYNORSK 20
998 MMIO_DC_NORWEGIAN_NYNORSK 2
999 MMIO_LC_POLISH 21
1000 MMIO_DC_POLISH 1
1001 MMIO_LC_BRAZILIAN_PORTUGUESE 22
1002 MMIO_DC_BRAZILIAN_PORTUGUESE 1
1003 MMIO_LC_PORTUGUESE 22
1004 MMIO_DC_PORTUGUESE 2
1005 MMIO_LC_RHAETO_ROMANIC 23
1006 MMIO_DC_RHAETO_ROMANIC 1
1007 MMIO_LC_ROMANIAN 24
1008 MMIO_DC_ROMANIAN 1
1009 MMIO_LC_RUSSIAN 25
1010 MMIO_DC_RUSSIAN 1
1011 MMIO_LC_SERBO_CROATIAN_LATIN 26
1012 MMIO_DC_SERBO_CROATIAN_LATIN 1
1013 MMIO_LC_SERBO_CROATIAN_CYRILLIC 26
1014 MMIO_DC_SERBO_CROATIAN_CYRILLIC 2
1015 MMIO_LC_SLOVAK 27
1016 MMIO_DC_SLOVAK 1
1017 MMIO_LC_ALBANIAN 28
1018 MMIO_DC_ALBANIAN 1
1019 MMIO_LC_SWEDISH 29
1020 MMIO_DC_SWEDISH 1
1021 MMIO_LC_THAI 30
1022 MMIO_DC_THAI 1
1023 MMIO_LC_TURKISH 31
1024 MMIO_DC_TURKISH 1
1025 MMIO_LC_URDU 32
1026 MMIO_DC_URDU 1
1027 MMIO_LC_BAHASA 33
1028 MMIO_DC_BAHASA 1
1029
1030/*
1031 * Base function prototypes:
1032 */
1033
1034WORD APIENTRY mmioAdvance( HMMIO hmmio,
1035 PMMIOINFO pmmioinfo,
1036 WORD wFlags );
1037
1038WORD APIENTRY mmioAscend( HMMIO hmmio,
1039 PMMCKINFO pckinfo,
1040 WORD wFlags );
1041
1042
1043WORD APIENTRY mmioCreateChunk( HMMIO hmmio,
1044 PMMCKINFO pckinfo,
1045 WORD wFlags );
1046
1047WORD APIENTRY mmioDescend( HMMIO hmmio,
1048 PMMCKINFO pckinfo,
1049 PMMCKINFO pckinfoParent,
1050 WORD wFlags );
1051
1052WORD APIENTRY mmioFlush( HMMIO hmmio,
1053 WORD wFlags );
1054
1055WORD APIENTRY mmioGetInfo( HMMIO hmmio,
1056 PMMIOINFO pmmioinfo,
1057 WORD wFlags );
1058
1059DWORD APIENTRY mmioGetLastError( HMMIO hmmio );
1060
1061PMMIOPROC APIENTRY mmioInstallIOProc( FOURCC fccIOProc,
1062 PMMIOPROC pIOProc,
1063 DWORD dwflags );
1064
1065LONG APIENTRY mmioIOProc( PMMIOINFO pmmioinfo,
1066 WORD wMsg,
1067 LONG lParam1,
1068 LONG lParam2 );
1069
1070
1071LONG APIENTRY mmioRead( HMMIO hmmio,
1072 PCHAR pchBuffer,
1073 LONG cBytes );
1074
1075LONG APIENTRY mmioSeek( HMMIO hmmio,
1076 LONG lOffset,
1077 LONG lOrigin );
1078
1079LONG APIENTRY mmioSendMessage( HMMIO hmmio,
1080 WORD wMsg,
1081 LONG lParam1,
1082 LONG lParam2 );
1083
1084WORD APIENTRY mmioSetBuffer( HMMIO hmmio,
1085 PCHAR pchBuffer,
1086 LONG cBytes,
1087 WORD wFlags );
1088
1089WORD APIENTRY mmioSetInfo( HMMIO hmmio,
1090 PMMIOINFO pmmioinfo,
1091 WORD wFlags );
1092
1093FOURCC APIENTRY mmioStringToFOURCC( PSZ pszString,
1094 WORD wFlags );
1095
1096LONG APIENTRY mmioWrite( HMMIO hmmio,
1097 PCHAR pchBuffer,
1098 LONG cBytes );
1099
1100/*
1101 * Compound File function prototypes:
1102 */
1103
1104HMMCF APIENTRY mmioCFOpen( PSZ pszFileName,
1105 PMMCFINFO pmmcfinfo,
1106 PMMIOINFO pmmioinfo,
1107 DWORD dwFlags );
1108
1109DWORD APIENTRY mmioCFClose( HMMCF hmmcf,
1110 DWORD dwFlags );
1111
1112DWORD APIENTRY mmioCFGetInfo( HMMCF hmmcf,
1113 PMMCFINFO pmmcfinfo,
1114 DWORD cBytes );
1115
1116DWORD APIENTRY mmioCFSetInfo( HMMCF hmmcf,
1117 PMMCFINFO pmmcfinfo,
1118 DWORD cBytes );
1119
1120DWORD APIENTRY mmioCFFindEntry( HMMCF hmmcf,
1121 PMMCTOCENTRY pmmctocentry,
1122 DWORD dwFlags );
1123
1124DWORD APIENTRY mmioCFAddEntry( HMMCF hmmcf,
1125 PMMCTOCENTRY pmmctocentry,
1126 DWORD dwFlags );
1127
1128DWORD APIENTRY mmioCFChangeEntry( HMMCF hmmcf,
1129 PMMCTOCENTRY pmmctocentry,
1130 DWORD dwFlags );
1131
1132DWORD APIENTRY mmioCFDeleteEntry( HMMCF hmmcf,
1133 PMMCTOCENTRY pmmctocentry,
1134 DWORD dwFlags );
1135
1136DWORD APIENTRY mmioCFAddElement( HMMCF hmmcf,
1137 PSZ pszElementName,
1138 FOURCC fccType,
1139 PCHAR pchBuffer,
1140 LONG cchBytes,
1141 DWORD dwFlags );
1142
1143DWORD APIENTRY mmioCFCopy( HMMCF hmmcfSource,
1144 PSZ pszDestFileName,
1145 DWORD dwFlags );
1146
1147/*
1148 * Conversion Utility function prototypes:
1149 */
1150
1151DWORD APIENTRY mmioQueryFormatCount( PMMFORMATINFO pmmformatinfo,
1152 PLONG plNumFormats,
1153 DWORD dwReserved,
1154 DWORD dwFlags );
1155
1156DWORD APIENTRY mmioGetFormats( PMMFORMATINFO pmmformatinfo,
1157 LONG lNumFormats,
1158 PVOID pFormatInfoList,
1159 PLONG plFormatsRead,
1160 DWORD dwReserved,
1161 DWORD dwFlags );
1162
1163DWORD APIENTRY mmioGetFormatName( PMMFORMATINFO pmmformatinfo,
1164 PSZ pszFormatName,
1165 PLONG plBytesRead,
1166 DWORD dwReserved,
1167 DWORD dwFlags );
1168
1169DWORD APIENTRY mmioIdentifyFile( PSZ pszFileName,
1170 PMMIOINFO pmmioinfo,
1171 PMMFORMATINFO pmmformatinfo,
1172 PFOURCC pfccStorageSystem,
1173 DWORD dwReserved,
1174 DWORD dwFlags );
1175
1176
1177
1178DWORD APIENTRY mmioSetHeader( HMMIO hmmio,
1179 PVOID pHeader,
1180 LONG lHeaderLength,
1181 PLONG plBytesWritten,
1182 DWORD dwReserved,
1183 DWORD dwFlags );
1184
1185DWORD APIENTRY mmioIniFileHandler( PMMINIFILEINFO pmminifileinfo,
1186 DWORD dwFlags );
1187
1188DWORD APIENTRY mmioIdentifyStorageSystem( PSZ pszFileName,
1189 PMMIOINFO pmmioinfo,
1190 PFOURCC pfccStorageSystem );
1191
1192DWORD APIENTRY mmioDetermineSSIOProc( PSZ pszFileName,
1193 PMMIOINFO pmmioinfo,
1194 PFOURCC pfccStorageSystem,
1195 PSZ pszParsedRemainder );
1196
1197DWORD APIENTRY mmioQueryIOProcModuleHandle( PMMIOPROC pIOProc,
1198 PHMODULE phmodIOProc );
1199
1200ULONG APIENTRY mmioCFCompact( PSZ pszFileName, ULONG ulFlags );
1201
1202
1203/*
1204 * MMPMMMIO.INI file migration utility
1205 */
1206
1207ULONG APIENTRY mmioMigrateIniFile( ULONG ulFlags );
1208
1209/*
1210 * MMIO CODEC APIs
1211 */
1212
1213#ifdef INCL_MMIO_CODEC
1214
1215ULONG APIENTRY mmioIniFileCODEC( PCODECINIFILEINFO pCODECIniFileInfo,
1216 ULONG ulFlags );
1217
1218ULONG APIENTRY mmioQueryCODECName( PCODECINIFILEINFO pCODECIniFileinfo,
1219 PSZ pszCODECName,
1220 PULONG pulBytesRead );
1221
1222ULONG APIENTRY mmioQueryCODECNameLength( PCODECINIFILEINFO pCODECIniFileinfo,
1223 PULONG pulNameLength );
1224
1225
1226PCODECPROC APIENTRY mmioLoadCODECProc( PCODECINIFILEINFO pCODECIniFileInfo,
1227 PHMODULE phMod, ULONG ulFlags );
1228
1229USHORT APIENTRY mmioGetData( HMMIO hmmio,
1230 PMMIOINFO pmmioinfo,
1231 USHORT usFlags );
1232
1233#endif
1234
1235#pragma pack()
1236
1237#endif /* _MMIO_H_ */
1238
1239
1240/******************
1241 * Defines:
1242 ******************/
1243
1244/* Ultimotion CODEC type for CODECINIFILEINFO ulCompressType */
1245 FOURCC_ULTI mmioFOURCC('U', 'L', 'T', 'I')
1246 HEX_FOURCC_ULTI $49544C55L /* ITLU */
1247
1248/* Indeo CODEC type for CODECINIFILEINFO ulCompressType */
1249 FOURCC_RT21 mmioFOURCC('R', 'T', '2', '1')
1250 HEX_FOURCC_RT21 $31325452L /* 12TR */
1251
1252/* Mondo CODEC type for CODECINIFILEINFO ulCompressType */
1253 FOURCC_DIB mmioFOURCC('D', 'I', 'B', ' ')
1254 HEX_FOURCC_DIB $20424944L /* BID */
1255
1256*)
1257
1258TYPE
1259 PGENPAL=^GENPAL;
1260 GENPAL=RECORD
1261 ulStartIndex:ULONG;
1262 ulNumColors:ULONG;
1263 prgb2Entries:PRGB2;
1264 END;
1265
1266(*
1267/**********************************************
1268 *
1269 * CODECVIDEOHEADER - CODEC video Header
1270 *
1271 **********************************************/
1272typedef struct _CODECVIDEOHEADER { /* codecvidhdr */
1273 ULONG ulStructLen;
1274 ULONG cx;
1275 ULONG cy;
1276 USHORT cPlanes;
1277 USHORT cBitCount;
1278 ULONG ulColorEncoding;
1279 GENPAL genpal;
1280} CODECVIDEOHEADER;
1281typedef CODECVIDEOHEADER *PCODECVIDEOHEADER;
1282
1283/* ulColorEncoding defines: */
1284 MMIO_RGB_5_6_5 $0001L /* Each pixel is a RGB_5_6_5 datatype */
1285 MMIO_RGB_24 $0002L /* Each pixel is a RGB_24 datatype */
1286 MMIO_YUV_4_1_1 $0004L /* Each pixel is a YUV_4_1_1 datatype */
1287 MMIO_COMPRESSED $0008L /* The data is compressed */
1288 MMIO_YUV_24 $0010L /* Each pixel is a YUV_24 datatype */
1289 MMIO_PALETTIZED $0020L /* The data is palettized */
1290 MMIO_OS2_BITMAP24 $0020L /* The data is palettized */
1291
1292
1293/**********************************************
1294 *
1295 * MMVIDEOOPEN - Video Open Structure
1296 *
1297 * This structure is passed on the CODEC open
1298 * message when video compression is being done
1299 * to indicate information such as quality,
1300 * frame rate, data rate, and key frame rate.
1301 *
1302 * Quality:
1303 *
1304 * The ulQuality field specifies a scalar value
1305 * in the range 0 - 10000, where 0 is the lowest
1306 * quality and 10000 is the highest quality. A
1307 * value of -1 specifies the default quality level,
1308 * and the default quality level (e.g. 5000) is
1309 * returned in the ulQuality field.
1310 *
1311 *
1312 * Key Frame rate:
1313 *
1314 * The ulKeyFrameRate structure specifies the key
1315 * frame (aka I-frame, reference frame) frequency.
1316 * Every Nth frame is a key frame as specified.
1317 * A value of zero specifies that no periodic key
1318 * are to be compressed. Additional key frames may
1319 * be inserted at any point by specifying
1320 * MMIO_IS_KEY_FRAME in the MMCOMPRESS structure.
1321 *
1322 * example: ulKeyFrameRate = 5 results in:
1323 *
1324 * key delta delta delta delta key delta delta delta delta key delta...
1325 *
1326 *
1327 * Frame rate:
1328 *
1329 * Rate = number of time units per second
1330 * Scale = number of time units per frame
1331 *
1332 * examples: Rate = 30 Scale = 1 => 30 FPS
1333 * Rate = 15 Scale = 1 => 15 FPS
1334 * Rate = 25 Scale = 2 => 12.5 FPS
1335 *
1336 *
1337 * Data Constraint:
1338 *
1339 * Compressors which are capable of constraining the
1340 * resultant compressed video data rate use the
1341 * information in the ulDataConstraint and
1342 * ulConstraintInterval fields. A non-zero value
1343 * in ulDataConstraint specifies the number of bytes
1344 * which is not to be exceeded over an interval of
1345 * frames in the output data stream, regardless of
1346 * the requested quality level. This value only
1347 * considers video data, i.e. audio data and file format
1348 * overhead must be considered seperately when determining
1349 * the final output file data rate. The interval of
1350 * frames over which the data is constrained is specified
1351 * in ulConstraintInterval. A value of zero for
1352 * ulDataContraint specifies that the data rate is not
1353 * to be constrained and is compressed according to
1354 * the requested quality level.
1355 *
1356 * example 1: ulDataConstraint = 150000 ulConstraintInterval = 15
1357 *
1358 * This results in an output stream wherein the sizes of any 15
1359 * consecutive frames does not exceed 150000 bytes. If the
1360 * frame rate is 15 FPS, the resultant data rate will not
1361 * exceed 150000 bytes per second.
1362 *
1363 * example 2: ulDataConstraint = 10000 ulConstraintInterval = 1
1364 *
1365 * This results in an output stream wherein any single frame
1366 * does not exceed 10000 bytes. If the frame rate is 15 FPS,
1367 * the resultant data rate will not exceed 150000 bytes per
1368 * second. Note the difference between this case and example 1
1369 * where individual frames may exceed 10000 bytes (the average)
1370 * so long other frames in any 15 frame sequence are sufficiently
1371 * smaller to satisfy the constraint within the constraint interval.
1372 *
1373 **********************************************/
1374typedef struct _MMVIDEOOPEN { /* mmvidopen */
1375 ULONG ulStructLen;
1376 ULONG ulQuality;
1377 ULONG ulKeyFrameRate;
1378 ULONG ulScale;
1379 ULONG ulRate;
1380 ULONG ulDataConstraint;
1381 ULONG ulConstraintInterval;
1382 } MMVIDEOOPEN;
1383typedef MMVIDEOOPEN *PMMVIDEOOPEN;
1384
1385#endif
1386
1387
1388typedef struct _MMAUDIOOPEN
1389 {
1390 ULONG ulStructLen; /* Length of struct */
1391 ULONG ulSamplesPerBlock; /* Samples in each block of compressed data */
1392 ULONG ulBytesPerBlock; /* uncompressed bytes in each block */
1393 ULONG ulFlags; /* Compression flags */
1394 ULONG ulBestGuess; /* Guess at avg. compression ratio */
1395 ULONG ulBlockAlignment; /* Block alignment of codec */
1396 ULONG ulLength; /* Length of the file */
1397 ULONG hCodec; /* Codec handle */
1398 PCODECPROC pfnCodec;
1399 } MMAUDIOOPEN;
1400
1401typedef MMAUDIOOPEN *PMMAUDIOOPEN;
1402
1403
1404/* defines for the ulFlags field of the BUFER_INFORMATION */
1405 BLOCK_ORIENTED $00000001
1406 NON_LINEAR $00000002
1407 INIT_CODEC $00000004
1408
1409
1410
1411/**********************************************
1412 *
1413 * CODECOPEN - CODEC open structure
1414 *
1415 **********************************************/
1416typedef struct _CODECOPEN { /* codecopen */
1417 ULONG ulFlags; /* flags & events - Refer to ulCapsFlags in CODECINIFILEINFO */
1418 PVOID pControlHdr; /* control header - (codec specific) */
1419 PVOID pSrcHdr; /* source header - Ptr CODECVIDEOHEADER */
1420 PVOID pDstHdr; /* destination header - Ptr CODECVIDEOHEADER */
1421 PVOID pOtherInfo; /* other information - Ptr MMVIDEOOPEN/MMAUDIOOPEN */
1422 } CODECOPEN;
1423typedef CODECOPEN *PCODECOPEN;
1424
1425 VALID_CODECOPEN_INPUTFLAGS (CODEC_DECOMPRESS | \
1426 CODEC_WINDOW_CLIPPING | \
1427 CODEC_PALETTE_TRANS | \
1428 CODEC_SELFHEAL | \
1429 CODEC_SCALE_PEL_DOUBLE | \
1430 CODEC_SCALE_PEL_HALVED | \
1431 CODEC_SCALE_CONTINUOUS | \
1432 CODEC_MULAPERTURE | \
1433 CODEC_HARDWARE | \
1434 CODEC_DIRECT_DISPLAY)
1435
1436
1437#ifdef INCL_AUDIO_CODEC
1438
1439
1440/* Stream handler communication */
1441
1442typedef struct _AUDIO_CODEC_INFO
1443 {
1444 ULONG ulStructLen; /* Length of struct */
1445 ULONG ulBytesPerBlock; /* uncompressed bytes in each block */
1446 ULONG ulBlockAlignment; /* Block alignment of codec */
1447 ULONG hCodec; /* Codec handle */
1448 PCODECPROC pfnCodec;
1449/* LONG (* APIENTRY pfnCodec) (PVOID, SHORT, LONG, LONG); */
1450 } AUDIO_CODEC_INFO;
1451
1452 AUDIO_CODEC_INF 1000
1453
1454#endif
1455
1456/**********************************************
1457 *
1458 * MMCOMPRESS - Compress structure
1459 *
1460 **********************************************/
1461typedef struct _MMCOMPRESS { /* mmcomp */
1462 ULONG ulStructLen; /* length of this structure */
1463 ULONG ulFlags; /* command and status flags */
1464 ULONG ulSrcBufLen; /* source buffer size */
1465 PVOID pSrcBuf; /* source buffer */
1466 ULONG ulDstBufLen; /* destination buffer length */
1467 PVOID pDstBuf; /* destination buffer */
1468 PVOID pRunTimeInfo; /* control information */
1469 } MMCOMPRESS;
1470typedef MMCOMPRESS *PMMCOMPRESS;
1471
1472/* ulFlags Input values for MMCOMPRESS structure: */
1473/* Note: MMIO_IS_KEY_FRAME and MMIO_IS_PALETTE are defined */
1474/* below, but are listed here for information purposes only. */
1475/* MMIO_IS_KEY_FRAME This bit is set by the application */
1476/* to instruct the IOProc to compress */
1477/* the pSrcBuf into a key or reference */
1478/* frame. If the bit is not set, a */
1479/* delta frame is compressed. */
1480/* MMIO_IS_PALETTE A video palette is provided. This */
1481/* is set by the application. */
1482
1483
1484/**********************************************
1485 *
1486 * MMVIDEOCOMPRESS - Video Compress structure
1487 *
1488 **********************************************/
1489#ifndef INCL_AUDIO_CODEC_ONLY
1490
1491typedef struct _MMVIDEOCOMPRESS { /* mmvidcomp */
1492 ULONG ulStructLen; /* Structure length */
1493 GENPAL genpalVideo; /* Video stream palette */
1494 PVOID pControlHdr; /* control header (codec specific) */
1495 } MMVIDEOCOMPRESS;
1496typedef MMVIDEOCOMPRESS *PMMVIDEOCOMPRESS;
1497
1498#endif
1499
1500
1501#ifdef INCL_AUDIO_CODEC
1502
1503 START_DECOMPRESSION $00000001
1504 CONTINUE_DECOMPRESSION $00000002
1505 START_SEEK $00000004
1506 CONTINUE_SEEK $00000008
1507
1508#endif
1509
1510/**********************************************
1511 *
1512 * MMDECOMPRESS - Decompress Structure
1513 *
1514 **********************************************/
1515typedef struct _MMDECOMPRESS { /* mmdec */
1516 ULONG ulStructLen; /* length of this structure */
1517 ULONG ulFlags; /* command and status flags */
1518 ULONG ulSrcBufLen; /* source buffer size */
1519 PVOID pSrcBuf; /* source buffer */
1520 ULONG ulDstBufLen; /* destination buffer length */
1521 PVOID pDstBuf; /* destination buffer */
1522 PVOID pRunTimeInfo; /* control information Ptr to MMVIDEODECOMPRESS */
1523 } MMDECOMPRESS;
1524typedef MMDECOMPRESS *PMMDECOMPRESS;
1525
1526/* ulFlags defines: */
1527 MMIO_DROP_DELTA_FRAME $0001L /* Input/Output - Tells the IOProc to drop the delta */
1528 /* frame if the pSrcBuf contains a delta */
1529 /* frame. On return, the bit is reset */
1530 /* if the delta frame is dropped. */
1531 MMIO_IS_KEY_FRAME $0002L /* Output - This bit is set by the IOProc when */
1532 /* the data contained in the pSrcBuf is */
1533 /* a key or reference frame. */
1534 MMIO_IS_PALETTE $0004L /* Output - A video palette has been found. */
1535 /* This is set by the IOProc. */
1536 MMIO_PALETTE_CHANGE $0008L /* Input - The physical palette has been changed */
1537 /* in... This is set by the application. */
1538 MMIO_ORIGIN_LOWERLEFT $0010L /* Input - The video frame origin */
1539 MMIO_RECTL_CHANGE $0020L /* Input - The valid rectl list has changed. */
1540 MMIO_ORIGIN_UPPERLEFT $0040L /* Input - The video frame origin */
1541 MMIO_DROP_FRAME_DECODE $0080L /* Input - Tells the IOProc to drop decoding */
1542 MMIO_HIGH_QUALITY $0100L /* Input - Tells Codec to render best */
1543 /* quality image - not time critical */
1544 MMIO_IGNORE_CLIPPING $0200L /* Ignore clipping rectangles used for bitmap capture */
1545 /* high performance */
1546 MMIO_OUTPUT_FULL_IMAGE $0400L /* Output a complete image on decompress, even if this*/
1547 /* is a delta frame */
1548 /* of the frame. */
1549
1550 VALID_DECOMPRESS_INPUTFLAGS (MMIO_DROP_DELTA_FRAME | \
1551 MMIO_PALETTE_CHANGE | \
1552 MMIO_ORIGIN_LOWERLEFT | \
1553 MMIO_RECTL_CHANGE | \
1554 MMIO_DROP_FRAME_DECODE | \
1555 MMIO_ORIGIN_UPPERLEFT | \
1556 MMIO_HIGH_QUALITY | \
1557 MMIO_IGNORE_CLIPPING | \
1558 MMIO_OUTPUT_FULL_IMAGE)
1559
1560
1561#ifdef INCL_AUDIO_CODEC
1562
1563 START_COMPRESSION $00000001
1564 CONTINUE_COMPRESSION $00000002
1565 SOURCE_UNUSED $00000004
1566 TARGET_UNUSED $00000008
1567
1568
1569#endif
1570
1571
1572/**********************************************
1573 *
1574 * MMVIDEODECOMPRESS - Video Decompress structure
1575 *
1576 **********************************************/
1577#ifndef INCL_AUDIO_CODEC_ONLY
1578typedef struct _MMVIDEODECOMPRESS { /* mmviddec */
1579 ULONG ulStructLen; /* Structure length */
1580 ULONG ulRectlCount; /* Valid rectangle count - for clipping */
1581 PRECTL prectl; /* Valid rectangle array - for clipping */
1582 ULONG ulSkipLength; /* Skipped line length */
1583 ULONG ulDecodeLines; /* Num of lines to decompress */
1584 GENPAL genpalPhysical; /* Physical palette */
1585 GENPAL genpalVideo; /* Video stream palette */
1586 RECTL rectlSrc; /* Source window rectangle */
1587 RECTL rectlDst; /* Destination window rectangle */
1588 ULONG ulDeltaCount; /* Number of remaining delta frames before the next I-Frame */
1589 ULONG ulParm1; /* Codec specific parm */
1590 ULONG ulParm2; /* Codec specific parm */
1591 ULONG ulParm3; /* Codec specific parm */
1592 ULONG ulParm4; /* Codec specific parm */
1593 } MMVIDEODECOMPRESS;
1594typedef MMVIDEODECOMPRESS *PMMVIDEODECOMPRESS;
1595
1596#endif
1597/*************************************************
1598 *
1599 * RECORDTAB - Record table
1600 *
1601 * NOTE: This structure maps to ESRCBUFTAB in ssm.h
1602 *************************************************/
1603typedef struct _RECORDTAB { /* recordtab */
1604 ULONG ulReserved1; /* reserved for system */
1605 PVOID pRecord; /* ptr to record in buffer */
1606 ULONG ulLength; /* length of record */
1607 ULONG ulReserved2; /* reserved for system */
1608 ULONG ulReserved3; /* reserved for system */
1609 ULONG ulParm1; /* Record specific data */
1610 ULONG ulParm2; /* Record specific data */
1611 } RECORDTAB;
1612typedef RECORDTAB FAR *PRECORDTAB;/* Ptr to a buffer entry */
1613
1614
1615/***************************************************
1616 *
1617 * RECORDTABWRITE - Record table for video write
1618 *
1619 * NOTE: This structure maps to ETGTBUFTAB in ssm.h
1620 ***************************************************/
1621typedef struct _RECORDTABWRITE { /* recordtab */
1622 PVOID pRecord; /* ptr to record in buffer */
1623 ULONG ulReserved1; /* reserved for system */
1624 ULONG ulLength; /* length of record */
1625 ULONG ulReserved2; /* reserved for system */
1626 ULONG ulReserved3; /* reserved for system */
1627 ULONG ulParm1; /* Record specific data */
1628 ULONG ulParm2; /* Record specific data */
1629 } RECORDTABWRITE;
1630typedef RECORDTABWRITE FAR *PRECORDTABWRITE;/* Ptr to a buffer entry */
1631
1632
1633/* ulParm1 Return values for MULTITRACK_READ only: */
1634/* Note: MMIO_IS_KEY_FRAME and MMIO_IS_PALETTE are defined */
1635/* above, but are listed here for information purposes only */
1636/* as they are valid ulParm1 Return values for MULTITRACK_READ. */
1637/* MMIO_IS_KEY_FRAME Frame is a Key frame */
1638/* MMIO_IS_PALETTE Buffer contains a video palette */
1639 MMIO_INVISIBLE_FRAME $1000L /* Indicates a invisible video frame */
1640 MMIO_NULL_FRAME $2000L /* Indicates a null video frame (zero length) */
1641
1642/* ulParm2 Return values for MULTITRACK_READ only: */
1643/* This field contains the frame number for this video frame */
1644/* if this track is a video track. */
1645
1646
1647
1648/* ulParm1 Input values for MULTITRACK_WRITE only: */
1649/* Note: MMIO_IS_KEY_FRAME and MMIO_IS_PALETTE are defined */
1650/* above, but are listed here for information purposes only */
1651/* as they are valid ulParm1 Input values for MULTITRACK_WRITE. */
1652/* MMIO_IS_KEY_FRAME Frame is a Key frame */
1653/* MMIO_IS_PALETTE Buffer contains a video palette */
1654
1655/* ulParm2 Input values for MULTITRACK_WRITE only: */
1656/* This field contains the number of null frames */
1657/* that should be inserted before this frame */
1658/* (this recordtab entry). */
1659
1660
1661/************************************************
1662 *
1663 * TRACKMAP - This structure maps a track to
1664 * a record table.
1665 *
1666 ************************************************/
1667typedef struct _TRACKMAP { /* trackmap */
1668 ULONG ulTrackID; /* Input - track ID */
1669 ULONG ulNumEntries; /* Input - number of record entries */
1670 PRECORDTAB pRecordTabList; /* Input/Output - Ptr to a record table */
1671 } TRACKMAP;
1672typedef TRACKMAP *PTRACKMAP; /* Ptr to a track map table entry */
1673
1674
1675
1676#ifndef INCL_AUDIO_CODEC_ONLY
1677
1678/**********************************************
1679 *
1680 * MMMULTITRACKREAD - Multiple Track Read
1681 *
1682 **********************************************/
1683typedef struct _MMMULTITRACKREAD { /* mtread */
1684 ULONG ulLength; /* Input - Size of buffer to read. The IO should be performed on this size of */
1685 /* buffer. The actual buffer size may be bigger and is given in the */
1686 /* ulBufferLength field below. Video frames can span pBuffer+ulLength */
1687 /* as long as the frame is less than the ulBufferLength in size. */
1688 /* The purpose of this is to break the IO reads into smaller sizes */
1689 /* while still allowing large frame sizes. */
1690 PVOID pBuffer; /* Input - ptr to read buffer */
1691 ULONG ulFlags; /* Input/Output - read flags */
1692 ULONG ulNumTracks; /* Input - number of track entries */
1693 PTRACKMAP pTrackMapList; /* Input - ptr to track-to-record list */
1694/* End of old MMMULTITRACKREAD structure */
1695 ULONG ulBufferLength; /* Input - Actual length of read buffer */
1696 ULONG ulReserved; /* Input - Reserved (must be 0) */
1697 } MMMULTITRACKREAD;
1698typedef MMMULTITRACKREAD *PMMMULTITRACKREAD;
1699
1700/* ulFlags Input Values: */
1701 MULTITRACKREAD_EXTENDED $0004L /* Indicates that the new extended multitrack */
1702 /* read structure is passed from caller instead */
1703 /* of the previous multitrack read structure. */
1704
1705/* ulFlags Return Values: */
1706 MULTITRACKREAD_NOTDONE $0001L /* Read is not done. Another read of the same */
1707 /* buffer is necessary. There were not enough record */
1708 /* entries in the record table passed to this api. */
1709 MULTITRACKREAD_EOF $0002L /* End of File. Used because # bytes read may not */
1710 /* match the length of the buffer in cases of a */
1711 /* record that spans in the next buffer. */
1712
1713
1714/**********************************************
1715 *
1716 * MMMULTITRACKWRITE - Multiple Track Write
1717 *
1718 **********************************************/
1719typedef struct _MMMULTITRACKWRITE { /* mtwrite */
1720 ULONG ulNumTracks; /* Input - number of track entries */
1721 PTRACKMAP pTrackMapList; /* Input - ptr to track-to-record list */
1722 ULONG ulFlags; /* Input - write flags (Default = 0) */
1723 ULONG ulReserved; /* Input - Reserved (must be 0) */
1724 } MMMULTITRACKWRITE;
1725typedef MMMULTITRACKWRITE *PMMMULTITRACKWRITE;
1726
1727/* ulFlags Input Values: */
1728 MULTITRACKWRITE_MERGE $0001L /* Attempt to interleave the data on the write. */
1729 /* The default (without this flag set) is to */
1730 /* write all records for each track then write */
1731 /* all records of the next track and so on. */
1732
1733*)
1734TYPE
1735 PMMMOVIEHEADER=^MMMOVIEHEADER;
1736 MMMOVIEHEADER=RECORD
1737 ulStructLen:LONGWORD;
1738 ulContentType:LONGWORD;
1739 ulMediaType:LONGWORD;
1740 ulMovieCapsFlags:LONGWORD;
1741 ulMaxBytesPerSec:LONGWORD;
1742 ulPaddingGranularity:LONGWORD;
1743 ulSuggestedBufferSize:LONGWORD;
1744 ulStart:LONGWORD;
1745 ulLength:LONGWORD;
1746 ulNextTrackID:LONGWORD;
1747 ulNumEntries:LONGWORD;
1748 pmmTrackInfoList:PMMTRACKINFO;
1749 pszMovieTitle:PChar;
1750 ulCountry:LONGWORD;
1751 ulCodePage:LONGWORD;
1752 ulAvgBytesPerSec:LONGWORD;
1753 END;
1754
1755CONST
1756 MOVIE_HAS_VIDEO =$0001;
1757 MOVIE_HAS_AUDIO =$0002;
1758 MOVIE_CAN_SEEK =$0004;
1759 MOVIE_CAN_SCAN =$0008;
1760 MOVIE_HAS_COPYRIGHT =$0010;
1761 MOVIE_WAS_CAPTUREFILE =$0020;
1762
1763TYPE
1764 PMMVIDEOHEADER=^MMVIDEOHEADER;
1765 MMVIDEOHEADER=RECORD
1766 ulStructLen:LONGWORD;
1767 ulContentType:LONGWORD;
1768 ulMediaType:LONGWORD;
1769 ulVideoCapsFlags:LONGWORD;
1770 ulWidth:LONGWORD;
1771 ulHeight:LONGWORD;
1772 ulScale:LONGWORD;
1773 ulRate:LONGWORD;
1774 ulStart:LONGWORD;
1775 ulLength:LONGWORD;
1776 ulTotalFrames:LONGWORD;
1777 ulInitialFrames:LONGWORD;
1778 mmtimePerFrame:MMTIME;
1779 ulSuggestedBufferSize:LONGWORD;
1780 genpalVideo:GENPAL;
1781 pmmXDIBHeader:PMMXDIBHEADER;
1782 END;
1783
1784CONST
1785 MMIO_VIDEO_UNKNOWN =$00000000;
1786 MMIO_VIDEO_DATA =$00000001;
1787
1788 MCI_TRUE = 1;
1789 MCI_FALSE = 0;
1790
1791 MCI_OPEN = 1;
1792 MCI_CLOSE = 2;
1793 MCI_ESCAPE = 3;
1794 MCI_PLAY = 4;
1795 MCI_SEEK = 5;
1796 MCI_STOP = 6;
1797 MCI_PAUSE = 7;
1798 MCI_INFO = 8;
1799 MCI_GETDEVCAPS = 9;
1800 MCI_STATUS = 10;
1801 MCI_SPIN = 11;
1802 MCI_SET = 12;
1803 MCI_STEP = 13;
1804 MCI_RECORD = 14;
1805 MCI_SYSINFO = 15;
1806 MCI_SAVE = 16;
1807 MCI_CUE = 17;
1808 MCI_UPDATE = 18;
1809 MCI_SET_CUEPOINT = 19;
1810 MCI_SET_POSITION_ADVISE = 20;
1811 MCI_SET_SYNC_OFFSET = 21;
1812 MCI_LOAD = 22;
1813 MCI_ACQUIREDEVICE = 23;
1814 MCI_RELEASEDEVICE = 24;
1815 MCI_MASTERAUDIO = 25;
1816 MCI_GETTOC = 26;
1817 MCI_DEVICESETTINGS = 27;
1818 MCI_CONNECTOR = 28;
1819 MCI_RESUME = 29;
1820 MCI_CONNECTORINFO = 31;
1821 MCI_DEFAULT_CONNECTION = 32;
1822 MCI_CONNECTION = 33;
1823 MCI_GROUP = 34;
1824
1825 MCI_CAPTURE = 40;
1826 MCI_FREEZE = 41;
1827 MCI_GETIMAGEBUFFER = 42;
1828 MCI_GETIMAGEPALETTE = 43;
1829 MCI_PUT = 44;
1830 MCI_REALIZE = 45;
1831 MCI_REWIND = 46;
1832 MCI_RESTORE = 47;
1833 MCI_SETIMAGEBUFFER = 48;
1834 MCI_SETIMAGEPALETTE = 49;
1835 MCI_UNFREEZE = 50;
1836 MCI_WHERE = 51;
1837 MCI_WINDOW = 52;
1838
1839 MCI_DELETE = 53;
1840 MCI_CUT = 54;
1841 MCI_PASTE = 55;
1842 MCI_COPY = 56;
1843 MCI_REDO = 57;
1844 MCI_UNDO = 58;
1845 MCI_MIXNOTIFY = 59;
1846 MCI_SETTUNER = 60;
1847 MCI_MAX_COMMAND = 60;
1848
1849(*
1850 RECT ULONG
1851 HDCT ULONG
1852
1853 MCI_USER_MESSAGES 2000
1854
1855/*********************************************************************/
1856/* Special Device ID for "all" */
1857/*********************************************************************/
1858 MCI_ALL_DEVICE_ID $FFFF
1859
1860/*********************************************************************/
1861/* MCI implementation limits */
1862/*********************************************************************/
1863 MAX_DEVICE_NAME 20
1864 MAX_ALIAS_NAME 20
1865 MAX_PRODINFO 40
1866 MAX_EXTENSION_NAME 4
1867 MAX_DEV_PARAMS 128
1868 MAX_VERSION_NUMBER 6
1869 MAX_PDD_NAME 9
1870 MAX_DLL_NAME 260
1871 MAX_CLASSES 10
1872 MAX_CONNECTORS 10
1873 MAX_EXTENSIONS 25
1874 MAX_TYPEBUFFER 256
1875
1876#ifdef INCL_32
1877/*********************************************************************/
1878/* MCI Device Type Constants */
1879/*********************************************************************/
1880 MCI_DEVTYPE_VIDEOTAPE 1
1881 MCI_DEVTYPE_VIDEODISC 2
1882 MCI_DEVTYPE_CD_AUDIO 3
1883 MCI_DEVTYPE_DAT 4
1884 MCI_DEVTYPE_AUDIO_TAPE 5
1885 MCI_DEVTYPE_OTHER 6
1886 MCI_DEVTYPE_WAVEFORM_AUDIO 7
1887 MCI_DEVTYPE_SEQUENCER 8
1888 MCI_DEVTYPE_AUDIO_AMPMIX 9
1889 MCI_DEVTYPE_OVERLAY 10
1890 MCI_DEVTYPE_ANIMATION 11
1891 MCI_DEVTYPE_DIGITAL_VIDEO 12
1892 MCI_DEVTYPE_SPEAKER 13
1893 MCI_DEVTYPE_HEADPHONE 14
1894 MCI_DEVTYPE_MICROPHONE 15
1895 MCI_DEVTYPE_MONITOR 16
1896 MCI_DEVTYPE_CDXA 17
1897
1898/*********************************************************************/
1899/* MCI Device Type Names */
1900/*********************************************************************/
1901 MCI_DEVTYPE_VIDEOTAPE_NAME "Videotape"
1902 MCI_DEVTYPE_VIDEODISC_NAME "Videodisc"
1903 MCI_DEVTYPE_CD_AUDIO_NAME "CDaudio"
1904 MCI_DEVTYPE_DAT_NAME "DAT"
1905 MCI_DEVTYPE_AUDIO_TAPE_NAME "Audiotape"
1906 MCI_DEVTYPE_OTHER_NAME "Other"
1907 MCI_DEVTYPE_WAVEFORM_AUDIO_NAME "Waveaudio"
1908 MCI_DEVTYPE_SEQUENCER_NAME "Sequencer"
1909 MCI_DEVTYPE_AUDIO_AMPMIX_NAME "Ampmix"
1910 MCI_DEVTYPE_OVERLAY_NAME "Overlay"
1911 MCI_DEVTYPE_ANIMATION_NAME "Animation"
1912 MCI_DEVTYPE_DIGITAL_VIDEO_NAME "Digitalvideo"
1913 MCI_DEVTYPE_SPEAKER_NAME "Speaker"
1914 MCI_DEVTYPE_HEADPHONE_NAME "Headphone"
1915 MCI_DEVTYPE_MICROPHONE_NAME "Microphone"
1916 MCI_DEVTYPE_MONITOR_NAME "Monitor"
1917 MCI_DEVTYPE_CDXA_NAME "CDXA"
1918
1919 MCI_MAX_SYSTEM_DEVICE_NAMES 17
1920
1921#endif /* INCL_32 */
1922
1923/*********************************************************************/
1924/* Getdevcaps, set, and status item base values */
1925/*********************************************************************/
1926
1927 MCI_AMP_ITEM_BASE $00001000L
1928 MCI_CD_ITEM_BASE $00002000L
1929 MCI_CDXA_ITEM_BASE $00003000L
1930 MCI_VD_ITEM_BASE $00004000L
1931 MCI_SEQ_ITEM_BASE $00005000L
1932 MCI_WAVE_ITEM_BASE $00006000L
1933 MCI_VID_ITEM_BASE $00007000L
1934 MCI_DGV_ITEM_BASE $00008000L
1935 MCI_OVLY_ITEM_BASE $00009000L
1936*)
1937CONST
1938 MCI_NOTIFY_SUCCESSFUL = $0000;
1939 MCI_NOTIFY_SUPERSEDED = $0001;
1940 MCI_NOTIFY_ABORTED = $0002;
1941 MCI_NOTIFY_ERROR = $0003;
1942
1943CONST
1944 MM_MCINOTIFY = $0500;
1945 MM_MCIPASSDEVICE = $0501;
1946 MM_MCIPOSITIONCHANGE = $0502;
1947 MM_MCICUEPOINT = $0503;
1948 MM_MCIPLAYLISTMESSAGE = $0504;
1949 MM_MCIEVENT = $0505;
1950 MM_MCISYNCH = $0506;
1951
1952 MCI_LOSING_USE = $00000001;
1953 MCI_GAINING_USE = $00000002;
1954
1955 MCI_NOTIFY = $00000001;
1956 MCI_WAIT = $00000002;
1957 MCI_FROM = $00000004;
1958 MCI_TO = $00000008;
1959 MCI_MILLISECONDS = $00000010;
1960 MCI_TRACK = $00000020;
1961 MCI_OVER = $00000040;
1962 MCI_TEST = $00000080;
1963 MCI_TO_BUFFER = $00000100;
1964 MCI_FROM_BUFFER = $00000200;
1965 MCI_CONVERT_FORMAT = $00000400;
1966
1967
1968 MCI_FORMAT_MILLISECONDS = $00000001;
1969 MCI_FORMAT_MMTIME = $00000002;
1970 MCI_FORMAT_MSF = $00000005;
1971 MCI_FORMAT_TMSF = $00000006;
1972 MCI_FORMAT_CHAPTERS = $00000007;
1973 MCI_FORMAT_FRAMES = $00000008;
1974 MCI_FORMAT_HMS = $00000009;
1975 MCI_FORMAT_TRACKS = $0000000A;
1976 MCI_FORMAT_BYTES = $0000000B;
1977 MCI_FORMAT_SAMPLES = $0000000C;
1978 MCI_FORMAT_HMSF = $0000000D;
1979 MCI_FORMAT_SET_SMPTE_24 = $0000000E;
1980 MCI_FORMAT_SET_SMPTE_25 = $0000000F;
1981 MCI_FORMAT_SET_SMPTE_30 = $00000010;
1982 MCI_FORMAT_SET_SMPTE_30DROP = $00000011;
1983 MCI_FORMAT_SET_SONGPTR = $00000012;
1984 MCI_FORMAT_USEC = $00000013;
1985
1986 MCI_FORMAT_PERCENTAGE = $00000003;
1987 MCI_FORMAT_FPS = $00000004;
1988
1989(*
1990/*********************************************************************/
1991/* */
1992/* Time format conversions macros */
1993/* */
1994/*********************************************************************/
1995 MSECTOMM(value) (((value) > ($FFFFFFFF /3)) ? 0L : \
1996 ((value) * 3))
1997
1998 MSECFROMMM(value) (((value)+1) / 3)
1999
2000 REDBOOKTOMM(value) ((((value) & $000000FF) * 60 * 3000) + \
2001 (((value) & $0000FF00) / $100 * 3000) + \
2002 (((value) & $00FF0000) / $10000 * 3000/75))
2003
2004 FPS24TOMM(value) ((((value) & $000000FF) * 60 * 60 * 3000) + \
2005 (((value) & $0000FF00) / $100 * 60 * 3000) + \
2006 (((value) & $00FF0000) / $10000 * 3000) + \
2007 (((value) & $FF000000) / $1000000 * 3000/24))
2008
2009 FPS25TOMM(value) ((((value) & $000000FF) * 60 * 60 * 3000) + \
2010 (((value) & $0000FF00) / $100 * 60 * 3000) + \
2011 (((value) & $00FF0000) / $10000 * 3000) + \
2012 (((value) & $FF000000) / $1000000 * 3000/25))
2013
2014 FPS30TOMM(value) ((((value) & $000000FF) * 60 * 60 * 3000) + \
2015 (((value) & $0000FF00) / $100 * 60 * 3000) + \
2016 (((value) & $00FF0000) / $10000 * 3000) + \
2017 (((value) & $FF000000) / $1000000 * 3000/30))
2018
2019 HMSTOMM(value) ((((value) & $000000FF) * 60 * 60 * 3000) + \
2020 (((value) & $0000FF00) / $100 * 60 * 3000) + \
2021 (((value) & $00FF0000) / $10000 * 3000))
2022
2023
2024 /* The +20 is used for rounding purposes. It is derived by: */
2025 /* 1/2 * ((300 MMTIME/SEC / (75 FRAMES/SEC)) = 20 MMTIME/HALF-FRAME */
2026 REDBOOKFROMMM(value) ((((value)+20) >= $100*60*3000) ? 0L : \
2027 ((((value)+20) / (60*3000)) + \
2028 (((value)+20) % (60*3000) / 3000 << 8) + \
2029 (((value)+20) / (3000/75) % 75 << 16)))
2030
2031 FPS24FROMMM(value) ((((value)+63) >= $100*60*60*3000) ? 0L : \
2032 (((((((value)+63) % 3000)/(3000/24)) << 24) & $FF000000) | \
2033 ((((((value)+63) / 3000) % 60) << 16) & $00FF0000) | \
2034 (((((((value)+63) / 3000) / 60) % 60) << 8) & $0000FF00) | \
2035 ((((((value)+63) / 3000) / 60) / 60) & $000000FF)))
2036
2037 FPS25FROMMM(value) ((((value)+60) >= $100*60*60*3000) ? 0L : \
2038 (((((((value)+60) % 3000)/(3000/25)) << 24) & $FF000000) | \
2039 ((((((value)+60) / 3000) % 60) << 16) & $00FF0000) | \
2040 (((((((value)+60) / 3000) / 60) % 60) << 8) & $0000FF00) | \
2041 ((((((value)+60) / 3000) / 60) / 60) & $000000FF)))
2042
2043 FPS30FROMMM(value) ((((value)+50) >= $100*60*60*3000) ? 0L : \
2044 (((((((value)+50) % 3000)/(3000/30)) << 24) & $FF000000) | \
2045 ((((((value)+50) / 3000) % 60) << 16) & $00FF0000) | \
2046 (((((((value)+50) / 3000) / 60) % 60) << 8) & $0000FF00) | \
2047 ((((((value)+50) / 3000) / 60) / 60) & $000000FF)))
2048
2049 HMSFROMMM(value) ((((value)+50) >= $100*60*60*3000) ? 0L : \
2050 (((((((value)+50) / 3000) % 60) << 16) & $00FF0000) | \
2051 (((((((value)+50) / 3000) / 60) % 60) << 8) & $0000FF00) | \
2052 ((((((value)+50) / 3000) / 60) / 60) & $000000FF)))
2053
2054 TMSF_TRACK(time) (*(BYTE * )(&(time)))
2055 TMSF_MINUTE(time) (*((BYTE * )(&(time))+1))
2056 TMSF_SECOND(time) (*((BYTE * )(&(time))+2))
2057 TMSF_FRAME(time) (*((BYTE * )(&(time))+3))
2058 MSF_MINUTE(time) (*(BYTE * )(&(time)))
2059 MSF_SECOND(time) (*((BYTE * )(&(time))+1))
2060 MSF_FRAME(time) (*((BYTE * )(&(time))+2))
2061
2062/*********************************************************************/
2063/* */
2064/* BYTE ACCESS WITH A DWORD MACROS */
2065/* */
2066/*********************************************************************/
2067 ULONG_LWLB(ul) (*(BYTE * )((ULONG * )(&ul))) /* Low Word Low Byte */
2068 ULONG_LWHB(ul) (*((BYTE * )((ULONG * )(&ul))+1)) /* Low Word High Byte */
2069 ULONG_HWLB(ul) (*((BYTE * )((ULONG * )(&ul))+2)) /* High Word Low Byte */
2070 ULONG_HWHB(ul) (*((BYTE * )((ULONG * )(&ul))+3)) /* High Word High Byte */
2071 ULONG_LOWD(ul) (*(USHORT * )((ULONG * )(&ul))) /* Low Word */
2072 ULONG_HIWD(ul) (*((USHORT * )((ULONG * )(&ul))+1)) /* High Word */
2073
2074#ifdef INCL_32
2075
2076#pragma pack(1)
2077
2078/*********************************************************************/
2079/* parameters for default command messages with empty parameter lists*/
2080/*********************************************************************/
2081typedef struct _MCI_GENERIC_PARMS {
2082 HWND hwndCallback; /* PM window handle for MCI notify message */
2083} MCI_GENERIC_PARMS;
2084typedef MCI_GENERIC_PARMS *PMCI_GENERIC_PARMS;
2085
2086
2087/*********************************************************************/
2088/* flags for the MCI_ACQUIREDEVICE message */
2089/* $0000$00 are reserved for MCI_ACQUIREDEVICE flags */
2090/*********************************************************************/
2091 MCI_EXCLUSIVE $00000100L
2092 MCI_EXCLUSIVE_INSTANCE $00000200L
2093 MCI_ACQUIRE_QUEUE $00000400L
2094
2095
2096/*********************************************************************/
2097/* flags for the MCI_CAPTURE message */
2098/* $000$X00 are reserved for MCI_CAPTURE flags */
2099/* MCI_CONVERT is used by MCI_GETIMAGEBUFFER, MCI_SETIMAGEBUFFER */
2100/* MCI_CAPTURE, and MCI_RESTORE */
2101/*********************************************************************/
2102 MCI_CAPTURE_RECT $00000100L
2103 MCI_CONVERT $00001000L
2104
2105/*********************************************************************/
2106/* parameter structure for the MCI_CAPTURE message */
2107/*********************************************************************/
2108typedef struct _MCI_CAPTURE_PARMS {
2109 HWND hwndCallback; /* PM window handle for MCI notify message */
2110 RECTL rect; /* Rectangle array specifying the area to */
2111 /* be captured */
2112} MCI_CAPTURE_PARMS;
2113typedef MCI_CAPTURE_PARMS *PMCI_CAPTURE_PARMS;
2114
2115
2116/*********************************************************************/
2117/* flags for MCI_CONNECTOR and MCI_CONNECTION messages */
2118/*********************************************************************/
2119 MCI_ENABLE_CONNECTOR $00000100L
2120 MCI_DISABLE_CONNECTOR $00000200L
2121 MCI_QUERY_CONNECTOR_STATUS $00000400L
2122 MCI_CONNECTOR_TYPE $00000800L
2123 MCI_CONNECTOR_INDEX $00001000L
2124 MCI_TO_CONNECTOR_INDEX $00002000L
2125 MCI_TO_CONNECTOR_TYPE $00004000L
2126 MCI_QUERY_CONNECTION $00008000L
2127 MCI_MAKE_CONNECTION $00010000L
2128 MCI_BREAK_CONNECTION $00020000L
2129 MCI_ENUMERATE_CONNECTORS $00040000L
2130 MCI_QUERY_CONNECTOR_TYPE $00080000L
2131 MCI_QUERY_VALID_CONNECTION $00100000L
2132 MCI_CONNECTOR_ALIAS $00200000L
2133
2134
2135/*********************************************************************/
2136/* Connector types */
2137/*********************************************************************/
2138 MCI_MIDI_STREAM_CONNECTOR $00000001L
2139 MCI_CD_STREAM_CONNECTOR $00000002L
2140 MCI_WAVE_STREAM_CONNECTOR $00000003L
2141 MCI_AMP_STREAM_CONNECTOR $00000004L
2142 MCI_XA_STREAM_CONNECTOR $00000005L
2143 MCI_HEADPHONES_CONNECTOR $00000006L
2144 MCI_SPEAKERS_CONNECTOR $00000007L
2145 MCI_MICROPHONE_CONNECTOR $00000008L
2146 MCI_LINE_IN_CONNECTOR $00000009L
2147 MCI_LINE_OUT_CONNECTOR $0000000aL
2148 MCI_VIDEO_IN_CONNECTOR $0000000bL
2149 MCI_VIDEO_OUT_CONNECTOR $0000000cL
2150 MCI_PHONE_SET_CONNECTOR $0000000dL
2151 MCI_PHONE_LINE_CONNECTOR $0000000eL
2152 MCI_AUDIO_IN_CONNECTOR $0000000fL
2153 MCI_AUDIO_OUT_CONNECTOR $00000010L
2154 MCI_UNIVERSAL_CONNECTOR $00000011L
2155 MCI_INTERNAL_AUDIO_CONNECTOR $00000012L
2156 MCI_MIDI_IN_CONNECTOR $00000013L
2157 MCI_MIDI_OUT_CONNECTOR $00000014L
2158 MCI_NULL_CONNECTOR $00000015L
2159
2160
2161/*********************************************************************/
2162/* parameter structure for the MCI_CONNECTION message */
2163/*********************************************************************/
2164typedef struct _MCI_CONNECTION_PARMS {
2165 HWND hwndCallback; /* PM window handle for MCI notify message */
2166 ULONG ulConnectorType; /* Connector type */
2167 ULONG ulConnectorIndex;/* Connector index */
2168 PSZ pszAlias; /* Connection device alias */
2169 USHORT usToDeviceID; /* Connected to device ID */
2170 USHORT usReserved0; /* Reserved field */
2171 ULONG ulReserved1; /* Reserved field */
2172 ULONG ulReserved2; /* Reserved field */
2173} MCI_CONNECTION_PARMS;
2174typedef MCI_CONNECTION_PARMS *PMCI_CONNECTION_PARMS;
2175
2176/*********************************************************************/
2177/* parameter structure for the MCI_CONNECTOR message */
2178/*********************************************************************/
2179typedef struct _MCI_CONNECTOR_PARMS {
2180 HWND hwndCallback; /* PM window handle for MCI notify message */
2181 ULONG ulReturn; /* Return information */
2182 ULONG ulConnectorType; /* If specified, ulConnectorIndex is relative */
2183 /* to the specified connector type */
2184 ULONG ulConnectorIndex; /* Connector number */
2185} MCI_CONNECTOR_PARMS;
2186typedef MCI_CONNECTOR_PARMS *PMCI_CONNECTOR_PARMS;
2187
2188/*********************************************************************/
2189/* parameter structure for the MCI_CONNECTORINFO message */
2190/*********************************************************************/
2191typedef struct _MCI_CONNECTORINFO_PARMS {
2192 HWND hwndCallback; /* PM window handle for MCI notify message */
2193 ULONG ulReturn; /* Return information */
2194 ULONG ulDeviceTypeID; /* MCI device type */
2195 ULONG ulConnectorType; /* If specified, ulConnectorIndex is relative */
2196 /* to the specified connector type */
2197 ULONG ulConnectorIndex; /* Connector number */
2198 ULONG ulToConnectorType; /* Connector type to test if */
2199 /* MCI_QUERY_VALID_CONNECTION is specified */
2200} MCI_CONNECTORINFO_PARMS;
2201typedef MCI_CONNECTORINFO_PARMS *PMCI_CONNECTORINFO_PARMS;
2202
2203/*********************************************************************/
2204/* flags for the MCI_CUE message */
2205/* $0000$00 are reserved for MCI_CUE flags */
2206/*********************************************************************/
2207 MCI_CUE_INPUT $00000100L
2208 MCI_CUE_OUTPUT $00000200L
2209
2210 /*************************************************/
2211 /* Additional flags for Wave Audio for MCI_CUE */
2212 /*************************************************/
2213 MCI_WAVE_INPUT $00001000L
2214 MCI_WAVE_OUTPUT $00002000L
2215
2216
2217/*********************************************************************/
2218/* parameter structure for the MCI_DEFAULT_CONNECTION message */
2219/*********************************************************************/
2220typedef struct _MCI_DEFAULT_CONNECTION_PARMS {
2221 HWND hwndCallback; /* PM window handle for MCI notify message */
2222 PSZ pszDevice; /* Device name */
2223 ULONG ulConnectorType; /* If specified, ulConnectorIndex is relative */
2224 /* to the specified connector type */
2225 ULONG ulConnectorIndex; /* Connector number */
2226 PSZ pszToDevice; /* Return device name to which the connection */
2227 /* exists */
2228 ULONG ulToConnectorType; /* Connector type */
2229 ULONG ulToConnectorIndex; /* Connector number */
2230} MCI_DEFAULT_CONNECTION_PARMS;
2231typedef MCI_DEFAULT_CONNECTION_PARMS *PMCI_DEFAULT_CONNECTION_PARMS;
2232
2233/*********************************************************************/
2234/* parameter structure for the MCI_DEVICESETTINGS message */
2235/*********************************************************************/
2236typedef struct _MCI_DEVICESETTINGS_PARMS {
2237 HWND hwndCallback; /* PM window handle for MCI notify message */
2238 HWND hwndNotebook; /* Hwhd to notebook window */
2239 USHORT usDeviceType; /* Device type */
2240 PSZ pszDeviceName; /* Device name */
2241} MCI_DEVICESETTINGS_PARMS;
2242typedef MCI_DEVICESETTINGS_PARMS *PMCI_DEVICESETTINGS_PARMS;
2243
2244/**********************************************************************/
2245/* parameter structure for the MCI_CUT / COPY / DELETE / UNDO / etc...*/
2246/**********************************************************************/
2247typedef struct _MCI_EDIT_PARMS {
2248 HWND hwndCallback; /* PM window handle for MCI notify message */
2249 ULONG ulStructLen; /* Length of the Structure */
2250 ULONG ulFrom; /* Beginning Point of Range */
2251 ULONG ulTo; /* ending point of range */
2252 PVOID pBuff; /* user buffer */
2253 ULONG ulBufLen; /* length of user buffer */
2254 PVOID pHeader; /* header which describes the buffer */
2255} MCI_EDIT_PARMS;
2256typedef MCI_EDIT_PARMS *PMCI_EDIT_PARMS;
2257
2258/*********************************************************************/
2259/* flags and parameter structure for the MCI_ESCAPE message */
2260/* $0000$00 are reserved for MCI_ESCAPE flags */
2261/*********************************************************************/
2262 MCI_ESCAPE_STRING $00000100L
2263
2264typedef struct _MCI_ESCAPE_PARMS {
2265 HWND hwndCallback; /* PM window handle for MCI notify message */
2266 PSZ pszCommand; /* Command to send to the device */
2267} MCI_ESCAPE_PARMS;
2268typedef MCI_ESCAPE_PARMS *PMCI_ESCAPE_PARMS;
2269
2270/*********************************************************************/
2271/* flags for the MCI_FREEZE message */
2272/* $000$X00 are reserved for MCI_FREEZE flags */
2273/*********************************************************************/
2274 MCI_OVLY_FREEZE_RECT $00000100L
2275 MCI_OVLY_FREEZE_RECT_OUTSIDE $00000200L
2276
2277/*********************************************************************/
2278/* flags for the MCI_GETDEVCAPS message */
2279/* $0$XXX00 are reserved for MCI_GETDEVCAPS flags */
2280/*********************************************************************/
2281 MCI_GETDEVCAPS_MESSAGE $00000100L
2282 MCI_GETDEVCAPS_ITEM $00000200L
2283 MCI_GETDEVCAPS_EXTENDED $00000400L
2284
2285 /*************************************************/
2286 /* General MCI_GETDEVCAPS item values */
2287 /*************************************************/
2288 MCI_GETDEVCAPS_CAN_EJECT $00000001L
2289 MCI_GETDEVCAPS_CAN_LOCKEJECT $00000002L
2290 MCI_GETDEVCAPS_CAN_PLAY $00000003L
2291 MCI_GETDEVCAPS_CAN_PROCESS_INTERNAL $00000004L
2292 MCI_GETDEVCAPS_CAN_RECORD $00000005L
2293 MCI_GETDEVCAPS_CAN_RECORD_INSERT $00000006L
2294 MCI_GETDEVCAPS_CAN_SAVE $00000007L
2295 MCI_GETDEVCAPS_CAN_SETVOLUME $00000008L
2296 MCI_GETDEVCAPS_CAN_STREAM $00000009L
2297 MCI_GETDEVCAPS_DEVICE_TYPE $0000000AL
2298 MCI_GETDEVCAPS_HAS_AUDIO $0000000BL
2299 MCI_GETDEVCAPS_HAS_VIDEO $0000000CL
2300 MCI_GETDEVCAPS_PREROLL_TIME $0000000DL
2301 MCI_GETDEVCAPS_PREROLL_TYPE $0000000EL
2302 MCI_GETDEVCAPS_USES_FILES $0000000FL
2303 MCI_GETDEVCAPS_HAS_IMAGE $00000010L
2304 MCI_GETDEVCAPS_WAVE_FORMAT $00000011L
2305
2306 /***********************************************/
2307 /* return ID's for videodisc MCI_GETDEVCAPS */
2308 /***********************************************/
2309 MCI_VD_MEDIA_CLV $00000001L
2310 MCI_VD_MEDIA_CAV $00000002L
2311 MCI_VD_MEDIA_OTHER $00000003L
2312
2313 /*************************************************/
2314 /* MCI_GETDEVCAPS item values for video devices */
2315 /*************************************************/
2316 MCI_VID_GETDEVCAPS_CAN_STRETCH MCI_VID_ITEM_BASE
2317 MCI_VID_GETDEVCAPS_CAN_DISTORT (MCI_VID_ITEM_BASE+1)
2318 MCI_VID_GETDEVCAPS_VIDEO_X_EXTENT (MCI_VID_ITEM_BASE+2)
2319 MCI_VID_GETDEVCAPS_VIDEO_Y_EXTENT (MCI_VID_ITEM_BASE+3)
2320 MCI_VID_GETDEVCAPS_IMAGE_X_EXTENT (MCI_VID_ITEM_BASE+4)
2321 MCI_VID_GETDEVCAPS_IMAGE_Y_EXTENT (MCI_VID_ITEM_BASE+5)
2322 MCI_VID_GETDEVCAPS_MAX_WINDOWS (MCI_VID_ITEM_BASE+6)
2323 MCI_VID_GETDEVCAPS_CAN_FREEZE (MCI_VID_ITEM_BASE+7)
2324 MCI_VID_GETDEVCAPS_OVERLAY_GRAPHICS (MCI_VID_ITEM_BASE+8)
2325
2326 MCI_VID_GETDEVCAPS_CAN_REVERSE (MCI_VID_ITEM_BASE+9)
2327 MCI_VID_GETDEVCAPS_FAST_RATE (MCI_VID_ITEM_BASE+10)
2328 MCI_VID_GETDEVCAPS_SLOW_RATE (MCI_VID_ITEM_BASE+11)
2329 MCI_VID_GETDEVCAPS_NORMAL_RATE (MCI_VID_ITEM_BASE+12)
2330 MCI_VID_GETDEVCAPS_MINIMUM_RATE (MCI_VID_ITEM_BASE+13)
2331 MCI_VID_GETDEVCAPS_MAXIMUM_RATE (MCI_VID_ITEM_BASE+14)
2332
2333 /*************************************************/
2334 /* MCI_GETDEVCAPS flag values for Videodisc */
2335 /*************************************************/
2336 MCI_VD_GETDEVCAPS_CLV $00000400L
2337 MCI_VD_GETDEVCAPS_CAV $00000800L
2338
2339 /*************************************************/
2340 /* MCI_GETDEVCAPS item values for Videodisc */
2341 /*************************************************/
2342
2343 MCI_VD_GETDEVCAPS_CAN_REVERSE MCI_VID_GETDEVCAPS_CAN_REVERSE
2344 MCI_VD_GETDEVCAPS_FAST_RATE MCI_VID_GETDEVCAPS_FAST_RATE
2345 MCI_VD_GETDEVCAPS_SLOW_RATE MCI_VID_GETDEVCAPS_SLOW_RATE
2346 MCI_VD_GETDEVCAPS_NORMAL_RATE MCI_VID_GETDEVCAPS_NORMAL_RATE
2347 MCI_VD_GETDEVCAPS_MINIMUM_RATE MCI_VID_GETDEVCAPS_MINIMUM_RATE
2348 MCI_VD_GETDEVCAPS_MAXIMUM_RATE MCI_VID_GETDEVCAPS_MAXIMUM_RATE
2349
2350 /************************************************/
2351 /* MCI_GETDEVCAPS item values for Digital Video */
2352 /************************************************/
2353 MCI_DGV_GETDEVCAPS_CAN_REVERSE MCI_VID_GETDEVCAPS_CAN_REVERSE
2354 MCI_DGV_GETDEVCAPS_CAN_STRETCH MCI_VID_GETDEVCAPS_CAN_STRETCH
2355 MCI_DGV_GETDEVCAPS_CAN_DISTORT MCI_VID_GETDEVCAPS_CAN_DISTORT
2356 MCI_DGV_GETDEVCAPS_FAST_RATE MCI_VID_GETDEVCAPS_FAST_RATE
2357 MCI_DGV_GETDEVCAPS_SLOW_RATE MCI_VID_GETDEVCAPS_SLOW_RATE
2358 MCI_DGV_GETDEVCAPS_NORMAL_RATE MCI_VID_GETDEVCAPS_NORMAL_RATE
2359 MCI_DGV_GETDEVCAPS_MINIMUM_RATE MCI_VID_GETDEVCAPS_MINIMUM_RATE
2360 MCI_DGV_GETDEVCAPS_MAXIMUM_RATE MCI_VID_GETDEVCAPS_MAXIMUM_RATE
2361 MCI_DGV_GETDEVCAPS_VIDEO_X_EXTENT MCI_VID_GETDEVCAPS_VIDEO_X_EXTENT
2362 MCI_DGV_GETDEVCAPS_VIDEO_Y_EXTENT MCI_VID_GETDEVCAPS_VIDEO_Y_EXTENT
2363 MCI_DGV_GETDEVCAPS_IMAGE_X_EXTENT MCI_VID_GETDEVCAPS_IMAGE_X_EXTENT
2364 MCI_DGV_GETDEVCAPS_IMAGE_Y_EXTENT MCI_VID_GETDEVCAPS_IMAGE_Y_EXTENT
2365 MCI_DGV_GETDEVCAPS_MAX_WINDOWS MCI_VID_GETDEVCAPS_MAX_WINDOWS
2366 MCI_DGV_GETDEVCAPS_OVERLAY_GRAPHICS MCI_VID_GETDEVCAPS_OVERLAY_GRAPHICS
2367 MCI_DGV_GETDEVCAPS_HAS_TUNER (MCI_DGV_ITEM_BASE)
2368 MCI_DGV_GETDEVCAPS_HAS_TELETEX (MCI_DGV_ITEM_BASE+1)
2369 MCI_DGV_GETDEVCAPS_HAS_AFC (MCI_DGV_ITEM_BASE+2)
2370
2371 /*************************************************/
2372 /* MCI_GETDEVCAPS item values for Video Overlay */
2373 /*************************************************/
2374 MCI_OVLY_GETDEVCAPS_CAN_STRETCH MCI_VID_GETDEVCAPS_CAN_STRETCH
2375 MCI_OVLY_GETDEVCAPS_CAN_DISTORT MCI_VID_GETDEVCAPS_CAN_DISTORT
2376 MCI_OVLY_GETDEVCAPS_VIDEO_X_EXTENT MCI_VID_GETDEVCAPS_VIDEO_X_EXTENT
2377 MCI_OVLY_GETDEVCAPS_VIDEO_Y_EXTENT MCI_VID_GETDEVCAPS_VIDEO_Y_EXTENT
2378 MCI_OVLY_GETDEVCAPS_IMAGE_X_EXTENT MCI_VID_GETDEVCAPS_IMAGE_X_EXTENT
2379 MCI_OVLY_GETDEVCAPS_IMAGE_Y_EXTENT MCI_VID_GETDEVCAPS_IMAGE_Y_EXTENT
2380 MCI_OVLY_GETDEVCAPS_MAX_WINDOWS MCI_VID_GETDEVCAPS_MAX_WINDOWS
2381 MCI_OVLY_GETDEVCAPS_CAN_FREEZE MCI_VID_GETDEVCAPS_CAN_FREEZE
2382 MCI_OVLY_GETDEVCAPS_OVERLAY_GRAPHICS MCI_VID_GETDEVCAPS_OVERLAY_GRAPHICS
2383
2384
2385 MCI_PREROLL_NOTIFIED $00000001L
2386 MCI_PREROLL_DETERMINISTIC $00000002L
2387 MCI_PREROLL_NONE $00000003L
2388
2389/*********************************************************************/
2390/* parameter structure for the MCI_GETDEVCAPS message */
2391/*********************************************************************/
2392typedef struct _MCI_GETDEVCAPS_PARMS {
2393 HWND hwndCallback; /* PM window handle for MCI notify message */
2394 ULONG ulReturn; /* Return field */
2395 ULONG ulItem; /* Item field for GETDEVCAPS item to query */
2396 USHORT usMessage; /* Field to hold MCI message to query */
2397 USHORT usReserved0; /* Reserved field */
2398} MCI_GETDEVCAPS_PARMS;
2399typedef MCI_GETDEVCAPS_PARMS * PMCI_GETDEVCAPS_PARMS;
2400
2401/*********************************************************************/
2402/* parameter structure for the MCI_WAVE_GETDEVCAPS */
2403/*********************************************************************/
2404typedef struct _MCI_WAVE_GETDEVCAPS_PARMS {
2405 HWND hwndCallback; /* PM window handle for MCI notify message */
2406 ULONG ulReturn; /* Return field */
2407 ULONG ulItem; /* Item field for GETDEVCAPS item to query */
2408 USHORT usMessage; /* Field to hold MCI message to query */
2409 USHORT usReserved0; /* Reserved field */
2410 ULONG ulLength; /* Length of structure in ULONGS */
2411 ULONG ulBitsPerSample; /* Number of Bits per Sample */
2412 ULONG ulFormatTag; /* Format Tag */
2413 ULONG ulSamplesPerSec; /* Sampling Rate */
2414 ULONG ulChannels; /* Number of channels */
2415 ULONG ulFormatMode; /* Either MCI_RECORD or MCI_PLAY */
2416} MCI_WAVE_GETDEVCAPS_PARMS;
2417typedef MCI_WAVE_GETDEVCAPS_PARMS * PMCI_WAVE_GETDEVCAPS_PARMS;
2418
2419/*********************************************************************/
2420/* potential values for the ulValue field of MCI_AMP_GETDEVCAPS */
2421/*********************************************************************/
2422 MCI_AMP_CAN_SET_MONITOR MCI_AMP_SET_MONITOR
2423 MCI_AMP_CAN_SET_BALANCE MCI_AMP_SET_BALANCE
2424 MCI_AMP_CAN_SET_ALC MCI_AMP_SET_ALC
2425 MCI_AMP_CAN_SET_MONITOR MCI_AMP_SET_MONITOR
2426 MCI_AMP_CAN_SET_CROSSOVER MCI_AMP_SET_CROSSOVER
2427 MCI_AMP_CAN_SET_LOUDNESS MCI_AMP_SET_LOUDNESS
2428 MCI_AMP_CAN_SET_MUTE MCI_AMP_SET_MUTE
2429 MCI_AMP_CAN_SET_REVERB MCI_AMP_SET_REVERB
2430 MCI_AMP_CAN_SET_STEREOENHANCE MCI_AMP_SET_STEREOENHANCE
2431 MCI_AMP_CAN_SET_CUSTOM1 MCI_AMP_SET_CUSTOM1
2432 MCI_AMP_CAN_SET_CUSTOM2 MCI_AMP_SET_CUSTOM2
2433 MCI_AMP_CAN_SET_CUSTOM3 MCI_AMP_SET_CUSTOM3
2434 MCI_AMP_CAN_SET_LRVOLUME MCI_AMP_SET_LRVOLUME
2435 MCI_AMP_CAN_SET_BASS MCI_AMP_SET_BASS
2436 MCI_AMP_CAN_SET_MID MCI_AMP_SET_MID
2437 MCI_AMP_CAN_SET_TREBLE MCI_AMP_SET_TREBLE
2438 MCI_AMP_CAN_SET_PITCH MCI_AMP_SET_PITCH
2439 MCI_AMP_CAN_SET_GAIN MCI_AMP_SET_GAIN
2440 MCI_AMP_CAN_SET_CHORUS MCI_AMP_SET_CHORUS
2441 MCI_AMP_CAN_SET_VOLUME MCI_AMP_SET_VOLUME
2442
2443
2444/*********************************************************************/
2445/* potential values for the ulExtended field of MCI_AMP_GETDEVCAPS_PARMS*/
2446/*********************************************************************/
2447 MCI_MIXER_LINE $00000001L
2448
2449/*********************************************************************/
2450/* parameter structure for the MCI_AMP_GETDEVCAPS */
2451/*********************************************************************/
2452typedef struct _MCI_AMP_GETDEVCAPS_PARMS {
2453 ULONG hwndCallback; /* PM window handle for MCI notify message */
2454 ULONG ulReturn; /* Return field */
2455 ULONG ulItem; /* Item field for GETDEVCAPS item to query */
2456 USHORT usMessage; /* Field to hold MCI message to query */
2457 USHORT usReserved0; /* Reserved field */
2458 ULONG ulLength; /* Length of structure in ULONGS */
2459 ULONG ulValue; /* Value to determine caps */
2460 ULONG ulAttribute; /* Flags to modified the extended parms */
2461 ULONG ulExtended; /* Extended flags field */
2462} MCI_AMP_GETDEVCAPS_PARMS;
2463typedef MCI_AMP_GETDEVCAPS_PARMS * PMCI_AMP_GETDEVCAPS_PARMS;
2464
2465/*********************************************************************/
2466/* values for the ulFlags field of MCI_MIXEVENT_PARMS */
2467/*********************************************************************/
2468 MCI_MIX_ATTRIBUTE $00000001L
2469 MCI_MIX_CONNECTOR $00000002L
2470
2471/*********************************************************************/
2472/* values for the lParam field for mix_notify */
2473/*********************************************************************/
2474
2475 MCI_MIXNOTIFY_ON $00000004L
2476 MCI_MIXNOTIFY_OFF $00000008L
2477
2478/*********************************************************************/
2479/* value to indicate type of MM_MCIEVENT */
2480/*********************************************************************/
2481
2482 MCI_MIXEVENT $00000001L
2483
2484
2485
2486/*********************************************************************/
2487/* parameter structure for the MCI_MIXEVENT_PARMS */
2488/*********************************************************************/
2489typedef struct _MCI_MIXEVENT_PARMS
2490 {
2491 ULONG ulLength; /* Length of struct */
2492 HWND hwndMixer; /* window to inform of mixer changes */
2493 ULONG ulFlags; /* Either MCI_MIX_ATTRIBUTE */
2494 /* or MCI_MIX_CONNECTOR */
2495 USHORT usDeviceID; /* device id to notify of the change */
2496 ULONG ulDeviceType; /* Device Type which generated the change */
2497 ULONG ulDeviceOrdinal; /* Ordinal of device Type */
2498 ULONG ulAttribute; /* Attribute that changed(volume, bass etc.) */
2499 ULONG ulValue; /* new value of the attribute which changed */
2500 ULONG ulConnectorType; /* Connector Type */
2501 ULONG ulConnectorIndex;/* Connector Index */
2502 ULONG ulConnStatus; /* Is connector enabled/disabled. */
2503
2504 } MCI_MIXEVENT_PARMS;
2505
2506typedef MCI_MIXEVENT_PARMS *PMCI_MIXEVENT_PARMS;
2507
2508
2509/*********************************************************************/
2510/* flag values for the MCI_GETIMAGEBUFFER and MCI_SETIMAGEBUFFER msg */
2511/* $000$X00 are reserved for MCI_GETIMAGEBUFFER and */
2512/* MCI_SETIMAGEBUFFER Flags */
2513/* MCI_CONVERT is defined by MCI_CAPTURE message as $00001000L */
2514/*********************************************************************/
2515 MCI_USE_HW_BUFFER $00000400L
2516 MCI_GET_HW_BUFFER_PTR $00000800L
2517
2518 /***************************************************/
2519 /* parm structure for MCI_GETIMAGEBUFFER and */
2520 /* MCI_SETIMAGEBUFFER messages */
2521 /***************************************************/
2522typedef struct _MCI_IMAGE_PARMS {
2523 HWND hwndCallback; /* PM window handle for MCI notify message */
2524 ULONG ulPelFormat; /* Format of the image data returned */
2525 USHORT usBitCount; /* Number of bitsimage data returned */
2526 USHORT usReserved0; /* Reserved field */
2527 ULONG ulImageCompression; /* */
2528 RECTL rect; /* Image area to get/set */
2529 PVOID pPelBuffer; /* Pel data buffer */
2530 ULONG ulPelBufferHeight; /* Number of rows in buffer */
2531 ULONG ulPelBufferWidth; /* Pels per row in buffer */
2532 ULONG ulBufLen; /* Pel data buffer length in bytes */
2533
2534} MCI_IMAGE_PARMS;
2535typedef MCI_IMAGE_PARMS *PMCI_IMAGE_PARMS;
2536
2537/*********************************************************************/
2538/* flags for the MCI_GETIMAGEPALETTE message */
2539/* $000$X00 are reserved for MCI_GETIMAGEPALETTE flags */
2540/*********************************************************************/
2541 MCI_FIND_BEST_REGISTERED $00000100L
2542 MCI_QUERY_REGISTERED_MAP $00000200L
2543 MCI_QUERY_REGISTERED_MAP_SIZE $00000400L
2544
2545
2546 /***************************************************/
2547 /* parameter structure for MCI_GETIMAGEPALETTE and */
2548 /* MCI_SETIMAGEPALETTE messages */
2549 /***************************************************/
2550typedef struct _MCI_PALETTE_PARMS {
2551 HWND hwndCallback; /* PM window handle for MCI notify message */
2552 USHORT usRegisteredMap; /* Id of the palette from the registed color */
2553 /* map */
2554 USHORT usReserved0; /* Reserved field */
2555 ULONG ulPalEntries; /* size of the palette returned */
2556 PVOID pPalette; /* pointer to the palette */
2557} MCI_PALETTE_PARMS;
2558typedef MCI_PALETTE_PARMS *PMCI_PALETTE_PARMS;
2559
2560
2561/*********************************************************************/
2562/* Parameter structure for the MCI_GETTOC message */
2563/*********************************************************************/
2564typedef struct _MCI_TOC_REC {
2565 BYTE TrackNum; /* Returned Track Number */
2566 ULONG ulStartAddr; /* Starting address of the track in MMTIME format */
2567 ULONG ulEndAddr; /* Ending address of the track in MMTIME format */
2568 BYTE Control; /* Track Control information */
2569 USHORT usCountry; /* Country */
2570 ULONG ulOwner; /* Owner */
2571 ULONG ulSerialNum; /* Serial Number */
2572} MCI_TOC_REC;
2573typedef MCI_TOC_REC *PTOCREC;
2574
2575typedef struct _MCI_TOC_PARMS {
2576 HWND hwndCallback; /* PM window handle for MCI notify message */
2577 PTOCREC pBuf; /* Pointer to array MCI_TOC_REC structures to */
2578 /* be filled in by the mci device */
2579 ULONG ulBufSize; /* Size of the array */
2580} MCI_TOC_PARMS;
2581typedef MCI_TOC_PARMS * PMCI_TOC_PARMS;
2582
2583/*********************************************************************/
2584/* parameters for the MCI_GROUP message */
2585/* $0$XXX00 are reserved for MCI_GROUP flags */
2586/*********************************************************************/
2587 MCI_SYNCHRONIZE $00000100L
2588 MCI_NOPIECEMEAL $00000200L
2589 MCI_GROUP_MAKE $00000400L
2590 MCI_GROUP_DELETE $00000800L
2591 MCI_GROUP_ALIAS $00001000L
2592 MCI_GROUP_MASTER $00002000L
2593
2594typedef struct _MCI_GROUP_PARMS {
2595 HWND hwndCallback; /* PM window handle for MCI notify message. */
2596 USHORT usGroupID; /* GroupID */
2597 USHORT usReserved0; /* RESERVED */
2598 ULONG ulStructLength; /* Length of Structure in ULONGS. */
2599 USHORT usMasterID; /* ID of Master device in Synchrounous groups. */
2600 USHORT usReserved1; /* RESERVED */
2601 PSZ pszGroupAlias; /* Pointer to Alias Name. */
2602 ULONG ulNumDevices; /* Number of Devices in group. */
2603 PULONG paulDeviceID; /* Array of Device ids in the group. */
2604} MCI_GROUP_PARMS;
2605typedef MCI_GROUP_PARMS *PMCI_GROUP_PARMS;
2606
2607
2608/*********************************************************************/
2609/* flags for the MCI_INFO message */
2610/* $0000$00 are reserved for MCI_INFO flags */
2611/*********************************************************************/
2612 MCI_INFO_PRODUCT $00000100L
2613 MCI_INFO_FILE $00000200L
2614
2615 /************************************************/
2616 /* CD Audio MCI_INFO */
2617 /************************************************/
2618 MCI_CD_INFO_ID $00010000L
2619 MCI_CD_INFO_UPC $00020000L
2620
2621 /************************************************/
2622 /* Videodisc MCI_INFO */
2623 /************************************************/
2624 MCI_VD_INFO_LABEL $00001000L
2625
2626 /************************************************/
2627 /* Digital Video MCI_INFO */
2628 /************************************************/
2629 MCI_DGV_INFO_VIDEO_FILE $00001000L
2630 MCI_DGV_INFO_IMAGE_FILE $00002000L
2631 MCI_DGV_INFO_REGION $00004000L
2632 MCI_DGV_INFO_REGION_TEXT $00008000L
2633 MCI_DGV_INFO_TEXT $00010000L
2634
2635 /************************************************/
2636 /* Video Overlay MCI_INFO */
2637 /************************************************/
2638 MCI_OVLY_INFO_TEXT $00010000L
2639
2640
2641typedef struct _MCI_INFO_PARMS {
2642 HWND hwndCallback; /* PM window handle for MCI notify message */
2643 PSZ pszReturn; /* Pointer to return buffer */
2644 ULONG ulRetSize; /* Return buffer size */
2645} MCI_INFO_PARMS;
2646typedef MCI_INFO_PARMS *PMCI_INFO_PARMS;
2647
2648/*********************************************************************/
2649/* parameters and flags for the MCI_LOAD message */
2650/* $0000$00 are reserved for MCI_LOAD flags */
2651/*********************************************************************/
2652typedef struct _MCI_LOAD_PARMS {
2653 HWND hwndCallback; /* PM window handle for MCI notify message */
2654 PSZ pszElementName; /* File name to loads */
2655} MCI_LOAD_PARMS;
2656typedef MCI_LOAD_PARMS *PMCI_LOAD_PARMS;
2657
2658/*********************************************************************/
2659/* parameters and flags for the MCI_MASTERAUDIO */
2660/* $00$XX00 are reserved for MCI_MASTERAUDIO flags */
2661/*********************************************************************/
2662 MCI_ON $00000100L
2663 MCI_OFF $00000200L
2664 MCI_HEADPHONES $00000400L
2665 MCI_SPEAKERS $00000800L
2666 MCI_MASTERVOL $00001000L
2667 MCI_SAVESETTING $00002000L
2668 MCI_QUERYSAVEDSETTING $00004000L
2669 MCI_QUERYCURRENTSETTING $00008000L
2670
2671
2672typedef struct _MCI_MASTERAUDIO_PARMS {
2673 HWND hwndDummyCallback; /* Notify not allowed for this message */
2674 ULONG ulReturn; /* Return field for query information */
2675 ULONG ulMasterVolume; /* Master volume field */
2676} MCI_MASTERAUDIO_PARMS;
2677typedef MCI_MASTERAUDIO_PARMS *PMCI_MASTERAUDIO_PARMS;
2678
2679/*********************************************************************/
2680/* parameters and flags for the MCI_OPEN message */
2681/* $000$X00 are reserved for MCI_OPEN flags */
2682/*********************************************************************/
2683 MCI_OPEN_ELEMENT $00000100L
2684 MCI_OPEN_ALIAS $00000200L
2685 MCI_OPEN_ELEMENT_ID $00000400L
2686 MCI_OPEN_PLAYLIST $00000800L
2687 MCI_OPEN_TYPE_ID $00001000L
2688 MCI_OPEN_SHAREABLE $00002000L
2689 MCI_OPEN_MMIO $00004000L
2690 MCI_READONLY $00008000L
2691
2692 /***************************************************/
2693 /* parameters and flags for the MCI_OPEN message */
2694 /* Digital Video, Video Overlay specific */
2695 /***************************************************/
2696 MCI_VID_OPEN_PARENT $01000000L
2697 MCI_DGV_OPEN_PARENT MCI_VID_OPEN_PARENT
2698 MCI_OVLY_OPEN_PARENT MCI_VID_OPEN_PARENT
2699
2700typedef struct _MCI_OPEN_PARMS {
2701 HWND hwndCallback; /* PM window handle for MCI notify message */
2702 USHORT usDeviceID; /* Device ID returned to user */
2703 USHORT usReserved0; /* Reserved */
2704 PSZ pszDeviceType; /* Device name from SYSTEM.INI */
2705 PSZ pszElementName; /* Typically a file name or NULL */
2706 PSZ pszAlias; /* Optional device alias */
2707} MCI_OPEN_PARMS;
2708typedef MCI_OPEN_PARMS *PMCI_OPEN_PARMS;
2709
2710 /**********************************************************/
2711 /* parameters for the AMP MCI_OPEN message */
2712 /**********************************************************/
2713typedef struct _MCI_AMP_OPEN_PARMS {
2714 HWND hwndCallback; /* PM window handle for MCI notify message */
2715 USHORT usDeviceID; /* Device ID returned to user */
2716 USHORT usReserved0; /* Reserved field */
2717 PSZ pszDeviceType; /* Device name from SYSTEM.INI */
2718 PSZ pszElementName; /* Typically a file name or NULL */
2719 PSZ pszAlias; /* Optional device alias */
2720 PVOID pDevDataPtr; /* Pointer to device data */
2721} MCI_AMP_OPEN_PARMS;
2722typedef MCI_AMP_OPEN_PARMS *PMCI_AMP_OPEN_PARMS;
2723
2724 /**********************************************************/
2725 /* parameters for MCI_OPEN message for video devices */
2726 /**********************************************************/
2727
2728typedef struct _MCI_VID_OPEN_PARMS{
2729 HWND hwndCallback; /* PM window handle for MCI notify message */
2730 USHORT usDeviceID; /* Device ID returned to user */
2731 USHORT usReserved0; /* Reserved field */
2732 PSZ pszDeviceType; /* Device name from SYSTEM.INI */
2733 PSZ pszElementName; /* Typically a file name or NULL */
2734 PSZ pszAlias; /* Optional device alias */
2735 HWND hwndParent; /* Parent window handle */
2736} MCI_VID_OPEN_PARMS;
2737
2738typedef MCI_VID_OPEN_PARMS MCI_DGV_OPEN_PARMS;
2739typedef MCI_DGV_OPEN_PARMS *PMCI_DGV_OPEN_PARMS;
2740
2741typedef MCI_VID_OPEN_PARMS MCI_OVLY_OPEN_PARMS;
2742typedef MCI_OVLY_OPEN_PARMS *PMCI_OVLY_OPEN_PARMS;
2743
2744 /***************************************************/
2745 /* MCI_PLAY flag values for videodisc */
2746 /***************************************************/
2747 MCI_VD_PLAY_REVERSE $00001000L
2748 MCI_VD_PLAY_FAST $00002000L
2749 MCI_VD_PLAY_SPEED $00004000L
2750 MCI_VD_PLAY_SCAN $00008000L
2751 MCI_VD_PLAY_SLOW $00010000L
2752
2753 /***************************************************/
2754 /* MCI_PLAY flag values for digital video */
2755 /***************************************************/
2756 MCI_DGV_PLAY_REVERSE $00001000L
2757 MCI_DGV_PLAY_FAST $00002000L
2758 MCI_DGV_PLAY_SPEED $00004000L
2759 MCI_DGV_PLAY_SCAN $00008000L
2760 MCI_DGV_PLAY_SLOW $00010000L
2761 MCI_DGV_PLAY_REPEAT $00020000L
2762
2763typedef struct _MCI_PLAY_PARMS {
2764 HWND hwndCallback; /* PM window handle for MCI notify message */
2765 ULONG ulFrom; /* Play from this position */
2766 ULONG ulTo; /* Play to this position */
2767} MCI_PLAY_PARMS;
2768typedef MCI_PLAY_PARMS *PMCI_PLAY_PARMS;
2769
2770typedef struct _MCI_VD_PLAY_PARMS {
2771 HWND hwndCallback; /* PM window handle for MCI notify message */
2772 ULONG ulFrom; /* Play from this position */
2773 ULONG ulTo; /* Play to this position */
2774 ULONG ulFactor; /* Play at this speed factor */
2775} MCI_VD_PLAY_PARMS;
2776typedef MCI_VD_PLAY_PARMS *PMCI_VD_PLAY_PARMS;
2777
2778typedef struct _MCI_DGV_PLAY_PARMS {
2779 HWND hwndCallback; /* PM window handle for MCI notify message */
2780 ULONG ulFrom; /* Play from this position */
2781 ULONG ulTo; /* Play to this position */
2782 ULONG ulSpeed; /* Specifies the play rate in frames per second */
2783} MCI_DGV_PLAY_PARMS;
2784typedef MCI_DGV_PLAY_PARMS *PMCI_DGV_PLAY_PARMS;
2785
2786/*********************************************************************/
2787/* parameters for the MCI_PUT message */
2788/* $0000$00 are reserved for MCI_PUT flags */
2789/*********************************************************************/
2790 MCI_VID_PUT_RECT $00000100L
2791 MCI_VID_PUT_DESTINATION $00000200L
2792 MCI_VID_PUT_SOURCE $00000400L
2793 MCI_VID_PUT_WINDOW_MOVE $00000800L
2794 MCI_VID_PUT_WINDOW_SIZE $00001000L
2795
2796 MCI_DGV_PUT_RECT MCI_VID_PUT_RECT
2797 MCI_DGV_PUT_DESTINATION MCI_VID_PUT_DESTINATION
2798 MCI_DGV_PUT_SOURCE MCI_VID_PUT_SOURCE
2799 MCI_DGV_PUT_WINDOW_MOVE MCI_VID_PUT_WINDOW_MOVE
2800 MCI_DGV_PUT_WINDOW_SIZE MCI_VID_PUT_WINDOW_SIZE
2801 MCI_DGV_MONITOR $00010000L
2802 MCI_DGV_RECORD $00020000L
2803
2804 MCI_OVLY_PUT_RECT MCI_VID_PUT_RECT
2805 MCI_OVLY_PUT_DESTINATION MCI_VID_PUT_DESTINATION
2806 MCI_OVLY_PUT_SOURCE MCI_VID_PUT_SOURCE
2807 MCI_OVLY_PUT_WINDOW_MOVE MCI_VID_PUT_WINDOW_MOVE
2808 MCI_OVLY_PUT_WINDOW_SIZE MCI_VID_PUT_WINDOW_SIZE
2809
2810 /***************************************************/
2811 /* Rectangle parameters for MCI_PUT, MCI_WHERE, */
2812 /* MCI_FREEZE, and MCI_UNFREEZE */
2813 /***************************************************/
2814
2815typedef struct _MCI_VID_RECT_PARMS {
2816 HWND hwndCallback; /* PM window handle for MCI notify message */
2817 RECTL rc; /* rectangle array specifying the offset */
2818 /* and size of a rectangle */
2819} MCI_VID_RECT_PARMS;
2820
2821typedef MCI_VID_RECT_PARMS MCI_DGV_RECT_PARMS;
2822typedef MCI_DGV_RECT_PARMS *PMCI_DGV_RECT_PARMS;
2823
2824typedef MCI_VID_RECT_PARMS MCI_OVLY_RECT_PARMS;
2825typedef MCI_OVLY_RECT_PARMS *PMCI_OVLY_RECT_PARMS;
2826
2827/*********************************************************************/
2828/* parameters for the MCI_RECORD message */
2829/* $0000$00 are reserved for MCI_RECORD flags */
2830/*********************************************************************/
2831 MCI_RECORD_INSERT $00000100L
2832 MCI_RECORD_OVERWRITE $00000200L
2833
2834 MCI_DGV_RECORD_RECT $00000400L
2835
2836typedef struct _MCI_RECORD_PARMS {
2837 HWND hwndCallback; /* PM window handle for MCI notify message */
2838 ULONG ulFrom; /* Record from position */
2839 ULONG ulTo; /* Record to position */
2840} MCI_RECORD_PARMS;
2841typedef MCI_RECORD_PARMS *PMCI_RECORD_PARMS;
2842
2843/*********************************************************************/
2844/* parameters for the MCI_RELEASEDEVICE message */
2845/* $XXXXXX00 are reserved for MCI_RELEASEDEVICE message */
2846/*********************************************************************/
2847 MCI_RETURN_RESOURCE $00000100L
2848
2849/*********************************************************************/
2850/* parameters for the MCI_RESTORE message */
2851/* $000$X00 are reserved for MCI_RESTORE flags */
2852/* MCI_CONVERT is defined by MCI_CAPTURE message as $00001000L */
2853/*********************************************************************/
2854 MCI_RESTORE_SRC_RECT $00000100L
2855 MCI_RESTORE_DEST_RECT $00000200L
2856
2857typedef struct _MCI_RESTORE_PARMS {
2858 HWND hwndCallback; /* PM window handle for MCI notify message */
2859 RECTL SrcRect; /* Rectangle array specifying the source */
2860 /* area to be restored */
2861 RECTL DestRect; /* Rectangle array specifying the destination */
2862 /* area to be restored */
2863} MCI_RESTORE_PARMS;
2864typedef MCI_RESTORE_PARMS *PMCI_RESTORE_PARMS;
2865
2866/*********************************************************************/
2867/* parameters for the MCI_SAVE message */
2868/* $0000$00 are reserved for MCI_SAVE flags */
2869/*********************************************************************/
2870 MCI_SAVE_FILE $00000100L
2871
2872 /*************************************************/
2873 /* Digital Video MCI_SAVE */
2874 /*************************************************/
2875
2876 MCI_DGV_SAVE_VIDEO_FILE $00001000L
2877 MCI_DGV_SAVE_IMAGE_FILE $00002000L
2878
2879typedef struct _MCI_SAVE_PARMS {
2880 HWND hwndCallback; /* PM window handle for MCI notify message */
2881 PSZ pszFileName; /* Filename to save data to */
2882} MCI_SAVE_PARMS;
2883typedef MCI_SAVE_PARMS *PMCI_SAVE_PARMS;
2884
2885/*********************************************************************/
2886/* parameters for the MCI_SEEK message */
2887/* $0000$00 are reserved for MCI_SEEK flags */
2888/*********************************************************************/
2889 MCI_TO_START $00000100L
2890 MCI_TO_END $00000200L
2891
2892 /*************************************************/
2893 /* Digital Video MCI_SEEK */
2894 /*************************************************/
2895
2896 MCI_DGV_SEEK_TO_NEAREST_IFRAME $00100000L
2897
2898 /*************************************************/
2899 /* Videodisc MCI_SEEK */
2900 /*************************************************/
2901 MCI_VD_SEEK_REVERSE $00001000L
2902
2903typedef struct _MCI_SEEK_PARMS {
2904 HWND hwndCallback; /* PM window handle for MCI notify message */
2905 ULONG ulTo; /* Seek to this position */
2906} MCI_SEEK_PARMS;
2907typedef MCI_SEEK_PARMS *PMCI_SEEK_PARMS;
2908
2909/*********************************************************************/
2910/* Flags for the MCI_SET message */
2911/* $0$XXX00 are reserved for MCI_SET flags */
2912/*********************************************************************/
2913 MCI_SET_ITEM $00000100L
2914 MCI_SET_ON $00000200L
2915 MCI_SET_OFF $00000400L
2916 MCI_SET_VIDEO $00000800L
2917 MCI_SET_AUDIO $00001000L
2918 MCI_SET_DOOR_OPEN $00002000L
2919 MCI_SET_DOOR_CLOSED $00004000L
2920 MCI_SET_SPEED_FORMAT $00008000L
2921 MCI_SET_TIME_FORMAT $00010000L
2922 MCI_SET_DOOR_LOCK $00020000L
2923 MCI_SET_DOOR_UNLOCK $00040000L
2924 MCI_SET_VOLUME $00080000L
2925 MCI_SET_ITEM_FOURCC $00100000L
2926 MCI_SET_REVERSE $00200000L
2927
2928/*******************************************************/
2929/* Values for the ulAudio field */
2930/*******************************************************/
2931 MCI_SET_AUDIO_ALL $00000000L
2932 MCI_SET_AUDIO_LEFT $00000001L
2933 MCI_SET_AUDIO_RIGHT $00000002L
2934
2935/*******************************************************/
2936/* MCI_SET flags for amp/mixer */
2937/*******************************************************/
2938 MCI_AMP_SET_BALANCE $00100000L
2939 MCI_AMP_SET_PITCH $00200000L
2940 MCI_AMP_SET_TREBLE $00400000L
2941 MCI_AMP_SET_BASS $00800000L
2942 MCI_AMP_SET_GAIN $01000000L
2943
2944 MCI_AMP_SET_ALC $00000004L
2945 MCI_AMP_SET_CROSSOVER $00000010L
2946 MCI_AMP_SET_LOUDNESS $00000020L
2947 MCI_AMP_SET_MUTE $00000040L
2948 MCI_AMP_SET_REVERB $00000080L
2949 MCI_AMP_SET_STEREOENHANCE $00000100L
2950 MCI_AMP_SET_CUSTOM1 $00000200L
2951 MCI_AMP_SET_CUSTOM2 $00000400L
2952 MCI_AMP_SET_CUSTOM3 $00000800L
2953 MCI_AMP_SET_LRVOLUME $00001000L
2954 MCI_AMP_SET_MID $00020000L
2955 MCI_AMP_SET_CHORUS $00004000L
2956 MCI_AMP_SET_VOLUME MCI_SET_VOLUME
2957
2958/*******************************************************/
2959/* General MCI_SET item values */
2960/*******************************************************/
2961 MCI_SET_MONITOR $00000001L
2962 MCI_SET_MONITOR_AUDIO $00000002L
2963 MCI_SET_MONITOR_VIDEO $00000003L
2964 MCI_SET_RECORD $00000004L
2965
2966/*******************************************************/
2967/* MCI_SET item values for amp/mixer */
2968/*******************************************************/
2969 MCI_AMP_SET_MONITOR MCI_SET_MONITOR_AUDIO
2970 MCI_AMP_SET_AUDIO $00000008
2971
2972
2973/*******************************************************/
2974/* MCI_SET flags for CDXA */
2975/*******************************************************/
2976 MCI_CDXA_SET_CHANNEL $01000000L
2977 MCI_CDXA_AUDIO_DEVICE $10000000L
2978 MCI_CDXA_AUDIO_BUFFER $02000000L
2979 MCI_CDXA_VIDEO_BUFFER $04000000L
2980 MCI_CDXA_DATA_BUFFER $08000000L
2981
2982/*******************************************************/
2983/* MCI_SET flags for videodisc */
2984/*******************************************************/
2985 MCI_VD_SET_ON MCI_SET_ON
2986 MCI_VD_SET_OFF MCI_SET_OFF
2987 MCI_VD_SET_VIDEO MCI_SET_VIDEO
2988 MCI_VD_SET_CHANNEL $00100000L
2989 MCI_VD_SET_DISPLAY $00200000L
2990
2991/*******************************************************/
2992/* Generic MCI_SET item values for video devices */
2993/*******************************************************/
2994 MCI_VID_SET_VIDEO_COMPRESSION MCI_VID_ITEM_BASE
2995 MCI_VID_SET_IMAGE_COMPRESSION (MCI_VID_ITEM_BASE+1)
2996 MCI_VID_SET_IMAGE_BITSPERPEL (MCI_VID_ITEM_BASE+2)
2997 MCI_VID_SET_IMAGE_PELFORMAT (MCI_VID_ITEM_BASE+3)
2998 MCI_VID_SET_BRIGHTNESS (MCI_VID_ITEM_BASE+4)
2999 MCI_VID_SET_CONTRAST (MCI_VID_ITEM_BASE+5)
3000 MCI_VID_SET_HUE (MCI_VID_ITEM_BASE+6)
3001 MCI_VID_SET_SATURATION (MCI_VID_ITEM_BASE+7)
3002 MCI_VID_SET_SHARPNESS (MCI_VID_ITEM_BASE+8)
3003 MCI_VID_SET_GREYSCALE (MCI_VID_ITEM_BASE+9)
3004 MCI_VID_SET_IMAGE_QUALITY (MCI_VID_ITEM_BASE+10)
3005 MCI_VID_SET_VIDEO_QUALITY (MCI_VID_ITEM_BASE+11)
3006 MCI_VID_SET_IMAGE_COMPRESSION_METHOD (MCI_VID_ITEM_BASE+12)
3007 MCI_VID_SET_MINIMUM_VIDEO_REFRESH_RATE (MCI_VID_ITEM_BASE+13)
3008 MCI_VID_SET_IMAGE_FILE_FORMAT (MCI_VID_ITEM_BASE+14)
3009 MCI_VID_SET_REF_INTERVAL (MCI_VID_ITEM_BASE+15)
3010 MCI_VID_SET_MAXDATARATE (MCI_VID_ITEM_BASE+16)
3011 MCI_VID_SET_VIDEO_FILE_FORMAT (MCI_VID_ITEM_BASE+17)
3012
3013/*******************************************************/
3014/* MCI_SET item values for video overlay */
3015/*******************************************************/
3016 MCI_OVLY_SET_IMAGE_COMPRESSION MCI_VID_SET_IMAGE_COMPRESSION
3017 MCI_OVLY_SET_IMAGE_BITSPERPEL MCI_VID_SET_IMAGE_BITSPERPEL
3018 MCI_OVLY_SET_IMAGE_PELFORMAT MCI_VID_SET_IMAGE_PELFORMAT
3019 MCI_OVLY_SET_BRIGHTNESS MCI_VID_SET_BRIGHTNESS
3020 MCI_OVLY_SET_CONTRAST MCI_VID_SET_CONTRAST
3021 MCI_OVLY_SET_HUE MCI_VID_SET_HUE
3022 MCI_OVLY_SET_SATURATION MCI_VID_SET_SATURATION
3023 MCI_OVLY_SET_SHARPNESS MCI_VID_SET_SHARPNESS
3024 MCI_OVLY_SET_GREYSCALE MCI_VID_SET_GREYSCALE
3025 MCI_OVLY_SET_IMAGE_QUALITY MCI_VID_SET_IMAGE_QUALITY
3026 MCI_OVLY_SET_IMAGE_COMPRESSION_METHOD MCI_VID_SET_IMAGE_COMPRESSION_METHOD
3027 MCI_OVLY_SET_MINIMUM_VIDEO_REFRESH_RATE MCI_VID_SET_MINIMUM_VIDEO_REFRESH_RATE
3028 MCI_OVLY_SET_IMAGE_FILE_FORMAT MCI_VID_SET_IMAGE_FILE_FORMAT
3029
3030/*******************************************************/
3031/* MCI_SET item values for digital video */
3032/*******************************************************/
3033 MCI_DGV_SET_VIDEO_COMPRESSION MCI_VID_SET_VIDEO_COMPRESSION
3034 MCI_DGV_SET_IMAGE_COMPRESSION MCI_VID_SET_IMAGE_COMPRESSION
3035 MCI_DGV_SET_IMAGE_BITSPERPEL MCI_VID_SET_IMAGE_BITSPERPEL
3036 MCI_DGV_SET_IMAGE_PELFORMAT MCI_VID_SET_IMAGE_PELFORMAT
3037 MCI_DGV_SET_BRIGHTNESS MCI_VID_SET_BRIGHTNESS
3038 MCI_DGV_SET_CONTRAST MCI_VID_SET_CONTRAST
3039 MCI_DGV_SET_HUE MCI_VID_SET_HUE
3040 MCI_DGV_SET_SATURATION MCI_VID_SET_SATURATION
3041 MCI_DGV_SET_SHARPNESS MCI_VID_SET_SHARPNESS
3042 MCI_DGV_SET_GREYSCALE MCI_VID_SET_GREYSCALE
3043 MCI_DGV_SET_IMAGE_QUALITY MCI_VID_SET_IMAGE_QUALITY
3044 MCI_DGV_SET_VIDEO_QUALITY MCI_VID_SET_VIDEO_QUALITY
3045 MCI_DGV_SET_IMAGE_COMPRESSION_METHOD MCI_VID_SET_IMAGE_COMPRESSION_METHOD
3046 MCI_DGV_SET_MONITOR MCI_SET_MONITOR
3047 MCI_DGV_SET_MINIMUM_VIDEO_REFRESH_RATE MCI_VID_SET_MINIMUM_VIDEO_REFRESH_RATE
3048 MCI_DGV_SET_IMAGE_FILE_FORMAT MCI_VID_SET_IMAGE_FILE_FORMAT
3049 MCI_DGV_SET_REF_INTERVAL MCI_VID_SET_REF_INTERVAL
3050 MCI_DGV_SET_MAXDATARATE MCI_VID_SET_MAXDATARATE
3051 MCI_DGV_SET_VIDEO_FILE_FORMAT MCI_VID_SET_VIDEO_FILE_FORMAT
3052
3053 MCI_DGV_SET_AUDIO_COMPRESSION MCI_DGV_ITEM_BASE
3054 MCI_DGV_SET_AUDIO_QUALITY (MCI_DGV_ITEM_BASE+1)
3055 MCI_DGV_SET_CHANNELS (MCI_DGV_ITEM_BASE+2)
3056 MCI_DGV_SET_BITSPERSAMPLE (MCI_DGV_ITEM_BASE+3)
3057 MCI_DGV_SET_SAMPLESPERSEC (MCI_DGV_ITEM_BASE+4)
3058 MCI_DGV_SET_FORMATTAG (MCI_DGV_ITEM_BASE+5)
3059 MCI_DGV_SET_BLOCKALIGN (MCI_DGV_ITEM_BASE+6)
3060 MCI_DGV_SET_AVGBYTESPERSEC (MCI_DGV_ITEM_BASE+7)
3061
3062 MCI_DGV_SET_VIDEO_COMPRESSION_SUBTYPE (MCI_DGV_ITEM_BASE+8)
3063 MCI_DGV_SET_VIDEO_RECORD_RATE (MCI_DGV_ITEM_BASE+9)
3064 MCI_DGV_SET_VIDEO_RECORD_FRAME_DURATION (MCI_DGV_ITEM_BASE+10)
3065 MCI_DGV_SET_RECORD_AUDIO (MCI_DGV_ITEM_BASE+11)
3066 MCI_DGV_SET_TRANSPARENT_COLOR (MCI_DGV_ITEM_BASE+12)
3067 MCI_DGV_SET_GRAPHIC_TRANSPARENT_COLOR (MCI_DGV_ITEM_BASE+12)
3068 MCI_DGV_SET_AUDIOSYNC (MCI_DGV_ITEM_BASE+13)
3069 MCI_DGV_SET_VIDEO_TRANSPARENT_COLOR (MCI_DGV_ITEM_BASE+14)
3070
3071/*******************************************************/
3072/* Video file format */
3073/*******************************************************/
3074 MCI_VID_FILE_FORMAT_AVI $20495641L
3075
3076/*******************************************************/
3077/* Audio/video/image compression types */
3078/*******************************************************/
3079 MCI_AUD_COMP_ADPCM4 $00000001L
3080 MCI_AUD_COMP_PCM8 $00000002L
3081
3082 MCI_VID_COMP_RTV_2_0 $00000101L
3083 MCI_VID_COMP_RTV_2_1 $00000102L
3084 MCI_VID_COMP_ULTI $49544C55L
3085 MCI_VID_COMP_RT21 $31325452L
3086 MCI_VID_COMP_NONE $20424944L /* This is 'DIB ' now. */
3087
3088 MCI_IMG_COMP_NONE $00000201L
3089 MCI_IMG_COMP_PIC9_1_0 $00000202L
3090 MCI_IMG_COMP_PIC16_1_0 $00000203L
3091 MCI_IMG_COMP_JPEG9 $00000204L
3092 MCI_IMG_COMP_JPEG9_1_0 MCI_IMG_COMP_JPEG9
3093 MCI_IMG_COMP_BMP_RLE4 $00000205L
3094 MCI_IMG_COMP_BMP_RLE8 $00000206L
3095 MCI_IMG_COMP_JPEGN $00000207L
3096
3097/*******************************************************/
3098/* PEL Formats (video/image) */
3099/*******************************************************/
3100 MCI_VID_PALETTE $00000001L
3101 MCI_VID_RGB $00000002L
3102 MCI_VID_YUV $00000003L
3103
3104 MCI_IMG_PALETTE MCI_VID_PALETTE
3105 MCI_IMG_RGB MCI_VID_RGB
3106 MCI_IMG_YUV MCI_VID_YUV
3107
3108
3109/*******************************************************/
3110/* Audio/video/image quality levels */
3111/*******************************************************/
3112 MCI_AUD_QUALITY_HIGH $00000001L
3113 MCI_AUD_QUALITY_MED $00000002L
3114 MCI_AUD_QUALITY_LOW $00000003L
3115
3116 MCI_VID_QUALITY_HIGH $00000101L
3117 MCI_VID_QUALITY_MED $00000102L
3118 MCI_VID_QUALITY_LOW $00000103L
3119 MCI_VID_QUALITY_BEST MCI_VID_QUALITY_HIGH
3120 MCI_VID_QUALITY_CDROM MCI_VID_QUALITY_MED
3121 MCI_VID_QUALITY_COMPACT MCI_VID_QUALITY_LOW
3122 MCI_VID_QUALITY_BETTER MCI_VID_QUALITY_MED
3123 MCI_VID_QUALITY_GOOD MCI_VID_QUALITY_LOW
3124
3125 MCI_IMG_QUALITY_HIGH $00000201L
3126 MCI_IMG_QUALITY_MED $00000202L
3127 MCI_IMG_QUALITY_LOW $00000203L
3128
3129/*******************************************************/
3130/* MCI_SET flags for wave audio */
3131/*******************************************************/
3132 MCI_WAVE_SET_SAMPLESPERSEC $01000000L
3133 MCI_WAVE_SET_AVGBYTESPERSEC $02000000L
3134 MCI_WAVE_SET_BLOCKALIGN $04000000L
3135 MCI_WAVE_SET_FORMATTAG $08000000L
3136 MCI_WAVE_SET_CHANNELS $10000000L
3137 MCI_WAVE_SET_BITSPERSAMPLE $80000000L
3138
3139/*******************************************************/
3140/* Wave format tag defines */
3141/*******************************************************/
3142 MCI_WAVE_FORMAT_PCM DATATYPE_WAVEFORM
3143 MCI_WAVE_FORMAT_ADPCM $0002L
3144 MCI_WAVE_FORMAT_IBM_CVSD $0005L
3145 MCI_WAVE_FORMAT_ALAW DATATYPE_RIFF_ALAW
3146 MCI_WAVE_FORMAT_MULAW DATATYPE_RIFF_MULAW
3147 MCI_WAVE_FORMAT_OKI_ADPCM $0010L
3148 MCI_WAVE_FORMAT_DVI_ADPCM $0011L
3149 MCI_WAVE_FORMAT_DIGISTD $0015L
3150 MCI_WAVE_FORMAT_DIGIFIX $0016L
3151 MCI_WAVE_FORMAT_AVC_ADPCM DATATYPE_ADPCM_AVC
3152 MCI_WAVE_FORMAT_IBM_ADPCM DATATYPE_ADPCM_AVC
3153 MCI_WAVE_FORMAT_IBM_MULAW DATATYPE_MULAW
3154 MCI_WAVE_FORMAT_IBM_ALAW DATATYPE_ALAW
3155 MCI_WAVE_FORMAT_CT_ADPCM DATATYPE_CT_ADPCM
3156 MCI_WAVE_FORMAT_MPEG1 DATATYPE_MPEG1AUDIO
3157
3158/*******************************************************/
3159/* MCI_SET flags for sequencer */
3160/*******************************************************/
3161 MCI_SEQ_SET_TEMPO $00100000L
3162 MCI_SEQ_SET_PORT $00200000L
3163 MCI_SEQ_ENABLE_PORT_MAPPER $00400000L
3164 MCI_SEQ_DISABLE_PORT_MAPPER $00800000L
3165 MCI_SEQ_SET_OFFSET $01000000L
3166 MCI_SEQ_SET_MASTER $02000000L
3167 MCI_SEQ_SET_SLAVE $04000000L
3168
3169 /**********************************************/
3170 /* SEQ time formats */
3171 /**********************************************/
3172 MCI_SEQ_SET_SMPTE_24 $00000100L
3173 MCI_SEQ_SET_SMPTE_25 $00000200L
3174 MCI_SEQ_SET_SMPTE_30 $00000300L
3175 MCI_SEQ_SET_SMPTE_30DROP $00000400L
3176 MCI_SEQ_SET_SONGPTR $00000500L
3177
3178 /**********************************************/
3179 /* SEQ synchronization types */
3180 /**********************************************/
3181 MCI_SEQ_MIDI $00000001L
3182 MCI_SEQ_SMPTE $00000002L
3183 MCI_SEQ_FILE $00000003L
3184 MCI_SEQ_NONE $00000004L
3185
3186 /**********************************************/
3187 /* SEQ PORT TYPES */
3188 /**********************************************/
3189 MCI_SET_NONE $10000000L
3190 MIDI_MAPPER $20000000L
3191 MCI_MIDI_MAPPER MIDI_MAPPER
3192
3193typedef struct _MCI_SET_PARMS {
3194 HWND hwndCallback; /* PM window handle for MCI notify message */
3195 ULONG ulTimeFormat; /* Time format to be used by the device */
3196 ULONG ulSpeedFormat; /* Speed format used by this device */
3197 ULONG ulAudio; /* Channel number for this operation */
3198 /* (MCI_SET_AUDIO_LEFT, MCI_SET_AUDIO_RIGHT, */
3199 /* MCI_SET_AUDIO_ALL) */
3200 ULONG ulLevel; /* Volume, treble or bass level as % of max. */
3201 ULONG ulOver; /* Delay time for vectored change in milliseconds */
3202 ULONG ulItem; /* Item field for set item flags */
3203 ULONG ulValue; /* Value associated with item flag */
3204} MCI_SET_PARMS;
3205typedef MCI_SET_PARMS *PMCI_SET_PARMS;
3206
3207typedef MCI_SET_PARMS MCI_AMP_SET_PARMS;
3208typedef MCI_AMP_SET_PARMS *PMCI_AMP_SET_PARMS;
3209
3210typedef MCI_SET_PARMS MCI_DGV_SET_PARMS;
3211typedef MCI_DGV_SET_PARMS *PMCI_DGV_SET_PARMS;
3212
3213typedef MCI_SET_PARMS MCI_OVLY_SET_PARMS;
3214typedef MCI_OVLY_SET_PARMS *PMCI_OVLY_SET_PARMS;
3215
3216typedef struct _MCI_CDXA_SET_PARMS {
3217 HWND hwndCallback; /* PM window handle for MCI notify message */
3218 ULONG ulTimeFormat; /* Time format to be used by the device */
3219 ULONG ulSpeedFormat; /* Speed format used by this device */
3220 ULONG ulAudio; /* Channel number for this operation */
3221 /* (MCI_SET_AUDIO_LEFT, MCI_SET_AUDIO_RIGHT, */
3222 /* MCI_SET_AUDIO_ALL) */
3223 ULONG ulLevel; /* Volume, treble or bass level as % of max. */
3224 ULONG ulOver; /* Delay time for vectored change in milliseconds */
3225 ULONG ulItem; /* Item field for set item flags */
3226 ULONG ulValue; /* Value associated with item flag */
3227 ULONG ulChannel; /* Channel number */
3228 PVOID pPlayList; /* Pointer to play list */
3229 ULONG ulPlayListSize; /* Play list size */
3230} MCI_CDXA_SET_PARMS;
3231typedef MCI_CDXA_SET_PARMS *PMCI_CDXA_SET_PARMS;
3232
3233typedef struct _MCI_VD_SET_PARMS {
3234 HWND hwndCallback; /* PM window handle for MCI notify message */
3235 ULONG ulTimeFormat; /* Time format to be used by the device */
3236 ULONG ulSpeedFormat; /* Speed format used by this device */
3237 ULONG ulAudio; /* Channel number for this operation */
3238 /* (MCI_SET_AUDIO_LEFT, MCI_SET_AUDIO_RIGHT, */
3239 /* MCI_SET_AUDIO_ALL) */
3240 ULONG ulLevel; /* Volume, treble or bass level as % of max. */
3241 ULONG ulOver; /* Delay time for vectored change in milliseconds */
3242 ULONG ulItem; /* Item field for set item flags */
3243 ULONG ulValue; /* Value associated with item flag */
3244 ULONG ulChannel; /* Videodisc channel */
3245} MCI_VD_SET_PARMS;
3246typedef MCI_VD_SET_PARMS *PMCI_VD_SET_PARMS;
3247
3248typedef struct _MCI_WAVE_SET_PARMS {
3249 HWND hwndCallback; /* PM window handle for MCI notify message */
3250 ULONG ulTimeFormat; /* Time format to be used by the device */
3251 ULONG ulSpeedFormat; /* Speed format used by this device */
3252 ULONG ulAudio; /* Channel number for this operation */
3253 /* (MCI_SET_AUDIO_LEFT, MCI_SET_AUDIO_RIGHT, */
3254 /* MCI_SET_AUDIO_ALL) */
3255 ULONG ulLevel; /* Volume, trebble or bass level as % of max. */
3256 ULONG ulOver; /* Delay time for vectored change in milliseconds */
3257 ULONG ulItem; /* Item field for set item flags */
3258 ULONG ulValue; /* Value associated with item flag */
3259 USHORT usInput; /* Channel for input */
3260 USHORT usReserved0; /* Reserved field */
3261 USHORT usOutput; /* Channel for output */
3262 USHORT usReserved1; /* Reserved field */
3263 USHORT usFormatTag; /* Format tag */
3264 USHORT usReserved2; /* Reserved field */
3265 USHORT usChannels; /* mono(1) or stereo(2) */
3266 USHORT usReserved3; /* Reserved field */
3267 ULONG ulSamplesPerSec; /* Samples per seconds */
3268 ULONG ulAvgBytesPerSec;/* Bytes per seconds */
3269 USHORT usBlockAlign; /* Block alignment of data */
3270 USHORT usReserved4; /* Reserved field */
3271 USHORT usBitsPerSample; /* Bits per seconds */
3272 USHORT usReserved5; /* Reserved field */
3273} MCI_WAVE_SET_PARMS;
3274typedef MCI_WAVE_SET_PARMS *PMCI_WAVE_SET_PARMS;
3275
3276typedef struct _MCI_SEQ_SET_PARMS {
3277 HWND hwndCallback; /* PM window handle for MCI notify message */
3278 ULONG ulTimeFormat; /* Time format to be used by the device */
3279 ULONG ulSpeedFormat; /* Speed format used by this device */
3280 ULONG ulAudio; /* Channel number for this operation */
3281 /* (MCI_SET_AUDIO_LEFT, MCI_SET_AUDIO_RIGHT, */
3282 /* MCI_SET_AUDIO_ALL) */
3283 ULONG ulLevel; /* Volume, trebble or bass level as % of max. */
3284 ULONG ulOver; /* Delay time for vectored change in milliseconds */
3285 ULONG ulItem; /* Item field for set item flags */
3286 ULONG ulValue; /* Value associated with item flag */
3287 ULONG ulTempo; /* Specified the tempo */
3288 ULONG ulPort; /* Output port */
3289 ULONG ulSlave; /* Unused field */
3290 ULONG ulMaster; /* Unused field */
3291 ULONG ulOffset; /* Specified the data offset */
3292} MCI_SEQ_SET_PARMS;
3293typedef MCI_SEQ_SET_PARMS *PMCI_SEQ_SET_PARMS;
3294
3295
3296/*********************************************************************/
3297/* parameters for the MCI_SET_CUEPOINT message */
3298/* $0000$00 are reserved for MCI_SET_CUEPOINT flags */
3299/*********************************************************************/
3300 MCI_SET_CUEPOINT_ON $00000100L
3301 MCI_SET_CUEPOINT_OFF $00000200L
3302
3303typedef struct _MCI_CUEPOINT_PARMS {
3304 HWND hwndCallback; /* PM window handle for MCI notify message */
3305 ULONG ulCuepoint; /* Specifies the cuepoint location */
3306 USHORT usUserParm; /* User parmameter returned on cuepoint */
3307 /* notify message */
3308 USHORT usReserved0; /* Reserved field */
3309} MCI_CUEPOINT_PARMS;
3310typedef MCI_CUEPOINT_PARMS *PMCI_CUEPOINT_PARMS;
3311
3312/*********************************************************************/
3313/* parameters for the MCI_SETIMAGEPALETTE message */
3314/* $00$XX00 are reserved for MCI_SETIMAGEPALETTE flags */
3315/*********************************************************************/
3316 MCI_SET_REGISTERED $00000100L
3317
3318/*********************************************************************/
3319/* flags and parameter structure for the MCI_SET_POSITION_ADVISE msg */
3320/* $0000$00 are reserved for MCI_SET_POSITION_ADVISE flags */
3321/*********************************************************************/
3322 MCI_SET_POSITION_ADVISE_ON $00000100L
3323 MCI_SET_POSITION_ADVISE_OFF $00000200L
3324
3325typedef struct _MCI_POSITION_PARMS {
3326 HWND hwndCallback; /* PM window handle for MCI notify message */
3327 ULONG ulUnits; /* Specifies position change notifiication */
3328 /* granularity */
3329 USHORT usUserParm; /* User parameter returned on position change */
3330 /* notification message. */
3331 USHORT Reserved0; /* Reserved field */
3332 ULONG Reserved1; /* Reserved field */
3333 } MCI_POSITION_PARMS;
3334typedef MCI_POSITION_PARMS *PMCI_POSITION_PARMS;
3335
3336/*********************************************************************/
3337/* parameter structure for the MCI_SET_SYNC_OFFSET message */
3338/*********************************************************************/
3339typedef struct _MCI_SYNC_OFFSET_PARMS {
3340 HWND hwndCallback; /* PM window handle for MCI notify message */
3341 ULONG ulOffset; /* Specifies the device media position offset */
3342 /* in the currently specified device units. */
3343} MCI_SYNC_OFFSET_PARMS;
3344typedef MCI_SYNC_OFFSET_PARMS *PMCI_SYNC_OFFSET_PARMS;
3345
3346/*********************************************************************/
3347/* flags for the MCI_SPIN message */
3348/* $0000$00 are reserved for MCI_SPIN flags */
3349/*********************************************************************/
3350 MCI_SPIN_UP $00000100L
3351 MCI_SPIN_DOWN $00000200L
3352
3353/*********************************************************************/
3354/* MCI_STATUS message flags */
3355/* $00$XX00 are reserved for MCI_STATUS flags */
3356/* MCI_VOLUME and MCI_VOLUME_DELAY are $00000100 and $00000200 */
3357/*********************************************************************/
3358 MCI_STATUS_ITEM $00000100L
3359 MCI_STATUS_START $00000200L
3360 MCI_STATUS_CONNECTOR $00000400L
3361
3362/*************************************************/
3363/* General MCI_STATUS item values */
3364/*************************************************/
3365 MCI_STATUS_CURRENT_TRACK $00000001L
3366 MCI_STATUS_LENGTH $00000002L
3367 MCI_STATUS_MODE $00000003L
3368 MCI_STATUS_NUMBER_OF_TRACKS $00000004L
3369 MCI_STATUS_POSITION $00000005L
3370 MCI_STATUS_POSITION_IN_TRACK $00000006L
3371 MCI_STATUS_MEDIA_PRESENT $00000007L
3372 MCI_STATUS_VOLUME $00000008L
3373 MCI_STATUS_READY $00000009L
3374 MCI_STATUS_TIME_FORMAT $0000000AL
3375 MCI_STATUS_SPEED_FORMAT $0000000BL
3376 MCI_STATUS_MONITOR $0000000CL
3377 MCI_STATUS_AUDIO $0000000DL
3378 MCI_STATUS_VIDEO $0000000EL
3379 MCI_STATUS_CLIPBOARD $0000000FL
3380 MCI_STATUS_CAN_PASTE $00000010L
3381 MCI_STATUS_CAN_REDO $00000020L
3382 MCI_STATUS_CAN_UNDO $00000030L
3383
3384 /*************************************************/
3385 /* ulValue field values for MCI_STATUS_AUDIO */
3386 /*************************************************/
3387 MCI_STATUS_AUDIO_ALL $00000000L
3388 MCI_STATUS_AUDIO_LEFT $00000001L
3389 MCI_STATUS_AUDIO_RIGHT $00000002L
3390
3391/*************************************************/
3392/* MCI_STATUS item values for amp/mixer */
3393/*************************************************/
3394 MCI_AMP_STATUS_PITCH MCI_AMP_ITEM_BASE
3395 MCI_AMP_STATUS_TREBLE (MCI_AMP_ITEM_BASE+1)
3396 MCI_AMP_STATUS_BASS (MCI_AMP_ITEM_BASE+2)
3397 MCI_AMP_STATUS_BALANCE (MCI_AMP_ITEM_BASE+3)
3398 MCI_AMP_STATUS_GAIN (MCI_AMP_ITEM_BASE+4)
3399 MCI_AMP_STATUS_MONITOR (MCI_AMP_ITEM_BASE+5)
3400 MCI_AMP_STATUS_MID (MCI_AMP_ITEM_BASE+6)
3401 MCI_AMP_STATUS_VOLUME MCI_STATUS_VOLUME
3402 MCI_AMP_STATUS_LOUDNESS (MCI_AMP_ITEM_BASE+7)
3403 MCI_AMP_STATUS_CROSSOVER (MCI_AMP_ITEM_BASE+8)
3404 MCI_AMP_STATUS_REVERB (MCI_AMP_ITEM_BASE+9)
3405 MCI_AMP_STATUS_ALC (MCI_AMP_ITEM_BASE+10)
3406 MCI_AMP_STATUS_CHORUS (MCI_AMP_ITEM_BASE+11)
3407 MCI_AMP_STATUS_CUSTOM1 (MCI_AMP_ITEM_BASE+12)
3408 MCI_AMP_STATUS_CUSTOM2 (MCI_AMP_ITEM_BASE+13)
3409 MCI_AMP_STATUS_CUSTOM3 (MCI_AMP_ITEM_BASE+14)
3410
3411
3412/*************************************************/
3413/* MCI_STATUS item values for cd audio */
3414/*************************************************/
3415 MCI_CD_STATUS_TRACK_TYPE MCI_CD_ITEM_BASE
3416 MCI_CD_STATUS_TRACK_COPYPERMITTED (MCI_CD_ITEM_BASE+1)
3417 MCI_CD_STATUS_TRACK_CHANNELS (MCI_CD_ITEM_BASE+2)
3418 MCI_CD_STATUS_TRACK_PREEMPHASIS (MCI_CD_ITEM_BASE+3)
3419
3420 /************************************************/
3421 /* return values for CD MCI_STATUS message with */
3422 /* MCI_CD_STATUS_TRACK_TYPE set */
3423 /************************************************/
3424 MCI_CD_TRACK_AUDIO $00000001L
3425 MCI_CD_TRACK_DATA $00000002L
3426 MCI_CD_TRACK_OTHER $00000003L
3427
3428/*************************************************/
3429/* MCI_STATUS item values for CDXA */
3430/*************************************************/
3431 MCI_CDXA_STATUS_CHANNEL MCI_CDXA_ITEM_BASE
3432
3433 /************************************************/
3434 /*returned from call for MCI_CDXA_STATUS_CHANNEL*/
3435 /************************************************/
3436 MCI_CDXA_NONE $00000000L
3437
3438
3439/*************************************************/
3440/* MCI_STATUS item values for sequencer */
3441/*************************************************/
3442 MCI_SEQ_STATUS_TEMPO MCI_SEQ_ITEM_BASE
3443 MCI_SEQ_STATUS_OFFSET (MCI_SEQ_ITEM_BASE+1)
3444 MCI_SEQ_STATUS_DIVTYPE (MCI_SEQ_ITEM_BASE+2)
3445 MCI_SEQ_STATUS_MASTER (MCI_SEQ_ITEM_BASE+3)
3446 MCI_SEQ_STATUS_PORT (MCI_SEQ_ITEM_BASE+4)
3447 MCI_SEQ_STATUS_SLAVE (MCI_SEQ_ITEM_BASE+5)
3448
3449 /**********************************************/
3450 /* Return value for current division type */
3451 /**********************************************/
3452 MCI_SEQ_DIV_PPQN $00000001L
3453 MCI_SEQ_DIV_SMPTE_24 $00000002L
3454 MCI_SEQ_DIV_SMPTE_25 $00000003L
3455 MCI_SEQ_DIV_SMPTE_30DROP $00000004L
3456 MCI_SEQ_DIV_SMPTE_30 $00000005L
3457
3458 /*************************************************/
3459 /* MCI_STATUS items for videodisc */
3460 /*************************************************/
3461 MCI_VD_STATUS_SPEED MCI_VD_ITEM_BASE
3462 MCI_VD_STATUS_FORWARD (MCI_VD_ITEM_BASE+1)
3463 MCI_VD_MEDIA_TYPE (MCI_VD_ITEM_BASE+2)
3464 MCI_VD_STATUS_SIDE (MCI_VD_ITEM_BASE+3)
3465 MCI_VD_STATUS_DISC_SIZE (MCI_VD_ITEM_BASE+4)
3466
3467 /***********************************************/
3468 /* return values for videodisc status command */
3469 /***********************************************/
3470 MCI_VD_SPEED_NORMAL $00000000L
3471 MCI_VD_SPEED_FAST $00000001L
3472 MCI_VD_SPEED_SLOW $00000002L
3473
3474/*************************************************/
3475/* MCI_STATUS items for wave audio */
3476/*************************************************/
3477 MCI_WAVE_STATUS_LEVEL MCI_WAVE_ITEM_BASE
3478 MCI_WAVE_STATUS_SAMPLESPERSEC (MCI_WAVE_ITEM_BASE+1)
3479 MCI_WAVE_STATUS_AVGBYTESPERSEC (MCI_WAVE_ITEM_BASE+2)
3480 MCI_WAVE_STATUS_BLOCKALIGN (MCI_WAVE_ITEM_BASE+3)
3481 MCI_WAVE_STATUS_FORMATTAG (MCI_WAVE_ITEM_BASE+4)
3482 MCI_WAVE_STATUS_CHANNELS (MCI_WAVE_ITEM_BASE+5)
3483 MCI_WAVE_STATUS_BITSPERSAMPLE (MCI_WAVE_ITEM_BASE+6)
3484
3485/*************************************************/
3486/* Common video MCI_STATUS items */
3487/*************************************************/
3488 MCI_VID_STATUS_HWND MCI_VID_ITEM_BASE
3489 MCI_VID_STATUS_AUDIO_COMPRESSION (MCI_VID_ITEM_BASE+1)
3490 MCI_VID_STATUS_VIDEO_COMPRESSION (MCI_VID_ITEM_BASE+2)
3491 MCI_VID_STATUS_IMAGE_COMPRESSION (MCI_VID_ITEM_BASE+3)
3492 MCI_VID_STATUS_AUDIO_QUALITY (MCI_VID_ITEM_BASE+4)
3493 MCI_VID_STATUS_VIDEO_QUALITY (MCI_VID_ITEM_BASE+5)
3494 MCI_VID_STATUS_IMAGE_QUALITY (MCI_VID_ITEM_BASE+6)
3495 MCI_VID_STATUS_IMAGE_BITSPERPEL (MCI_VID_ITEM_BASE+7)
3496 MCI_VID_STATUS_IMAGE_PELFORMAT (MCI_VID_ITEM_BASE+8)
3497 MCI_VID_STATUS_FORWARD (MCI_VID_ITEM_BASE+9)
3498 MCI_VID_STATUS_NORMAL_RATE (MCI_VID_ITEM_BASE+10)
3499 MCI_VID_STATUS_VIDEO_X_EXTENT (MCI_VID_ITEM_BASE+11)
3500 MCI_VID_STATUS_VIDEO_Y_EXTENT (MCI_VID_ITEM_BASE+12)
3501 MCI_VID_STATUS_IMAGE_X_EXTENT (MCI_VID_ITEM_BASE+13)
3502 MCI_VID_STATUS_IMAGE_Y_EXTENT (MCI_VID_ITEM_BASE+14)
3503 MCI_VID_STATUS_BRIGHTNESS (MCI_VID_ITEM_BASE+15)
3504 MCI_VID_STATUS_CONTRAST (MCI_VID_ITEM_BASE+16)
3505 MCI_VID_STATUS_HUE (MCI_VID_ITEM_BASE+17)
3506 MCI_VID_STATUS_SATURATION (MCI_VID_ITEM_BASE+18)
3507 MCI_VID_STATUS_GREYSCALE (MCI_VID_ITEM_BASE+19)
3508 MCI_VID_STATUS_SHARPNESS (MCI_VID_ITEM_BASE+20)
3509 MCI_VID_STATUS_SPEED (MCI_VID_ITEM_BASE+21)
3510 MCI_VID_STATUS_IMAGE_FILE_FORMAT (MCI_VID_ITEM_BASE+22)
3511 MCI_VID_STATUS_TRANSPARENT_TYPE (MCI_VID_ITEM_BASE+23)
3512 MCI_VID_STATUS_REF_INTERVAL (MCI_VID_ITEM_BASE+24)
3513 MCI_VID_STATUS_MAXDATARATE (MCI_VID_ITEM_BASE+25)
3514 MCI_VID_STATUS_VIDEO_FILE_FORMAT (MCI_VID_ITEM_BASE+26)
3515
3516 /*************************************************/
3517 /* Status Transparent Type returns */
3518 /* MCI_VID_PALETTE */
3519 /* MCI_VID_RGB */
3520 /* MCI_VID_YUV */
3521 /*************************************************/
3522 MCI_VID_STATUS_TRANSPARENT_COLOR (MCI_VID_ITEM_BASE+24)
3523
3524/*************************************************/
3525/* MCI_STATUS items for digital video */
3526/*************************************************/
3527 MCI_DGV_STATUS_HWND MCI_VID_STATUS_HWND
3528 MCI_DGV_STATUS_AUDIO_COMPRESSION MCI_VID_STATUS_AUDIO_COMPRESSION
3529 MCI_DGV_STATUS_VIDEO_COMPRESSION MCI_VID_STATUS_VIDEO_COMPRESSION
3530 MCI_DGV_STATUS_IMAGE_COMPRESSION MCI_VID_STATUS_IMAGE_COMPRESSION
3531 MCI_DGV_STATUS_AUDIO_QUALITY MCI_VID_STATUS_AUDIO_QUALITY
3532 MCI_DGV_STATUS_VIDEO_QUALITY MCI_VID_STATUS_VIDEO_QUALITY
3533 MCI_DGV_STATUS_IMAGE_QUALITY MCI_VID_STATUS_IMAGE_QUALITY
3534 MCI_DGV_STATUS_IMAGE_BITSPERPEL MCI_VID_STATUS_IMAGE_BITSPERPEL
3535 MCI_DGV_STATUS_IMAGE_PELFORMAT MCI_VID_STATUS_IMAGE_PELFORMAT
3536 MCI_DGV_STATUS_FORWARD MCI_VID_STATUS_FORWARD
3537 MCI_DGV_STATUS_NORMAL_RATE MCI_VID_STATUS_NORMAL_RATE
3538 MCI_DGV_STATUS_VIDEO_X_EXTENT MCI_VID_STATUS_VIDEO_X_EXTENT
3539 MCI_DGV_STATUS_VIDEO_Y_EXTENT MCI_VID_STATUS_VIDEO_Y_EXTENT
3540 MCI_DGV_STATUS_IMAGE_X_EXTENT MCI_VID_STATUS_IMAGE_X_EXTENT
3541 MCI_DGV_STATUS_IMAGE_Y_EXTENT MCI_VID_STATUS_IMAGE_Y_EXTENT
3542 MCI_DGV_STATUS_BRIGHTNESS MCI_VID_STATUS_BRIGHTNESS
3543 MCI_DGV_STATUS_CONTRAST MCI_VID_STATUS_CONTRAST
3544 MCI_DGV_STATUS_HUE MCI_VID_STATUS_HUE
3545 MCI_DGV_STATUS_SATURATION MCI_VID_STATUS_SATURATION
3546 MCI_DGV_STATUS_SPEED MCI_VID_STATUS_SPEED
3547 MCI_DGV_STATUS_SHARPNESS MCI_VID_STATUS_SHARPNESS
3548 MCI_DGV_STATUS_REF_INTERVAL MCI_VID_STATUS_REF_INTERVAL
3549 MCI_DGV_STATUS_MAXDATARATE MCI_VID_STATUS_MAXDATARATE
3550 MCI_DGV_STATUS_VIDEO_FILE_FORMAT MCI_VID_STATUS_VIDEO_FILE_FORMAT
3551
3552 MCI_DGV_STATUS_CHANNELS (MCI_DGV_ITEM_BASE+13)
3553 MCI_DGV_STATUS_BITSPERSAMPLE (MCI_DGV_ITEM_BASE+14)
3554 MCI_DGV_STATUS_SAMPLESPERSEC (MCI_DGV_ITEM_BASE+15)
3555 MCI_DGV_STATUS_FORMATTAG (MCI_DGV_ITEM_BASE+16)
3556 MCI_DGV_STATUS_BLOCKALIGN (MCI_DGV_ITEM_BASE+17)
3557 MCI_DGV_STATUS_AVGBYTESPERSEC (MCI_DGV_ITEM_BASE+18)
3558 MCI_DGV_STATUS_VIDEO_COMPRESSION_SUBTYPE (MCI_DGV_ITEM_BASE+19)
3559 MCI_DGV_STATUS_VIDEO_RECORD_RATE (MCI_DGV_ITEM_BASE+20)
3560 MCI_DGV_STATUS_VIDEO_RECORD_FRAME_DURATION (MCI_DGV_ITEM_BASE+21)
3561 MCI_DGV_STATUS_RECORD_AUDIO (MCI_DGV_ITEM_BASE+22)
3562 MCI_DGV_STATUS_TRANSPARENT_COLOR (MCI_DGV_ITEM_BASE+23)
3563 MCI_DGV_STATUS_GRAPHIC_TRANSPARENT_COLOR (MCI_DGV_ITEM_BASE+23) /* MUST BE SAME AS TRANSPARENT COLOR */
3564 MCI_DGV_STATUS_HWND_MONITOR (MCI_DGV_ITEM_BASE+24)
3565 MCI_DGV_STATUS_DROPPED_FRAME_PCT (MCI_DGV_ITEM_BASE+25)
3566 MCI_DGV_STATUS_AUDIOSYNC (MCI_DGV_ITEM_BASE+26)
3567 MCI_DGV_STATUS_AUDIOSYNC_DIRECTION (MCI_DGV_ITEM_BASE+27)
3568 MCI_DGV_STATUS_VIDEO_TRANSPARENT_COLOR (MCI_DGV_ITEM_BASE+28) /* MUST BE SAME AS TRANSPARENT COLOR */
3569 MCI_DGV_STATUS_TUNER_TV_CHANNEL (MCI_DGV_ITEM_BASE+29)
3570 MCI_DGV_STATUS_TUNER_LOW_TV_CHANNEL (MCI_DGV_ITEM_BASE+29)
3571 MCI_DGV_STATUS_TUNER_HIGH_TV_CHANNEL (MCI_DGV_ITEM_BASE+29)
3572 MCI_DGV_STATUS_TUNER_REGION (MCI_DGV_ITEM_BASE+30)
3573 MCI_DGV_STATUS_TUNER_FINETUNE (MCI_DGV_ITEM_BASE+31)
3574 MCI_DGV_STATUS_TUNER_FREQUENCY (MCI_DGV_ITEM_BASE+32)
3575 MCI_DGV_STATUS_TUNER_AUDIO_CHANNEL (MCI_DGV_ITEM_BASE+33)
3576 MCI_DGV_STATUS_TUNER_AFC (MCI_DGV_ITEM_BASE+34)
3577 MCI_DGV_STATUS_VALID_SIGNAL (MCI_DGV_ITEM_BASE+35)
3578
3579/*************************************************/
3580/* MCI_STATUS item values for video overlay */
3581/*************************************************/
3582 MCI_OVLY_STATUS_HWND MCI_VID_STATUS_HWND
3583 MCI_OVLY_STATUS_IMAGE_COMPRESSION MCI_VID_STATUS_IMAGE_COMPRESSION
3584 MCI_OVLY_STATUS_IMAGE_BITSPERPEL MCI_VID_STATUS_IMAGE_BITSPERPEL
3585 MCI_OVLY_STATUS_IMAGE_PELFORMAT MCI_VID_STATUS_IMAGE_PELFORMAT
3586 MCI_OVLY_STATUS_IMAGE_X_EXTENT MCI_VID_STATUS_IMAGE_X_EXTENT
3587 MCI_OVLY_STATUS_IMAGE_Y_EXTENT MCI_VID_STATUS_IMAGE_Y_EXTENT
3588 MCI_OVLY_STATUS_BRIGHTNESS MCI_VID_STATUS_BRIGHTNESS
3589 MCI_OVLY_STATUS_CONTRAST MCI_VID_STATUS_CONTRAST
3590 MCI_OVLY_STATUS_HUE MCI_VID_STATUS_HUE
3591 MCI_OVLY_STATUS_SATURATION MCI_VID_STATUS_SATURATION
3592 MCI_OVLY_STATUS_GREYSCALE MCI_VID_STATUS_GREYSCALE
3593 MCI_OVLY_STATUS_IMAGE_QUALITY MCI_VID_STATUS_IMAGE_QUALITY
3594 MCI_OVLY_STATUS_SHARPNESS MCI_VID_STATUS_SHARPNESS
3595 MCI_OVLY_STATUS_IMAGE_FILE_FORMAT MCI_VID_STATUS_IMAGE_FILE_FORMAT
3596 MCI_OVLY_STATUS_TRANSPARENT_TYPE MCI_VID_STATUS_TRANSPARENT_TYPE
3597 MCI_OVLY_STATUS_TRANSPARENT_COLOR MCI_VID_STATUS_TRANSPARENT_COLOR
3598
3599 /*************************************************/
3600 /* Status Mode return values */
3601 /*************************************************/
3602 MCI_MODE_NOT_READY $00000001L
3603 MCI_MODE_PAUSE $00000002L
3604 MCI_MODE_PLAY $00000003L
3605 MCI_MODE_STOP $00000004L
3606 MCI_MODE_RECORD $00000005L
3607 MCI_MODE_SEEK $00000006L
3608
3609 /*************************************************/
3610 /* Status Direction return values */
3611 /*************************************************/
3612 MCI_FORWARD $00000000L
3613 MCI_REVERSE $00000001L
3614
3615typedef struct _MCI_STATUS_PARMS {
3616 HWND hwndCallback; /* PM window handle for MCI notify message */
3617 ULONG ulReturn; /* Return field */
3618 ULONG ulItem; /* Item field for STATUS item to query */
3619 ULONG ulValue; /* Status value field (this used to be) */
3620 /* ulTrack but was changed in Rel 1.1 */
3621 /* to extend the status structure. */
3622 /* See the programming reference on when */
3623 /* ulValue is used and how... */
3624} MCI_STATUS_PARMS;
3625typedef MCI_STATUS_PARMS *PMCI_STATUS_PARMS;
3626
3627
3628typedef struct _MCI_CDXA_STATUS_PARMS {
3629 HWND hwndCallback; /* PM window handle for MCI notify message */
3630 ULONG ulReturn; /* Return field */
3631 ULONG ulItem; /* Item field for STATUS item to query */
3632 ULONG ulValue; /* Status value field (this used to be) */
3633 /* ulTrack but was changed in Rel 1.1 */
3634 /* to extend the status structure. */
3635 /* See the programming reference on when */
3636 /* ulValue is used and how... */
3637 ULONG ulChannel; /* Channel */
3638} MCI_CDXA_STATUS_PARMS;
3639typedef MCI_CDXA_STATUS_PARMS *PMCI_CDXA_STATUS_PARMS;
3640
3641/*********************************************************************/
3642/* flags and parameter structure for the MCI_STEP message */
3643/* $0000$00 are reserved for MCI_STEP flags */
3644/*********************************************************************/
3645 MCI_STEP_FRAMES $00000100L
3646 MCI_STEP_REVERSE $00000200L
3647
3648typedef struct _MCI_STEP_PARMS {
3649 HWND hwndCallback; /* PM window handle for MCI notify message */
3650 ULONG ulStep; /* amount to step in current time format */
3651} MCI_STEP_PARMS;
3652typedef MCI_STEP_PARMS *PMCI_STEP_PARMS;
3653
3654/*********************************************************************/
3655/* flags for the MCI_SYSINFO message */
3656/* $XXXXXX00 are reserved for MCI_SYSINFO flags */
3657/*********************************************************************/
3658 MCI_SYSINFO_QUANTITY $00000100L
3659 MCI_SYSINFO_OPEN $00000200L
3660 MCI_SYSINFO_NAME $00000400L
3661 MCI_SYSINFO_INSTALLNAME $00000800L
3662 MCI_SYSINFO_ITEM $00001000L
3663 MCI_SYSINFO_INI_LOCK $00002000L
3664
3665 /********************************************************/
3666 /* Extended SYSINFO functions */
3667 /********************************************************/
3668 MCI_SYSINFO_INSTALL_DRIVER $00000001L
3669 MCI_SYSINFO_QUERY_DRIVER $00000002L
3670 MCI_SYSINFO_DELETE_DRIVER $00000004L
3671 MCI_SYSINFO_SET_PARAMS $00000008L
3672 MCI_SYSINFO_QUERY_PARAMS $00000010L
3673 MCI_SYSINFO_SET_CONNECTORS $00000020L
3674 MCI_SYSINFO_QUERY_CONNECTORS $00000040L
3675 MCI_SYSINFO_SET_EXTENSIONS $00000080L
3676 MCI_SYSINFO_QUERY_EXTENSIONS $00000100L
3677 MCI_SYSINFO_SET_ALIAS $00000200L
3678 MCI_SYSINFO_QUERY_NAMES $00000400L
3679 MCI_SYSINFO_SET_DEFAULT $00000800L
3680 MCI_SYSINFO_QUERY_DEFAULT $00001000L
3681 MCI_SYSINFO_SET_TYPES $00002000L
3682 MCI_SYSINFO_QUERY_TYPES $00004000L
3683
3684 /********************************************************/
3685 /* Device Flags */
3686 /********************************************************/
3687 MCI_SYSINFO_DEV_CONTROLLABLE $00000001L
3688 MCI_SYSINFO_DEV_NONCONTROLLABLE $00000002L
3689 MCI_SYSINFO_DEVICESETTINGS $00000004L
3690
3691/*********************************************************************/
3692/* parameter structures for the MCI_SYSINFO message */
3693/*********************************************************************/
3694typedef struct _MCI_SYSINFO_PARMS {
3695 HWND hwndDummyCallback; /* NOTIFY not allowed for SYSINFO */
3696 PSZ pszReturn; /* Pointer to return buffer */
3697 ULONG ulRetSize; /* Return buffer size */
3698 ULONG ulNumber; /* Ordinal Number */
3699 USHORT usDeviceType; /* MCI device type number */
3700 USHORT usReserved0; /* Reserved field */
3701 ULONG ulItem; /* Used to indicate the MCI_SYSINFO */
3702 /* extended function to perform */
3703 PVOID pSysInfoParm;
3704} MCI_SYSINFO_PARMS;
3705typedef MCI_SYSINFO_PARMS *PMCI_SYSINFO_PARMS;
3706
3707typedef struct _MCI_SYSINFO_LOGDEVICE {
3708 CHAR szInstallName[MAX_DEVICE_NAME]; /* Device install name */
3709 USHORT usDeviceType; /* Device type number */
3710 ULONG ulDeviceFlag; /* Flag indicating whether device */
3711 /* device is controllable or not */
3712 CHAR szVersionNumber[MAX_VERSION_NUMBER]; /* INI file version number */
3713 CHAR szProductInfo[MAX_PRODINFO]; /* Textual product description */
3714 CHAR szMCDDriver[MAX_DEVICE_NAME]; /* MCI Driver dll name */
3715 CHAR szVSDDriver[MAX_DEVICE_NAME]; /* VSD dll name */
3716 CHAR szPDDName[MAX_PDD_NAME]; /* Device PDD name */
3717 CHAR szMCDTable[MAX_DEVICE_NAME]; /* Device type command table */
3718 CHAR szVSDTable[MAX_DEVICE_NAME]; /* Device specific command table */
3719 USHORT usShareType; /* Device sharing mode */
3720 CHAR szResourceName[MAX_DEVICE_NAME]; /* Resource name */
3721 USHORT usResourceUnits; /* Total resource units available */
3722 /* for this device */
3723 USHORT usResourceClasses; /* Number of resource classes for */
3724 /* this device */
3725 USHORT ausClassArray[MAX_CLASSES]; /* Maximum number of resource */
3726 /* units for each class */
3727 USHORT ausValidClassArray[MAX_CLASSES][MAX_CLASSES]; /* Valid class combinations */
3728} MCI_SYSINFO_LOGDEVICE;
3729typedef MCI_SYSINFO_LOGDEVICE *PMCI_SYSINFO_LOGDEVICE;
3730
3731
3732typedef struct _MCI_SYSINFO_DEVPARAMS {
3733 CHAR szInstallName[MAX_DEVICE_NAME]; /* Device install name */
3734 CHAR szDevParams[MAX_DEV_PARAMS]; /* Device specific parameters */
3735} MCI_SYSINFO_DEVPARAMS;
3736typedef MCI_SYSINFO_DEVPARAMS *PMCI_SYSINFO_DEVPARAMS;
3737
3738typedef struct _CONNECT {
3739 USHORT usConnectType; /* Connector type */
3740 CHAR szToInstallName[MAX_DEVICE_NAME]; /* Install name this connector */
3741 /* is connected to */
3742 USHORT usToConnectIndex; /* Connector index this connector */
3743 /* is connected to */
3744} CONNECT;
3745typedef CONNECT *PCONNECT;
3746
3747
3748typedef struct _MCI_SYSINFO_CONPARAMS {
3749 CHAR szInstallName[MAX_DEVICE_NAME]; /* Device install name */
3750 USHORT usNumConnectors; /* Number of device connectors */
3751 CONNECT ConnectorList[MAX_CONNECTORS]; /* Connector list array */
3752} MCI_SYSINFO_CONPARAMS;
3753typedef MCI_SYSINFO_CONPARAMS *PMCI_SYSINFO_CONPARAMS;
3754
3755typedef struct _MCI_SYSINFO_EXTENSION {
3756 CHAR szInstallName[MAX_DEVICE_NAME]; /* Device install name */
3757 USHORT usNumExtensions; /* Number of extensions */
3758 CHAR szExtension[MAX_EXTENSIONS][MAX_EXTENSION_NAME];
3759 /* Extension name array */
3760} MCI_SYSINFO_EXTENSION;
3761typedef MCI_SYSINFO_EXTENSION *PMCI_SYSINFO_EXTENSION;
3762
3763typedef struct _MCI_SYSINFO_ALIAS {
3764 CHAR szInstallName[MAX_DEVICE_NAME]; /* Device install name */
3765 CHAR szAliasName[MAX_ALIAS_NAME]; /* Alias name */
3766} MCI_SYSINFO_ALIAS;
3767typedef MCI_SYSINFO_ALIAS *PMCI_SYSINFO_ALIAS;
3768
3769typedef struct _MCI_SYSINFO_DEFAULTDEVICE {
3770 CHAR szInstallName[MAX_DEVICE_NAME]; /* Device install name */
3771 USHORT usDeviceType; /* Device type number */
3772} MCI_SYSINFO_DEFAULTDEVICE;
3773typedef MCI_SYSINFO_DEFAULTDEVICE *PMCI_SYSINFO_DEFAULTDEVICE;
3774
3775typedef struct _MCI_SYSINFO_QUERY_NAME {
3776 CHAR szInstallName[MAX_DEVICE_NAME]; /* Device install name */
3777 CHAR szLogicalName[MAX_DEVICE_NAME]; /* Logical device name */
3778 CHAR szAliasName[MAX_ALIAS_NAME]; /* Alias name */
3779 USHORT usDeviceType; /* Device type number */
3780 USHORT usDeviceOrd; /* Device type ordinal */
3781} MCI_SYSINFO_QUERY_NAME;
3782typedef MCI_SYSINFO_QUERY_NAME *PMCI_SYSINFO_QUERY_NAME;
3783
3784typedef struct _MCI_SYSINFO_TYPES {
3785 CHAR szInstallName[MAX_DEVICE_NAME]; /* Device install name */
3786 CHAR szTypes[MAX_TYPEBUFFER+1]; /* EA types */
3787} MCI_SYSINFO_TYPES;
3788typedef MCI_SYSINFO_TYPES *PMCI_SYSINFO_TYPES;
3789
3790
3791/*********************************************************************/
3792/* flags for the MCI_UNFREEZE message */
3793/* $0000$00 are reserved for MCI_UNFREEZE flags */
3794/*********************************************************************/
3795 MCI_OVLY_UNFREEZE_RECT $00000100L
3796 MCI_OVLY_UNFREEZE_RECT_OUTSIDE $00000200L
3797
3798/*********************************************************************/
3799/* flags for the MCI_WHERE message */
3800/* $000$X00 are reserved for MCI_WHERE flags */
3801/*********************************************************************/
3802 MCI_VID_WHERE_DESTINATION $00000100L
3803 MCI_VID_WHERE_SOURCE $00000200L
3804 MCI_VID_WHERE_WINDOW $00000400L
3805
3806 MCI_DGV_WHERE_DESTINATION MCI_VID_WHERE_DESTINATION
3807 MCI_DGV_WHERE_SOURCE MCI_VID_WHERE_SOURCE
3808 MCI_DGV_WHERE_WINDOW MCI_VID_WHERE_WINDOW
3809 MCI_DGV_WHERE_ADJUSTED $00000800L
3810
3811 MCI_OVLY_WHERE_DESTINATION MCI_VID_WHERE_DESTINATION
3812 MCI_OVLY_WHERE_SOURCE MCI_VID_WHERE_SOURCE
3813 MCI_OVLY_WHERE_WINDOW MCI_VID_WHERE_WINDOW
3814
3815/*********************************************************************/
3816/* flags and parameter structure for the MCI_WINDOW message */
3817/* $000$X00 are reserved for MCI_WINDOW flags */
3818/*********************************************************************/
3819 MCI_VID_WINDOW_HWND $00000100L
3820 MCI_VID_WINDOW_STATE $00000200L
3821 MCI_VID_WINDOW_TEXT $00000400L
3822 MCI_VID_WINDOW_DEFAULT $00000800L
3823
3824 MCI_DGV_WINDOW_HWND MCI_VID_WINDOW_HWND
3825 MCI_DGV_WINDOW_STATE MCI_VID_WINDOW_STATE
3826 MCI_DGV_WINDOW_TEXT MCI_VID_WINDOW_TEXT
3827 MCI_DGV_WINDOW_DEFAULT MCI_VID_WINDOW_DEFAULT
3828
3829 MCI_OVLY_WINDOW_HWND MCI_VID_WINDOW_HWND
3830 MCI_OVLY_WINDOW_STATE MCI_VID_WINDOW_STATE
3831 MCI_OVLY_WINDOW_TEXT MCI_VID_WINDOW_TEXT
3832 MCI_OVLY_WINDOW_DEFAULT MCI_VID_WINDOW_DEFAULT
3833
3834typedef struct _MCI_VID_WINDOW_PARMS {
3835 HWND hwndCallback; /* PM window handle for MCI notify message */
3836 HWND hwndDest; /* Handle to the client window used for */
3837 /* the destination of the video image */
3838 USHORT usCmdShow; /* Specifies how the window is displayed */
3839 USHORT usReserved1; /* Reserved */
3840 PSZ pszText; /* The text to use as the window caption */
3841 PSZ pszAlias; /* The window alias for the display window */
3842} MCI_VID_WINDOW_PARMS;
3843
3844typedef MCI_VID_WINDOW_PARMS MCI_DGV_WINDOW_PARMS;
3845typedef MCI_DGV_WINDOW_PARMS *PMCI_DGV_WINDOW_PARMS;
3846
3847typedef MCI_VID_WINDOW_PARMS MCI_OVLY_WINDOW_PARMS;
3848typedef MCI_OVLY_WINDOW_PARMS *PMCI_OVLY_WINDOW_PARMS;
3849
3850
3851/*********************************************************************/
3852/* flags and parameter structure for the MCI_TUNER message */
3853/*********************************************************************/
3854 MCI_DGV_AUDIO_CHANNEL $00010000L
3855 MCI_DGV_TV_CHANNEL $00020000L
3856 MCI_DGV_FREQUENCY $00040000L
3857 MCI_DGV_FINETUNE_PLUS $00080000L
3858 MCI_DGV_FINETUNE_MINUS $00100000L
3859 MCI_DGV_REGION $00200000L
3860 MCI_DGV_AFC_ON $00400000L
3861 MCI_DGV_AFC_OFF $00800000L
3862
3863typedef struct _MCI_DGV_TUNER_PARMS {
3864 HWND hwndCallback; /* PM window handle for MCI notify message */
3865 ULONG ulFrequency; /* Tuner Frequency */
3866 ULONG ulReserved0; /* Reserved 0 */
3867 ULONG ulTVChannel; /* TV Channel */
3868 LONG lFineTune; /* Fine tuning adjustments. */
3869 PSZ pszRegion; /* TV Channel Region */
3870 ULONG ulReserved1; /* Reserved 1 */
3871 ULONG ulReserved2; /* Reserved 2 */
3872} MCI_DGV_TUNER_PARMS;
3873typedef MCI_DGV_TUNER_PARMS *LPMCI_DGV_TUNER_PARMS;
3874
3875
3876#pragma pack()
3877/*********************************************************************/
3878/* */
3879/* MCI system value defines */
3880/* */
3881/*********************************************************************/
3882 MSV_CLOSEDCAPTION $0
3883 MSV_MASTERVOLUME $1
3884 MSV_HEADPHONES $2
3885 MSV_SPEAKERS $3
3886 MSV_WORKPATH $4
3887 MSV_SYSQOSVALUE $5
3888 MSV_SYSQOSERRORFLAG $6
3889
3890 MSV_MAX $7
3891
3892#endif /* INCL_32 */
3893
3894/*********************************************************************/
3895/* Playlist defines */
3896/*********************************************************************/
3897 DATA_OPERATION 0
3898 BRANCH_OPERATION 1
3899 LOOP_OPERATION 2
3900 CALL_OPERATION 3
3901 RETURN_OPERATION 4
3902 EXIT_OPERATION 5
3903 NOP_OPERATION 6
3904 MESSAGE_OPERATION 7
3905 CUEPOINT_OPERATION 8
3906
3907/*********************************************************************/
3908/* */
3909/* MCI Function prototypes */
3910/* */
3911/*********************************************************************/
3912
3913#ifdef INCL_32
3914
3915ULONG APIENTRY mciSendCommand (USHORT usDeviceID,
3916 USHORT usMessage,
3917 ULONG ulParam1,
3918 PVOID pParam2,
3919 USHORT usUserParm);
3920
3921ULONG APIENTRY mciMakeGroup (PUSHORT pusDeviceGroupID,
3922 USHORT usDeviceCount,
3923 PUSHORT pausDeviceList,
3924 ULONG ulFlags,
3925 ULONG ulMMTime);
3926
3927
3928ULONG APIENTRY mciDeleteGroup (USHORT usGroupID);
3929
3930
3931
3932BOOL APIENTRY mciSetSysValue (USHORT iSysValue, PVOID pValue);
3933
3934BOOL APIENTRY mciQuerySysValue (USHORT iSysValue, PVOID pValue);
3935
3936ULONG APIENTRY mciGetDeviceID (PSZ pszName);
3937
3938#else /* INCL_32 */
3939
3940 mciSendString mci16SendString
3941 mciGetErrorString mci16GetErrorString
3942 mciGetDeviceID mci16GetDeviceID
3943
3944ULONG APIENTRY mciSendString (PSZ pszCommandBuf,
3945 PSZ pszReturnString,
3946 USHORT usReturnLength,
3947 HWND hwndCallBack,
3948 USHORT usUserParm );
3949
3950ULONG APIENTRY mciGetErrorString (ULONG usError,
3951 PSZ pszBuffer,
3952 USHORT usLength);
3953
3954ULONG APIENTRY mciGetDeviceID (PSZ pszName);
3955
3956
3957#endif /* INCL_32 */
3958
3959
3960#ifndef _MEERROR_H_
3961 _MEERROR_H_
3962#endif
3963
3964#ifndef NO_ERROR
3965 NO_ERROR 0
3966#endif
3967*)
3968CONST
3969 MCIERR_BASE =5000;
3970 MCIERR_SUCCESS =0;
3971 MCIERR_INVALID_DEVICE_ID =(MCIERR_BASE + 1);
3972 MCIERR_NO_MASTER =(MCIERR_BASE + 2);
3973 MCIERR_UNRECOGNIZED_KEYWORD =(MCIERR_BASE + 3);
3974 MCIERR_MASTER_CONFLICT =(MCIERR_BASE + 4);
3975 MCIERR_UNRECOGNIZED_COMMAND =(MCIERR_BASE + 5);
3976 MCIERR_HARDWARE =(MCIERR_BASE + 6);
3977 MCIERR_INVALID_DEVICE_NAME =(MCIERR_BASE + 7);
3978 MCIERR_OUT_OF_MEMORY =(MCIERR_BASE + 8);
3979 MCIERR_DEVICE_OPEN =(MCIERR_BASE + 9);
3980 MCIERR_CANNOT_LOAD_DRIVER =(MCIERR_BASE + 10);
3981 MCIERR_MISSING_COMMAND_STRING =(MCIERR_BASE + 11);
3982 MCIERR_PARAM_OVERFLOW =(MCIERR_BASE + 12);
3983 MCIERR_MISSING_STRING_ARGUMENT =(MCIERR_BASE + 13);
3984 MCIERR_BAD_INTEGER =(MCIERR_BASE + 14);
3985 MCIERR_PARSER_INTERNAL =(MCIERR_BASE + 15);
3986 MCIERR_DRIVER_INTERNAL =(MCIERR_BASE + 16);
3987 MCIERR_MISSING_PARAMETER =(MCIERR_BASE + 17);
3988 MCIERR_UNSUPPORTED_FUNCTION =(MCIERR_BASE + 18);
3989 MCIERR_FILE_NOT_FOUND =(MCIERR_BASE + 19);
3990 MCIERR_DEVICE_NOT_READY =(MCIERR_BASE + 20);
3991 MCIERR_INTERNAL =(MCIERR_BASE + 21);
3992 MCIERR_DRIVER =(MCIERR_BASE + 22);
3993 MCIERR_CANNOT_USE_ALL =(MCIERR_BASE + 23);
3994 MCIERR_MULTIPLE =(MCIERR_BASE + 24);
3995 MCIERR_EXTENSION_NOT_FOUND =(MCIERR_BASE + 25);
3996 MCIERR_OUTOFRANGE =(MCIERR_BASE + 26);
3997 MCIERR_CANNOT_ADD_ALIAS =(MCIERR_BASE + 27);
3998 MCIERR_FLAGS_NOT_COMPATIBLE =(MCIERR_BASE + 28);
3999 MCIERR_CANNOT_USE_NOUNLOAD =(MCIERR_BASE + 29);
4000 MCIERR_FILE_NOT_SAVED =(MCIERR_BASE + 30);
4001 MCIERR_DEVICE_TYPE_REQUIRED =(MCIERR_BASE + 31);
4002 MCIERR_DEVICE_LOCKED =(MCIERR_BASE + 32);
4003 MCIERR_DUPLICATE_ALIAS =(MCIERR_BASE + 33);
4004 MCIERR_INSTANCE_INACTIVE =(MCIERR_BASE + 34);
4005
4006 MCIERR_COMMAND_TABLE =(MCIERR_BASE + 35);
4007 MCIERR_INI_FILE_LOCKED =(MCIERR_BASE + 37);
4008
4009 MCIERR_NO_AUDIO_SUPPORT =(MCIERR_BASE + 40);
4010 MCIERR_NOT_IN_PM_SESSION =(MCIERR_BASE + 41);
4011 MCIERR_DUPLICATE_KEYWORD =(MCIERR_BASE + 42);
4012 MCIERR_COMMAND_STRING_OVERFLOW =(MCIERR_BASE + 43);
4013 MCIERR_DRIVER_PROC_NOT_FOUND =(MCIERR_BASE + 44);
4014 MCIERR_INVALID_DEVICE_TYPE =(MCIERR_BASE + 45);
4015 MCIERR_INVALID_DEVICE_ORDINAL =(MCIERR_BASE + 46);
4016 MCIERR_HEADPHONES_NOT_SET =(MCIERR_BASE + 47);
4017 MCIERR_SPEAKERS_NOT_SET =(MCIERR_BASE + 48);
4018 MCIERR_SOUND_NOT_SET =(MCIERR_BASE + 49);
4019 MCIERR_INVALID_BUFFER =(MCIERR_BASE + 50);
4020 MCIERR_INVALID_MEDIA_TYPE =(MCIERR_BASE + 51);
4021 MCIERR_INVALID_CONNECTOR_INDEX =(MCIERR_BASE + 52);
4022 MCIERR_NO_CONNECTION =(MCIERR_BASE + 53);
4023 MCIERR_INVALID_FLAG =(MCIERR_BASE + 54);
4024 MCIERR_CANNOT_LOAD_DSP_MOD =(MCIERR_BASE + 55);
4025 MCIERR_ALREADY_CONNECTED =(MCIERR_BASE + 56);
4026 MCIERR_INVALID_CALLBACK_HANDLE =(MCIERR_BASE + 57);
4027 MCIERR_DRIVER_NOT_FOUND =(MCIERR_BASE + 58);
4028 MCIERR_DUPLICATE_DRIVER =(MCIERR_BASE + 59);
4029 MCIERR_INI_FILE =(MCIERR_BASE + 60);
4030 MCIERR_INVALID_GROUP_ID =(MCIERR_BASE + 61);
4031 MCIERR_ID_ALREADY_IN_GROUP =(MCIERR_BASE + 62);
4032 MCIERR_MEDIA_CHANGED =(MCIERR_BASE + 63);
4033 MCIERR_MISSING_FLAG =(MCIERR_BASE + 64);
4034 MCIERR_UNSUPPORTED_FLAG =(MCIERR_BASE + 65);
4035 MCIERR_DRIVER_NOT_LOADED =(MCIERR_BASE + 66);
4036 MCIERR_INVALID_MODE =(MCIERR_BASE + 67);
4037 MCIERR_INVALID_ITEM_FLAG =(MCIERR_BASE + 68);
4038 MCIERR_INVALID_TIME_FORMAT_FLAG =(MCIERR_BASE + 69);
4039 MCIERR_SPEED_FORMAT_FLAG =(MCIERR_BASE + 70);
4040 MCIERR_INVALID_AUDIO_FLAG =(MCIERR_BASE + 71);
4041 MCIERR_NODEFAULT_DEVICE =(MCIERR_BASE + 72);
4042 MCIERR_DUPLICATE_EXTENSION =(MCIERR_BASE + 73);
4043 MCIERR_FILE_ATTRIBUTE =(MCIERR_BASE + 74);
4044 MCIERR_DUPLICATE_CUEPOINT =(MCIERR_BASE + 75);
4045 MCIERR_INVALID_CUEPOINT =(MCIERR_BASE + 76);
4046 MCIERR_CUEPOINT_LIMIT_REACHED =(MCIERR_BASE + 77);
4047 MCIERR_MISSING_ITEM =(MCIERR_BASE + 78);
4048 MCIERR_MISSING_TIME_FORMAT =(MCIERR_BASE + 79);
4049 MCIERR_MISSING_SPEED_FORMAT =(MCIERR_BASE + 80);
4050 MCIERR_INVALID_CONNECTOR_TYPE =(MCIERR_BASE + 81);
4051 MCIERR_TARGET_DEVICE_FULL =(MCIERR_BASE + 82);
4052 MCIERR_UNSUPPORTED_CONN_TYPE =(MCIERR_BASE + 83);
4053 MCIERR_CANNOT_MODIFY_CONNECTOR =(MCIERR_BASE + 84);
4054 MCIERR_RECORD_ABORTED =(MCIERR_BASE + 85);
4055 MCIERR_GROUP_COMMAND =(MCIERR_BASE + 86);
4056 MCIERR_DEVICE_NOT_FOUND =(MCIERR_BASE + 87);
4057 MCIERR_RESOURCE_NOT_AVAILABLE =(MCIERR_BASE + 88);
4058 MCIERR_INVALID_IO_PROC =(MCIERR_BASE + 89);
4059
4060 MCIERR_WAVE_OUTPUTSINUSE =(MCIERR_BASE + 90);
4061 MCIERR_WAVE_SETOUTPUTINUSE =(MCIERR_BASE + 91);
4062 MCIERR_WAVE_INPUTSINUSE =(MCIERR_BASE + 92);
4063 MCIERR_WAVE_SETINPUTINUSE =(MCIERR_BASE + 93);
4064 MCIERR_WAVE_OUTPUTUNSPECIFIED =(MCIERR_BASE + 94);
4065 MCIERR_WAVE_INPUTUNSPECIFIED =(MCIERR_BASE + 95);
4066 MCIERR_WAVE_OUTPUTSUNSUITABLE =(MCIERR_BASE + 96);
4067 MCIERR_WAVE_SETOUTPUTUNSUITABLE =(MCIERR_BASE + 97);
4068 MCIERR_WAVE_INPUTSUNSUITABLE =(MCIERR_BASE + 98);
4069 MCIERR_WAVE_SETINPUTUNSUITABLE =(MCIERR_BASE + 99);
4070
4071 MCIERR_SEQ_DIV_INCOMPATIBLE =(MCIERR_BASE + 100);
4072 MCIERR_SEQ_PORT_INUSE =(MCIERR_BASE + 101);
4073 MCIERR_SEQ_PORT_NONEXISTENT =(MCIERR_BASE + 102);
4074 MCIERR_SEQ_PORT_MAPNODEVICE =(MCIERR_BASE + 103);
4075 MCIERR_SEQ_PORT_MISCERROR =(MCIERR_BASE + 104);
4076 MCIERR_SEQ_TIMER =(MCIERR_BASE + 105);
4077
4078 MCIERR_VDP_COMMANDCANCELLED =(MCIERR_BASE + 106);
4079 MCIERR_VDP_COMMANDFAILURE =(MCIERR_BASE + 107);
4080 MCIERR_VDP_NOTSPUNUP =(MCIERR_BASE + 108);
4081 MCIERR_VDP_NOCHAPTER =(MCIERR_BASE + 109);
4082 MCIERR_VDP_NOSIDE =(MCIERR_BASE + 110);
4083 MCIERR_VDP_NOSIZE =(MCIERR_BASE + 111);
4084 MCIERR_VDP_INVALID_TIMEFORMAT =(MCIERR_BASE + 112);
4085
4086 MCIERR_CLIPBOARD_ERROR =(MCIERR_BASE + 114);
4087 MCIERR_CANNOT_CONVERT =(MCIERR_BASE + 115);
4088 MCIERR_CANNOT_REDO =(MCIERR_BASE + 116);
4089 MCIERR_CANNOT_UNDO =(MCIERR_BASE + 117);
4090 MCIERR_CLIPBOARD_EMPTY =(MCIERR_BASE + 118);
4091
4092 MCIERR_INVALID_WORKPATH =(MCIERR_BASE + 119);
4093 MCIERR_INDETERMINATE_LENGTH =(MCIERR_BASE + 120);
4094 MCIERR_DUPLICATE_EA =(MCIERR_BASE + 121);
4095 MCIERR_INVALID_CONNECTION =(MCIERR_BASE + 122);
4096 MCIERR_CHANNEL_OFF =(MCIERR_BASE + 123);
4097 MCIERR_CANNOT_CHANGE_CHANNEL =(MCIERR_BASE + 124);
4098 MCIERR_FILE_IO =(MCIERR_BASE + 125);
4099 MCIERR_SYSTEM_FILE =(MCIERR_BASE + 126);
4100 MCIERR_DISPLAY_RESOLUTION =(MCIERR_BASE + 127);
4101 MCIERR_NO_ASYNC_PLAY_ACTIVE =(MCIERR_BASE + 128);
4102
4103 MCIERR_UNSUPP_FORMAT_TAG =(MCIERR_BASE + 129);
4104 MCIERR_UNSUPP_SAMPLESPERSEC =(MCIERR_BASE + 130);
4105 MCIERR_UNSUPP_BITSPERSAMPLE =(MCIERR_BASE + 131);
4106 MCIERR_UNSUPP_CHANNELS =(MCIERR_BASE + 132);
4107 MCIERR_UNSUPP_FORMAT_MODE =(MCIERR_BASE + 133);
4108 MCIERR_NO_DEVICE_DRIVER =(MCIERR_BASE + 134);
4109 MCIERR_CODEC_NOT_SUPPORTED =(MCIERR_BASE + 135);
4110
4111 MCIERR_TUNER_NO_HW =(MCIERR_BASE + 136);
4112 MCIERR_TUNER_NO_AFC =(MCIERR_BASE + 137);
4113 MCIERR_TUNER_AFC_ON =(MCIERR_BASE + 138);
4114 MCIERR_TUNER_CHANNEL_SKIPPED =(MCIERR_BASE + 139);
4115 MCIERR_TUNER_CHANNEL_TOO_LOW =(MCIERR_BASE + 140);
4116 MCIERR_TUNER_CHANNEL_TOO_HIGH =(MCIERR_BASE + 141);
4117 MCIERR_AUD_CHANNEL_OUTOFRANGE =(MCIERR_BASE + 142);
4118 MCIERR_TUNER_INVALID_REGION =(MCIERR_BASE + 143);
4119 MCIERR_SIGNAL_INVALID =(MCIERR_BASE + 144);
4120 MCIERR_TUNER_MODE =(MCIERR_BASE + 145);
4121 MCIERR_TUNER_REGION_NOT_SET =(MCIERR_BASE + 146);
4122 MCIERR_TUNER_CHANNEL_NOT_SET =(MCIERR_BASE + 147);
4123
4124 MCIERR_CUSTOM_DRIVER_BASE =(MCIERR_BASE + 256);
4125
4126(*
4127/******************************************/
4128/* Sync/Stream Manager Error Return codes */
4129/******************************************/
4130
4131 MEBASE (MCIERR_BASE + 500)
4132 ERROR_INVALID_STREAM (MEBASE + 1)
4133 ERROR_INVALID_HID (MEBASE + 2)
4134
4135 ERROR_INVALID_OBJTYPE (MEBASE + 4)
4136 ERROR_INVALID_FLAG (MEBASE + 5)
4137 ERROR_INVALID_EVCB (MEBASE + 6)
4138 ERROR_INVALID_EVENT (MEBASE + 7)
4139 ERROR_INVALID_MMTIME (MEBASE + 8)
4140 ERROR_INVALID_NUMSLAVES (MEBASE + 9)
4141 ERROR_INVALID_REQUEST (MEBASE + 10)
4142 ERROR_INVALID_SPCBKEY (MEBASE + 11)
4143 ERROR_INVALID_HNDLR_NAME (MEBASE + 12)
4144 ERROR_INVALID_PROTOCOL (MEBASE + 13)
4145 ERROR_INVALID_BUFFER_SIZE (MEBASE + 14)
4146 ERROR_INVALID_BUFFER_RETURNED (MEBASE + 15)
4147 ERROR_INVALID_ACB (MEBASE + 16)
4148 ERROR_INVALID_RECORD_RETURNED (MEBASE + 17)
4149 ERROR_INVALID_MESSAGE (MEBASE + 18)
4150
4151 ERROR_STREAM_NOT_OWNER (MEBASE + 99)
4152 ERROR_STREAM_USED (MEBASE + 100)
4153 ERROR_STREAM_CREATION (MEBASE + 101)
4154 ERROR_STREAM_NOTMASTER (MEBASE + 102)
4155 ERROR_STREAM_NOT_STOP (MEBASE + 103)
4156 ERROR_STREAM_OPERATION (MEBASE + 104)
4157 ERROR_STREAM_STOP_PENDING (MEBASE + 105)
4158 ERROR_STREAM_ALREADY_STOP (MEBASE + 106)
4159 ERROR_STREAM_ALREADY_PAUSE (MEBASE + 107)
4160 ERROR_STREAM_NOT_STARTED (MEBASE + 108)
4161 ERROR_STREAM_NOT_ACTIVE (MEBASE + 109)
4162 ERROR_START_STREAM (MEBASE + 110)
4163 ERROR_MASTER_USED (MEBASE + 111)
4164 ERROR_SPCBKEY_MISMATCH (MEBASE + 112)
4165 ERROR_INSUFF_BUFFER (MEBASE + 113)
4166 ERROR_ALLOC_RESOURCES (MEBASE + 114)
4167 ERROR_ACCESS_OBJECT (MEBASE + 115)
4168 ERROR_HNDLR_REGISTERED (MEBASE + 116)
4169 ERROR_DATA_ITEM_NOT_SPECIFIED (MEBASE + 117)
4170 ERROR_INVALID_SEQUENCE (MEBASE + 118)
4171 ERROR_INITIALIZATION (MEBASE + 119)
4172 ERROR_READING_INI (MEBASE + 120)
4173 ERROR_LOADING_HNDLR (MEBASE + 121)
4174 ERROR_HNDLR_NOT_FOUND (MEBASE + 122)
4175 ERROR_SPCB_NOT_FOUND (MEBASE + 123)
4176 ERROR_DEVICE_NOT_FOUND (MEBASE + 124)
4177 ERROR_TOO_MANY_EVENTS (MEBASE + 125)
4178 ERROR_DEVICE_OVERRUN (MEBASE + 126)
4179 ERROR_DEVICE_UNDERRUN (MEBASE + 127)
4180 ERROR_HNDLR_NOT_IN_INI (MEBASE + 128)
4181 ERROR_QUERY_STREAM_TIME (MEBASE + 129)
4182 ERROR_DATA_ITEM_NOT_SEEKABLE (MEBASE + 130)
4183 ERROR_NOT_SEEKABLE_BY_TIME (MEBASE + 131)
4184 ERROR_NOT_SEEKABLE_BY_BYTES (MEBASE + 132)
4185 ERROR_STREAM_NOT_SEEKABLE (MEBASE + 133)
4186 ERROR_PLAYLIST_STACK_OVERFLOW (MEBASE + 135)
4187 ERROR_PLAYLIST_STACK_UNDERFLOW (MEBASE + 136)
4188 ERROR_LOCKING_BUFFER (MEBASE + 137)
4189 ERROR_UNLOCKING_BUFFER (MEBASE + 138)
4190 ERROR_SEEK_PAST_END (MEBASE + 139)
4191 ERROR_SEEK_BACK_NOT_SUPPORTED (MEBASE + 140)
4192 ERROR_INTERNAL_ERROR (MEBASE + 141)
4193 ERROR_INTERNAL_CORRUPT (MEBASE + 142)
4194 ERROR_INSUFF_MEM (MEBASE + 143)
4195 ERROR_LARGE_SEEK_BY_TIME (MEBASE + 144)
4196 ERROR_STREAM_PREROLLING (MEBASE + 145)
4197 ERROR_INI_FILE (MEBASE + 146)
4198 ERROR_SEEK_BEFORE_BEGINNING (MEBASE + 147)
4199 ERROR_TOO_MANY_HANDLERS (MEBASE + 148)
4200 ERROR_ALLOC_HEAP (MEBASE + 149)
4201 ERROR_END_OF_PLAYLIST (MEBASE + 150)
4202 ERROR_TOO_MANY_STREAMS (MEBASE + 151)
4203 ERROR_FILE_FORMAT_INCORRECT (MEBASE + 152)
4204 ERROR_DESTROY_STREAM (MEBASE + 153)
4205 ERROR_INVALID_NUMMASTERS (MEBASE + 154)
4206 ERROR_MASTER_CONFLICT (MEBASE + 155)
4207 ERROR_NO_MASTER (MEBASE + 156)
4208 ERROR_NO_SYNC (MEBASE + 157)
4209
4210 ERROR_BUFFER_NOT_AVAILABLE (MEBASE + 400)
4211 ERROR_TOO_MANY_BUFFERS (MEBASE + 401)
4212 ERROR_TOO_MANY_RECORDS (MEBASE + 402)
4213
4214
4215/*----- ERROR_INVALID_PROTOCOL ulErrorStatus defines -----*/
4216/*----- Refer to SHC_NEGOTIATE_RESULT api.*/
4217 PROTOCOL_SPCBLENGTH 1
4218 PROTOCOL_SPCBKEY 2
4219 PROTOCOL_DATAFLAG 3
4220 PROTOCOL_NUMRECORDS 4
4221 PROTOCOL_BLOCKSIZE 5
4222 PROTOCOL_BUFFERSIZE 6
4223 PROTOCOL_MINNUMBUFFERS 7
4224 PROTOCOL_MAXNUMBUFFERS 8
4225 PROTOCOL_SOURCESTART 9
4226 PROTOCOL_TARGETSTART 10
4227 PROTOCOL_BUFFERFLAG 11
4228 PROTOCOL_HANDLERFLAG 12
4229 PROTOCOL_SYNCTOLERANCE 13
4230 PROTOCOL_SYNCINTERVAL 14
4231 PROTOCOL_INTERNALERROR -1
4232
4233/***********************************/
4234/* MMIO Manager Error Return codes */
4235/***********************************/
4236
4237 MMIOERR_BASE (MEBASE + 1000)
4238 MMIOERR_UNBUFFERED (MMIOERR_BASE + 1L)
4239 MMIOERR_CANNOTWRITE (MMIOERR_BASE + 2L)
4240 MMIOERR_CHUNKNOTFOUND (MMIOERR_BASE + 3L)
4241
4242 MMIOERR_INVALID_HANDLE (MMIOERR_BASE + 4L)
4243 MMIOERR_INVALID_PARAMETER (MMIOERR_BASE + 5L)
4244 MMIOERR_INTERNAL_SYSTEM (MMIOERR_BASE + 6L)
4245 MMIOERR_NO_CORE (MMIOERR_BASE + 7L)
4246
4247 MMIOERR_INI_OPEN (MMIOERR_BASE + 8L)
4248 MMIOERR_INI_READ (MMIOERR_BASE + 9L)
4249
4250 MMIOERR_INVALID_BUFFER_LENGTH (MMIOERR_BASE + 10L)
4251 MMIOERR_NO_BUFFER_ALLOCATED (MMIOERR_BASE + 11L)
4252 MMIOERR_NO_FLUSH_FOR_MEM_FILE (MMIOERR_BASE + 12L)
4253 MMIOERR_NO_FLUSH_NEEDED (MMIOERR_BASE + 13L)
4254 MMIOERR_READ_ONLY_FILE (MMIOERR_BASE + 14L)
4255 MMIOERR_WRITE_ONLY_FILE (MMIOERR_BASE + 15L)
4256 MMIOERR_INSTALL_PROC_FAILED (MMIOERR_BASE + 16L)
4257 MMIOERR_READ_FAILED (MMIOERR_BASE + 17L)
4258 MMIOERR_WRITE_FAILED (MMIOERR_BASE + 18L)
4259 MMIOERR_SEEK_FAILED (MMIOERR_BASE + 19L)
4260 MMIOERR_CANNOTEXPAND (MMIOERR_BASE + 20L)
4261 MMIOERR_FREE_FAILED (MMIOERR_BASE + 21L)
4262 MMIOERR_EOF_SEEN (MMIOERR_BASE + 22L)
4263 MMIOERR_INVALID_ACCESS_FLAG (MMIOERR_BASE + 23L)
4264 MMIOERR_INVALID_STRUCTURE (MMIOERR_BASE + 24L)
4265 MMIOERR_INVALID_SIZE (MMIOERR_BASE + 25L)
4266 MMIOERR_INVALID_FILENAME (MMIOERR_BASE + 26L)
4267
4268 MMIOERR_CF_DUPLICATE_SEEN (MMIOERR_BASE + 27L)
4269 MMIOERR_CF_ENTRY_NO_CORE (MMIOERR_BASE + 28L)
4270 MMIOERR_CF_WO_UNSUPPORTED (MMIOERR_BASE + 29L)
4271 MMIOERR_CF_ELEMENTS_OPEN (MMIOERR_BASE + 30L)
4272 MMIOERR_CF_NON_BND_FILE (MMIOERR_BASE + 31L)
4273 MMIOERR_CF_ENTRY_NOT_FOUND (MMIOERR_BASE + 32L)
4274
4275 MMIOERR_DELETE_FAILED (MMIOERR_BASE + 33L)
4276 MMIOERR_OUTOFMEMORY (MMIOERR_BASE + 34L)
4277
4278 MMIOERR_INVALID_DLLNAME (MMIOERR_BASE + 35L)
4279 MMIOERR_INVALID_PROCEDURENAME (MMIOERR_BASE + 36L)
4280 MMIOERR_MATCH_NOT_FOUND (MMIOERR_BASE + 37L)
4281
4282 MMIOERR_SEEK_BEFORE_BEGINNING (MMIOERR_BASE + 38L)
4283 MMIOERR_INVALID_FILE (MMIOERR_BASE + 39L)
4284 MMIOERR_QOSUNAVAILABLE (MMIOERR_BASE + 40L)
4285 MMIOERR_MEDIA_NOT_FOUND (MMIOERR_BASE + 41L)
4286
4287 MMIOERR_ERROR_IN_FRAME_DATA (MMIOERR_BASE + 42L)
4288 MMIOERR_INVALID_DIM_ALIGN (MMIOERR_BASE + 43L)
4289 MMIOERR_CODEC_NOT_SUPPORTED (MMIOERR_BASE + 44L)
4290
4291 MMIOERR_UNSUPPORTED_FUNCTION (MMIOERR_BASE + 45L)
4292 MMIOERR_CLIPBRD_ERROR (MMIOERR_BASE + 46L)
4293 MMIOERR_CLIPBRD_ACTIVE (MMIOERR_BASE + 47L)
4294 MMIOERR_CLIPBRD_EMPTY (MMIOERR_BASE + 48L)
4295 MMIOERR_NEED_NEW_FILENAME (MMIOERR_BASE + 49L)
4296 MMIOERR_INVALID_TRACK_OPERATION (MMIOERR_BASE + 50L)
4297 MMIOERR_INCOMPATIBLE_DATA (MMIOERR_BASE + 51L)
4298 MMIOERR_ACCESS_DENIED (MMIOERR_BASE + 52L)
4299 MMIOERR_MISSING_FLAG (MMIOERR_BASE + 53L)
4300 MMIOERR_INVALID_ITEM_FLAG (MMIOERR_BASE + 54L)
4301
4302/***********************************/
4303/* User defined Error Return codes */
4304/***********************************/
4305
4306 USERERR_BASE (MMIOERR_BASE + 1000)
4307*)
4308
4309IMPORTS
4310 FUNCTION mmioSet(ahmmio:HMMIO;VAR pUserExtendmminfo:MMEXTENDINFO;
4311 ulFlags:ULONG):ULONG;
4312 APIENTRY; 'MMIO' index 101;
4313 FUNCTION mmioQueryHeaderLength( ahmmio:HMMIO;
4314 VAR plHeaderLength:LONG;
4315 dwReserved:LONGWORD;
4316 dwFlags:LONGWORD ):LONGWORD;
4317 APIENTRY; 'MMIO' index 76;
4318 FUNCTION mmioGetHeader( ahmmio:HMMIO;
4319 VAR pHeader;
4320 lHeaderLength:LONG;
4321 VAR plBytesRead:LONG;
4322 dwReserved:ULONG;
4323 dwFlags:ULONG ):LONGWORD;
4324 APIENTRY; 'MMIO' index 77;
4325 FUNCTION mmioOpen( pszFileName:CSTRING;
4326 VAR apmmioinfo:MMIOINFO;
4327 dwOpenFlags:LONGWORD ):HMMIO;
4328 APIENTRY; 'MMIO' index 27;
4329 FUNCTION mmioClose( ahmmio:HMMIO;
4330 wFlags:LONGWORD ):WORD;
4331 APIENTRY; 'MMIO' index 32;
4332 FUNCTION mciSendString(s:CSTRING;VAR ret:CSTRING;retlen:LONGWORD;
4333 ahwnd:HWND;userParam:LONGWORD):LONGWORD;
4334 APIENTRY; 'MDM' index 2;
4335 FUNCTION mciGetErrorString(ulError:LONGWORD;
4336 VAR pszBuffer:CSTRING;
4337 usLength:LONGWORD):LONGWORD;
4338 APIENTRY; 'MDM' index 3;
4339 FUNCTION mciGetDeviceId(AliasName:CSTRING):LONGWORD;
4340 APIENTRY; 'MDM' index 16;
4341
4342END;
4343
4344IMPLEMENTATION
4345
4346END.
Note: See TracBrowser for help on using the repository browser.