Commit 830801d5 authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

quartz: Stub IVMRWindowlessControl on the VMR7 presenter.

Rewrite needs this.
parent 7b751a9f
......@@ -28,6 +28,7 @@ struct vmr7_presenter
{
IVMRImagePresenter IVMRImagePresenter_iface;
IVMRSurfaceAllocator IVMRSurfaceAllocator_iface;
IVMRWindowlessControl IVMRWindowlessControl_iface;
LONG refcount;
};
......@@ -46,6 +47,8 @@ static HRESULT WINAPI image_presenter_QueryInterface(IVMRImagePresenter *iface,
*out = iface;
else if (IsEqualGUID(iid, &IID_IVMRSurfaceAllocator))
*out = &presenter->IVMRSurfaceAllocator_iface;
else if (IsEqualGUID(iid, &IID_IVMRWindowlessControl))
*out = &presenter->IVMRWindowlessControl_iface;
else
{
*out = NULL;
......@@ -170,6 +173,154 @@ static const IVMRSurfaceAllocatorVtbl surface_allocator_vtbl =
surface_allocator_AdviseNotify,
};
static struct vmr7_presenter *impl_from_IVMRWindowlessControl(IVMRWindowlessControl *iface)
{
return CONTAINING_RECORD(iface, struct vmr7_presenter, IVMRWindowlessControl_iface);
}
static HRESULT WINAPI windowless_control_QueryInterface(IVMRWindowlessControl *iface, REFIID iid, void **out)
{
struct vmr7_presenter *presenter = impl_from_IVMRWindowlessControl(iface);
return IVMRImagePresenter_QueryInterface(&presenter->IVMRImagePresenter_iface, iid, out);
}
static ULONG WINAPI windowless_control_AddRef(IVMRWindowlessControl *iface)
{
struct vmr7_presenter *presenter = impl_from_IVMRWindowlessControl(iface);
return IVMRImagePresenter_AddRef(&presenter->IVMRImagePresenter_iface);
}
static ULONG WINAPI windowless_control_Release(IVMRWindowlessControl *iface)
{
struct vmr7_presenter *presenter = impl_from_IVMRWindowlessControl(iface);
return IVMRImagePresenter_Release(&presenter->IVMRImagePresenter_iface);
}
static HRESULT WINAPI windowless_control_GetNativeVideoSize(IVMRWindowlessControl *iface,
LONG *width, LONG *height, LONG *aspect_width, LONG *aspect_height)
{
FIXME("iface %p, width %p, height %p, aspect_width %p, aspect_height %p.\n",
iface, width, height, aspect_width, aspect_height);
return E_NOTIMPL;
}
static HRESULT WINAPI windowless_control_GetMinIdealVideoSize(
IVMRWindowlessControl *iface, LONG *width, LONG *height)
{
FIXME("iface %p, width %p, height %p, stub!\n", iface, width, height);
return E_NOTIMPL;
}
static HRESULT WINAPI windowless_control_GetMaxIdealVideoSize(
IVMRWindowlessControl *iface, LONG *width, LONG *height)
{
FIXME("iface %p, width %p, height %p, stub!\n", iface, width, height);
return E_NOTIMPL;
}
static HRESULT WINAPI windowless_control_SetVideoPosition(
IVMRWindowlessControl *iface, const RECT *source, const RECT *dest)
{
FIXME("iface %p, source %s, dest %s, stub!.\n", iface, wine_dbgstr_rect(source), wine_dbgstr_rect(dest));
return E_NOTIMPL;
}
static HRESULT WINAPI windowless_control_GetVideoPosition(
IVMRWindowlessControl *iface, RECT *source, RECT *dest)
{
FIXME("iface %p, source %p, dest %p.\n", iface, source, dest);
return E_NOTIMPL;
}
static HRESULT WINAPI windowless_control_GetAspectRatioMode(
IVMRWindowlessControl *iface, DWORD *mode)
{
FIXME("iface %p, mode %p, stub!\n", iface, mode);
return E_NOTIMPL;
}
static HRESULT WINAPI windowless_control_SetAspectRatioMode(
IVMRWindowlessControl *iface, DWORD mode)
{
FIXME("iface %p, mode %#lx, stub!\n", iface, mode);
return E_NOTIMPL;
}
static HRESULT WINAPI windowless_control_SetVideoClippingWindow(
IVMRWindowlessControl *iface, HWND window)
{
FIXME("iface %p, window %p, stub!.\n", iface, window);
return E_NOTIMPL;
}
static HRESULT WINAPI windowless_control_RepaintVideo(
IVMRWindowlessControl *iface, HWND window, HDC dc)
{
FIXME("iface %p, window %p, dc %p, stub!\n", iface, window, dc);
return E_NOTIMPL;
}
static HRESULT WINAPI windowless_control_DisplayModeChanged(IVMRWindowlessControl *iface)
{
FIXME("iface %p, stub!\n", iface);
return E_NOTIMPL;
}
static HRESULT WINAPI windowless_control_GetCurrentImage(IVMRWindowlessControl *iface, BYTE **image)
{
FIXME("iface %p, image %p, stub!\n", iface, image);
return E_NOTIMPL;
}
static HRESULT WINAPI windowless_control_SetBorderColor(IVMRWindowlessControl *iface, COLORREF color)
{
FIXME("iface %p, color %#08lx, stub!\n", iface, color);
return E_NOTIMPL;
}
static HRESULT WINAPI windowless_control_GetBorderColor(IVMRWindowlessControl *iface, COLORREF *color)
{
FIXME("iface %p, color %p, stub!\n", iface, color);
return E_NOTIMPL;
}
static HRESULT WINAPI windowless_control_SetColorKey(IVMRWindowlessControl *iface, COLORREF color)
{
FIXME("iface %p, color %#08lx, stub!\n", iface, color);
return E_NOTIMPL;
}
static HRESULT WINAPI windowless_control_GetColorKey(IVMRWindowlessControl *iface, COLORREF *color)
{
FIXME("iface %p, color %p, stub!\n", iface, color);
return E_NOTIMPL;
}
static const IVMRWindowlessControlVtbl windowless_control_vtbl =
{
windowless_control_QueryInterface,
windowless_control_AddRef,
windowless_control_Release,
windowless_control_GetNativeVideoSize,
windowless_control_GetMinIdealVideoSize,
windowless_control_GetMaxIdealVideoSize,
windowless_control_SetVideoPosition,
windowless_control_GetVideoPosition,
windowless_control_GetAspectRatioMode,
windowless_control_SetAspectRatioMode,
windowless_control_SetVideoClippingWindow,
windowless_control_RepaintVideo,
windowless_control_DisplayModeChanged,
windowless_control_GetCurrentImage,
windowless_control_SetBorderColor,
windowless_control_GetBorderColor,
windowless_control_SetColorKey,
windowless_control_GetColorKey,
};
HRESULT vmr7_presenter_create(IUnknown *outer, IUnknown **out)
{
struct vmr7_presenter *object;
......@@ -183,6 +334,7 @@ HRESULT vmr7_presenter_create(IUnknown *outer, IUnknown **out)
return E_OUTOFMEMORY;
object->IVMRImagePresenter_iface.lpVtbl = &image_presenter_vtbl;
object->IVMRSurfaceAllocator_iface.lpVtbl = &surface_allocator_vtbl;
object->IVMRWindowlessControl_iface.lpVtbl = &windowless_control_vtbl;
object->refcount = 1;
TRACE("Created VMR7 default presenter %p.\n", object);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment