[PATCH v2 2/6] winmm/tests: Add basic video window tests.

Zebediah Figura zfigura at codeweavers.com
Thu Jul 7 14:28:08 CDT 2022


On 7/5/22 06:34, Akihiro Sagawa wrote:
> +static void test_video_window(HWND hwnd)
> +{
> +    const WCHAR *filename = load_resource(L"test.mpg");
> +    MCI_PARMS_UNION parm;
> +    MCIERROR err;
> +    HWND video_window, parent;
> +    MCIDEVICEID wDeviceID;
> +    DWORD style, expected;
> +    BOOL ret;
> +
> +    parm.dgv_open.lpstrDeviceType = (WCHAR *)L"MPEGVideo";
> +    parm.dgv_open.lpstrElementName = (WCHAR *)filename;
> +    parm.dgv_open.hWndParent = hwnd;
> +    err = mciSendCommandW(0, MCI_OPEN,
> +                          MCI_OPEN_ELEMENT | MCI_OPEN_TYPE | MCI_DGV_OPEN_PARENT,
> +                          (DWORD_PTR)&parm);
> +    ok(!err,"mciCommand open test.mpg type MPEGVideo returned %s\n", dbg_mcierr(err));
> +    wDeviceID = parm.dgv_open.wDeviceID;
> +
> +    parm.status.dwItem = MCI_DGV_STATUS_HWND;
> +    parm.status.dwReturn = 0xdeadbeef;
> +    err = mciSendCommandW(wDeviceID, MCI_STATUS, MCI_STATUS_ITEM, (DWORD_PTR)&parm);
> +    todo_wine ok(!err,"mciCommand status hwnd returned %s\n", dbg_mcierr(err));
> +    if (err)
> +    {
> +        skip("MCI_DGV_STATUS_HWND got an error\n");
> +        goto close;
> +    }
> +    video_window = (HWND)parm.status.dwReturn;
> +
> +    ok(IsWindow(video_window), "video window %p doesn't exist.\n", video_window);
> +    parent = GetWindow(video_window, GW_OWNER);
> +    ok(hwnd == parent, "expected owner %p, got %p\n", hwnd, parent);
> +    style = GetWindowLongW(video_window, GWL_STYLE);
> +    expected = (WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_OVERLAPPEDWINDOW) & ~WS_MAXIMIZEBOX;
> +    ok(style == expected, "expected style %08lx, got %08lx\n", expected, style);

Could you please also test the case where no parent is specified?

> +
> +close:
> +    err = mciSendCommandW(wDeviceID, MCI_CLOSE, 0, 0);
> +    ok(!err,"mciCommand close returned %s\n", dbg_mcierr(err));
> +
> +    ret = DeleteFileW(filename);
> +    ok(ret, "Failed to delete %s, error %lu.\n", debugstr_w(filename), GetLastError());
> +}
> +



More information about the wine-devel mailing list