ReactOS 0.4.15-dev-7942-gd23573b
info.c
Go to the documentation of this file.
1/*
2 * Digital video MCI Wine Driver
3 *
4 * Copyright 1999, 2000 Eric POUECH
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21#include <string.h>
22#include "private_mciavi.h"
23#include "wine/debug.h"
24
26
27/**************************************************************************
28 * MCIAVI_ConvertFrameToTimeFormat [internal]
29 */
31{
32 DWORD ret = 0;
33
34 switch (wma->dwMciTimeFormat) {
36 ret = (val * wma->mah.dwMicroSecPerFrame) / 1000;
37 break;
39 ret = val;
40 break;
41 default:
42 WARN("Bad time format %u!\n", wma->dwMciTimeFormat);
43 }
44 TRACE("val=%u=0x%08x [tf=%u] => ret=%u\n", val, val, wma->dwMciTimeFormat, ret);
45 *lpRet = 0;
46 return ret;
47}
48
49/**************************************************************************
50 * MCIAVI_ConvertTimeFormatToFrame [internal]
51 */
53{
54 DWORD ret = 0;
55
56 switch (wma->dwMciTimeFormat) {
58 ret = (val * 1000) / wma->mah.dwMicroSecPerFrame;
59 break;
61 ret = val;
62 break;
63 default:
64 WARN("Bad time format %u!\n", wma->dwMciTimeFormat);
65 }
66 TRACE("val=%u=0x%08x [tf=%u] => ret=%u\n", val, val, wma->dwMciTimeFormat, ret);
67 return ret;
68}
69
70/***************************************************************************
71 * MCIAVI_mciGetDevCaps [internal]
72 */
74{
75 WINE_MCIAVI* wma = MCIAVI_mciGetOpenDev(wDevID);
77
78 TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpParms);
79
80 if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK;
81 if (wma == NULL) return MCIERR_INVALID_DEVICE_ID;
83 if (dwFlags & MCI_TEST) return 0;
84
86
88 switch (lpParms->dwItem) {
90 TRACE("MCI_GETDEVCAPS_DEVICE_TYPE !\n");
93 break;
95 TRACE("MCI_GETDEVCAPS_HAS_AUDIO !\n");
98 break;
100 TRACE("MCI_GETDEVCAPS_HAS_VIDEO !\n");
103 break;
105 TRACE("MCI_GETDEVCAPS_USES_FILES !\n");
108 break;
110 TRACE("MCI_GETDEVCAPS_COMPOUND_DEVICE !\n");
113 break;
115 TRACE("MCI_GETDEVCAPS_CAN_EJECT !\n");
118 break;
120 TRACE("MCI_GETDEVCAPS_CAN_PLAY !\n");
123 break;
125 TRACE("MCI_GETDEVCAPS_CAN_RECORD !\n");
128 break;
130 TRACE("MCI_GETDEVCAPS_CAN_SAVE !\n");
133 break;
135 TRACE("MCI_DGV_GETDEVCAPS_CAN_REVERSE !\n");
136 lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE); /* FIXME */
138 break;
140 TRACE("MCI_DGV_GETDEVCAPS_CAN_STRETCH !\n");
141 lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE); /* FIXME */
143 break;
145 TRACE("MCI_DGV_GETDEVCAPS_CAN_LOCK !\n");
148 break;
150 TRACE("MCI_DGV_GETDEVCAPS_CAN_FREEZE !\n");
153 break;
155 TRACE("MCI_DGV_GETDEVCAPS_CAN_STRETCH_INPUT !\n");
158 break;
160 TRACE("MCI_DGV_GETDEVCAPS_HAS_STILL !\n");
163 break;
165 TRACE("MCI_DGV_GETDEVCAPS_CAN_TEST !\n");
168 break;
170 TRACE("MCI_DGV_GETDEVCAPS_PALETTES !\n");
171 lpParms->dwReturn = MAKEMCIRESOURCE(FALSE, MCI_FALSE); /* FIXME */
173 break;
174 /* w2k does not know MAX_WINDOWS or MAX/MINIMUM_RATE */
175 default:
176 FIXME("Unknown capability (%08x) !\n", lpParms->dwItem);
177 break;
178 }
179 }
180
182 return ret;
183}
184
185/***************************************************************************
186 * MCIAVI_mciInfo [internal]
187 */
189{
190 LPCWSTR str = 0;
191 WINE_MCIAVI* wma = MCIAVI_mciGetOpenDev(wDevID);
192 DWORD ret = 0;
193 static const WCHAR wszAviPlayer[] = {'W','i','n','e','\'','s',' ','A','V','I',' ','p','l','a','y','e','r',0};
194 static const WCHAR wszVersion[] = {'1','.','1',0};
195
196 if (lpParms == NULL || lpParms->lpstrReturn == NULL)
198 if (wma == NULL) return MCIERR_INVALID_DEVICE_ID;
199 if (dwFlags & MCI_TEST) return 0;
200
201 TRACE("buf=%p, len=%u\n", lpParms->lpstrReturn, lpParms->dwRetSize);
202
204
206 str = wszAviPlayer;
207 else if (dwFlags & MCI_INFO_VERSION)
208 str = wszVersion;
209 else if (dwFlags & MCI_INFO_FILE)
210 str = wma->lpFileName;
211 else {
212 WARN("Don't know this info command (%u)\n", dwFlags);
214 }
215 if (!ret) {
216 WCHAR zero = 0;
217 /* Only mciwave, mciseq and mcicda set dwRetSize (since NT). */
218 lstrcpynW(lpParms->lpstrReturn, str ? str : &zero, lpParms->dwRetSize);
219 }
221 return ret;
222}
223
224/***************************************************************************
225 * MCIAVI_mciSet [internal]
226 */
228{
229 WINE_MCIAVI* wma = MCIAVI_mciGetOpenDev(wDevID);
230
231 if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK;
232 if (wma == NULL) return MCIERR_INVALID_DEVICE_ID;
233 if (dwFlags & MCI_TEST) return 0;
234
236
238 switch (lpParms->dwTimeFormat) {
240 TRACE("MCI_FORMAT_MILLISECONDS !\n");
242 break;
244 TRACE("MCI_FORMAT_FRAMES !\n");
246 break;
247 default:
248 WARN("Bad time format %u!\n", lpParms->dwTimeFormat);
251 }
252 }
253
255 TRACE("No support for door open !\n");
258 }
260 TRACE("No support for door close !\n");
263 }
264
265 if (dwFlags & MCI_SET_ON) {
266 const char *szVideo="";
267 const char *szAudio="";
268 const char *szSeek="";
269
270 if (dwFlags & MCI_SET_VIDEO) {
271 szVideo = " video";
272 wma->dwSet |= 4;
273 }
274 if (dwFlags & MCI_SET_AUDIO) {
275 switch (lpParms->dwAudio) {
277 szAudio = " audio all";
278 wma->dwSet |= 3;
279 break;
281 szAudio = " audio left";
282 wma->dwSet |= 1;
283 break;
285 szAudio = " audio right";
286 wma->dwSet |= 2;
287 break;
288 default:
289 szAudio = " audio unknown";
290 WARN("Unknown audio channel %u\n", lpParms->dwAudio);
291 break;
292 }
293 }
295 szSeek = " seek_exactly";
296 }
297 FIXME("MCI_SET_ON:%s%s%s\n", szVideo, szAudio, szSeek);
298 }
299
300 if (dwFlags & MCI_SET_OFF) {
301 const char *szVideo="";
302 const char *szAudio="";
303 const char *szSeek="";
304
305 if (dwFlags & MCI_SET_VIDEO) {
306 szVideo = " video";
307 wma->dwSet &= ~4;
308 }
309 if (dwFlags & MCI_SET_AUDIO) {
310 switch (lpParms->dwAudio) {
312 szAudio = " audio all";
313 wma->dwSet &= ~3;
314 break;
316 szAudio = " audio left";
317 wma->dwSet &= ~2;
318 break;
320 szAudio = " audio right";
321 wma->dwSet &= ~2;
322 break;
323 default:
324 szAudio = " audio unknown";
325 WARN("Unknown audio channel %u\n", lpParms->dwAudio);
326 break;
327 }
328 }
330 szSeek = " seek_exactly";
331 }
332 FIXME("MCI_SET_OFF:%s%s%s\n", szVideo, szAudio, szSeek);
333 }
335 LPCSTR str = "save";
337 str = "capture";
338
339 switch (lpParms->dwFileFormat) {
340 case MCI_DGV_FF_AVI: FIXME("Setting file format (%s) to 'AVI'\n", str); break;
341 case MCI_DGV_FF_AVSS: FIXME("Setting file format (%s) to 'AVSS'\n", str); break;
342 case MCI_DGV_FF_DIB: FIXME("Setting file format (%s) to 'DIB'\n", str); break;
343 case MCI_DGV_FF_JFIF: FIXME("Setting file format (%s) to 'JFIF'\n", str); break;
344 case MCI_DGV_FF_JPEG: FIXME("Setting file format (%s) to 'JPEG'\n", str); break;
345 case MCI_DGV_FF_MPEG: FIXME("Setting file format (%s) to 'MPEG'\n", str); break;
346 case MCI_DGV_FF_RDIB: FIXME("Setting file format (%s) to 'RLE DIB'\n", str); break;
347 case MCI_DGV_FF_RJPEG: FIXME("Setting file format (%s) to 'RJPEG'\n", str); break;
348 default: FIXME("Setting unknown file format (%s): %d\n", str, lpParms->dwFileFormat);
349 }
350 }
351
353 FIXME("Setting speed to %d\n", lpParms->dwSpeed);
354 }
355
357 return 0;
358}
359
360/***************************************************************************
361 * MCIAVI_mciStatus [internal]
362 */
364{
365 WINE_MCIAVI* wma = MCIAVI_mciGetOpenDev(wDevID);
366 DWORD ret = 0;
367
368 if (lpParms == NULL) return MCIERR_NULL_PARAMETER_BLOCK;
369 if (wma == NULL) return MCIERR_INVALID_DEVICE_ID;
371 if (dwFlags & MCI_TEST) return 0;
372
374
375 if (dwFlags & MCI_STATUS_ITEM) {
376 switch (lpParms->dwItem) {
378 lpParms->dwReturn = 1;
379 TRACE("MCI_STATUS_CURRENT_TRACK => %lu\n", lpParms->dwReturn);
380 break;
382 if (!wma->hFile) {
383 lpParms->dwReturn = 0;
386 }
387 /* only one track in file is currently handled, so don't take care of MCI_TRACK flag */
389 TRACE("MCI_STATUS_LENGTH => %lu\n", lpParms->dwReturn);
390 break;
391 case MCI_STATUS_MODE:
392 lpParms->dwReturn = MAKEMCIRESOURCE(wma->dwStatus, wma->dwStatus);
394 TRACE("MCI_STATUS_MODE => 0x%04x\n", LOWORD(lpParms->dwReturn));
395 break;
397 TRACE("MCI_STATUS_MEDIA_PRESENT => TRUE\n");
400 break;
402 lpParms->dwReturn = 1;
403 TRACE("MCI_STATUS_NUMBER_OF_TRACKS => %lu\n", lpParms->dwReturn);
404 break;
406 if (!wma->hFile) {
407 lpParms->dwReturn = 0;
410 }
411 /* only one track in file is currently handled, so don't take care of MCI_TRACK flag */
414 &ret);
415 TRACE("MCI_STATUS_POSITION %s => %lu\n",
416 (dwFlags & MCI_STATUS_START) ? "start" : "current", lpParms->dwReturn);
417 break;
418 case MCI_STATUS_READY:
419 lpParms->dwReturn = (wma->dwStatus == MCI_MODE_NOT_READY) ?
422 TRACE("MCI_STATUS_READY = %u\n", LOWORD(lpParms->dwReturn));
423 break;
427 TRACE("MCI_STATUS_TIME_FORMAT => %u\n", LOWORD(lpParms->dwReturn));
429 break;
431 lpParms->dwReturn = (wma->dwSet & 3) ?
434 TRACE("MCI_STATUS_AUDIO = %u\n", LOWORD(lpParms->dwReturn));
435 break;
437 lpParms->dwReturn = (wma->dwSet & 4) ?
440 TRACE("MCI_STATUS_VIDEO = %u\n", LOWORD(lpParms->dwReturn));
441 break;
442
443#if 0
461#endif
463 lpParms->dwReturn = wma->inbih->biBitCount;
464 TRACE("MCI_DGV_STATUS_BITSPERPEL => %lu\n", lpParms->dwReturn);
465 break;
467 lpParms->dwReturn = 0;
468 TRACE("MCI_DGV_STATUS_HPAL => %lx\n", lpParms->dwReturn);
469 break;
471 lpParms->dwReturn = (DWORD_PTR)wma->hWndPaint;
472 TRACE("MCI_DGV_STATUS_HWND => %p\n", wma->hWndPaint);
473 break;
475 lpParms->dwReturn = IsWindowVisible(wma->hWndPaint) ?
478 TRACE("MCI_STATUS_WINDOW_VISIBLE = %u\n", LOWORD(lpParms->dwReturn));
479 break;
481 lpParms->dwReturn = IsIconic(wma->hWndPaint) ?
484 TRACE("MCI_STATUS_WINDOW_MINIMIZED = %u\n", LOWORD(lpParms->dwReturn));
485 break;
487 lpParms->dwReturn = IsZoomed(wma->hWndPaint) ?
490 TRACE("MCI_STATUS_WINDOW_MMAXIMIZED = %u\n", LOWORD(lpParms->dwReturn));
491 break;
493 lpParms->dwReturn = 1000;
494 TRACE("MCI_DGV_STATUS_SPEED = %lu\n", lpParms->dwReturn);
495 break;
497 /* FIXME: 1000 is a settable speed multiplier */
498 lpParms->dwReturn = MulDiv(1000000,1000,wma->mah.dwMicroSecPerFrame);
499 TRACE("MCI_DGV_STATUS_FRAME_RATE = %lu\n", lpParms->dwReturn);
500 break;
504 TRACE("MCI_DGV_STATUS_FORWARD = %u\n", LOWORD(lpParms->dwReturn));
505 break;
507 if (wma->dwStatus != MCI_MODE_PAUSE) {
510 }
513 TRACE("MCI_STATUS_MODE => 0x%04x\n", LOWORD(lpParms->dwReturn));
514 break;
516 lpParms->dwReturn = wma->audio_stream_n;
517 TRACE("MCI_DGV_STATUS_AUDIO_STREAM => %lu\n", lpParms->dwReturn);
518 break;
519#if 0
526 case MCI_DGV_STATUS_SAMPLESPERSECOND:
540#endif
541 default:
542 FIXME("Unknown command %08X !\n", lpParms->dwItem);
543 TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpParms);
546 }
547 }
548
549 if (dwFlags & MCI_NOTIFY) {
550 TRACE("MCI_NOTIFY_SUCCESSFUL %08lX !\n", lpParms->dwCallback);
552 wDevID, MCI_NOTIFY_SUCCESSFUL);
553 }
555 return ret;
556}
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
#define FIXME(fmt,...)
Definition: debug.h:111
#define WARN(fmt,...)
Definition: debug.h:112
#define MCI_DGV_STATUS_BITSPERPEL
Definition: digitalv.h:423
#define MCI_DGV_STATUS_FRAME_RATE
Definition: digitalv.h:394
#define MCI_DGV_STATUS_HPAL
Definition: digitalv.h:385
#define MCI_DGV_STATUS_BLOCKALIGN
Definition: digitalv.h:421
#define MCI_DGV_STATUS_AUDIO_RECORD
Definition: digitalv.h:406
#define MCI_DGV_STATUS_VOLUME
Definition: digitalv.h:405
#define MCI_DGV_MONITOR_INPUT
Definition: digitalv.h:206
#define MCI_DGV_GETDEVCAPS_HAS_STILL
Definition: digitalv.h:121
#define MCI_DGV_GETDEVCAPS_PALETTES
Definition: digitalv.h:122
#define MCI_DGV_GETDEVCAPS_CAN_STRETCH
Definition: digitalv.h:117
#define MCI_DGV_STATUS_AUDIO_SOURCE
Definition: digitalv.h:390
#define MCI_DGV_STATUS_AUDIO_INPUT
Definition: digitalv.h:382
#define MCI_DGV_STATUS_SIZE
Definition: digitalv.h:396
#define MCI_DGV_STATUS_VIDEO_STREAM
Definition: digitalv.h:426
#define MCI_DGV_STATUS_BRIGHTNESS
Definition: digitalv.h:386
#define MCI_DGV_FF_JFIF
Definition: digitalv.h:111
#define MCI_DGV_STATUS_FILEFORMAT
Definition: digitalv.h:389
#define MCI_DGV_STATUS_VIDEO_SRC_NUM
Definition: digitalv.h:410
#define MCI_DGV_STATUS_KEY_COLOR
Definition: digitalv.h:417
#define MCI_DGV_STATUS_TINT
Definition: digitalv.h:401
#define MCI_DGV_STATUS_WINDOW_VISIBLE
Definition: digitalv.h:413
#define MCI_DGV_STATUS_HWND
Definition: digitalv.h:383
#define MCI_DGV_STATUS_TREBLE
Definition: digitalv.h:402
#define MCI_DGV_STATUS_STILL_FILEFORMAT
Definition: digitalv.h:409
#define MCI_DGV_STATUS_PAUSE_MODE
Definition: digitalv.h:418
#define MCI_DGV_MONITOR_FILE
Definition: digitalv.h:207
#define MCI_DGV_STATUS_WINDOW_MAXIMIZED
Definition: digitalv.h:415
#define MCI_DGV_FF_AVSS
Definition: digitalv.h:105
#define MCI_DGV_STATUS_FILE_COMPLETION
Definition: digitalv.h:412
#define MCI_DGV_GETDEVCAPS_CAN_LOCK
Definition: digitalv.h:116
#define MCI_OFF_S
Definition: digitalv.h:61
#define MCI_DGV_FF_AVI
Definition: digitalv.h:106
#define MCI_DGV_SET_SEEK_EXACTLY
Definition: digitalv.h:282
#define MCI_DGV_STATUS_AVGBYTESPERSEC
Definition: digitalv.h:420
#define MCI_DGV_STATUS_FILE_MODE
Definition: digitalv.h:411
#define MCI_DGV_STATUS_CONTRAST
Definition: digitalv.h:388
#define MCI_DGV_STATUS_BASS
Definition: digitalv.h:395
#define MCI_DGV_STATUS_SMPTE
Definition: digitalv.h:399
#define MCI_DGV_FF_RDIB
Definition: digitalv.h:108
#define MCI_DGV_FF_MPEG
Definition: digitalv.h:112
#define MCI_DGV_SET_FILEFORMAT
Definition: digitalv.h:285
#define MCI_DGV_STATUS_BITSPERSAMPLE
Definition: digitalv.h:422
#define MCI_DGV_GETDEVCAPS_CAN_STR_IN
Definition: digitalv.h:123
#define MCI_DGV_FF_DIB
Definition: digitalv.h:107
#define MCI_DGV_GETDEVCAPS_CAN_TEST
Definition: digitalv.h:124
#define MCI_DGV_SET_SPEED
Definition: digitalv.h:283
#define MCI_DGV_STATUS_AUDIO
Definition: digitalv.h:400
#define MCI_DGV_FF_RJPEG
Definition: digitalv.h:110
#define MCI_DGV_STATUS_SPEED
Definition: digitalv.h:384
#define MCI_DGV_GETDEVCAPS_CAN_REVERSE
Definition: digitalv.h:120
#define MCI_ON
Definition: digitalv.h:50
#define MCI_DGV_SET_STILL
Definition: digitalv.h:284
#define MCI_DGV_STATUS_AUDIO_STREAM
Definition: digitalv.h:425
#define MCI_DGV_STATUS_VIDEO_SOURCE
Definition: digitalv.h:407
#define MCI_DGV_STATUS_KEY_INDEX
Definition: digitalv.h:416
#define MCI_DGV_GETDEVCAPS_CAN_FREEZE
Definition: digitalv.h:118
#define MCI_INFO_VERSION
Definition: digitalv.h:169
#define MCI_DGV_STATUS_SHARPNESS
Definition: digitalv.h:398
#define MCI_DGV_STATUS_MONITOR_METHOD
Definition: digitalv.h:393
#define MCI_DGV_STATUS_FORWARD
Definition: digitalv.h:424
#define MCI_TEST
Definition: digitalv.h:32
#define MCI_DGV_STATUS_SEEK_EXACTLY
Definition: digitalv.h:397
#define MCI_DGV_STATUS_GAMMA
Definition: digitalv.h:391
#define MCI_DGV_STATUS_VIDEO
Definition: digitalv.h:404
#define MCI_OFF
Definition: digitalv.h:51
#define MCI_ON_S
Definition: digitalv.h:60
#define MCI_DGV_FF_JPEG
Definition: digitalv.h:109
#define MCI_DGV_STATUS_UNSAVED
Definition: digitalv.h:403
#define MCI_DGV_STATUS_VIDEO_RECORD
Definition: digitalv.h:408
#define MCI_DGV_STATUS_MONITOR
Definition: digitalv.h:392
#define MCI_DGV_STATUS_WINDOW_MINIMIZED
Definition: digitalv.h:414
#define MCI_DGV_STATUS_COLOR
Definition: digitalv.h:387
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define lstrcpynW
Definition: compat.h:738
DWORD MCIAVI_mciStatus(UINT wDevID, DWORD dwFlags, LPMCI_DGV_STATUS_PARMSW lpParms)
Definition: info.c:363
DWORD MCIAVI_ConvertTimeFormatToFrame(WINE_MCIAVI *wma, DWORD val)
Definition: info.c:52
DWORD MCIAVI_mciGetDevCaps(UINT wDevID, DWORD dwFlags, LPMCI_GETDEVCAPS_PARMS lpParms)
Definition: info.c:73
static DWORD MCIAVI_ConvertFrameToTimeFormat(WINE_MCIAVI *wma, DWORD val, LPDWORD lpRet)
Definition: info.c:30
DWORD MCIAVI_mciSet(UINT wDevID, DWORD dwFlags, LPMCI_DGV_SET_PARMS lpParms)
Definition: info.c:227
DWORD MCIAVI_mciInfo(UINT wDevID, DWORD dwFlags, LPMCI_DGV_INFO_PARMSW lpParms)
Definition: info.c:188
#define MCI_FORMAT_RETURN_BASE
Definition: mmddk.h:343
#define MAKEMCIRESOURCE(wRet, wRes)
Definition: mmddk.h:388
#define MCI_FALSE
Definition: mmddk.h:340
#define MCI_TRUE
Definition: mmddk.h:341
BOOL WINAPI mciDriverNotify(HWND hwndCallback, UINT uDeviceID, UINT uStatus)
Definition: mci.c:2223
#define MCI_RESOURCE_RETURNED
Definition: mmddk.h:369
#define MCI_RESOURCE_DRIVER
Definition: mmddk.h:373
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint GLfloat * val
Definition: glext.h:7180
WINE_MCIAVI * MCIAVI_mciGetOpenDev(UINT wDevID)
Definition: mciavi.c:157
#define MCI_AVI_STATUS_AUDIO_BREAKS
Definition: mciavi.h:9
#define MCI_AVI_STATUS_FRAMES_SKIPPED
Definition: mciavi.h:7
#define MCI_AVI_STATUS_LAST_PLAY_SPEED
Definition: mciavi.h:8
#define MCI_SET_AUDIO
Definition: mmsystem.h:775
#define MCI_INFO_PRODUCT
Definition: mmsystem.h:752
#define MCI_GETDEVCAPS_CAN_SAVE
Definition: mmsystem.h:767
#define MCI_NOTIFY
Definition: mmsystem.h:729
#define MCI_GETDEVCAPS_HAS_VIDEO
Definition: mmsystem.h:761
#define MCI_STATUS_POSITION
Definition: mmsystem.h:745
#define MCI_GETDEVCAPS_CAN_RECORD
Definition: mmsystem.h:759
#define MCI_FORMAT_MILLISECONDS
Definition: mmsystem.h:701
#define MCI_MODE_PLAY
Definition: mmsystem.h:696
#define MCI_GETDEVCAPS_DEVICE_TYPE
Definition: mmsystem.h:762
#define MCIERR_UNRECOGNIZED_COMMAND
Definition: mmsystem.h:571
#define MCI_GETDEVCAPS_COMPOUND_DEVICE
Definition: mmsystem.h:764
#define MCI_SET_DOOR_OPEN
Definition: mmsystem.h:772
#define MCI_GETDEVCAPS_USES_FILES
Definition: mmsystem.h:763
#define MCI_GETDEVCAPS_CAN_PLAY
Definition: mmsystem.h:766
#define MCIERR_INVALID_DEVICE_ID
Definition: mmsystem.h:569
#define MCI_SET_TIME_FORMAT
Definition: mmsystem.h:774
#define MCI_GETDEVCAPS_CAN_EJECT
Definition: mmsystem.h:765
#define MCI_SET_VIDEO
Definition: mmsystem.h:776
#define MCIERR_MISSING_PARAMETER
Definition: mmsystem.h:583
#define MCI_SET_AUDIO_RIGHT
Definition: mmsystem.h:781
#define MCIERR_NULL_PARAMETER_BLOCK
Definition: mmsystem.h:605
#define MCI_INFO_FILE
Definition: mmsystem.h:753
#define MCI_STATUS_START
Definition: mmsystem.h:743
#define MCI_SET_AUDIO_ALL
Definition: mmsystem.h:779
#define MCI_STATUS_CURRENT_TRACK
Definition: mmsystem.h:751
#define MCI_STATUS_NUMBER_OF_TRACKS
Definition: mmsystem.h:746
#define MCI_SET_DOOR_CLOSED
Definition: mmsystem.h:773
#define MCI_DEVTYPE_DIGITAL_VIDEO
Definition: mmsystem.h:687
#define MCI_GETDEVCAPS_ITEM
Definition: mmsystem.h:758
#define MCI_STATUS_LENGTH
Definition: mmsystem.h:744
#define MCI_SET_AUDIO_LEFT
Definition: mmsystem.h:780
#define MCI_STATUS_MODE
Definition: mmsystem.h:747
#define MCI_SET_OFF
Definition: mmsystem.h:778
#define MCI_NOTIFY_SUCCESSFUL
Definition: mmsystem.h:725
#define MCI_MODE_NOT_READY
Definition: mmsystem.h:694
#define MCI_STATUS_MEDIA_PRESENT
Definition: mmsystem.h:748
#define MCIERR_BAD_TIME_FORMAT
Definition: mmsystem.h:601
#define MCI_MODE_PAUSE
Definition: mmsystem.h:699
#define MCIERR_NONAPPLICABLE_FUNCTION
Definition: mmsystem.h:610
#define MCIERR_UNSUPPORTED_FUNCTION
Definition: mmsystem.h:584
#define MCI_FORMAT_FRAMES
Definition: mmsystem.h:704
#define MCI_STATUS_TIME_FORMAT
Definition: mmsystem.h:749
#define MCI_SET_ON
Definition: mmsystem.h:777
#define MCI_STATUS_ITEM
Definition: mmsystem.h:742
#define MCI_GETDEVCAPS_HAS_AUDIO
Definition: mmsystem.h:760
#define MCI_STATUS_READY
Definition: mmsystem.h:750
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
Definition: muldiv.c:25
unsigned int UINT
Definition: ndis.h:50
#define LOWORD(l)
Definition: pedump.c:82
const WCHAR * str
int zero
Definition: sehframes.cpp:29
#define TRACE(s)
Definition: solgame.cpp:4
DWORD dwTimeFormat
Definition: digitalv.h:733
DWORD dwFileFormat
Definition: digitalv.h:735
DWORD_PTR dwReturn
Definition: digitalv.h:809
DWORD_PTR dwCallback
Definition: digitalv.h:808
DWORD audio_stream_n
LPBITMAPINFOHEADER inbih
CRITICAL_SECTION cs
DWORD dwMciTimeFormat
DWORD dwCurrVideoFrame
LPWSTR lpFileName
MainAVIHeader mah
DWORD dwMicroSecPerFrame
Definition: vfw.h:941
DWORD dwTotalFrames
Definition: vfw.h:945
#define DWORD_PTR
Definition: treelist.c:76
uint32_t * LPDWORD
Definition: typedefs.h:59
int ret
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176
BOOL WINAPI IsIconic(_In_ HWND)
BOOL WINAPI IsZoomed(_In_ HWND)
BOOL WINAPI IsWindowVisible(_In_ HWND)
#define HWND_32(h16)
Definition: wownt32.h:29
const char * LPCSTR
Definition: xmlstorage.h:183
__wchar_t WCHAR
Definition: xmlstorage.h:180
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185