40 static const WCHAR mciWndClassW[] = {
'M',
'C',
'I',
'W',
'n',
'd',
'C',
'l',
'a',
's',
's',0};
63 #define CTL_PLAYSTOP 0x3200 64 #define CTL_MENU 0x3201 65 #define CTL_TRACKBAR 0x3202 148 if (new_mode != mwi->
mode)
150 mwi->
mode = new_mode;
188 static const WCHAR no_deviceW[] = {
'N',
'o',
' ',
'D',
'e',
'v',
'i',
'c',
'e',0};
209 static const WCHAR l_braceW[] = {
'(',0};
226 static const WCHAR dashW[] = {
' ',
'-',
' ',0};
241 static const WCHAR r_braceW[] = {
')',0};
253 static const WCHAR buttonW[] = {
'b',
'u',
't',
't',
'o',
'n',0};
260 mwi->dwStyle =
cs->style;
266 mwi->hwndOwner =
cs->hwndParent;
267 mwi->active_timer = 500;
268 mwi->inactive_timer = 2000;
275 static const WCHAR menuW[] = {
'M',
'e',
'n',
'u',0};
279 TRACE(
"Get Button2: %p\n", hChld);
285 static const WCHAR playW[] = {
'P',
'l',
'a',
'y',0};
290 TRACE(
"Get Button1: %p\n", hChld);
298 TRACE(
"Get status: %p\n", hChld);
304 if (
cs->lpCreateParams)
341 TRACE(
"Cannot do much...\n");
427 return mci_devcaps.dwReturn;
548 static const WCHAR formatW[] = {
'%',
'd',0};
549 static const WCHAR mci32W[] = {
'm',
'c',
'i',
'3',
'2',0};
550 static const WCHAR system_iniW[] = {
's',
'y',
's',
't',
'e',
'm',
'.',
'i',
'n',
'i',0};
557 goto end_of_mci_open;
580 static const WCHAR caption[] = {
'M',
'C',
'I',
' ',
'E',
'r',
'r',
'o',
'r',0};
586 goto end_of_mci_open;
589 mwi->
mci = mci_open.wDeviceID;
604 goto end_of_mci_open;
607 mwi->
dev_type = mci_devcaps.dwReturn;
626 goto end_of_mci_open;
632 mwi->
size.
cx = rc.right - rc.left;
633 mwi->
size.
cy = rc.bottom - rc.top;
665 TRACE(
"MCIWNDM_GETDEVICEID\n");
669 TRACE(
"MCIWNDM_GETALIAS\n");
754 TRACE(
"MCIWNDM_GETLENGTH: %ld\n", mci_status.dwReturn);
755 return mci_status.dwReturn;
771 TRACE(
"MCIWNDM_GETSTART: %ld\n", mci_status.dwReturn);
772 return mci_status.dwReturn;
790 TRACE(
"MCIWNDM_GETPOSITION\n");
806 static const WCHAR formatW[] = {
's',
't',
'a',
't',
'u',
's',
' ',
'%',
'd',
' ',
'p',
'o',
's',
'i',
't',
'i',
'o',
'n',0};
823 return mci_status.dwReturn;
831 TRACE(
"MCIWNDM_GETMODE\n");
850 static const WCHAR formatW[] = {
's',
't',
'a',
't',
'u',
's',
' ',
'%',
'd',
' ',
'm',
'o',
'd',
'e',0};
867 return mci_status.dwReturn;
934 #ifdef MCI_VCR_PLAY_REVERSE 936 flags |= MCI_VCR_PLAY_REVERSE;
992 static const WCHAR formatW[] = {
'%',
'd',
' ',0};
1033 TRACE(
"MCIWNDM_SETTIMERS active %d ms, inactive %d ms\n", (
int)
wParam, (
int)
lParam);
1039 TRACE(
"MCIWNDM_SETACTIVETIMER %d ms\n", (
int)
wParam);
1044 TRACE(
"MCIWNDM_SETINACTIVETIMER %d ms\n", (
int)
wParam);
1066 TRACE(
"MCIWNDM_GETSTYLES: %08x\n", mwi->
dwStyle & 0xffff);
1102 TRACE(
"MCIWNDM_VALIDATEMEDIA\n");
1144 static const WCHAR formatW[] = {
's',
't',
'a',
't',
'u',
's',
' ',
'%',
'd',
' ',
't',
'i',
'm',
'e',
' ',
'f',
'o',
'r',
'm',
'a',
't',0};
1160 return mci_status.dwReturn;
1175 static const WCHAR formatW[] = {
's',
'e',
't',
' ',
'%',
'd',
' ',
't',
'i',
'm',
'e',
' ',
'f',
'o',
'r',
'm',
'a',
't',
' ',0};
1203 TRACE(
"MCIWNDM_CAN_PLAY\n");
1209 TRACE(
"MCIWNDM_CAN_RECORD\n");
1215 TRACE(
"MCIWNDM_CAN_SAVE\n");
1221 TRACE(
"MCIWNDM_CAN_EJECT\n");
1227 TRACE(
"MCIWNDM_CAN_WINDOW\n");
1238 TRACE(
"MCIWNDM_CAN_CONFIG\n");
1264 TRACE(
"MCIWNDM_GETZOOM: %d\n", mwi->
zoom);
1271 TRACE(
"MCIWNDM_EJECT\n");
1295 FIXME(
"support for MCIWNDM_ message WM_USER+%d not implemented\n", wMsg -
WM_USER);
1412 FIXME(
"support for MCI_ command %04x not implemented\n", wMsg);
1418 FIXME(
"support for MCIWNDM_ message WM_USER+%d not implemented\n", wMsg -
WM_USER);
int WINAPIV wsprintfW(_Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR,...)
#define MCIWNDM_SETINACTIVETIMER
#define MCI_DGV_PUT_SOURCE
#define MCIWNDM_GETFILENAMEW
#define MCIWNDF_NOTIFYPOS
#define MCIWNDM_GETDEVICEW
#define MCI_DGV_PUT_DESTINATION
LRESULT WINAPI SendDriverMessage(HDRVR hDriver, UINT msg, LPARAM lParam1, LPARAM lParam2)
static MCIERROR mci_generic_command(MCIWndInfo *mwi, UINT cmd)
#define MCIWNDF_NOERRORDLG
INT WINAPI GetPrivateProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR def_val, LPWSTR buffer, UINT len, LPCWSTR filename)
static void MCIWND_notify_media(MCIWndInfo *mwi)
static const WCHAR menuW[]
static const TCHAR empty_str[]
static void MCIWND_notify_size(MCIWndInfo *mwi)
#define MCIWNDM_VALIDATEMEDIA
#define WideCharToMultiByte
BOOL VFWAPIV MCIWndRegisterClass(void)
#define MCIWNDM_SETTIMEFORMATA
#define MCIWNDM_PALETTEKICK
static LRESULT WINAPI MCIWndProc(HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam)
static void MCIWND_notify_pos(MCIWndInfo *mwi)
#define MCI_DGV_WHERE_DESTINATION
#define MCIWNDM_NOTIFYMODE
#define MCI_GETDEVCAPS_CAN_SAVE
#define MCI_DGV_PLAY_REVERSE
#define MCIWNDM_GETLENGTH
#define MCIWNDF_NOPLAYBAR
#define MCIWNDM_CAN_CONFIG
static const WCHAR buttonW[]
LRESULT WINAPI CloseDriver(HDRVR hDrvr, LPARAM lParam1, LPARAM lParam2)
#define MCIWNDM_GETVOLUME
#define MCIWNDM_GETPOSITIONA
#define MCI_DEVTYPE_DIGITAL_VIDEO
LRESULT WINAPI DefMDIChildProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define MCIWNDF_NOTIFYMEDIAA
#define MCIWNDM_NOTIFYMEDIA
DWORD WINAPI GetLastError(VOID)
#define MCI_DGV_UPDATE_HDC
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
#define GetWindowLongPtrW
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
#define MCIWNDM_RETURNSTRINGA
INT WINAPI MulDiv(INT nNumber, INT nNumerator, INT nDenominator)
HDRVR WINAPI OpenDriver(LPCWSTR lpDriverName, LPCWSTR lpSectionName, LPARAM lParam)
#define MCI_GETDEVCAPS_CAN_RECORD
#define MCIWNDF_NOTIFYANSI
#define MCI_STATUS_POSITION
BOOL WINAPI DestroyWindow(_In_ HWND)
#define MCIWNDM_GETERRORA
static LRESULT MCIWND_Create(HWND hWnd, LPCREATESTRUCTW cs)
static const WCHAR stringW[]
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define DRV_QUERYCONFIGURE
#define MB_ICONEXCLAMATION
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
BOOL WINAPI AdjustWindowRect(_Inout_ LPRECT, _In_ DWORD, _In_ BOOL)
#define MCIWNDM_NOTIFYERROR
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
#define MCI_VD_PLAY_REVERSE
GLenum GLuint GLenum GLsizei length
#define MCIWNDM_GETPALETTE
DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet, UINT uRetLen, HWND hwndCallback)
#define MCI_GETDEVCAPS_DEVICE_TYPE
#define MCI_DGV_WHERE_SOURCE
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
#define MCIWNDM_CAN_RECORD
#define ERROR_CLASS_ALREADY_EXISTS
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(_Out_ PUNICODE_STRING Destination, _In_ PCSZ Source)
#define MCIWNDM_SETPALETTE
#define MCIWNDM_NOTIFYSIZE
DWORD WINAPI mciSendStringA(LPCSTR lpstrCommand, LPSTR lpstrRet, UINT uRetLen, HWND hwndCallback)
BOOL WINAPI IsWindowUnicode(_In_ HWND)
#define MCIWNDM_GETFILENAMEA
HWND VFWAPIV MCIWndCreateW(HWND hwndParent, HINSTANCE hInstance, DWORD dwStyle, LPCWSTR szFile)
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
#define MCIWNDM_GETINACTIVETIMER
#define MCI_DGV_WINDOW_HWND
static const WCHAR nameW[]
static void MCIWND_notify_mode(MCIWndInfo *mwi)
#define MCIWNDM_SETREPEAT
#define MCI_DEVTYPE_VIDEODISC
#define MCIWNDM_SETACTIVETIMER
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
_CONST_RETURN wchar_t *__cdecl wcschr(_In_z_ const wchar_t *_Str, wchar_t _Ch)
#define MCI_STATUS_LENGTH
int WINAPI MessageBoxW(_In_opt_ HWND, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_ UINT)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define MCIWNDM_GETACTIVETIMER
static LRESULT MCIWND_Command(MCIWndInfo *mwi, WPARAM wParam, LPARAM lParam)
DWORD WINAPI mciSendCommandW(MCIDEVICEID wDevID, UINT wMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2)
WINE_DEFAULT_DEBUG_CHANNEL(mci)
const char * wine_dbgstr_rect(const RECT *rect)
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
#define MCIWNDM_PLAYREVERSE
static HRESULT return_string(VARIANT *res, const WCHAR *str)
static void MCIWND_notify_error(MCIWndInfo *mwi)
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
HCURSOR WINAPI LoadCursorW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define MCIWNDF_NOTIFYERROR
static void MCIWND_ToggleState(MCIWndInfo *mwi)
HWND VFWAPIV MCIWndCreateA(HWND hwndParent, HINSTANCE hInstance, DWORD dwStyle, LPCSTR szFile)
#define MCIWNDF_NOTIFYMEDIAW
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)
#define MCIWNDM_GETDEVICEA
HWND WINAPI GetWindow(_In_ HWND, _In_ UINT)
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)
BOOL WINAPI InitCommonControlsEx(const INITCOMMONCONTROLSEX *lpInitCtrls)
static __inline const char * debugstr_an(const char *s, int n)
#define MCI_DEVTYPE_OVERLAY
static void MCIWND_UpdateState(MCIWndInfo *mwi)
#define memcpy(s1, s2, n)
BOOL WINAPI mciGetErrorStringW(MCIERROR wError, LPWSTR lpstrBuffer, UINT uLength)
#define MCIWNDM_CAN_WINDOW
static const WCHAR spaceW[]
#define MCI_GETDEVCAPS_ITEM
#define MCIWNDM_NOTIFYPOS
#define MCIWNDM_GETDEVICEID
#define MCIWNDF_NOTIFYMODE
#define MCI_SEEK_TO_START
#define MCIWNDM_GETREPEAT
#define MCIWNDM_RETURNSTRINGW
#define MCIWNDF_NOTIFYSIZE
#define MCIWNDM_GETSTYLES
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define MCIWNDM_SETTIMERS
#define MCI_SYSINFO_INSTALLNAME
#define MCI_ANIM_PLAY_REVERSE
static const WCHAR mciWndClassW[]
#define MCIWNDM_SETVOLUME
int WINAPIV wsprintfA(_Out_ LPSTR, _In_ _Printf_format_string_ LPCSTR,...)
#define MCI_MODE_NOT_READY
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
#define MCIWNDM_OPENINTERFACE
static LRESULT mci_get_devcaps(MCIWndInfo *mwi, UINT cap)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define MCIWNDF_NOAUTOSIZEWINDOW
#define MCIWNDM_GETERRORW
#define MCIWNDM_CHANGESTYLES
#define MCIWNDM_SETTIMEFORMATW
#define MCIWNDM_SENDSTRINGW
#define MCIWNDM_GET_SOURCE
#define MCIWNDM_SENDSTRINGA
#define MCIWNDF_NOAUTOSIZEMOVIE
#define MCIWNDM_CAN_EJECT
#define MCI_GETDEVCAPS_CAN_EJECT
DWORD WINAPI mciSendCommandA(MCIDEVICEID wDevID, UINT wMsg, DWORD_PTR dwParam1, DWORD_PTR dwParam2)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
#define MCI_DGV_UPDATE_PAINT
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
LPWSTR WINAPI lstrcatW(LPWSTR lpString1, LPCWSTR lpString2)
static LRESULT MCIWND_KeyDown(MCIWndInfo *mwi, UINT key)
#define MCIWNDM_GETTIMEFORMATW
#define MCI_STATUS_TIME_FORMAT
static const WCHAR fileW[]
BOOL WINAPI mciGetErrorStringA(MCIERROR dwError, LPSTR lpstrBuffer, UINT uLength)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
#define MCIWNDM_PUT_SOURCE
#define HeapFree(x, y, z)
#define MCIWNDM_GETTIMEFORMATA
#define MCI_SET_DOOR_OPEN
#define MCIWNDM_GETPOSITIONW
#define MCI_DEVTYPE_ANIMATION
#define MCI_GETDEVCAPS_CAN_PLAY