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