Fixed bug that could cause SendMessage to return too early in certain
[wine] / include / digitalv.h
1 /*
2  * Copyright (C) 1999 Eric Pouech
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #ifndef __WINE_DIGITALV_H
20 #define __WINE_DIGITALV_H
21
22 /*
23  * Wine Digital Video extensions
24  */
25
26 #include "mmsystem.h"
27 #include "windef.h"
28
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32
33 #define MCI_TEST                            0x00000020L
34
35 /* Message values */
36
37 #define MCI_CAPTURE                         0x0870
38 #define MCI_MONITOR                         0x0871
39 #define MCI_RESERVE                         0x0872
40 #define MCI_SETAUDIO                        0x0873
41 #define MCI_SIGNAL                          0x0875
42 #define MCI_SETVIDEO                        0x0876
43 #define MCI_QUALITY                         0x0877
44 #define MCI_LIST                            0x0878
45 #define MCI_UNDO                            0x0879
46 #define MCI_CONFIGURE                       0x087A
47 #define MCI_RESTORE                         0x087B
48
49 /* Return and string constant values */
50
51 #define MCI_ON   1
52 #define MCI_OFF  0
53
54 #define MCI_DGV_FILE_MODE_SAVING            0x0001
55 #define MCI_DGV_FILE_MODE_LOADING           0x0002
56 #define MCI_DGV_FILE_MODE_EDITING           0x0003
57 #define MCI_DGV_FILE_MODE_IDLE              0x0004
58
59 /* These identifiers are used only by device drivers */
60
61 #define MCI_ON_S                            0x00008000L
62 #define MCI_OFF_S                           0x00008001L
63 #define MCI_DGV_FILE_S                      0x00008002L
64 #define MCI_DGV_INPUT_S                     0x00008003L
65
66 #define MCI_DGV_FILE_MODE_SAVING_S          0x00008004L
67 #define MCI_DGV_FILE_MODE_LOADING_S         0x00008005L
68 #define MCI_DGV_FILE_MODE_EDITING_S         0x00008006L
69 #define MCI_DGV_FILE_MODE_IDLE_S            0x00008007L
70
71 #define MCI_DGV_SETVIDEO_SRC_NTSC_S         0x00008010L
72 #define MCI_DGV_SETVIDEO_SRC_RGB_S          0x00008011L
73 #define MCI_DGV_SETVIDEO_SRC_SVIDEO_S       0x00008012L
74 #define MCI_DGV_SETVIDEO_SRC_PAL_S          0x00008013L
75 #define MCI_DGV_SETVIDEO_SRC_SECAM_S        0x00008014L
76 #define MCI_DGV_SETVIDEO_SRC_GENERIC_S      0x00008015L
77
78 #define MCI_DGV_SETAUDIO_SRC_LEFT_S         0x00008020L
79 #define MCI_DGV_SETAUDIO_SRC_RIGHT_S        0x00008021L
80 #define MCI_DGV_SETAUDIO_SRC_AVERAGE_S      0x00008022L
81 #define MCI_DGV_SETAUDIO_SRC_STEREO_S       0x00008023L
82
83 /* Window message for signal notification */
84
85 #ifndef MM_MCISIGNAL
86 #define MM_MCISIGNAL                        0x3CB
87 #endif
88
89 /* error values */
90
91 #define MCIERR_DGV_DEVICE_LIMIT             (MCIERR_CUSTOM_DRIVER_BASE+0)
92 #define MCIERR_DGV_IOERR                    (MCIERR_CUSTOM_DRIVER_BASE+1)
93 #define MCIERR_DGV_WORKSPACE_EMPTY          (MCIERR_CUSTOM_DRIVER_BASE+2)
94 #define MCIERR_DGV_DISK_FULL                (MCIERR_CUSTOM_DRIVER_BASE+3)
95 #define MCIERR_DGV_DEVICE_MEMORY_FULL       (MCIERR_CUSTOM_DRIVER_BASE+4)
96 #define MCIERR_DGV_BAD_CLIPBOARD_RANGE      (MCIERR_CUSTOM_DRIVER_BASE+5)
97
98 /* defines for monitor methods */
99
100 #define MCI_DGV_METHOD_PRE                  0x0000a000L
101 #define MCI_DGV_METHOD_POST                 0x0000a001L
102 #define MCI_DGV_METHOD_DIRECT               0x0000a002L
103
104 /* defines for known file formats */
105
106 #define MCI_DGV_FF_AVSS                     0x00004000L
107 #define MCI_DGV_FF_AVI                      0x00004001L
108 #define MCI_DGV_FF_DIB                      0x00004002L
109 #define MCI_DGV_FF_RDIB                     0x00004003L
110 #define MCI_DGV_FF_JPEG                     0x00004004L
111 #define MCI_DGV_FF_RJPEG                    0x00004005L
112 #define MCI_DGV_FF_JFIF                     0x00004006L
113 #define MCI_DGV_FF_MPEG                     0x00004007L
114
115 /* values for dwItem field of MCI_CAPABILITY_PARMS structure */
116
117 #define MCI_DGV_GETDEVCAPS_CAN_LOCK         0x00004000L
118 #define MCI_DGV_GETDEVCAPS_CAN_STRETCH      0x00004001L
119 #define MCI_DGV_GETDEVCAPS_CAN_FREEZE       0x00004002L
120 #define MCI_DGV_GETDEVCAPS_MAX_WINDOWS      0x00004003L
121 #define MCI_DGV_GETDEVCAPS_CAN_REVERSE      0x00004004L
122 #define MCI_DGV_GETDEVCAPS_HAS_STILL        0x00004005L
123 #define MCI_DGV_GETDEVCAPS_PALETTES         0x00004006L
124 #define MCI_DGV_GETDEVCAPS_CAN_STR_IN       0x00004008L
125 #define MCI_DGV_GETDEVCAPS_CAN_TEST         0x00004009L
126 #define MCI_DGV_GETDEVCAPS_MAXIMUM_RATE     0x0000400aL
127 #define MCI_DGV_GETDEVCAPS_MINIMUM_RATE     0x0000400bL
128
129 /* flags for dwFlags parameter of MCI_CAPTURE command message */
130
131 #define MCI_DGV_CAPTURE_AS                  0x00010000L
132 #define MCI_DGV_CAPTURE_AT                  0x00020000L
133
134 /* flags for dwFlags parameter of MCI_COPY command message */
135
136 #define MCI_DGV_COPY_AT                     0x00010000L
137 #define MCI_DGV_COPY_AUDIO_STREAM           0x00020000L
138 #define MCI_DGV_COPY_VIDEO_STREAM           0x00040000L
139
140 /* flags for dwFlags parameter of MCI_CUE command message */
141
142 #define MCI_DGV_CUE_INPUT                   0x00010000L
143 #define MCI_DGV_CUE_OUTPUT                  0x00020000L
144 #define MCI_DGV_CUE_NOSHOW                  0x00040000L
145
146 /* flags for dwFlags parameter of MCI_CUT command message */
147
148 #define MCI_DGV_CUT_AT                      0x00010000L
149 #define MCI_DGV_CUT_AUDIO_STREAM            0x00020000L
150 #define MCI_DGV_CUT_VIDEO_STREAM            0x00040000L
151
152 /* flags for dwFlags parameter of MCI_DELETE command message */
153
154 #define MCI_DGV_DELETE_AT                   0x00010000L
155 #define MCI_DGV_DELETE_AUDIO_STREAM         0x00020000L
156 #define MCI_DGV_DELETE_VIDEO_STREAM         0x00040000L
157
158 /* flags for dwFlags parameter of MCI_FREEZE command message */
159
160 #define MCI_DGV_FREEZE_AT                   0x00010000L
161 #define MCI_DGV_FREEZE_OUTSIDE              0x00020000L
162
163 /* flags for dwFlags parameter of MCI_INFO command message */
164
165 #define MCI_DGV_INFO_TEXT                   0x00010000L
166 #define MCI_DGV_INFO_ITEM                   0X00020000L
167
168 /* values for dwItem field of MCI_DGV_INFO_PARMS structure */
169
170 #define MCI_INFO_VERSION                    0x00000400L
171
172 #define MCI_DGV_INFO_USAGE                  0x00004000L
173 #define MCI_DGV_INFO_AUDIO_QUALITY          0x00004001L
174 #define MCI_DGV_INFO_STILL_QUALITY          0x00004002L
175 #define MCI_DGV_INFO_VIDEO_QUALITY          0x00004003L
176 #define MCI_DGV_INFO_AUDIO_ALG              0x00004004L
177 #define MCI_DGV_INFO_STILL_ALG              0x00004005L
178 #define MCI_DGV_INFO_VIDEO_ALG              0x00004006L
179
180 /* flags for dwFlags parameter of MCI_LIST command message */
181
182 #define MCI_DGV_LIST_ITEM                   0x00010000L
183 #define MCI_DGV_LIST_COUNT                  0x00020000L
184 #define MCI_DGV_LIST_NUMBER                 0x00040000L
185 #define MCI_DGV_LIST_ALG                    0x00080000L
186
187 /* values for dwItem field of MCI_DGV_LIST_PARMS structure */
188
189 #define MCI_DGV_LIST_AUDIO_ALG              0x00004000L
190 #define MCI_DGV_LIST_AUDIO_QUALITY          0x00004001L
191 #define MCI_DGV_LIST_AUDIO_STREAM           0x00004002L
192 #define MCI_DGV_LIST_STILL_ALG              0x00004003L
193 #define MCI_DGV_LIST_STILL_QUALITY          0x00004004L
194 #define MCI_DGV_LIST_VIDEO_ALG              0x00004005L
195 #define MCI_DGV_LIST_VIDEO_QUALITY          0x00004006L
196 #define MCI_DGV_LIST_VIDEO_STREAM           0x00004007L
197 #define MCI_DGV_LIST_VIDEO_SOURCE           0x00004008L
198
199
200 /* flags for dwFlags parameter of MCI_MONITOR command message */
201
202 #define MCI_DGV_MONITOR_METHOD              0x00010000L
203 #define MCI_DGV_MONITOR_SOURCE              0x00020000L
204
205 /* values for dwSource parameter of the MCI_DGV_MONITOR_PARMS struture */
206
207 #define MCI_DGV_MONITOR_INPUT               0x00004000L
208 #define MCI_DGV_MONITOR_FILE                0x00004001L
209
210 /* flags for dwFlags parameter of MCI_OPEN command message */
211
212 #define MCI_DGV_OPEN_WS                     0x00010000L
213 #define MCI_DGV_OPEN_PARENT                 0x00020000L
214 #define MCI_DGV_OPEN_NOSTATIC               0x00040000L
215 #define MCI_DGV_OPEN_16BIT                  0x00080000L
216 #define MCI_DGV_OPEN_32BIT                  0x00100000L
217
218 /* flags for dwFlags parameter of MCI_PASTE command message */
219
220 #define MCI_DGV_PASTE_AT                    0x00010000L
221 #define MCI_DGV_PASTE_AUDIO_STREAM          0x00020000L
222 #define MCI_DGV_PASTE_VIDEO_STREAM          0x00040000L
223 #define MCI_DGV_PASTE_INSERT                0x00080000L
224 #define MCI_DGV_PASTE_OVERWRITE             0x00100000L
225
226 /* flags for dwFlags parameter of MCI_PLAY command message */
227
228 #define MCI_DGV_PLAY_REPEAT                 0x00010000L
229 #define MCI_DGV_PLAY_REVERSE                0x00020000L
230
231 /* flags for dwFlags parameter of MCI_PUT command message */
232
233 #define MCI_DGV_RECT                        0x00010000L
234 #define MCI_DGV_PUT_SOURCE                  0x00020000L
235 #define MCI_DGV_PUT_DESTINATION             0x00040000L
236 #define MCI_DGV_PUT_FRAME                   0x00080000L
237 #define MCI_DGV_PUT_VIDEO                   0x00100000L
238 #define MCI_DGV_PUT_WINDOW                  0x00200000L
239 #define MCI_DGV_PUT_CLIENT                  0x00400000L
240
241 /* flags for dwFlags parameter of MCI_QUALITY command message */
242
243 #define MCI_QUALITY_ITEM                    0x00010000L
244 #define MCI_QUALITY_NAME                    0x00020000L
245 #define MCI_QUALITY_ALG                     0x00040000L
246 #define MCI_QUALITY_DIALOG                  0x00080000L
247 #define MCI_QUALITY_HANDLE                  0x00100000L
248
249 /* values for dwItem field of MCI_QUALITY_PARMS structure */
250
251 #define MCI_QUALITY_ITEM_AUDIO              0x00004000L
252 #define MCI_QUALITY_ITEM_STILL              0x00004001L
253 #define MCI_QUALITY_ITEM_VIDEO              0x00004002L
254
255 /* flags for dwFlags parameter of MCI_REALIZE command message */
256
257 #define MCI_DGV_REALIZE_NORM                0x00010000L
258 #define MCI_DGV_REALIZE_BKGD                0x00020000L
259
260 /* flags for dwFlags parameter of MCI_RECORD command message */
261
262 #define MCI_DGV_RECORD_HOLD                 0x00020000L
263 #define MCI_DGV_RECORD_AUDIO_STREAM         0x00040000L
264 #define MCI_DGV_RECORD_VIDEO_STREAM         0x00080000L
265
266 /* flags for dwFlags parameters of MCI_RESERVE command message */
267
268 #define MCI_DGV_RESERVE_IN                  0x00010000L
269 #define MCI_DGV_RESERVE_SIZE                0x00020000L
270
271 /* flags for dwFlags parameter of MCI_RESTORE command message */
272
273 #define MCI_DGV_RESTORE_FROM                0x00010000L
274 #define MCI_DGV_RESTORE_AT                  0x00020000L
275
276 /* flags for dwFlags parameters of MCI_SAVE command message */
277
278 #define MCI_DGV_SAVE_ABORT                  0x00020000L
279 #define MCI_DGV_SAVE_KEEPRESERVE            0x00040000L
280
281 /* flags for dwFlags parameters of MCI_SET command message */
282
283 #define MCI_DGV_SET_SEEK_EXACTLY            0x00010000L
284 #define MCI_DGV_SET_SPEED                   0x00020000L
285 #define MCI_DGV_SET_STILL                   0x00040000L
286 #define MCI_DGV_SET_FILEFORMAT              0x00080000L
287
288 /* flags for the dwFlags parameter of MCI_SETAUDIO command message */
289
290 #define MCI_DGV_SETAUDIO_OVER               0x00010000L
291 #define MCI_DGV_SETAUDIO_CLOCKTIME          0x00020000L
292 #define MCI_DGV_SETAUDIO_ALG                0x00040000L
293 #define MCI_DGV_SETAUDIO_QUALITY            0x00080000L
294 #define MCI_DGV_SETAUDIO_RECORD             0x00100000L
295 #define MCI_DGV_SETAUDIO_LEFT               0x00200000L
296 #define MCI_DGV_SETAUDIO_RIGHT              0x00400000L
297 #define MCI_DGV_SETAUDIO_ITEM               0x00800000L
298 #define MCI_DGV_SETAUDIO_VALUE              0x01000000L
299 #define MCI_DGV_SETAUDIO_INPUT              0x02000000L
300 #define MCI_DGV_SETAUDIO_OUTPUT             0x04000000L
301
302 /* values for the dwItem parameter of MCI_DGV_SETAUDIO_PARMS */
303
304 #define MCI_DGV_SETAUDIO_TREBLE             0x00004000L
305 #define MCI_DGV_SETAUDIO_BASS               0x00004001L
306 #define MCI_DGV_SETAUDIO_VOLUME             0x00004002L
307 #define MCI_DGV_SETAUDIO_STREAM             0x00004003L
308 #define MCI_DGV_SETAUDIO_SOURCE             0x00004004L
309 #define MCI_DGV_SETAUDIO_SAMPLESPERSEC      0x00004005L
310 #define MCI_DGV_SETAUDIO_AVGBYTESPERSEC     0x00004006L
311 #define MCI_DGV_SETAUDIO_BLOCKALIGN         0x00004007L
312 #define MCI_DGV_SETAUDIO_BITSPERSAMPLE      0x00004008L
313
314 /* values for the dwValue parameter of MCI_DGV_SETAUDIO_PARMS
315    used with MCI_DGV_SETAUDIO_SOURCE */
316
317 #define MCI_DGV_SETAUDIO_SOURCE_STEREO      0x00000000L
318 #define MCI_DGV_SETAUDIO_SOURCE_LEFT        0x00000001L
319 #define MCI_DGV_SETAUDIO_SOURCE_RIGHT       0x00000002L
320 #define MCI_DGV_SETAUDIO_SOURCE_AVERAGE     0x00004000L
321
322 /* flags for the dwFlags parameter of MCI_SETVIDEO command */
323
324 #define MCI_DGV_SETVIDEO_QUALITY            0x00010000L
325 #define MCI_DGV_SETVIDEO_ALG                0x00020000L
326 #define MCI_DGV_SETVIDEO_CLOCKTIME          0x00040000L
327 #define MCI_DGV_SETVIDEO_SRC_NUMBER         0x00080000L
328 #define MCI_DGV_SETVIDEO_ITEM               0x00100000L
329 #define MCI_DGV_SETVIDEO_OVER               0x00200000L
330 #define MCI_DGV_SETVIDEO_RECORD             0x00400000L
331 #define MCI_DGV_SETVIDEO_STILL              0x00800000L
332 #define MCI_DGV_SETVIDEO_VALUE              0x01000000L
333 #define MCI_DGV_SETVIDEO_INPUT              0x02000000L
334 #define MCI_DGV_SETVIDEO_OUTPUT             0x04000000L
335
336 /* values for the dwTo field of MCI_SETVIDEO_PARMS
337    used with MCI_DGV_SETVIDEO_SOURCE */
338
339 #define MCI_DGV_SETVIDEO_SRC_NTSC           0x00004000L
340 #define MCI_DGV_SETVIDEO_SRC_RGB            0x00004001L
341 #define MCI_DGV_SETVIDEO_SRC_SVIDEO         0x00004002L
342 #define MCI_DGV_SETVIDEO_SRC_PAL            0x00004003L
343 #define MCI_DGV_SETVIDEO_SRC_SECAM          0x00004004L
344 #define MCI_DGV_SETVIDEO_SRC_GENERIC        0x00004005L
345
346 /* values for the dwItem field of MCI_SETVIDEO_PARMS */
347
348 #define MCI_DGV_SETVIDEO_BRIGHTNESS         0x00004000L
349 #define MCI_DGV_SETVIDEO_COLOR              0x00004001L
350 #define MCI_DGV_SETVIDEO_CONTRAST           0x00004002L
351 #define MCI_DGV_SETVIDEO_TINT               0x00004003L
352 #define MCI_DGV_SETVIDEO_SHARPNESS          0x00004004L
353 #define MCI_DGV_SETVIDEO_GAMMA              0x00004005L
354 #define MCI_DGV_SETVIDEO_STREAM             0x00004006L
355 #define MCI_DGV_SETVIDEO_PALHANDLE          0x00004007L
356 #define MCI_DGV_SETVIDEO_FRAME_RATE         0x00004008L
357 #define MCI_DGV_SETVIDEO_SOURCE             0x00004009L
358 #define MCI_DGV_SETVIDEO_KEY_INDEX          0x0000400aL
359 #define MCI_DGV_SETVIDEO_KEY_COLOR          0x0000400bL
360 #define MCI_DGV_SETVIDEO_BITSPERPEL         0x0000400cL
361
362 /* flags for the dwFlags parameter of MCI_SIGNAL */
363
364 #define MCI_DGV_SIGNAL_AT                   0x00010000L
365 #define MCI_DGV_SIGNAL_EVERY                0x00020000L
366 #define MCI_DGV_SIGNAL_USERVAL              0x00040000L
367 #define MCI_DGV_SIGNAL_CANCEL               0x00080000L
368 #define MCI_DGV_SIGNAL_POSITION             0x00100000L
369
370 /* flags for the dwFlags parameter of MCI_STATUS command */
371
372 #define MCI_DGV_STATUS_NOMINAL              0x00020000L
373 #define MCI_DGV_STATUS_REFERENCE            0x00040000L
374 #define MCI_DGV_STATUS_LEFT                 0x00080000L
375 #define MCI_DGV_STATUS_RIGHT                0x00100000L
376 #define MCI_DGV_STATUS_DISKSPACE            0x00200000L
377 #define MCI_DGV_STATUS_INPUT                0x00400000L
378 #define MCI_DGV_STATUS_OUTPUT               0x00800000L
379 #define MCI_DGV_STATUS_RECORD               0x01000000L
380
381 /* values for dwItem field of MCI_STATUS_PARMS structure */
382
383 #define MCI_DGV_STATUS_AUDIO_INPUT          0x00004000L
384 #define MCI_DGV_STATUS_HWND                 0x00004001L
385 #define MCI_DGV_STATUS_SPEED                0x00004003L
386 #define MCI_DGV_STATUS_HPAL                 0x00004004L
387 #define MCI_DGV_STATUS_BRIGHTNESS           0x00004005L
388 #define MCI_DGV_STATUS_COLOR                0x00004006L
389 #define MCI_DGV_STATUS_CONTRAST             0x00004007L
390 #define MCI_DGV_STATUS_FILEFORMAT           0x00004008L
391 #define MCI_DGV_STATUS_AUDIO_SOURCE         0x00004009L
392 #define MCI_DGV_STATUS_GAMMA                0x0000400aL
393 #define MCI_DGV_STATUS_MONITOR              0x0000400bL
394 #define MCI_DGV_STATUS_MONITOR_METHOD       0x0000400cL
395 #define MCI_DGV_STATUS_FRAME_RATE           0x0000400eL
396 #define MCI_DGV_STATUS_BASS                 0x0000400fL
397 #define MCI_DGV_STATUS_SIZE                 0x00004010L
398 #define MCI_DGV_STATUS_SEEK_EXACTLY         0x00004011L
399 #define MCI_DGV_STATUS_SHARPNESS            0x00004012L
400 #define MCI_DGV_STATUS_SMPTE                0x00004013L
401 #define MCI_DGV_STATUS_AUDIO                0x00004014L
402 #define MCI_DGV_STATUS_TINT                 0x00004015L
403 #define MCI_DGV_STATUS_TREBLE               0x00004016L
404 #define MCI_DGV_STATUS_UNSAVED              0x00004017L
405 #define MCI_DGV_STATUS_VIDEO                0x00004018L
406 #define MCI_DGV_STATUS_VOLUME               0x00004019L
407 #define MCI_DGV_STATUS_AUDIO_RECORD         0x0000401aL
408 #define MCI_DGV_STATUS_VIDEO_SOURCE         0x0000401bL
409 #define MCI_DGV_STATUS_VIDEO_RECORD         0x0000401cL
410 #define MCI_DGV_STATUS_STILL_FILEFORMAT     0x0000401dL
411 #define MCI_DGV_STATUS_VIDEO_SRC_NUM        0x0000401eL
412 #define MCI_DGV_STATUS_FILE_MODE            0x0000401fL
413 #define MCI_DGV_STATUS_FILE_COMPLETION      0x00004020L
414 #define MCI_DGV_STATUS_WINDOW_VISIBLE       0x00004021L
415 #define MCI_DGV_STATUS_WINDOW_MINIMIZED     0x00004022L
416 #define MCI_DGV_STATUS_WINDOW_MAXIMIZED     0x00004023L
417 #define MCI_DGV_STATUS_KEY_INDEX            0x00004024L
418 #define MCI_DGV_STATUS_KEY_COLOR            0x00004025L
419 #define MCI_DGV_STATUS_PAUSE_MODE           0x00004026L
420 #define MCI_DGV_STATUS_SAMPLESPERSEC        0x00004027L
421 #define MCI_DGV_STATUS_AVGBYTESPERSEC       0x00004028L
422 #define MCI_DGV_STATUS_BLOCKALIGN           0x00004029L
423 #define MCI_DGV_STATUS_BITSPERSAMPLE        0x0000402aL
424 #define MCI_DGV_STATUS_BITSPERPEL           0x0000402bL
425 #define MCI_DGV_STATUS_FORWARD              0x0000402cL
426 #define MCI_DGV_STATUS_AUDIO_STREAM         0x0000402dL
427 #define MCI_DGV_STATUS_VIDEO_STREAM         0x0000402eL
428
429 /* flags for dwFlags parameter of MCI_STEP command message */
430
431 #define MCI_DGV_STEP_REVERSE                0x00010000L
432 #define MCI_DGV_STEP_FRAMES                 0x00020000L
433
434 /* flags for dwFlags parameter of MCI_STOP command message */
435
436 #define MCI_DGV_STOP_HOLD                   0x00010000L
437
438 /* flags for dwFlags parameter of MCI_UPDATE command message */
439
440 #define MCI_DGV_UPDATE_HDC                  0x00020000L
441 #define MCI_DGV_UPDATE_PAINT                0x00040000L
442
443 /* flags for dwFlags parameter of MCI_WHERE command message */
444
445 #define MCI_DGV_WHERE_SOURCE                0x00020000L
446 #define MCI_DGV_WHERE_DESTINATION           0x00040000L
447 #define MCI_DGV_WHERE_FRAME                 0x00080000L
448 #define MCI_DGV_WHERE_VIDEO                 0x00100000L
449 #define MCI_DGV_WHERE_WINDOW                0x00200000L
450 #define MCI_DGV_WHERE_MAX                   0x00400000L
451
452 /* flags for dwFlags parameter of MCI_WINDOW command message */
453
454 #define MCI_DGV_WINDOW_HWND                 0x00010000L
455 #define MCI_DGV_WINDOW_STATE                0x00040000L
456 #define MCI_DGV_WINDOW_TEXT                 0x00080000L
457
458 /* flags for hWnd parameter of MCI_DGV_WINDOW_PARMS parameter block */
459
460 #define MCI_DGV_WINDOW_DEFAULT              0x00000000L
461
462 /* parameter block for MCI_WHERE, MCI_PUT, MCI_FREEZE, MCI_UNFREEZE cmds */
463
464 typedef struct {
465     DWORD   dwCallback;
466     RECT    rc;
467 } MCI_DGV_RECT_PARMS, *LPMCI_DGV_RECT_PARMS;
468
469 /* parameter block for MCI_CAPTURE command message */
470
471 typedef struct {
472     DWORD   dwCallback;
473     LPSTR   lpstrFileName;
474     RECT    rc;
475 } MCI_DGV_CAPTURE_PARMSA, *LPMCI_DGV_CAPTURE_PARMSA;
476
477 typedef struct {
478     DWORD   dwCallback;
479     LPWSTR  lpstrFileName;
480     RECT    rc;
481 } MCI_DGV_CAPTURE_PARMSW, *LPMCI_DGV_CAPTURE_PARMSW;
482
483 DECL_WINELIB_TYPE_AW(MCI_DGV_CAPTURE_PARMS)
484 DECL_WINELIB_TYPE_AW(LPMCI_DGV_CAPTURE_PARMS)
485
486 /* parameter block for MCI_CLOSE command message */
487
488 typedef MCI_GENERIC_PARMS MCI_CLOSE_PARMS, *LPMCI_CLOSE_PARMS;
489
490 /* parameter block for MCI_COPY command message */
491
492 typedef struct {
493     DWORD   dwCallback;
494     DWORD   dwFrom;
495     DWORD   dwTo;
496     RECT    rc;
497     DWORD   dwAudioStream;
498     DWORD   dwVideoStream;
499 } MCI_DGV_COPY_PARMS, *LPMCI_DGV_COPY_PARMS;
500
501 /* parameter block for MCI_CUE command message */
502
503 typedef struct {
504     DWORD   dwCallback;
505     DWORD   dwTo;
506 } MCI_DGV_CUE_PARMS, *LPMCI_DGV_CUE_PARMS;
507
508 /* parameter block for MCI_CUT command message */
509
510 typedef struct {
511     DWORD   dwCallback;
512     DWORD   dwFrom;
513     DWORD   dwTo;
514     RECT    rc;
515     DWORD   dwAudioStream;
516     DWORD   dwVideoStream;
517 } MCI_DGV_CUT_PARMS, * LPMCI_DGV_CUT_PARMS;
518
519 /* parameter block for MCI_DELETE command message */
520
521 typedef struct {
522     DWORD   dwCallback;
523     DWORD   dwFrom;
524     DWORD   dwTo;
525     RECT    rc;
526     DWORD   dwAudioStream;
527     DWORD   dwVideoStream;
528 } MCI_DGV_DELETE_PARMS, * LPMCI_DGV_DELETE_PARMS;
529
530 /* parameter block for MCI_FREEZE command message */
531
532 typedef MCI_DGV_RECT_PARMS MCI_DGV_FREEZE_PARMS, * LPMCI_DGV_FREEZE_PARMS;
533
534 /* parameter block for MCI_INFO command message */
535
536 typedef struct  {
537     DWORD   dwCallback;
538     LPSTR   lpstrReturn;
539     DWORD   dwRetSize;
540     DWORD   dwItem;
541 } MCI_DGV_INFO_PARMSA, * LPMCI_DGV_INFO_PARMSA;
542
543 typedef struct  {
544     DWORD   dwCallback;
545     LPWSTR  lpstrReturn;
546     DWORD   dwRetSize;
547     DWORD   dwItem;
548 } MCI_DGV_INFO_PARMSW, *LPMCI_DGV_INFO_PARMSW;
549
550 DECL_WINELIB_TYPE_AW(MCI_DGV_INFO_PARMS)
551 DECL_WINELIB_TYPE_AW(LPMCI_DGV_INFO_PARMS)
552
553 /* parameter block for MCI_LIST command message */
554
555 typedef struct {
556     DWORD   dwCallback;
557     LPSTR   lpstrReturn;
558     DWORD   dwLength;
559     DWORD   dwNumber;
560     DWORD   dwItem;
561     LPSTR   lpstrAlgorithm;
562 } MCI_DGV_LIST_PARMSA, *LPMCI_DGV_LIST_PARMSA;
563
564 typedef struct {
565     DWORD   dwCallback;
566     LPWSTR  lpstrReturn;
567     DWORD   dwLength;
568     DWORD   dwNumber;
569     DWORD   dwItem;
570     LPWSTR  lpstrAlgorithm;
571 } MCI_DGV_LIST_PARMSW, *LPMCI_DGV_LIST_PARMSW;
572
573 DECL_WINELIB_TYPE_AW(MCI_DGV_LIST_PARMS)
574 DECL_WINELIB_TYPE_AW(LPMCI_DGV_LIST_PARMS)
575
576 /* parameter block for MCI_LOAD command message */
577
578 typedef MCI_LOAD_PARMSA MCI_DGV_LOAD_PARMSA, * LPMCI_DGV_LOAD_PARMSA;
579 typedef MCI_LOAD_PARMSW MCI_DGV_LOAD_PARMSW, * LPMCI_DGV_LOAD_PARMSW;
580
581 DECL_WINELIB_TYPE_AW(MCI_DGV_LOAD_PARMS)
582 DECL_WINELIB_TYPE_AW(LPMCI_DGV_LOAD_PARMS)
583
584 /* parameter block for MCI_MONITOR command message */
585
586 typedef struct {
587     DWORD   dwCallback;
588     DWORD   dwSource;
589     DWORD   dwMethod;
590 } MCI_DGV_MONITOR_PARMS, * LPMCI_DGV_MONITOR_PARMS;
591
592 /* parameter block for MCI_OPEN command message */
593
594 typedef struct {
595     DWORD   dwCallback;
596     UINT    wDeviceID;
597     LPSTR   lpstrDeviceType;
598     LPSTR   lpstrElementName;
599     LPSTR   lpstrAlias;
600     DWORD   dwStyle;
601     HWND  hWndParent;
602 } MCI_DGV_OPEN_PARMSA, *LPMCI_DGV_OPEN_PARMSA;
603
604 typedef struct {
605     DWORD   dwCallback;
606     UINT    wDeviceID;
607     LPWSTR  lpstrDeviceType;
608     LPWSTR  lpstrElementName;
609     LPWSTR  lpstrAlias;
610     DWORD   dwStyle;
611     HWND  hWndParent;
612 } MCI_DGV_OPEN_PARMSW, *LPMCI_DGV_OPEN_PARMSW;
613
614 DECL_WINELIB_TYPE_AW(MCI_DGV_OPEN_PARMS)
615 DECL_WINELIB_TYPE_AW(LPMCI_DGV_OPEN_PARMS)
616
617 /* parameter block for MCI_PAUSE command message */
618
619 typedef MCI_GENERIC_PARMS MCI_DGV_PAUSE_PARMS, * LPMCI_DGV_PAUSE_PARMS;
620
621 /* parameter block for MCI_PASTE command message */
622
623 typedef struct {
624     DWORD   dwCallback;
625     DWORD   dwTo;
626     RECT    rc;
627     DWORD   dwAudioStream;
628     DWORD   dwVideoStream;
629 } MCI_DGV_PASTE_PARMS, * LPMCI_DGV_PASTE_PARMS;
630
631 /* parameter block for MCI_PLAY command message */
632
633 typedef MCI_PLAY_PARMS MCI_DGV_PLAY_PARMS, * LPMCI_DGV_PLAY_PARMS;
634
635 /* parameter block for MCI_PUT command message */
636
637 typedef MCI_DGV_RECT_PARMS MCI_DGV_PUT_PARMS, * LPMCI_DGV_PUT_PARMS;
638
639 /* parameter block for MCI_QUALITY command message */
640
641 typedef struct {
642     DWORD       dwCallback;
643     DWORD       dwItem;
644     LPSTR       lpstrName;
645     DWORD       lpstrAlgorithm;
646     DWORD       dwHandle;
647 } MCI_DGV_QUALITY_PARMSA, *LPMCI_DGV_QUALITY_PARMSA;
648
649 typedef struct {
650     DWORD       dwCallback;
651     DWORD       dwItem;
652     LPWSTR      lpstrName;
653     DWORD       lpstrAlgorithm;
654     DWORD       dwHandle;
655 } MCI_DGV_QUALITY_PARMSW, *LPMCI_DGV_QUALITY_PARMSW;
656
657 DECL_WINELIB_TYPE_AW(MCI_DGV_QUALITY_PARMS)
658 DECL_WINELIB_TYPE_AW(LPMCI_DGV_QUALITY_PARMS)
659
660 /* parameter block for MCI_REALIZE command message */
661
662 typedef MCI_GENERIC_PARMS MCI_REALIZE_PARMS, * LPMCI_REALIZE_PARMS;
663
664 /* parameter block for MCI_RECORD command message */
665
666 typedef struct {
667     DWORD   dwCallback;
668     DWORD   dwFrom;
669     DWORD   dwTo;
670     RECT    rc;
671     DWORD   dwAudioStream;
672     DWORD   dwVideoStream;
673 } MCI_DGV_RECORD_PARMS, * LPMCI_DGV_RECORD_PARMS;
674
675 /* parameter block for MCI_RESERVE command message */
676
677 typedef struct {
678     DWORD   dwCallback;
679     LPSTR   lpstrPath;
680     DWORD   dwSize;
681 } MCI_DGV_RESERVE_PARMSA, *LPMCI_DGV_RESERVE_PARMSA;
682
683 typedef struct {
684     DWORD   dwCallback;
685     LPWSTR  lpstrPath;
686     DWORD   dwSize;
687 } MCI_DGV_RESERVE_PARMSW, *LPMCI_DGV_RESERVE_PARMSW;
688
689 DECL_WINELIB_TYPE_AW(MCI_DGV_RESERVE_PARMS)
690 DECL_WINELIB_TYPE_AW(LPMCI_DGV_RESERVE_PARMS)
691
692 /* parameter block for MCI_RESTORE command message */
693
694 typedef struct {
695     DWORD   dwCallback;
696     LPSTR   lpstrFileName;
697     RECT    rc;
698 } MCI_DGV_RESTORE_PARMSA, *LPMCI_DGV_RESTORE_PARMSA;
699
700 typedef struct {
701     DWORD   dwCallback;
702     LPWSTR  lpstrFileName;
703     RECT    rc;
704 } MCI_DGV_RESTORE_PARMSW, *LPMCI_DGV_RESTORE_PARMSW;
705
706 DECL_WINELIB_TYPE_AW(MCI_DGV_RESTORE_PARMS)
707 DECL_WINELIB_TYPE_AW(LPMCI_DGV_RESTORE_PARMS)
708
709 /* parameter block for MCI_RESUME command message */
710
711 typedef MCI_GENERIC_PARMS MCI_DGV_RESUME_PARMS, * LPMCI_DGV_RESUME_PARMS;
712
713 /* parameter block for MCI_SAVE command message */
714
715 typedef struct {
716     DWORD   dwCallback;
717     LPSTR   lpstrFileName;
718     RECT    rc;
719 } MCI_DGV_SAVE_PARMSA, *LPMCI_DGV_SAVE_PARMSA;
720
721 typedef struct {
722     DWORD   dwCallback;
723     LPWSTR  lpstrFileName;
724     RECT    rc;
725 } MCI_DGV_SAVE_PARMSW, *LPMCI_DGV_SAVE_PARMSW;
726
727 DECL_WINELIB_TYPE_AW(MCI_DGV_SAVE_PARMS)
728 DECL_WINELIB_TYPE_AW(LPMCI_DGV_SAVE_PARMS)
729
730 /* parameter block for MCI_SET command message */
731
732 typedef struct {
733     DWORD   dwCallback;
734     DWORD   dwTimeFormat;
735     DWORD   dwAudio;
736     DWORD   dwFileFormat;
737     DWORD   dwSpeed;
738 } MCI_DGV_SET_PARMS, *LPMCI_DGV_SET_PARMS;
739
740 /* parameter block for MCI_SETAUDIO command message */
741
742 typedef struct {
743     DWORD   dwCallback;
744     DWORD   dwItem;
745     DWORD   dwValue;
746     DWORD   dwOver;
747     LPSTR   lpstrAlgorithm;
748     LPSTR   lpstrQuality;
749 } MCI_DGV_SETAUDIO_PARMSA, *LPMCI_DGV_SETAUDIO_PARMSA;
750
751 typedef struct {
752     DWORD   dwCallback;
753     DWORD   dwItem;
754     DWORD   dwValue;
755     DWORD   dwOver;
756     LPWSTR  lpstrAlgorithm;
757     LPWSTR  lpstrQuality;
758 } MCI_DGV_SETAUDIO_PARMSW, *LPMCI_DGV_SETAUDIO_PARMSW;
759
760 DECL_WINELIB_TYPE_AW(MCI_DGV_SETAUDIO_PARMS)
761 DECL_WINELIB_TYPE_AW(LPMCI_DGV_SETAUDIO_PARMS)
762
763 /* parameter block for MCI_SIGNAL command message */
764
765 typedef struct {
766     DWORD   dwCallback;
767     DWORD   dwPosition;
768     DWORD   dwPeriod;
769     DWORD   dwUserParm;
770 } MCI_DGV_SIGNAL_PARMS, * LPMCI_DGV_SIGNAL_PARMS;
771
772 /* parameter block for MCI_SETVIDEO command message */
773
774 typedef struct {
775     DWORD   dwCallback;
776     DWORD   dwItem;
777     DWORD   dwValue;
778     DWORD   dwOver;
779     LPSTR   lpstrAlgorithm;
780     LPSTR   lpstrQuality;
781     DWORD   dwSourceNumber;
782 } MCI_DGV_SETVIDEO_PARMSA, *LPMCI_DGV_SETVIDEO_PARMSA;
783
784 typedef struct {
785     DWORD   dwCallback;
786     DWORD   dwItem;
787     DWORD   dwValue;
788     DWORD   dwOver;
789     LPWSTR  lpstrAlgorithm;
790     LPWSTR  lpstrQuality;
791     DWORD   dwSourceNumber;
792 } MCI_DGV_SETVIDEO_PARMSW, *LPMCI_DGV_SETVIDEO_PARMSW;
793
794 DECL_WINELIB_TYPE_AW(MCI_DGV_SETVIDEO_PARMS)
795 DECL_WINELIB_TYPE_AW(LPMCI_DGV_SETVIDEO_PARMS)
796
797 /* parameter block for MCI_STATUS command message */
798
799 typedef struct {
800     DWORD   dwCallback;
801     DWORD   dwReturn;
802     DWORD   dwItem;
803     DWORD   dwTrack;
804     LPSTR   lpstrDrive;
805     DWORD   dwReference;
806 } MCI_DGV_STATUS_PARMSA, *LPMCI_DGV_STATUS_PARMSA;
807
808 typedef struct {
809     DWORD   dwCallback;
810     DWORD   dwReturn;
811     DWORD   dwItem;
812     DWORD   dwTrack;
813     LPWSTR  lpstrDrive;
814     DWORD   dwReference;
815 } MCI_DGV_STATUS_PARMSW, *LPMCI_DGV_STATUS_PARMSW;
816
817 DECL_WINELIB_TYPE_AW(MCI_DGV_STATUS_PARMS)
818 DECL_WINELIB_TYPE_AW(LPMCI_DGV_STATUS_PARMS)
819
820 /* parameter block for MCI_STEP command message */
821
822 typedef struct {
823     DWORD   dwCallback;
824     DWORD   dwFrames;
825 } MCI_DGV_STEP_PARMS, *LPMCI_DGV_STEP_PARMS;
826
827 /* parameter block for MCI_STOP command message */
828
829 typedef MCI_GENERIC_PARMS MCI_DGV_STOP_PARMS, * LPMCI_DGV_STOP_PARMS;
830
831 /* parameter block for MCI_UNFREEZE command message */
832
833 typedef MCI_DGV_RECT_PARMS MCI_DGV_UNFREEZE_PARMS, * LPMCI_DGV_UNFREEZE_PARMS;
834
835 /* parameter block for MCI_UPDATE command message */
836
837 typedef struct {
838     DWORD   dwCallback;
839     RECT    rc;
840     HDC     hDC;
841 } MCI_DGV_UPDATE_PARMS, * LPMCI_DGV_UPDATE_PARMS;
842
843 /* parameter block for MCI_WHERE command message */
844
845 typedef MCI_DGV_RECT_PARMS MCI_DGV_WHERE_PARMS, * LPMCI_DGV_WHERE_PARMS;
846
847 /* parameter block for MCI_WINDOW command message */
848
849 typedef struct {
850     DWORD   dwCallback;
851     HWND    hWnd;
852     UINT    nCmdShow;
853     LPSTR   lpstrText;
854 } MCI_DGV_WINDOW_PARMSA, *LPMCI_DGV_WINDOW_PARMSA;
855
856 typedef struct {
857     DWORD   dwCallback;
858     HWND    hWnd;
859     UINT    nCmdShow;
860     LPWSTR  lpstrText;
861 } MCI_DGV_WINDOW_PARMSW, *LPMCI_DGV_WINDOW_PARMSW;
862
863 #ifdef __cplusplus
864 }
865 #endif
866
867 #endif /* __WINE_DIGITALV_H */