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