Author: akhaldi Date: Sat May 19 11:26:15 2012 New Revision: 56619
URL: http://svn.reactos.org/svn/reactos?rev=56619&view=rev Log: [MCOQTZ32] * Sync to Wine 1.5.4.
Added: trunk/reactos/dll/win32/mciqtz32/mciavi_res.rc (with props) Modified: trunk/reactos/dll/win32/mciqtz32/CMakeLists.txt trunk/reactos/dll/win32/mciqtz32/mciqtz.c trunk/reactos/dll/win32/mciqtz32/mciqtz_private.h trunk/reactos/media/doc/README.WINE
Modified: trunk/reactos/dll/win32/mciqtz32/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mciqtz32/CMakeLis... ============================================================================== --- trunk/reactos/dll/win32/mciqtz32/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mciqtz32/CMakeLists.txt [iso-8859-1] Sat May 19 11:26:15 2012 @@ -6,13 +6,12 @@
list(APPEND SOURCE mciqtz.c + mciavi_res.rc version.rc ${CMAKE_CURRENT_BINARY_DIR}/mciqtz32.def)
add_library(mciqtz32 SHARED ${SOURCE}) - set_module_type(mciqtz32 win32dll) - target_link_libraries(mciqtz32 wine strmiids) add_importlibs(mciqtz32 winmm oleaut32 ole32 user32 gdi32 msvcrt kernel32 ntdll) add_cd_file(TARGET mciqtz32 DESTINATION reactos/system32 FOR all)
Added: trunk/reactos/dll/win32/mciqtz32/mciavi_res.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mciqtz32/mciavi_r... ============================================================================== --- trunk/reactos/dll/win32/mciqtz32/mciavi_res.rc (added) +++ trunk/reactos/dll/win32/mciqtz32/mciavi_res.rc [iso-8859-1] Sat May 19 11:26:15 2012 @@ -1,0 +1,579 @@ +/* MciAvi resources + * + * Copyright (c) 2000, Eric Pouech + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "windef.h" +#include "winbase.h" +#include "mmddk.h" +#include "digitalv.h" + +#ifdef MCI_INTEGER64 +#define MCI_DWORD_PTR MCI_INTEGER64 +#else +#define MCI_DWORD_PTR MCI_INTEGER +#endif + +MCIAVI RCDATA +BEGIN +L"play\0", MCI_PLAY, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"from\0", 0x00000004L, MCI_INTEGER, +L"to\0", 0x00000008L, MCI_INTEGER, +L"repeat\0", 0x00010000L, MCI_FLAG, +L"reverse\0", 0x00020000L, MCI_FLAG, +L"window\0", 0x01000000L, MCI_FLAG, +L"fullscreen by 2\0", 0x04000000L, MCI_FLAG, +L"fullscreen\0", 0x02000000L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"capability\0", MCI_GETDEVCAPS, 0, MCI_COMMAND_HEAD, +L"\0", MCI_INTEGER, 0, MCI_RETURN, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"\0", 0x00000100L, MCI_CONSTANT, +L"can record\0", 0x00000001L, MCI_INTEGER, +L"has audio\0", 0x00000002L, MCI_INTEGER, +L"has video\0", 0x00000003L, MCI_INTEGER, +L"uses files\0", 0x00000005L, MCI_INTEGER, +L"compound device\0", 0x00000006L, MCI_INTEGER, +L"device type\0", 0x00000004L, MCI_INTEGER, +L"can eject\0", 0x00000007L, MCI_INTEGER, +L"can play\0", 0x00000008L, MCI_INTEGER, +L"can save\0", 0x00000009L, MCI_INTEGER, +L"can lock\0", 0x00004000L, MCI_INTEGER, +L"can reverse\0", 0x00004004L, MCI_INTEGER, +L"can stretch input\0", 0x00004008L, MCI_INTEGER, +L"can stretch\0", 0x00004001L, MCI_INTEGER, +L"can test\0", 0x00004009L, MCI_INTEGER, +L"has still\0", 0x00004005L, MCI_INTEGER, +L"can freeze\0", 0x00004002L, MCI_INTEGER, +L"uses palettes\0", 0x00004006L, MCI_INTEGER, +L"windows\0", 0x00004003L, MCI_INTEGER, +L"maximum play rate\0", 0x0000400aL, MCI_INTEGER, +L"minimum play rate\0", 0x0000400bL, MCI_INTEGER, +L"can colorkey\0", 0x00004100L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"capture\0", MCI_CAPTURE, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"as\0", 0x00010000L, MCI_STRING, +L"at\0", 0x00020000L, MCI_RECT, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"close\0", MCI_CLOSE, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"configure\0", MCI_CONFIGURE, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"copy\0", MCI_COPY, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"from\0", 0x00000004L, MCI_INTEGER, +L"to\0", 0x00000008L, MCI_INTEGER, +L"at\0", 0x00010000L, MCI_RECT, +L"audio stream\0", 0x00020000L, MCI_INTEGER, +L"video stream\0", 0x00040000L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"cue\0", MCI_CUE, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"input\0", 0x00010000L, MCI_FLAG, +L"output\0", 0x00020000L, MCI_FLAG, +L"to\0", 0x00000008L, MCI_INTEGER, +L"noshow\0", 0x00040000L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"cut\0", MCI_CUT, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"from\0", 0x00000004L, MCI_INTEGER, +L"to\0", 0x00000008L, MCI_INTEGER, +L"at\0", 0x00010000L, MCI_RECT, +L"audio stream\0", 0x00020000L, MCI_INTEGER, +L"video stream\0", 0x00040000L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"delete\0", MCI_DELETE, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"from\0", 0x00000004L, MCI_INTEGER, +L"to\0", 0x00000008L, MCI_INTEGER, +L"at\0", 0x00010000L, MCI_RECT, +L"audio stream\0", 0x00020000L, MCI_INTEGER, +L"video stream\0", 0x00040000L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"freeze\0", MCI_FREEZE, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"at\0", 0x00010000L, MCI_RECT, +L"outside\0", 0x00020000L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"info\0", MCI_INFO, 0, MCI_COMMAND_HEAD, +L"\0", MCI_STRING, 0, MCI_RETURN, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"file\0", 0x00000200L, MCI_FLAG, +L"product\0", 0x00000100L, MCI_FLAG, +L"window text\0", 0x00010000L, MCI_FLAG, +L"usage\0", 0x00004000L, MCI_FLAG, +L"version\0", 0x00000400L, MCI_FLAG, +L"\0", 0x00020000L, MCI_CONSTANT, +L"audio algorithm\0", 0x00004004L, MCI_INTEGER, +L"audio quality\0", 0x00004001L, MCI_INTEGER, +L"still algorithm\0", 0x00004005L, MCI_INTEGER, +L"still quality\0", 0x00004002L, MCI_INTEGER, +L"video algorithm\0", 0x00004006L, MCI_INTEGER, +L"video quality\0", 0x00004003L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"list\0", MCI_LIST, 0, MCI_COMMAND_HEAD, +L"\0", MCI_STRING, 0, MCI_RETURN, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"count\0", 0x00020000L, MCI_FLAG, +L"number\0", 0x00040000L, MCI_INTEGER, +L"\0", 0x00010000L, MCI_CONSTANT, +L"audio algorithm\0", 0x00004000L, MCI_INTEGER, +L"audio quality\0", 0x00004001L, MCI_INTEGER, +L"audio stream\0", 0x00004002L, MCI_INTEGER, +L"still algorithm\0", 0x00004003L, MCI_INTEGER, +L"still quality\0", 0x00004004L, MCI_INTEGER, +L"video algorithm\0", 0x00004005L, MCI_INTEGER, +L"video quality\0", 0x00004006L, MCI_INTEGER, +L"video source\0", 0x00004008L, MCI_INTEGER, +L"video stream\0", 0x00004007L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"algorithm\0", 0x00080000L, MCI_STRING, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"load\0", MCI_LOAD, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"\0", 0x00000100L, MCI_STRING, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"monitor\0", MCI_MONITOR, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"\0", 0x00020000L, MCI_CONSTANT, +L"input\0", 0x00004000L, MCI_INTEGER, +L"file\0", 0x00004001L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"method\0", 0x00010000L, MCI_CONSTANT, +L"pre\0", 0x0000a000L, MCI_INTEGER, +L"post\0", 0x0000a001L, MCI_INTEGER, +L"direct\0", 0x0000a002L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"open\0", MCI_OPEN, 0, MCI_COMMAND_HEAD, +L"\0", MCI_INTEGER, 0, MCI_RETURN, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"type\0", 0x00002000L, MCI_STRING, +L"element\0", 0x00000200L, MCI_STRING, +L"alias\0", 0x00000400L, MCI_STRING, +L"shareable\0", 0x00000100L, MCI_FLAG, +L"style\0", 0x00010000L, MCI_CONSTANT, +L"overlapped\0", 0x00cf0000L, MCI_INTEGER, +L"popup\0", 0x80880000L, MCI_INTEGER, +L"child\0", 0x40000000L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"parent\0", 0x00020000L, MCI_HWND, +L"nostatic\0", 0x00040000L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"paste\0", MCI_PASTE, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"to\0", 0x00000008L, MCI_INTEGER, +L"at\0", 0x00010000L, MCI_RECT, +L"insert\0", 0x00080000L, MCI_FLAG, +L"overwrite\0", 0x00100000L, MCI_FLAG, +L"audio stream\0", 0x00020000L, MCI_INTEGER, +L"video stream\0", 0x00040000L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"pause\0", MCI_PAUSE, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"put\0", MCI_PUT, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"at\0", 0x00010000L, MCI_RECT, +L"source\0", 0x00020000L, MCI_FLAG, +L"destination\0", 0x00040000L, MCI_FLAG, +L"frame\0", 0x00080000L, MCI_FLAG, +L"video\0", 0x00100000L, MCI_FLAG, +L"window\0", 0x00200000L, MCI_FLAG, +L"client\0", 0x00400000L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"quality\0", MCI_QUALITY, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"\0", 0x00010000L, MCI_CONSTANT, +L"audio\0", 0x00004000L, MCI_INTEGER, +L"still\0", 0x00004001L, MCI_INTEGER, +L"video\0", 0x00004002L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"name\0", 0x00020000L, MCI_STRING, +L"algorithm\0", 0x00040000L, MCI_STRING, +L"dialog\0", 0x00080000L, MCI_FLAG, +L"handle\0", 0x00100000L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"realize\0", MCI_REALIZE, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"normal\0", 0x00010000L, MCI_FLAG, +L"background\0", 0x00020000L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"record\0", MCI_RECORD, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"from\0", 0x00000004L, MCI_INTEGER, +L"to\0", 0x00000008L, MCI_INTEGER, +L"insert\0", 0x00000100L, MCI_FLAG, +L"overwrite\0", 0x00000200L, MCI_FLAG, +L"at\0", 0x00010000L, MCI_RECT, +L"hold\0", 0x00020000L, MCI_FLAG, +L"audio stream\0", 0x00040000L, MCI_INTEGER, +L"video stream\0", 0x00080000L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"reserve\0", MCI_RESERVE, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"in\0", 0x00010000L, MCI_STRING, +L"size\0", 0x00020000L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"restore\0", MCI_RESTORE, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"from\0", 0x00010000L, MCI_STRING, +L"at\0", 0x00020000L, MCI_RECT, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"resume\0", MCI_RESUME, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"save\0", MCI_SAVE, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"\0", 0x00000100L, MCI_STRING, +L"at\0", 0x00010000L, MCI_RECT, +L"abort\0", 0x00020000L, MCI_FLAG, +L"keepreserve\0", 0x00040000L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"seek\0", MCI_SEEK, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"to start\0", 0x00000100L, MCI_FLAG, +L"to end\0", 0x00000200L, MCI_FLAG, +L"to\0", 0x00000008L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"set\0", MCI_SET, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"time format\0", 0x00000400L, MCI_CONSTANT, +L"frames\0", 0x00000003L, MCI_INTEGER, +L"milliseconds\0", 0x00000000L, MCI_INTEGER, +L"ms\0", 0x00000000L, MCI_INTEGER, +L"bytes\0", 0x00000008L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"door open\0", 0x00000100L, MCI_FLAG, +L"door closed\0", 0x00000200L, MCI_FLAG, +L"audio\0", 0x00000800L, MCI_CONSTANT, +L"all\0", 0x00000000L, MCI_INTEGER, +L"left\0", 0x00000001L, MCI_INTEGER, +L"right\0", 0x00000002L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"video\0", 0x00001000L, MCI_FLAG, +L"seek exactly\0", 0x00010000L, MCI_FLAG, +L"file format\0", 0x00080000L, MCI_CONSTANT, +L"avss\0", 0x00004000L, MCI_INTEGER, +L"avi\0", 0x00004001L, MCI_INTEGER, +L"dib\0", 0x00004002L, MCI_INTEGER, +L"rdib\0", 0x00004003L, MCI_INTEGER, +L"jpeg\0", 0x00004004L, MCI_INTEGER, +L"rjpeg\0", 0x00004005L, MCI_INTEGER, +L"jfif\0", 0x00004006L, MCI_INTEGER, +L"mpeg\0", 0x00004007L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"still\0", 0x00040000L, MCI_FLAG, +L"on\0", 0x00002000L, MCI_FLAG, +L"off\0", 0x00004000L, MCI_FLAG, +L"speed\0", 0x00020000L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"setaudio\0", MCI_SETAUDIO, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"\0", 0x00800000L, MCI_CONSTANT, +L"bass\0", 0x00004001L, MCI_INTEGER, +L"treble\0", 0x00004000L, MCI_INTEGER, +L"volume\0", 0x00004002L, MCI_INTEGER, +L"stream\0", 0x00004003L, MCI_INTEGER, +L"source\0", 0x00004004L, MCI_INTEGER, +L"samplespersec\0", 0x00004005L, MCI_INTEGER, +L"bytespersec\0", 0x00004006L, MCI_INTEGER, +L"alignment\0", 0x00004007L, MCI_INTEGER, +L"bitspersample\0", 0x00004008L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"to\0", 0x01000000L, MCI_CONSTANT, +L"left\0", 0x00000001L, MCI_INTEGER, +L"right\0", 0x00000002L, MCI_INTEGER, +L"average\0", 0x00004000L, MCI_INTEGER, +L"stereo\0", 0x00000000L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"over\0", 0x00010000L, MCI_INTEGER, +L"algorithm\0", 0x00040000L, MCI_STRING, +L"quality\0", 0x00080000L, MCI_STRING, +L"record\0", 0x00100000L, MCI_FLAG, +L"left\0", 0x00200000L, MCI_FLAG, +L"clocktime\0", 0x00020000L, MCI_FLAG, +L"right\0", 0x00400000L, MCI_FLAG, +L"on\0", 0x00002000L, MCI_FLAG, +L"off\0", 0x00004000L, MCI_FLAG, +L"input\0", 0x02000000L, MCI_FLAG, +L"output\0", 0x04000000L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"setvideo\0", MCI_SETVIDEO, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"\0", 0x00100000L, MCI_CONSTANT, +L"frame rate\0", 0x00004008L, MCI_INTEGER, +L"brightness\0", 0x00004000L, MCI_INTEGER, +L"color\0", 0x00004001L, MCI_INTEGER, +L"contrast\0", 0x00004002L, MCI_INTEGER, +L"tint\0", 0x00004003L, MCI_INTEGER, +L"sharpness\0", 0x00004004L, MCI_INTEGER, +L"gamma\0", 0x00004005L, MCI_INTEGER, +L"palette handle\0", 0x00004007L, MCI_INTEGER, +L"stream\0", 0x00004006L, MCI_INTEGER, +L"source\0", 0x00004009L, MCI_INTEGER, +L"key index\0", 0x0000400aL, MCI_INTEGER, +L"key color\0", 0x0000400bL, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"to\0", 0x01000000L, MCI_CONSTANT, +L"ntsc\0", 0x00004000L, MCI_INTEGER, +L"rgb\0", 0x00004001L, MCI_INTEGER, +L"svideo\0", 0x00004002L, MCI_INTEGER, +L"pal\0", 0x00004003L, MCI_INTEGER, +L"secam\0", 0x00004004L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"quality\0", 0x00010000L, MCI_STRING, +L"algorithm\0", 0x00020000L, MCI_STRING, +L"number\0", 0x00080000L, MCI_INTEGER, +L"over\0", 0x00200000L, MCI_INTEGER, +L"record\0", 0x00400000L, MCI_FLAG, +L"still\0", 0x00800000L, MCI_FLAG, +L"clocktime\0", 0x00040000L, MCI_FLAG, +L"on\0", 0x00002000L, MCI_FLAG, +L"off\0", 0x00004000L, MCI_FLAG, +L"input\0", 0x02000000L, MCI_FLAG, +L"output\0", 0x04000000L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"signal\0", MCI_SIGNAL, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"at\0", 0x00010000L, MCI_INTEGER, +L"every\0", 0x00020000L, MCI_INTEGER, +L"uservalue\0", 0x00040000L, MCI_INTEGER, +L"cancel\0", 0x00080000L, MCI_FLAG, +L"return position\0", 0x00100000L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"status\0", MCI_STATUS, 0, MCI_COMMAND_HEAD, +L"\0", MCI_DWORD_PTR, 0, MCI_RETURN, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"\0", 0x00000100L, MCI_CONSTANT, +L"frames skipped\0", 0x00008001L, MCI_INTEGER, +L"play speed\0", 0x00008002L, MCI_INTEGER, +L"audio breaks\0", 0x00008003L, MCI_INTEGER, +L"alignment\0", 0x00004029L, MCI_INTEGER, +L"audio input\0", 0x00004000L, MCI_INTEGER, +L"audio record\0", 0x0000401aL, MCI_INTEGER, +L"audio source\0", 0x00004009L, MCI_INTEGER, +L"audio stream\0", 0x0000402dL, MCI_INTEGER, +L"bass\0", 0x0000400fL, MCI_INTEGER, +L"bitsperpel\0", 0x0000402bL, MCI_INTEGER, +L"bitspersample\0", 0x0000402aL, MCI_INTEGER, +L"brightness\0", 0x00004005L, MCI_INTEGER, +L"bytespersec\0", 0x00004028L, MCI_INTEGER, +L"color\0", 0x00004006L, MCI_INTEGER, +L"contrast\0", 0x00004007L, MCI_INTEGER, +L"current track\0", 0x00000008L, MCI_INTEGER, +L"file format\0", 0x00004008L, MCI_INTEGER, +L"still file format\0", 0x0000401dL, MCI_INTEGER, +L"file mode\0", 0x0000401fL, MCI_INTEGER, +L"file completion\0", 0x00004020L, MCI_INTEGER, +L"forward\0", 0x0000402cL, MCI_INTEGER, +L"gamma\0", 0x0000400aL, MCI_INTEGER, +L"length\0", 0x00000001L, MCI_INTEGER, +L"media present\0", 0x00000005L, MCI_INTEGER, +L"mode\0", 0x00000004L, MCI_INTEGER, +L"monitor method\0", 0x0000400cL, MCI_INTEGER, +L"monitor\0", 0x0000400bL, MCI_INTEGER, +L"number of tracks\0", 0x00000003L, MCI_INTEGER, +L"palette handle\0", 0x00004004L, MCI_INTEGER, +L"pause mode\0", 0x00004026L, MCI_INTEGER, +L"position\0", 0x00000002L, MCI_INTEGER, +L"ready\0", 0x00000007L, MCI_INTEGER, +L"frame rate\0", 0x0000400eL, MCI_INTEGER, +L"reserved size\0", 0x00004010L, MCI_INTEGER, +L"samplespersec\0", 0x00004027L, MCI_INTEGER, +L"seek exactly\0", 0x00004011L, MCI_INTEGER, +L"sharpness\0", 0x00004012L, MCI_INTEGER, +L"smpte\0", 0x00004013L, MCI_INTEGER, +L"speed\0", 0x00004003L, MCI_INTEGER, +L"time format\0", 0x00000006L, MCI_INTEGER, +L"tint\0", 0x00004015L, MCI_INTEGER, +L"treble\0", 0x00004016L, MCI_INTEGER, +L"unsaved\0", 0x00004017L, MCI_INTEGER, +L"video key color\0", 0x00004025L, MCI_INTEGER, +L"video key index\0", 0x00004024L, MCI_INTEGER, +L"video source\0", 0x0000401bL, MCI_INTEGER, +L"video source number\0", 0x0000401eL, MCI_INTEGER, +L"video record\0", 0x0000401cL, MCI_INTEGER, +L"video stream\0", 0x0000402eL, MCI_INTEGER, +L"volume\0", 0x00004019L, MCI_INTEGER, +L"window handle\0", 0x00004001L, MCI_INTEGER, +L"window visible\0", 0x00004021L, MCI_INTEGER, +L"window minimized\0", 0x00004022L, MCI_INTEGER, +L"window maximized\0", 0x00004023L, MCI_INTEGER, +L"video streams\0", 0x00004100L, MCI_INTEGER, +L"video bitrate\0", 0x00004101L, MCI_INTEGER, +L"video maxbitrate\0", 0x00004102L, MCI_INTEGER, +L"audio streams\0", 0x00004103L, MCI_INTEGER, +L"audio bitrate\0", 0x00004104L, MCI_INTEGER, +L"video brush\0", 0x00004105L, MCI_INTEGER, +L"audio\0", 0x00004014L, MCI_INTEGER, +L"video\0", 0x00004018L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"track\0", 0x00000010L, MCI_INTEGER, +L"start\0", 0x00000200L, MCI_FLAG, +L"left\0", 0x00080000L, MCI_FLAG, +L"right\0", 0x00100000L, MCI_FLAG, +L"nominal\0", 0x00020000L, MCI_FLAG, +L"record\0", 0x01000000L, MCI_FLAG, +L"input\0", 0x00400000L, MCI_FLAG, +L"output\0", 0x00800000L, MCI_FLAG, +L"disk space\0", 0x00200000L, MCI_STRING, +L"reference\0", 0x00040000L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"step\0", MCI_STEP, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"reverse\0", 0x00010000L, MCI_FLAG, +L"by\0", 0x00020000L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"stop\0", MCI_STOP, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"hold\0", 0x00010000L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"undo\0", MCI_UNDO, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"unfreeze\0", MCI_UNFREEZE, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"at\0", 0x00010000L, MCI_RECT, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"update\0", MCI_UPDATE, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"at\0", 0x00010000L, MCI_RECT, +L"hdc\0", 0x00020000L, MCI_HDC, +L"paint\0", 0x00040000L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"where\0", MCI_WHERE, 0, MCI_COMMAND_HEAD, +L"\0", MCI_RECT, 0, MCI_RETURN, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"source\0", 0x00020000L, MCI_FLAG, +L"destination\0", 0x00040000L, MCI_FLAG, +L"frame\0", 0x00080000L, MCI_FLAG, +L"video\0", 0x00100000L, MCI_FLAG, +L"window\0", 0x00200000L, MCI_FLAG, +L"max\0", 0x00400000L, MCI_FLAG, +L"min\0", 0x00800000L, MCI_FLAG, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"window\0", MCI_WINDOW, 0, MCI_COMMAND_HEAD, +L"notify\0", 0x00000001L, MCI_FLAG, +L"wait\0", 0x00000002L, MCI_FLAG, +L"test\0", 0x00000020L, MCI_FLAG, +L"handle\0", 0x00010000L, MCI_CONSTANT, +L"default\0", 0x00000000L, MCI_HWND, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"state\0", 0x00040000L, MCI_CONSTANT, +L"hide\0", 0x00000000L, MCI_INTEGER, +L"minimize\0", 0x00000006L, MCI_INTEGER, +L"restore\0", 0x00000009L, MCI_INTEGER, +L"show maximized\0", 0x00000003L, MCI_INTEGER, +L"show min noactive\0", 0x00000007L, MCI_INTEGER, +L"show minimized\0", 0x00000002L, MCI_INTEGER, +L"show na\0", 0x00000008L, MCI_INTEGER, +L"show noactivate\0", 0x00000004L, MCI_INTEGER, +L"show normal\0", 0x00000001L, MCI_INTEGER, +L"show\0", 0x00000005L, MCI_INTEGER, +L"no action\0", 0x00000008L, MCI_INTEGER, +L"minimized\0", 0x00000002L, MCI_INTEGER, +L"\0", 0x00000000L, MCI_END_CONSTANT, +L"text\0", 0x00080000L, MCI_STRING, +L"\0", 0x00000000L, MCI_END_COMMAND, +L"\0", 0x00000000L, MCI_END_COMMAND_LIST +END + +STRINGTABLE +BEGIN + +MCI_ON_S, "on" +MCI_OFF_S, "off" +END
Propchange: trunk/reactos/dll/win32/mciqtz32/mciavi_res.rc ------------------------------------------------------------------------------ svn:eol-style = native
Modified: trunk/reactos/dll/win32/mciqtz32/mciqtz.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mciqtz32/mciqtz.c... ============================================================================== --- trunk/reactos/dll/win32/mciqtz32/mciqtz.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mciqtz32/mciqtz.c [iso-8859-1] Sat May 19 11:26:15 2012 @@ -37,7 +37,7 @@ * MCI QTZ implementation * *======================================================================*/
-HINSTANCE MCIQTZ_hInstance = 0; +static HINSTANCE MCIQTZ_hInstance = 0;
/*********************************************************************** * DllMain (MCIQTZ.0) @@ -145,8 +145,8 @@ { WINE_MCIQTZ* wma; HRESULT hr; - IBasicVideo *vidbasic; - IVideoWindow *vidwin; + DWORD style = 0; + RECT rc = { 0, 0, 0, 0 };
TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpOpenParms);
@@ -171,6 +171,30 @@ hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IMediaControl, (LPVOID*)&wma->pmctrl); if (FAILED(hr)) { TRACE("Cannot get IMediaControl interface (hr = %x)\n", hr); + goto err; + } + + hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IMediaSeeking, (void**)&wma->seek); + if (FAILED(hr)) { + TRACE("Cannot get IMediaSeeking interface (hr = %x)\n", hr); + goto err; + } + + hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IMediaEvent, (void**)&wma->mevent); + if (FAILED(hr)) { + TRACE("Cannot get IMediaEvent interface (hr = %x)\n", hr); + goto err; + } + + hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IVideoWindow, (void**)&wma->vidwin); + if (FAILED(hr)) { + TRACE("Cannot get IVideoWindow interface (hr = %x)\n", hr); + goto err; + } + + hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IBasicVideo, (void**)&wma->vidbasic); + if (FAILED(hr)) { + TRACE("Cannot get IBasicVideo interface (hr = %x)\n", hr); goto err; }
@@ -192,33 +216,22 @@ goto err; }
- hr = IFilterGraph2_QueryInterface(wma->pgraph, &IID_IVideoWindow, (void**)&vidwin); - if (SUCCEEDED(hr)) - hr = IFilterGraph2_QueryInterface(wma->pgraph, &IID_IBasicVideo, (void**)&vidbasic); - if (SUCCEEDED(hr)) { - DWORD style; - RECT rc = { 0, 0, 0, 0 }; - IVideoWindow_put_AutoShow(vidwin, OAFALSE); - IVideoWindow_put_Visible(vidwin, OAFALSE); - style = 0; - if (dwFlags & MCI_DGV_OPEN_WS) - style |= lpOpenParms->dwStyle; - if (dwFlags & MCI_DGV_OPEN_PARENT) { - IVideoWindow_put_MessageDrain(vidwin, (OAHWND)lpOpenParms->hWndParent); - IVideoWindow_put_WindowState(vidwin, SW_HIDE); - IVideoWindow_put_WindowStyle(vidwin, WS_CHILD); - IVideoWindow_put_Owner(vidwin, (OAHWND)lpOpenParms->hWndParent); - wma->parent = (HWND)lpOpenParms->hWndParent; - } - else if (style) - IVideoWindow_put_WindowStyle(vidwin, style); - IBasicVideo_GetVideoSize(vidbasic, &rc.right, &rc.bottom); - IVideoWindow_SetWindowPosition(vidwin, rc.left, rc.top, rc.right, rc.bottom); - IBasicVideo_Release(vidbasic); - } - if (vidwin) - IVideoWindow_Release(vidwin); - + IVideoWindow_put_AutoShow(wma->vidwin, OAFALSE); + IVideoWindow_put_Visible(wma->vidwin, OAFALSE); + if (dwFlags & MCI_DGV_OPEN_WS) + style = lpOpenParms->dwStyle; + if (dwFlags & MCI_DGV_OPEN_PARENT) { + IVideoWindow_put_MessageDrain(wma->vidwin, (OAHWND)lpOpenParms->hWndParent); + IVideoWindow_put_WindowState(wma->vidwin, SW_HIDE); + IVideoWindow_put_WindowStyle(wma->vidwin, style|WS_CHILD); + IVideoWindow_put_Owner(wma->vidwin, (OAHWND)lpOpenParms->hWndParent); + GetClientRect(lpOpenParms->hWndParent, &rc); + IVideoWindow_SetWindowPosition(wma->vidwin, rc.left, rc.top, rc.right - rc.top, rc.bottom - rc.top); + wma->parent = (HWND)lpOpenParms->hWndParent; + } + else if (style) + IVideoWindow_put_WindowStyle(wma->vidwin, style); + IBasicVideo_GetVideoSize(wma->vidbasic, &rc.right, &rc.bottom); wma->opened = TRUE;
if (dwFlags & MCI_NOTIFY) @@ -227,15 +240,28 @@ return 0;
err: + if (wma->vidbasic) + IUnknown_Release(wma->vidbasic); + wma->vidbasic = NULL; + if (wma->seek) + IUnknown_Release(wma->seek); + wma->seek = NULL; + if (wma->vidwin) + IUnknown_Release(wma->vidwin); + wma->vidwin = NULL; if (wma->pgraph) IGraphBuilder_Release(wma->pgraph); wma->pgraph = NULL; + if (wma->mevent) + IMediaEvent_Release(wma->mevent); + wma->mevent = NULL; if (wma->pmctrl) IMediaControl_Release(wma->pmctrl); wma->pmctrl = NULL;
if (wma->uninit) CoUninitialize(); + wma->uninit = 0;
return MCIERR_INTERNAL; } @@ -256,6 +282,10 @@ MCIQTZ_mciStop(wDevID, MCI_WAIT, NULL);
if (wma->opened) { + IUnknown_Release(wma->vidwin); + IUnknown_Release(wma->vidbasic); + IUnknown_Release(wma->seek); + IMediaEvent_Release(wma->mevent); IGraphBuilder_Release(wma->pgraph); IMediaControl_Release(wma->pmctrl); if (wma->uninit) @@ -273,6 +303,9 @@ { WINE_MCIQTZ* wma; HRESULT hr; + REFERENCE_TIME time1 = 0, time2 = 0; + GUID format; + DWORD pos1;
TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpParms);
@@ -283,21 +316,34 @@ if (!wma) return MCIERR_INVALID_DEVICE_ID;
+ IMediaSeeking_GetTimeFormat(wma->seek, &format); + if (dwFlags & MCI_FROM) { + if (IsEqualGUID(&format, &TIME_FORMAT_MEDIA_TIME)) + time1 = lpParms->dwFrom * 10000; + else + time1 = lpParms->dwFrom; + pos1 = AM_SEEKING_AbsolutePositioning; + } else + pos1 = AM_SEEKING_NoPositioning; + if (dwFlags & MCI_TO) { + if (IsEqualGUID(&format, &TIME_FORMAT_MEDIA_TIME)) + time2 = lpParms->dwTo * 10000; + else + time2 = lpParms->dwTo; + } else + IMediaSeeking_GetDuration(wma->seek, &time2); + IMediaSeeking_SetPositions(wma->seek, &time1, pos1, &time2, AM_SEEKING_AbsolutePositioning); + hr = IMediaControl_Run(wma->pmctrl); if (FAILED(hr)) { TRACE("Cannot run filtergraph (hr = %x)\n", hr); return MCIERR_INTERNAL; }
- if (!wma->parent) { - IVideoWindow *vidwin; - IFilterGraph2_QueryInterface(wma->pgraph, &IID_IVideoWindow, (void**)&vidwin); - if (vidwin) { - IVideoWindow_put_Visible(vidwin, OATRUE); - IVideoWindow_Release(vidwin); - } - } - + IVideoWindow_put_Visible(wma->vidwin, OATRUE); + + if (dwFlags & MCI_NOTIFY) + mciDriverNotify(HWND_32(LOWORD(lpParms->dwCallback)), wDevID, MCI_NOTIFY_SUCCESSFUL); return 0; }
@@ -308,7 +354,6 @@ { WINE_MCIQTZ* wma; HRESULT hr; - IMediaPosition* pmpos; LONGLONG newpos;
TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpParms); @@ -335,20 +380,11 @@ return MCIERR_MISSING_PARAMETER; }
- hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IMediaPosition, (LPVOID*)&pmpos); - if (FAILED(hr)) { - FIXME("Cannot get IMediaPostion interface (hr = %x)\n", hr); + hr = IMediaSeeking_SetPositions(wma->seek, &newpos, AM_SEEKING_AbsolutePositioning, NULL, AM_SEEKING_NoPositioning); + if (FAILED(hr)) { + FIXME("Cannot set position (hr = %x)\n", hr); return MCIERR_INTERNAL; } - - hr = IMediaPosition_put_CurrentPosition(pmpos, newpos); - if (FAILED(hr)) { - FIXME("Cannot set position (hr = %x)\n", hr); - IMediaPosition_Release(pmpos); - return MCIERR_INTERNAL; - } - - IMediaPosition_Release(pmpos);
if (dwFlags & MCI_NOTIFY) mciDriverNotify(HWND_32(LOWORD(lpParms->dwCallback)), wDevID, MCI_NOTIFY_SUCCESSFUL); @@ -379,14 +415,8 @@ return MCIERR_INTERNAL; }
- if (!wma->parent) { - IVideoWindow *vidwin; - IFilterGraph2_QueryInterface(wma->pgraph, &IID_IVideoWindow, (void**)&vidwin); - if (vidwin) { - IVideoWindow_put_Visible(vidwin, OAFALSE); - IVideoWindow_Release(vidwin); - } - } + if (!wma->parent) + IVideoWindow_put_Visible(wma->vidwin, OAFALSE);
return 0; } @@ -592,7 +622,6 @@
switch (lpParms->dwItem) { case MCI_STATUS_LENGTH: { - IMediaSeeking *seek; LONGLONG duration = -1; GUID format; switch (wma->time_format) { @@ -600,20 +629,13 @@ case MCI_FORMAT_FRAMES: format = TIME_FORMAT_FRAME; break; default: ERR("Unhandled format %x\n", wma->time_format); break; } - hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IMediaSeeking, (void**)&seek); + hr = IMediaSeeking_SetTimeFormat(wma->seek, &format); if (FAILED(hr)) { - FIXME("Cannot get IMediaPostion interface (hr = %x)\n", hr); - return MCIERR_INTERNAL; - } - hr = IMediaSeeking_SetTimeFormat(seek, &format); - if (FAILED(hr)) { - IMediaSeeking_Release(seek); FIXME("Cannot set time format (hr = %x)\n", hr); lpParms->dwReturn = 0; break; } - hr = IMediaSeeking_GetDuration(seek, &duration); - IMediaSeeking_Release(seek); + hr = IMediaSeeking_GetDuration(wma->seek, &duration); if (FAILED(hr) || duration < 0) { FIXME("Cannot read duration (hr = %x)\n", hr); lpParms->dwReturn = 0; @@ -624,33 +646,42 @@ break; } case MCI_STATUS_POSITION: { - IMediaPosition* pmpos; - REFTIME curpos; - - hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IMediaPosition, (LPVOID*)&pmpos); + REFERENCE_TIME curpos; + + hr = IMediaSeeking_GetCurrentPosition(wma->seek, &curpos); if (FAILED(hr)) { - FIXME("Cannot get IMediaPostion interface (hr = %x)\n", hr); + FIXME("Cannot get position (hr = %x)\n", hr); return MCIERR_INTERNAL; } - - hr = IMediaPosition_get_CurrentPosition(pmpos, &curpos); - if (FAILED(hr)) { - FIXME("Cannot get position (hr = %x)\n", hr); - IMediaPosition_Release(pmpos); - return MCIERR_INTERNAL; - } - - IMediaPosition_Release(pmpos); lpParms->dwReturn = curpos / 10000; - break; } case MCI_STATUS_NUMBER_OF_TRACKS: FIXME("MCI_STATUS_NUMBER_OF_TRACKS not implemented yet\n"); return MCIERR_UNRECOGNIZED_COMMAND; - case MCI_STATUS_MODE: - FIXME("MCI_STATUS_MODE not implemented yet\n"); - return MCIERR_UNRECOGNIZED_COMMAND; + case MCI_STATUS_MODE: { + LONG state = State_Stopped; + IMediaControl_GetState(wma->pmctrl, -1, &state); + if (state == State_Stopped) + lpParms->dwReturn = MCI_MODE_STOP; + else if (state == State_Running) { + LONG code; + LONG_PTR p1, p2; + + lpParms->dwReturn = MCI_MODE_PLAY; + + do { + hr = IMediaEvent_GetEvent(wma->mevent, &code, &p1, &p2, 0); + if (hr == S_OK && code == EC_COMPLETE){ + lpParms->dwReturn = MCI_MODE_STOP; + IMediaControl_Stop(wma->pmctrl); + } + } while (hr == S_OK); + + } else if (state == State_Paused) + lpParms->dwReturn = MCI_MODE_PAUSE; + break; + } case MCI_STATUS_MEDIA_PRESENT: FIXME("MCI_STATUS_MEDIA_PRESENT not implemented yet\n"); return MCIERR_UNRECOGNIZED_COMMAND; @@ -680,8 +711,6 @@ static DWORD MCIQTZ_mciWhere(UINT wDevID, DWORD dwFlags, LPMCI_DGV_RECT_PARMS lpParms) { WINE_MCIQTZ* wma; - IVideoWindow* pVideoWindow; - IBasicVideo *pBasicVideo; HRESULT hr; HWND hWnd; RECT rc; @@ -696,47 +725,23 @@ if (!wma) return MCIERR_INVALID_DEVICE_ID;
- /* Find if there is a video stream and get the display window */ - hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IVideoWindow, (LPVOID*)&pVideoWindow); - if (FAILED(hr)) { - ERR("Cannot get IVideoWindow interface (hr = %x)\n", hr); - return MCIERR_INTERNAL; - } - - hr = IGraphBuilder_QueryInterface(wma->pgraph, &IID_IBasicVideo, (LPVOID*)&pBasicVideo); - if (FAILED(hr)) { - ERR("Cannot get IBasicVideo interface (hr = %x)\n", hr); - IUnknown_Release(pVideoWindow); - return MCIERR_INTERNAL; - } - - hr = IVideoWindow_get_Owner(pVideoWindow, (OAHWND*)&hWnd); + hr = IVideoWindow_get_Owner(wma->vidwin, (OAHWND*)&hWnd); if (FAILED(hr)) { TRACE("No video stream, returning no window error\n"); - IUnknown_Release(pVideoWindow); return MCIERR_NO_WINDOW; }
if (dwFlags & MCI_DGV_WHERE_SOURCE) { if (dwFlags & MCI_DGV_WHERE_MAX) FIXME("MCI_DGV_WHERE_SOURCE_MAX stub %s\n", wine_dbgstr_rect(&rc)); - IBasicVideo_get_SourceLeft(pBasicVideo, &rc.left); - IBasicVideo_get_SourceTop(pBasicVideo, &rc.top); - IBasicVideo_get_SourceWidth(pBasicVideo, &rc.right); - IBasicVideo_get_SourceHeight(pBasicVideo, &rc.bottom); - /* Undo conversion done below */ - rc.right += rc.left; - rc.bottom += rc.top; + IBasicVideo_GetSourcePosition(wma->vidbasic, &rc.left, &rc.top, &rc.right, &rc.bottom); TRACE("MCI_DGV_WHERE_SOURCE %s\n", wine_dbgstr_rect(&rc)); } if (dwFlags & MCI_DGV_WHERE_DESTINATION) { - if (dwFlags & MCI_DGV_WHERE_MAX) { - GetClientRect(hWnd, &rc); - TRACE("MCI_DGV_WHERE_DESTINATION_MAX %s\n", wine_dbgstr_rect(&rc)); - } else { - FIXME("MCI_DGV_WHERE_DESTINATION not supported yet\n"); - goto out; - } + if (dwFlags & MCI_DGV_WHERE_MAX) + FIXME("MCI_DGV_WHERE_DESTINATION_MAX stub %s\n", wine_dbgstr_rect(&rc)); + IBasicVideo_GetDestinationPosition(wma->vidbasic, &rc.left, &rc.top, &rc.right, &rc.bottom); + TRACE("MCI_DGV_WHERE_DESTINATION %s\n", wine_dbgstr_rect(&rc)); } if (dwFlags & MCI_DGV_WHERE_FRAME) { if (dwFlags & MCI_DGV_WHERE_MAX) @@ -755,25 +760,62 @@ if (dwFlags & MCI_DGV_WHERE_WINDOW) { if (dwFlags & MCI_DGV_WHERE_MAX) { GetWindowRect(GetDesktopWindow(), &rc); + rc.right -= rc.left; + rc.bottom -= rc.top; TRACE("MCI_DGV_WHERE_WINDOW_MAX %s\n", wine_dbgstr_rect(&rc)); } else { - GetWindowRect(hWnd, &rc); + IVideoWindow_GetWindowPosition(wma->vidwin, &rc.left, &rc.top, &rc.right, &rc.bottom); TRACE("MCI_DGV_WHERE_WINDOW %s\n", wine_dbgstr_rect(&rc)); } } ret = 0; - out: - /* In MCI, RECT structure is used differently: rc.right = width & rc.bottom = height - * So convert the normal RECT into a MCI RECT before returning */ - IVideoWindow_Release(pVideoWindow); - IBasicVideo_Release(pBasicVideo); - lpParms->rc.left = rc.left; - lpParms->rc.top = rc.top; - lpParms->rc.right = rc.right - rc.left; - lpParms->rc.bottom = rc.bottom - rc.top; - + lpParms->rc = rc; return ret; +} + +/*************************************************************************** + * MCIQTZ_mciWindow [internal] + */ +static DWORD MCIQTZ_mciWindow(UINT wDevID, DWORD dwFlags, LPMCI_DGV_WINDOW_PARMSW lpParms) +{ + WINE_MCIQTZ *wma = MCIQTZ_mciGetOpenDev(wDevID); + + TRACE("(%04x, %08X, %p)\n", wDevID, dwFlags, lpParms); + + if (!lpParms) + return MCIERR_NULL_PARAMETER_BLOCK; + if (!wma) + return MCIERR_INVALID_DEVICE_ID; + if (dwFlags & MCI_TEST) + return 0; + + if (dwFlags & MCI_DGV_WINDOW_HWND && (IsWindow(lpParms->hWnd) || !lpParms->hWnd)) { + LONG visible = OATRUE; + LONG style = 0; + TRACE("Setting hWnd to %p\n", lpParms->hWnd); + IVideoWindow_get_Visible(wma->vidwin, &visible); + IVideoWindow_put_Visible(wma->vidwin, OAFALSE); + IVideoWindow_get_WindowStyle(wma->vidwin, &style); + style &= ~WS_CHILD; + if (lpParms->hWnd) + IVideoWindow_put_WindowStyle(wma->vidwin, style|WS_CHILD); + else + IVideoWindow_put_WindowStyle(wma->vidwin, style); + IVideoWindow_put_Owner(wma->vidwin, (OAHWND)lpParms->hWnd); + IVideoWindow_put_MessageDrain(wma->vidwin, (OAHWND)lpParms->hWnd); + IVideoWindow_put_Visible(wma->vidwin, visible); + wma->parent = lpParms->hWnd; + } + if (dwFlags & MCI_DGV_WINDOW_STATE) { + TRACE("Setting nCmdShow to %d\n", lpParms->nCmdShow); + IVideoWindow_put_WindowState(wma->vidwin, lpParms->nCmdShow); + } + if (dwFlags & MCI_DGV_WINDOW_TEXT) { + TRACE("Setting caption to %s\n", debugstr_w(lpParms->lpstrText)); + IVideoWindow_put_Caption(wma->vidwin, lpParms->lpstrText); + } + return 0; }
/****************************************************************************** @@ -794,51 +836,46 @@ return MCIERR_INVALID_DEVICE_ID;
if (dwFlags & MCI_DGV_UPDATE_HDC) { - IBasicVideo *vidbasic; - IVideoWindow *vidwin; + LONG state, size; + BYTE *data; + BITMAPINFO *info; + HRESULT hr; + RECT src, dest; + LONG visible = OATRUE; + res = MCIERR_INTERNAL; - IFilterGraph2_QueryInterface(wma->pgraph, &IID_IVideoWindow, (void**)&vidwin); - IFilterGraph2_QueryInterface(wma->pgraph, &IID_IBasicVideo, (void**)&vidbasic); - if (vidbasic && vidwin) { - LONG state, size; - BYTE *data; - BITMAPINFO *info; - HRESULT hr; - RECT src, dest; - - /* If in stopped state, nothing has been drawn to screen - * moving to pause, which is needed for the old dib renderer, will result - * in a single frame drawn, so hide the window here */ - IVideoWindow_put_Visible(vidwin, OAFALSE); - /* FIXME: Should we check the original state and restore it? */ - IMediaControl_Pause(wma->pmctrl); - IMediaControl_GetState(wma->pmctrl, -1, &state); - if (FAILED(hr = IBasicVideo_GetCurrentImage(vidbasic, &size, NULL))) { - WARN("Could not get image size (hr = %x)\n", hr); - goto out; - } - data = HeapAlloc(GetProcessHeap(), 0, size); - info = (BITMAPINFO*)data; - IBasicVideo_GetCurrentImage(vidbasic, &size, (LONG*)data); - data += info->bmiHeader.biSize; - - IBasicVideo_GetSourcePosition(vidbasic, &src.left, &src.top, &src.right, &src.bottom); - IBasicVideo_GetDestinationPosition(vidbasic, &dest.left, &dest.top, &dest.right, &dest.bottom); - StretchDIBits(lpParms->hDC, - dest.left, dest.top, dest.right + dest.left, dest.bottom + dest.top, - src.left, src.top, src.right + src.left, src.bottom + src.top, - data, info, DIB_RGB_COLORS, SRCCOPY); - HeapFree(GetProcessHeap(), 0, data); + IMediaControl_GetState(wma->pmctrl, -1, &state); + if (state == State_Running) + return MCIERR_UNSUPPORTED_FUNCTION; + /* If in stopped state, nothing has been drawn to screen + * moving to pause, which is needed for the old dib renderer, will result + * in a single frame drawn, so hide the window here */ + IVideoWindow_get_Visible(wma->vidwin, &visible); + if (wma->parent) + IVideoWindow_put_Visible(wma->vidwin, OAFALSE); + /* FIXME: Should we check the original state and restore it? */ + IMediaControl_Pause(wma->pmctrl); + IMediaControl_GetState(wma->pmctrl, -1, &state); + if (FAILED(hr = IBasicVideo_GetCurrentImage(wma->vidbasic, &size, NULL))) { + WARN("Could not get image size (hr = %x)\n", hr); + goto out; } + data = HeapAlloc(GetProcessHeap(), 0, size); + info = (BITMAPINFO*)data; + IBasicVideo_GetCurrentImage(wma->vidbasic, &size, (LONG*)data); + data += info->bmiHeader.biSize; + + IBasicVideo_GetSourcePosition(wma->vidbasic, &src.left, &src.top, &src.right, &src.bottom); + IBasicVideo_GetDestinationPosition(wma->vidbasic, &dest.left, &dest.top, &dest.right, &dest.bottom); + StretchDIBits(lpParms->hDC, + dest.left, dest.top, dest.right + dest.left, dest.bottom + dest.top, + src.left, src.top, src.right + src.left, src.bottom + src.top, + data, info, DIB_RGB_COLORS, SRCCOPY); + HeapFree(GetProcessHeap(), 0, data); res = 0; out: - if (vidbasic) - IBasicVideo_Release(vidbasic); - if (vidwin) { - if (wma->parent) - IVideoWindow_put_Visible(vidwin, OATRUE); - IVideoWindow_Release(vidwin); - } + if (wma->parent) + IVideoWindow_put_Visible(wma->vidwin, visible); } else if (dwFlags) FIXME("Unhandled flags %x\n", dwFlags); @@ -911,11 +948,12 @@ case MCI_SETAUDIO: return MCIQTZ_mciSetAudio (dwDevID, dwParam1, (LPMCI_DGV_SETAUDIO_PARMSW) dwParam2); case MCI_UPDATE: return MCIQTZ_mciUpdate(dwDevID, dwParam1, (LPMCI_DGV_UPDATE_PARMS)dwParam2); + case MCI_WINDOW: + return MCIQTZ_mciWindow(dwDevID, dwParam1, (LPMCI_DGV_WINDOW_PARMSW)dwParam2); + case MCI_PUT: case MCI_RECORD: case MCI_RESUME: case MCI_INFO: - case MCI_PUT: - case MCI_WINDOW: case MCI_LOAD: case MCI_SAVE: case MCI_FREEZE:
Modified: trunk/reactos/dll/win32/mciqtz32/mciqtz_private.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/mciqtz32/mciqtz_p... ============================================================================== --- trunk/reactos/dll/win32/mciqtz32/mciqtz_private.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/mciqtz32/mciqtz_private.h [iso-8859-1] Sat May 19 11:26:15 2012 @@ -31,6 +31,10 @@ BOOL uninit; IGraphBuilder* pgraph; IMediaControl* pmctrl; + IMediaSeeking* seek; + IMediaEvent* mevent; + IVideoWindow* vidwin; + IBasicVideo* vidbasic; DWORD time_format; UINT command_table; HWND parent;
Modified: trunk/reactos/media/doc/README.WINE URL: http://svn.reactos.org/svn/reactos/trunk/reactos/media/doc/README.WINE?rev=5... ============================================================================== --- trunk/reactos/media/doc/README.WINE [iso-8859-1] (original) +++ trunk/reactos/media/doc/README.WINE [iso-8859-1] Sat May 19 11:26:15 2012 @@ -85,7 +85,7 @@ reactos/dll/win32/mapi32 # Autosync reactos/dll/win32/mciavi32 # Synced to Wine-1.3.37 reactos/dll/win32/mcicda # Synced to Wine-1.3.37 -reactos/dll/win32/mciqtz32 # Autosync +reactos/dll/win32/mciqtz32 # Synced to Wine-1.5.4 reactos/dll/win32/mciseq # Synced to Wine-1.3.37 reactos/dll/win32/mciwave # Synced to Wine-1.3.37 reactos/dll/win32/mlang # Synced to Wine-1.3.37