ReactOS 0.4.17-dev-923-g4c9a150
window.c File Reference
#include "quartz_private.h"
Include dependency graph for window.c:

Go to the source code of this file.

Macros

#define WM_QUARTZ_DESTROY   (WM_USER + WM_DESTROY)
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (quartz)
 
static struct video_window * impl_from_IVideoWindow (IVideoWindow *iface)
 
static LRESULT CALLBACK WndProcW (HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
 
HRESULT video_window_create_window (struct video_window *window)
 
HRESULT WINAPI BaseControlWindowImpl_QueryInterface (IVideoWindow *iface, REFIID iid, void **out)
 
ULONG WINAPI BaseControlWindowImpl_AddRef (IVideoWindow *iface)
 
ULONG WINAPI BaseControlWindowImpl_Release (IVideoWindow *iface)
 
HRESULT WINAPI BaseControlWindowImpl_GetTypeInfoCount (IVideoWindow *iface, UINT *count)
 
HRESULT WINAPI BaseControlWindowImpl_GetTypeInfo (IVideoWindow *iface, UINT index, LCID lcid, ITypeInfo **typeinfo)
 
HRESULT WINAPI BaseControlWindowImpl_GetIDsOfNames (IVideoWindow *iface, REFIID iid, LPOLESTR *names, UINT count, LCID lcid, DISPID *ids)
 
HRESULT WINAPI BaseControlWindowImpl_Invoke (IVideoWindow *iface, DISPID id, REFIID iid, LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *result, EXCEPINFO *excepinfo, UINT *error_arg)
 
HRESULT WINAPI BaseControlWindowImpl_put_Caption (IVideoWindow *iface, BSTR caption)
 
HRESULT WINAPI BaseControlWindowImpl_get_Caption (IVideoWindow *iface, BSTR *caption)
 
HRESULT WINAPI BaseControlWindowImpl_put_WindowStyle (IVideoWindow *iface, LONG style)
 
HRESULT WINAPI BaseControlWindowImpl_get_WindowStyle (IVideoWindow *iface, LONG *style)
 
HRESULT WINAPI BaseControlWindowImpl_put_WindowStyleEx (IVideoWindow *iface, LONG style)
 
HRESULT WINAPI BaseControlWindowImpl_get_WindowStyleEx (IVideoWindow *iface, LONG *style)
 
HRESULT WINAPI BaseControlWindowImpl_put_AutoShow (IVideoWindow *iface, LONG AutoShow)
 
HRESULT WINAPI BaseControlWindowImpl_get_AutoShow (IVideoWindow *iface, LONG *AutoShow)
 
HRESULT WINAPI BaseControlWindowImpl_put_WindowState (IVideoWindow *iface, LONG state)
 
HRESULT WINAPI BaseControlWindowImpl_get_WindowState (IVideoWindow *iface, LONG *state)
 
HRESULT WINAPI BaseControlWindowImpl_put_BackgroundPalette (IVideoWindow *iface, LONG BackgroundPalette)
 
HRESULT WINAPI BaseControlWindowImpl_get_BackgroundPalette (IVideoWindow *iface, LONG *pBackgroundPalette)
 
HRESULT WINAPI BaseControlWindowImpl_put_Visible (IVideoWindow *iface, LONG visible)
 
HRESULT WINAPI BaseControlWindowImpl_get_Visible (IVideoWindow *iface, LONG *visible)
 
HRESULT WINAPI BaseControlWindowImpl_put_Left (IVideoWindow *iface, LONG left)
 
HRESULT WINAPI BaseControlWindowImpl_get_Left (IVideoWindow *iface, LONG *left)
 
HRESULT WINAPI BaseControlWindowImpl_put_Width (IVideoWindow *iface, LONG width)
 
HRESULT WINAPI BaseControlWindowImpl_get_Width (IVideoWindow *iface, LONG *width)
 
HRESULT WINAPI BaseControlWindowImpl_put_Top (IVideoWindow *iface, LONG top)
 
HRESULT WINAPI BaseControlWindowImpl_get_Top (IVideoWindow *iface, LONG *top)
 
HRESULT WINAPI BaseControlWindowImpl_put_Height (IVideoWindow *iface, LONG height)
 
HRESULT WINAPI BaseControlWindowImpl_get_Height (IVideoWindow *iface, LONG *height)
 
HRESULT WINAPI BaseControlWindowImpl_put_Owner (IVideoWindow *iface, OAHWND owner)
 
HRESULT WINAPI BaseControlWindowImpl_get_Owner (IVideoWindow *iface, OAHWND *Owner)
 
HRESULT WINAPI BaseControlWindowImpl_put_MessageDrain (IVideoWindow *iface, OAHWND Drain)
 
HRESULT WINAPI BaseControlWindowImpl_get_MessageDrain (IVideoWindow *iface, OAHWND *Drain)
 
HRESULT WINAPI BaseControlWindowImpl_get_BorderColor (IVideoWindow *iface, LONG *Color)
 
HRESULT WINAPI BaseControlWindowImpl_put_BorderColor (IVideoWindow *iface, LONG Color)
 
HRESULT WINAPI BaseControlWindowImpl_get_FullScreenMode (IVideoWindow *iface, LONG *FullScreenMode)
 
HRESULT WINAPI BaseControlWindowImpl_put_FullScreenMode (IVideoWindow *iface, LONG fullscreen)
 
HRESULT WINAPI BaseControlWindowImpl_SetWindowForeground (IVideoWindow *iface, LONG focus)
 
HRESULT WINAPI BaseControlWindowImpl_SetWindowPosition (IVideoWindow *iface, LONG left, LONG top, LONG width, LONG height)
 
HRESULT WINAPI BaseControlWindowImpl_GetWindowPosition (IVideoWindow *iface, LONG *left, LONG *top, LONG *width, LONG *height)
 
HRESULT WINAPI BaseControlWindowImpl_NotifyOwnerMessage (IVideoWindow *iface, OAHWND hwnd, LONG message, LONG_PTR wparam, LONG_PTR lparam)
 
HRESULT WINAPI BaseControlWindowImpl_GetMinIdealImageSize (IVideoWindow *iface, LONG *width, LONG *height)
 
HRESULT WINAPI BaseControlWindowImpl_GetMaxIdealImageSize (IVideoWindow *iface, LONG *width, LONG *height)
 
HRESULT WINAPI BaseControlWindowImpl_GetRestorePosition (IVideoWindow *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
 
HRESULT WINAPI BaseControlWindowImpl_HideCursor (IVideoWindow *iface, LONG hide)
 
HRESULT WINAPI BaseControlWindowImpl_IsCursorHidden (IVideoWindow *iface, LONG *CursorHidden)
 
static struct video_window * impl_from_IBasicVideo (IBasicVideo *iface)
 
static HRESULT WINAPI basic_video_QueryInterface (IBasicVideo *iface, REFIID iid, void **out)
 
static ULONG WINAPI basic_video_AddRef (IBasicVideo *iface)
 
static ULONG WINAPI basic_video_Release (IBasicVideo *iface)
 
static HRESULT WINAPI basic_video_GetTypeInfoCount (IBasicVideo *iface, UINT *count)
 
static HRESULT WINAPI basic_video_GetTypeInfo (IBasicVideo *iface, UINT index, LCID lcid, ITypeInfo **typeinfo)
 
static HRESULT WINAPI basic_video_GetIDsOfNames (IBasicVideo *iface, REFIID iid, LPOLESTR *names, UINT count, LCID lcid, DISPID *ids)
 
static HRESULT WINAPI basic_video_Invoke (IBasicVideo *iface, DISPID id, REFIID iid, LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *result, EXCEPINFO *excepinfo, UINT *error_arg)
 
static const VIDEOINFOHEADER * get_video_format (struct video_window *window)
 
static const BITMAPINFOHEADER * get_bitmap_header (struct video_window *window)
 
static HRESULT WINAPI basic_video_get_AvgTimePerFrame (IBasicVideo *iface, REFTIME *reftime)
 
static HRESULT WINAPI basic_video_get_BitRate (IBasicVideo *iface, LONG *rate)
 
static HRESULT WINAPI basic_video_get_BitErrorRate (IBasicVideo *iface, LONG *rate)
 
static HRESULT WINAPI basic_video_get_VideoWidth (IBasicVideo *iface, LONG *width)
 
static HRESULT WINAPI basic_video_get_VideoHeight (IBasicVideo *iface, LONG *height)
 
static HRESULT WINAPI basic_video_put_SourceLeft (IBasicVideo *iface, LONG left)
 
static HRESULT WINAPI basic_video_get_SourceLeft (IBasicVideo *iface, LONG *left)
 
static HRESULT WINAPI basic_video_put_SourceWidth (IBasicVideo *iface, LONG width)
 
static HRESULT WINAPI basic_video_get_SourceWidth (IBasicVideo *iface, LONG *width)
 
static HRESULT WINAPI basic_video_put_SourceTop (IBasicVideo *iface, LONG top)
 
static HRESULT WINAPI basic_video_get_SourceTop (IBasicVideo *iface, LONG *top)
 
static HRESULT WINAPI basic_video_put_SourceHeight (IBasicVideo *iface, LONG height)
 
static HRESULT WINAPI basic_video_get_SourceHeight (IBasicVideo *iface, LONG *height)
 
static HRESULT WINAPI basic_video_put_DestinationLeft (IBasicVideo *iface, LONG left)
 
static HRESULT WINAPI basic_video_get_DestinationLeft (IBasicVideo *iface, LONG *left)
 
static HRESULT WINAPI basic_video_put_DestinationWidth (IBasicVideo *iface, LONG width)
 
static HRESULT WINAPI basic_video_get_DestinationWidth (IBasicVideo *iface, LONG *width)
 
static HRESULT WINAPI basic_video_put_DestinationTop (IBasicVideo *iface, LONG top)
 
static HRESULT WINAPI basic_video_get_DestinationTop (IBasicVideo *iface, LONG *top)
 
static HRESULT WINAPI basic_video_put_DestinationHeight (IBasicVideo *iface, LONG height)
 
static HRESULT WINAPI basic_video_get_DestinationHeight (IBasicVideo *iface, LONG *height)
 
static HRESULT WINAPI basic_video_SetSourcePosition (IBasicVideo *iface, LONG left, LONG top, LONG width, LONG height)
 
static HRESULT WINAPI basic_video_GetSourcePosition (IBasicVideo *iface, LONG *left, LONG *top, LONG *width, LONG *height)
 
static HRESULT WINAPI basic_video_SetDefaultSourcePosition (IBasicVideo *iface)
 
static HRESULT WINAPI basic_video_SetDestinationPosition (IBasicVideo *iface, LONG left, LONG top, LONG width, LONG height)
 
static HRESULT WINAPI basic_video_GetDestinationPosition (IBasicVideo *iface, LONG *left, LONG *top, LONG *width, LONG *height)
 
static HRESULT WINAPI basic_video_SetDefaultDestinationPosition (IBasicVideo *iface)
 
static HRESULT WINAPI basic_video_GetVideoSize (IBasicVideo *iface, LONG *width, LONG *height)
 
static HRESULT WINAPI basic_video_GetVideoPaletteEntries (IBasicVideo *iface, LONG start, LONG count, LONG *ret_count, LONG *palette)
 
static HRESULT WINAPI basic_video_GetCurrentImage (IBasicVideo *iface, LONG *size, LONG *image)
 
static HRESULT WINAPI basic_video_IsUsingDefaultSource (IBasicVideo *iface)
 
static HRESULT WINAPI basic_video_IsUsingDefaultDestination (IBasicVideo *iface)
 
void video_window_unregister_class (void)
 
void video_window_init (struct video_window *window, const IVideoWindowVtbl *vtbl, struct strmbase_filter *owner, struct strmbase_pin *pin, const struct video_window_ops *ops)
 
void video_window_cleanup (struct video_window *window)
 

Variables

static const WCHAR class_name [] = L"wine_quartz_window"
 
static const IBasicVideoVtbl basic_video_vtbl
 

Macro Definition Documentation

◆ WM_QUARTZ_DESTROY

#define WM_QUARTZ_DESTROY   (WM_USER + WM_DESTROY)

Definition at line 23 of file window.c.

Function Documentation

◆ BaseControlWindowImpl_AddRef()

ULONG WINAPI BaseControlWindowImpl_AddRef ( IVideoWindow *  iface)

Definition at line 131 of file window.c.

132{
134 return IUnknown_AddRef(window->pFilter->outer_unk);
135}
static struct video_window * impl_from_IVideoWindow(IVideoWindow *iface)
Definition: window.c:29
static IHTMLWindow2 * window
Definition: events.c:77

◆ BaseControlWindowImpl_get_AutoShow()

HRESULT WINAPI BaseControlWindowImpl_get_AutoShow ( IVideoWindow *  iface,
LONG *  AutoShow 
)

Definition at line 288 of file window.c.

289{
291
292 TRACE("(%p/%p)->(%p)\n", This, iface, AutoShow);
293
294 *AutoShow = This->AutoShow;
295
296 return S_OK;
297}
#define S_OK
Definition: intsafe.h:52
#define TRACE(s)
Definition: solgame.cpp:4

◆ BaseControlWindowImpl_get_BackgroundPalette()

HRESULT WINAPI BaseControlWindowImpl_get_BackgroundPalette ( IVideoWindow *  iface,
LONG *  pBackgroundPalette 
)

Definition at line 338 of file window.c.

339{
341
342 FIXME("(%p/%p)->(%p): stub !!!\n", This, iface, pBackgroundPalette);
343
344 return S_OK;
345}
#define FIXME(fmt,...)
Definition: precomp.h:53

◆ BaseControlWindowImpl_get_BorderColor()

HRESULT WINAPI BaseControlWindowImpl_get_BorderColor ( IVideoWindow *  iface,
LONG *  Color 
)

Definition at line 540 of file window.c.

541{
543
544 FIXME("(%p/%p)->(%p): stub !!!\n", This, iface, Color);
545
546 return S_OK;
547}

◆ BaseControlWindowImpl_get_Caption()

HRESULT WINAPI BaseControlWindowImpl_get_Caption ( IVideoWindow *  iface,
BSTR *  caption 
)

Definition at line 206 of file window.c.

207{
209 WCHAR *str;
210 int len;
211
212 TRACE("window %p, caption %p.\n", window, caption);
213
214 *caption = NULL;
215
216 len = GetWindowTextLengthW(window->hwnd) + 1;
217 if (!(str = heap_alloc(len * sizeof(WCHAR))))
218 return E_OUTOFMEMORY;
219
220 GetWindowTextW(window->hwnd, str, len);
221 *caption = SysAllocString(str);
222 heap_free(str);
223 return *caption ? S_OK : E_OUTOFMEMORY;
224}
static void * heap_alloc(size_t len)
Definition: appwiz.h:66
static BOOL heap_free(void *mem)
Definition: appwiz.h:76
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define NULL
Definition: types.h:112
GLenum GLsizei len
Definition: glext.h:6722
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:240
short WCHAR
Definition: pedump.c:58
int WINAPI GetWindowTextLengthW(_In_ HWND)
const WCHAR * str
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
Definition: window.c:1382

◆ BaseControlWindowImpl_get_FullScreenMode()

HRESULT WINAPI BaseControlWindowImpl_get_FullScreenMode ( IVideoWindow *  iface,
LONG *  FullScreenMode 
)

Definition at line 558 of file window.c.

559{
560 TRACE("(%p)->(%p)\n", iface, FullScreenMode);
561
562 return E_NOTIMPL;
563}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ BaseControlWindowImpl_get_Height()

HRESULT WINAPI BaseControlWindowImpl_get_Height ( IVideoWindow *  iface,
LONG *  height 
)

Definition at line 469 of file window.c.

470{
472 RECT rect;
473
474 TRACE("window %p, height %p.\n", window, height);
475
476 GetWindowRect(window->hwnd, &rect);
478 return S_OK;
479}
RECT rect
Definition: combotst.c:67
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
Definition: dcommon.idl:28
long bottom
Definition: dcommon.idl:29
long top
Definition: dcommon.idl:29

◆ BaseControlWindowImpl_get_Left()

HRESULT WINAPI BaseControlWindowImpl_get_Left ( IVideoWindow *  iface,
LONG *  left 
)

Definition at line 388 of file window.c.

389{
391 RECT rect;
392
393 TRACE("window %p, left %p.\n", window, left);
394
395 GetWindowRect(window->hwnd, &rect);
396 *left = rect.left;
397 return S_OK;
398}
GLint left
Definition: glext.h:7726
long left
Definition: dcommon.idl:29

◆ BaseControlWindowImpl_get_MessageDrain()

HRESULT WINAPI BaseControlWindowImpl_get_MessageDrain ( IVideoWindow *  iface,
OAHWND *  Drain 
)

Definition at line 529 of file window.c.

530{
532
533 TRACE("(%p/%p)->(%p)\n", This, iface, Drain);
534
535 *Drain = (OAHWND)This->hwndDrain;
536
537 return S_OK;
538}
LONG_PTR OAHWND
Definition: control.idl:31

◆ BaseControlWindowImpl_get_Owner()

HRESULT WINAPI BaseControlWindowImpl_get_Owner ( IVideoWindow *  iface,
OAHWND *  Owner 
)

Definition at line 504 of file window.c.

505{
507
508 TRACE("(%p/%p)->(%p)\n", This, iface, Owner);
509
510 *(HWND*)Owner = This->hwndOwner;
511
512 return S_OK;
513}
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID Owner
Definition: rtlfuncs.h:1629

◆ BaseControlWindowImpl_get_Top()

HRESULT WINAPI BaseControlWindowImpl_get_Top ( IVideoWindow *  iface,
LONG *  top 
)

Definition at line 442 of file window.c.

443{
445 RECT rect;
446
447 TRACE("window %p, top %p.\n", window, top);
448
449 GetWindowRect(window->hwnd, &rect);
450 *top = rect.top;
451 return S_OK;
452}
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859

◆ BaseControlWindowImpl_get_Visible()

HRESULT WINAPI BaseControlWindowImpl_get_Visible ( IVideoWindow *  iface,
LONG *  visible 
)

Definition at line 360 of file window.c.

361{
363
364 TRACE("window %p, visible %p.\n", window, visible);
365
366 if (!visible)
367 return E_POINTER;
368
369 *visible = IsWindowVisible(window->hwnd) ? OATRUE : OAFALSE;
370 return S_OK;
371}
#define OAFALSE
Definition: dshow.h:53
#define OATRUE
Definition: dshow.h:49
BOOL WINAPI IsWindowVisible(_In_ HWND)
#define E_POINTER
Definition: winerror.h:3480

◆ BaseControlWindowImpl_get_Width()

HRESULT WINAPI BaseControlWindowImpl_get_Width ( IVideoWindow *  iface,
LONG *  width 
)

Definition at line 415 of file window.c.

416{
418 RECT rect;
419
420 TRACE("window %p, width %p.\n", window, width);
421
422 GetWindowRect(window->hwnd, &rect);
423 *width = rect.right - rect.left;
424 return S_OK;
425}
GLint GLint GLsizei width
Definition: gl.h:1546
long right
Definition: dcommon.idl:29

◆ BaseControlWindowImpl_get_WindowState()

HRESULT WINAPI BaseControlWindowImpl_get_WindowState ( IVideoWindow *  iface,
LONG *  state 
)

Definition at line 309 of file window.c.

310{
312 DWORD style;
313
314 TRACE("window %p, state %p.\n", window, state);
315
317 if (!(style & WS_VISIBLE))
318 *state = SW_HIDE;
319 else if (style & WS_MINIMIZE)
321 else if (style & WS_MAXIMIZE)
323 else
324 *state = SW_SHOW;
325
326 return S_OK;
327}
static int state
Definition: maze.c:121
unsigned long DWORD
Definition: ntddk_ex.h:95
#define WS_MAXIMIZE
Definition: pedump.c:623
#define WS_MINIMIZE
Definition: pedump.c:622
#define WS_VISIBLE
Definition: pedump.c:620
#define SW_HIDE
Definition: winuser.h:779
#define GetWindowLongPtrW
Definition: winuser.h:4983
#define SW_MINIMIZE
Definition: winuser.h:787
#define SW_SHOW
Definition: winuser.h:786
#define SW_MAXIMIZE
Definition: winuser.h:783
#define GWL_STYLE
Definition: winuser.h:863
Definition: style.c:91

◆ BaseControlWindowImpl_get_WindowStyle()

HRESULT WINAPI BaseControlWindowImpl_get_WindowStyle ( IVideoWindow *  iface,
LONG *  style 
)

Definition at line 243 of file window.c.

244{
246
247 TRACE("window %p, style %p.\n", window, style);
248
250 return S_OK;
251}
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)

◆ BaseControlWindowImpl_get_WindowStyleEx()

HRESULT WINAPI BaseControlWindowImpl_get_WindowStyleEx ( IVideoWindow *  iface,
LONG *  style 
)

Definition at line 264 of file window.c.

265{
267
268 TRACE("window %p, style %p.\n", window, style);
269
271 return S_OK;
272}
#define GWL_EXSTYLE
Definition: winuser.h:862

◆ BaseControlWindowImpl_GetIDsOfNames()

HRESULT WINAPI BaseControlWindowImpl_GetIDsOfNames ( IVideoWindow *  iface,
REFIID  iid,
LPOLESTR *  names,
UINT  count,
LCID  lcid,
DISPID *  ids 
)

Definition at line 157 of file window.c.

159{
161 HRESULT hr;
162
163 TRACE("iface %p, iid %s, names %p, count %u, lcid %#lx, ids %p.\n",
164 iface, debugstr_guid(iid), names, count, lcid, ids);
165
167 {
168 hr = ITypeInfo_GetIDsOfNames(typeinfo, names, count, ids);
169 ITypeInfo_Release(typeinfo);
170 }
171 return hr;
172}
HRESULT hr
Definition: delayimp.cpp:582
LCID lcid
Definition: locale.c:5660
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLuint * ids
Definition: glext.h:5907
GLuint GLuint * names
Definition: glext.h:11545
#define SUCCEEDED(hr)
Definition: intsafe.h:50
#define debugstr_guid
Definition: kernel32.h:35
@ IVideoWindow_tid
Definition: strmbase.h:230
HRESULT strmbase_get_typeinfo(enum strmbase_type_id tid, ITypeInfo **typeinfo)
Definition: dispatch.c:38

◆ BaseControlWindowImpl_GetMaxIdealImageSize()

HRESULT WINAPI BaseControlWindowImpl_GetMaxIdealImageSize ( IVideoWindow *  iface,
LONG *  width,
LONG *  height 
)

Definition at line 664 of file window.c.

665{
667 RECT rect;
668
669 TRACE("window %p, width %p, height %p.\n", window, width, height);
670
671 window->ops->get_default_rect(window, &rect);
672 *width = rect.right - rect.left;
674 return S_OK;
675}

◆ BaseControlWindowImpl_GetMinIdealImageSize()

HRESULT WINAPI BaseControlWindowImpl_GetMinIdealImageSize ( IVideoWindow *  iface,
LONG *  width,
LONG *  height 
)

Definition at line 651 of file window.c.

652{
654 RECT rect;
655
656 TRACE("window %p, width %p, height %p.\n", window, width, height);
657
658 window->ops->get_default_rect(window, &rect);
659 *width = rect.right - rect.left;
661 return S_OK;
662}

◆ BaseControlWindowImpl_GetRestorePosition()

HRESULT WINAPI BaseControlWindowImpl_GetRestorePosition ( IVideoWindow *  iface,
LONG *  pLeft,
LONG *  pTop,
LONG *  pWidth,
LONG *  pHeight 
)

Definition at line 677 of file window.c.

678{
680
681 FIXME("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This, iface, pLeft, pTop, pWidth, pHeight);
682
683 return S_OK;
684}

◆ BaseControlWindowImpl_GetTypeInfo()

HRESULT WINAPI BaseControlWindowImpl_GetTypeInfo ( IVideoWindow *  iface,
UINT  index,
LCID  lcid,
ITypeInfo **  typeinfo 
)

Definition at line 150 of file window.c.

152{
153 TRACE("iface %p, index %u, lcid %#lx, typeinfo %p.\n", iface, index, lcid, typeinfo);
155}
GLuint index
Definition: glext.h:6031

◆ BaseControlWindowImpl_GetTypeInfoCount()

HRESULT WINAPI BaseControlWindowImpl_GetTypeInfoCount ( IVideoWindow *  iface,
UINT *  count 
)

Definition at line 143 of file window.c.

144{
145 TRACE("iface %p, count %p.\n", iface, count);
146 *count = 1;
147 return S_OK;
148}

◆ BaseControlWindowImpl_GetWindowPosition()

HRESULT WINAPI BaseControlWindowImpl_GetWindowPosition ( IVideoWindow *  iface,
LONG *  left,
LONG *  top,
LONG *  width,
LONG *  height 
)

Definition at line 609 of file window.c.

611{
613 RECT rect;
614
615 TRACE("window %p, left %p, top %p, width %p, height %p.\n", window, left, top, width, height);
616
617 GetWindowRect(window->hwnd, &rect);
618 *left = rect.left;
619 *top = rect.top;
620 *width = rect.right - rect.left;
622 return S_OK;
623}

◆ BaseControlWindowImpl_HideCursor()

HRESULT WINAPI BaseControlWindowImpl_HideCursor ( IVideoWindow *  iface,
LONG  hide 
)

Definition at line 686 of file window.c.

687{
689
690 FIXME("window %p, hide %ld, stub!\n", window, hide);
691
692 return S_OK;
693}

◆ BaseControlWindowImpl_Invoke()

HRESULT WINAPI BaseControlWindowImpl_Invoke ( IVideoWindow *  iface,
DISPID  id,
REFIID  iid,
LCID  lcid,
WORD  flags,
DISPPARAMS *  params,
VARIANT *  result,
EXCEPINFO *  excepinfo,
UINT *  error_arg 
)

Definition at line 174 of file window.c.

176{
178 HRESULT hr;
179
180 TRACE("iface %p, id %ld, iid %s, lcid %#lx, flags %#x, params %p, result %p, excepinfo %p, error_arg %p.\n",
181 iface, id, debugstr_guid(iid), lcid, flags, params, result, excepinfo, error_arg);
182
184 {
185 hr = ITypeInfo_Invoke(typeinfo, iface, id, flags, params, result, excepinfo, error_arg);
186 ITypeInfo_Release(typeinfo);
187 }
188 return hr;
189}
GLenum const GLfloat * params
Definition: glext.h:5645
GLbitfield flags
Definition: glext.h:7161
GLuint64EXT * result
Definition: glext.h:11304
static EXCEPINFO excepinfo
Definition: automation.c:47

◆ BaseControlWindowImpl_IsCursorHidden()

HRESULT WINAPI BaseControlWindowImpl_IsCursorHidden ( IVideoWindow *  iface,
LONG *  CursorHidden 
)

Definition at line 695 of file window.c.

696{
698
699 FIXME("(%p/%p)->(%p): stub !!!\n", This, iface, CursorHidden);
700
701 return S_OK;
702}

◆ BaseControlWindowImpl_NotifyOwnerMessage()

HRESULT WINAPI BaseControlWindowImpl_NotifyOwnerMessage ( IVideoWindow *  iface,
OAHWND  hwnd,
LONG  message,
LONG_PTR  wparam,
LONG_PTR  lparam 
)

Definition at line 625 of file window.c.

627{
629
630 TRACE("window %p, hwnd %#Ix, message %#lx, wparam %#Ix, lparam %#Ix.\n",
632
633 /* That these messages are forwarded, and no others, is stated by the
634 * DirectX documentation, and supported by manual testing. */
635 switch (message)
636 {
637 case WM_ACTIVATEAPP:
638 case WM_DEVMODECHANGE:
639 case WM_DISPLAYCHANGE:
645 break;
646 }
647
648 return S_OK;
649}
@ lparam
Definition: SystemMenu.c:31
@ wparam
Definition: SystemMenu.c:30
#define WM_QUERYNEWPALETTE
Definition: winuser.h:1906
#define WM_PALETTECHANGED
Definition: winuser.h:1905
#define WM_DEVMODECHANGE
Definition: winuser.h:1659
#define WM_SYSCOLORCHANGE
Definition: winuser.h:1654
#define WM_ACTIVATEAPP
Definition: winuser.h:1660
#define WM_PALETTEISCHANGING
Definition: winuser.h:1904
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
Definition: tftpd.h:60
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023

◆ BaseControlWindowImpl_put_AutoShow()

HRESULT WINAPI BaseControlWindowImpl_put_AutoShow ( IVideoWindow *  iface,
LONG  AutoShow 
)

Definition at line 274 of file window.c.

275{
277
278 TRACE("window %p, AutoShow %ld.\n", window, AutoShow);
279
280 if (!window->pPin->peer)
281 return VFW_E_NOT_CONNECTED;
282
283 window->AutoShow = AutoShow;
284
285 return S_OK;
286}
#define VFW_E_NOT_CONNECTED
Definition: vfwmsgs.h:48

◆ BaseControlWindowImpl_put_BackgroundPalette()

HRESULT WINAPI BaseControlWindowImpl_put_BackgroundPalette ( IVideoWindow *  iface,
LONG  BackgroundPalette 
)

Definition at line 329 of file window.c.

330{
332
333 FIXME("window %p, palette %ld, stub!\n", This, BackgroundPalette);
334
335 return S_OK;
336}

◆ BaseControlWindowImpl_put_BorderColor()

HRESULT WINAPI BaseControlWindowImpl_put_BorderColor ( IVideoWindow *  iface,
LONG  Color 
)

Definition at line 549 of file window.c.

550{
552
553 TRACE("window %p, colour %#lx.\n", This, Color);
554
555 return S_OK;
556}

◆ BaseControlWindowImpl_put_Caption()

HRESULT WINAPI BaseControlWindowImpl_put_Caption ( IVideoWindow *  iface,
BSTR  caption 
)

Definition at line 191 of file window.c.

192{
194
195 TRACE("window %p, caption %s.\n", window, debugstr_w(caption));
196
197 if (!window->pPin->peer)
198 return VFW_E_NOT_CONNECTED;
199
200 if (!SetWindowTextW(window->hwnd, caption))
201 return E_FAIL;
202
203 return S_OK;
204}
#define E_FAIL
Definition: ddrawi.h:102
#define debugstr_w
Definition: kernel32.h:32
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)

◆ BaseControlWindowImpl_put_FullScreenMode()

HRESULT WINAPI BaseControlWindowImpl_put_FullScreenMode ( IVideoWindow *  iface,
LONG  fullscreen 
)

Definition at line 565 of file window.c.

566{
568
569 TRACE("window %p, fullscreen %ld.\n", window, fullscreen);
570
571 return E_NOTIMPL;
572}
BOOL fullscreen
Definition: 3dtext.c:44

◆ BaseControlWindowImpl_put_Height()

HRESULT WINAPI BaseControlWindowImpl_put_Height ( IVideoWindow *  iface,
LONG  height 
)

Definition at line 454 of file window.c.

455{
457 RECT rect;
458
459 TRACE("window %p, height %ld.\n", window, height);
460
461 GetWindowRect(window->hwnd, &rect);
462 if (!SetWindowPos(window->hwnd, NULL, 0, 0, rect.right - rect.left,
464 return E_FAIL;
465
466 return S_OK;
467}
#define SWP_NOACTIVATE
Definition: winuser.h:1253
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
#define SWP_NOMOVE
Definition: winuser.h:1255
#define SWP_NOZORDER
Definition: winuser.h:1258

◆ BaseControlWindowImpl_put_Left()

HRESULT WINAPI BaseControlWindowImpl_put_Left ( IVideoWindow *  iface,
LONG  left 
)

Definition at line 373 of file window.c.

374{
376 RECT rect;
377
378 TRACE("window %p, left %ld.\n", window, left);
379
380 GetWindowRect(window->hwnd, &rect);
381 if (!SetWindowPos(window->hwnd, NULL, left, rect.top, 0, 0,
383 return E_FAIL;
384
385 return S_OK;
386}
#define SWP_NOSIZE
Definition: winuser.h:1256

◆ BaseControlWindowImpl_put_MessageDrain()

HRESULT WINAPI BaseControlWindowImpl_put_MessageDrain ( IVideoWindow *  iface,
OAHWND  Drain 
)

Definition at line 515 of file window.c.

516{
518
519 TRACE("window %p, drain %#Ix.\n", window, Drain);
520
521 if (!window->pPin->peer)
522 return VFW_E_NOT_CONNECTED;
523
524 window->hwndDrain = (HWND)Drain;
525
526 return S_OK;
527}
HANDLE HWND
Definition: compat.h:19

◆ BaseControlWindowImpl_put_Owner()

HRESULT WINAPI BaseControlWindowImpl_put_Owner ( IVideoWindow *  iface,
OAHWND  owner 
)

Definition at line 481 of file window.c.

482{
484 HWND hwnd = window->hwnd;
485
486 TRACE("window %p, owner %#Ix.\n", window, owner);
487
488 if (!window->pPin->peer)
489 return VFW_E_NOT_CONNECTED;
490
491 /* Make sure we are marked as WS_CHILD before reparenting ourselves, so that
492 * we do not steal focus. LEGO Island depends on this. */
493
494 window->hwndOwner = (HWND)owner;
495 if (owner)
497 else
499 SetParent(hwnd, (HWND)owner);
500
501 return S_OK;
502}
#define WS_CHILD
Definition: pedump.c:617
HWND WINAPI SetParent(_In_ HWND, _In_opt_ HWND)
#define SetWindowLongPtrW
Definition: winuser.h:5512

◆ BaseControlWindowImpl_put_Top()

HRESULT WINAPI BaseControlWindowImpl_put_Top ( IVideoWindow *  iface,
LONG  top 
)

Definition at line 427 of file window.c.

428{
430 RECT rect;
431
432 TRACE("window %p, top %ld.\n", window, top);
433
434 GetWindowRect(window->hwnd, &rect);
435 if (!SetWindowPos(window->hwnd, NULL, rect.left, top, 0, 0,
437 return E_FAIL;
438
439 return S_OK;
440}

◆ BaseControlWindowImpl_put_Visible()

HRESULT WINAPI BaseControlWindowImpl_put_Visible ( IVideoWindow *  iface,
LONG  visible 
)

Definition at line 347 of file window.c.

348{
350
351 TRACE("window %p, visible %ld.\n", window, visible);
352
353 if (!window->pPin->peer)
354 return VFW_E_NOT_CONNECTED;
355
356 ShowWindow(window->hwnd, visible ? SW_SHOW : SW_HIDE);
357 return S_OK;
358}
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)

◆ BaseControlWindowImpl_put_Width()

HRESULT WINAPI BaseControlWindowImpl_put_Width ( IVideoWindow *  iface,
LONG  width 
)

Definition at line 400 of file window.c.

401{
403 RECT rect;
404
405 TRACE("window %p, width %ld.\n", window, width);
406
407 GetWindowRect(window->hwnd, &rect);
408 if (!SetWindowPos(window->hwnd, NULL, 0, 0, width, rect.bottom - rect.top,
410 return E_FAIL;
411
412 return S_OK;
413}

◆ BaseControlWindowImpl_put_WindowState()

HRESULT WINAPI BaseControlWindowImpl_put_WindowState ( IVideoWindow *  iface,
LONG  state 
)

Definition at line 299 of file window.c.

300{
302
303 TRACE("window %p, state %ld.\n", window, state);
304
305 ShowWindow(window->hwnd, state);
306 return S_OK;
307}

◆ BaseControlWindowImpl_put_WindowStyle()

HRESULT WINAPI BaseControlWindowImpl_put_WindowStyle ( IVideoWindow *  iface,
LONG  style 
)

Definition at line 226 of file window.c.

227{
229
230 TRACE("window %p, style %#lx.\n", window, style);
231
233 return E_INVALIDARG;
234 if (!window->pPin->peer)
235 return VFW_E_NOT_CONNECTED;
236
238 SetWindowPos(window->hwnd, 0, 0, 0, 0, 0,
240 return S_OK;
241}
#define E_INVALIDARG
Definition: ddrawi.h:101
#define WS_VSCROLL
Definition: pedump.c:627
#define WS_DISABLED
Definition: pedump.c:621
#define WS_HSCROLL
Definition: pedump.c:628
#define SWP_FRAMECHANGED
Definition: winuser.h:1251
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)

◆ BaseControlWindowImpl_put_WindowStyleEx()

HRESULT WINAPI BaseControlWindowImpl_put_WindowStyleEx ( IVideoWindow *  iface,
LONG  style 
)

Definition at line 253 of file window.c.

254{
256
257 TRACE("window %p, style %#lx.\n", window, style);
258
260 return E_FAIL;
261 return S_OK;
262}

◆ BaseControlWindowImpl_QueryInterface()

HRESULT WINAPI BaseControlWindowImpl_QueryInterface ( IVideoWindow *  iface,
REFIID  iid,
void **  out 
)

Definition at line 125 of file window.c.

126{
128 return IUnknown_QueryInterface(window->pFilter->outer_unk, iid, out);
129}
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383

◆ BaseControlWindowImpl_Release()

ULONG WINAPI BaseControlWindowImpl_Release ( IVideoWindow *  iface)

Definition at line 137 of file window.c.

138{
140 return IUnknown_Release(window->pFilter->outer_unk);
141}

◆ BaseControlWindowImpl_SetWindowForeground()

HRESULT WINAPI BaseControlWindowImpl_SetWindowForeground ( IVideoWindow *  iface,
LONG  focus 
)

Definition at line 574 of file window.c.

575{
578
579 TRACE("window %p, focus %ld.\n", window, focus);
580
581 if (focus != OAFALSE && focus != OATRUE)
582 return E_INVALIDARG;
583
584 if (!window->pPin->peer)
585 return VFW_E_NOT_CONNECTED;
586
587 if (!focus)
589 SetWindowPos(window->hwnd, HWND_TOP, 0, 0, 0, 0, flags);
590
591 return S_OK;
592}
unsigned int UINT
Definition: sysinfo.c:13
#define HWND_TOP
Definition: winuser.h:1218

◆ BaseControlWindowImpl_SetWindowPosition()

HRESULT WINAPI BaseControlWindowImpl_SetWindowPosition ( IVideoWindow *  iface,
LONG  left,
LONG  top,
LONG  width,
LONG  height 
)

Definition at line 594 of file window.c.

596{
598
599 TRACE("window %p, left %ld, top %ld, width %ld, height %ld.\n", window, left, top, width, height);
600
601 if (!window->pPin->peer)
602 return VFW_E_NOT_CONNECTED;
603
605 return E_FAIL;
606 return S_OK;
607}

◆ basic_video_AddRef()

static ULONG WINAPI basic_video_AddRef ( IBasicVideo *  iface)
static

Definition at line 715 of file window.c.

716{
718 return IUnknown_AddRef(window->pFilter->outer_unk);
719}
static struct video_window * impl_from_IBasicVideo(IBasicVideo *iface)
Definition: window.c:704

◆ basic_video_get_AvgTimePerFrame()

static HRESULT WINAPI basic_video_get_AvgTimePerFrame ( IBasicVideo *  iface,
REFTIME *  reftime 
)
static

Definition at line 791 of file window.c.

792{
794
795 if (!reftime)
796 return E_POINTER;
797 if (!window->pPin->peer)
798 return VFW_E_NOT_CONNECTED;
799
800 TRACE("window %p, reftime %p.\n", window, reftime);
801
802 *reftime = (double)get_video_format(window)->AvgTimePerFrame / 1e7;
803 return S_OK;
804}
static const VIDEOINFOHEADER * get_video_format(struct video_window *window)
Definition: window.c:775
static const char mbstate_t *static wchar_t const char mbstate_t *static const wchar_t int *static double
Definition: string.c:91
REFERENCE_TIME AvgTimePerFrame
Definition: amvideo.idl:187

◆ basic_video_get_BitErrorRate()

static HRESULT WINAPI basic_video_get_BitErrorRate ( IBasicVideo *  iface,
LONG *  rate 
)
static

Definition at line 821 of file window.c.

822{
824
825 TRACE("window %p, rate %p.\n", window, rate);
826
827 if (!rate)
828 return E_POINTER;
829 if (!window->pPin->peer)
830 return VFW_E_NOT_CONNECTED;
831
833 return S_OK;
834}
unsigned int rate
Definition: audiorecord.c:87

◆ basic_video_get_BitRate()

static HRESULT WINAPI basic_video_get_BitRate ( IBasicVideo *  iface,
LONG *  rate 
)
static

Definition at line 806 of file window.c.

807{
809
810 TRACE("window %p, rate %p.\n", window, rate);
811
812 if (!rate)
813 return E_POINTER;
814 if (!window->pPin->peer)
815 return VFW_E_NOT_CONNECTED;
816
818 return S_OK;
819}

◆ basic_video_get_DestinationHeight()

static HRESULT WINAPI basic_video_get_DestinationHeight ( IBasicVideo *  iface,
LONG *  height 
)
static

Definition at line 1057 of file window.c.

1058{
1059 struct video_window *window = impl_from_IBasicVideo(iface);
1060
1061 TRACE("window %p, height %p.\n", window, height);
1062
1063 if (!height)
1064 return E_POINTER;
1065
1066 *height = window->dst.bottom - window->dst.top;
1067 return S_OK;
1068}

◆ basic_video_get_DestinationLeft()

static HRESULT WINAPI basic_video_get_DestinationLeft ( IBasicVideo *  iface,
LONG *  left 
)
static

Definition at line 979 of file window.c.

980{
982
983 TRACE("window %p, left %p.\n", window, left);
984
985 if (!left)
986 return E_POINTER;
987
988 *left = window->dst.left;
989 return S_OK;
990}

◆ basic_video_get_DestinationTop()

static HRESULT WINAPI basic_video_get_DestinationTop ( IBasicVideo *  iface,
LONG *  top 
)
static

Definition at line 1030 of file window.c.

1031{
1032 struct video_window *window = impl_from_IBasicVideo(iface);
1033
1034 TRACE("window %p, top %p.\n", window, top);
1035
1036 if (!top)
1037 return E_POINTER;
1038
1039 *top = window->dst.top;
1040 return S_OK;
1041}

◆ basic_video_get_DestinationWidth()

static HRESULT WINAPI basic_video_get_DestinationWidth ( IBasicVideo *  iface,
LONG *  width 
)
static

Definition at line 1006 of file window.c.

1007{
1008 struct video_window *window = impl_from_IBasicVideo(iface);
1009
1010 TRACE("window %p, width %p.\n", window, width);
1011
1012 if (!width)
1013 return E_POINTER;
1014
1015 *width = window->dst.right - window->dst.left;
1016 return S_OK;
1017}

◆ basic_video_get_SourceHeight()

static HRESULT WINAPI basic_video_get_SourceHeight ( IBasicVideo *  iface,
LONG *  height 
)
static

Definition at line 955 of file window.c.

956{
958
959 TRACE("window %p, height %p\n", window, height);
960
961 if (!height)
962 return E_POINTER;
963
964 *height = window->src.bottom - window->src.top;
965 return S_OK;
966}

◆ basic_video_get_SourceLeft()

static HRESULT WINAPI basic_video_get_SourceLeft ( IBasicVideo *  iface,
LONG *  left 
)
static

Definition at line 877 of file window.c.

878{
880
881 TRACE("window %p, left %p.\n", window, left);
882
883 if (!left)
884 return E_POINTER;
885
886 *left = window->src.left;
887 return S_OK;
888}

◆ basic_video_get_SourceTop()

static HRESULT WINAPI basic_video_get_SourceTop ( IBasicVideo *  iface,
LONG *  top 
)
static

Definition at line 929 of file window.c.

930{
932
933 TRACE("window %p, top %p.\n", window, top);
934
935 if (!top)
936 return E_POINTER;
937
938 *top = window->src.top;
939 return S_OK;
940}

◆ basic_video_get_SourceWidth()

static HRESULT WINAPI basic_video_get_SourceWidth ( IBasicVideo *  iface,
LONG *  width 
)
static

Definition at line 903 of file window.c.

904{
906
907 TRACE("window %p, width %p.\n", window, width);
908
909 if (!width)
910 return E_POINTER;
911
912 *width = window->src.right - window->src.left;
913 return S_OK;
914}

◆ basic_video_get_VideoHeight()

static HRESULT WINAPI basic_video_get_VideoHeight ( IBasicVideo *  iface,
LONG *  height 
)
static

Definition at line 850 of file window.c.

851{
853
854 TRACE("window %p, height %p.\n", window, height);
855
856 if (!height)
857 return E_POINTER;
858
859 *height = abs(get_bitmap_header(window)->biHeight);
860
861 return S_OK;
862}
static const BITMAPINFOHEADER * get_bitmap_header(struct video_window *window)
Definition: window.c:782
#define abs(i)
Definition: fconv.c:206

◆ basic_video_get_VideoWidth()

static HRESULT WINAPI basic_video_get_VideoWidth ( IBasicVideo *  iface,
LONG *  width 
)
static

Definition at line 836 of file window.c.

837{
839
840 TRACE("window %p, width %p.\n", window, width);
841
842 if (!width)
843 return E_POINTER;
844
846
847 return S_OK;
848}

◆ basic_video_GetCurrentImage()

static HRESULT WINAPI basic_video_GetCurrentImage ( IBasicVideo *  iface,
LONG *  size,
LONG *  image 
)
static

Definition at line 1191 of file window.c.

1192{
1193 struct video_window *window = impl_from_IBasicVideo(iface);
1194
1195 TRACE("window %p, size %p, image %p.\n", window, size, image);
1196
1197 if (!size || !image)
1198 return E_POINTER;
1199
1200 return window->ops->get_current_image(window, size, image);
1201}
GLsizeiptr size
Definition: glext.h:5919
Definition: image.c:84

◆ basic_video_GetDestinationPosition()

static HRESULT WINAPI basic_video_GetDestinationPosition ( IBasicVideo *  iface,
LONG *  left,
LONG *  top,
LONG *  width,
LONG *  height 
)
static

Definition at line 1130 of file window.c.

1132{
1133 struct video_window *window = impl_from_IBasicVideo(iface);
1134
1135 TRACE("window %p, left %p, top %p, width %p, height %p.\n", window, left, top, width, height);
1136
1137 if (!left || !top || !width || !height)
1138 return E_POINTER;
1139
1140 *left = window->dst.left;
1141 *top = window->dst.top;
1142 *width = window->dst.right - window->dst.left;
1143 *height = window->dst.bottom - window->dst.top;
1144 return S_OK;
1145}

◆ basic_video_GetIDsOfNames()

static HRESULT WINAPI basic_video_GetIDsOfNames ( IBasicVideo *  iface,
REFIID  iid,
LPOLESTR *  names,
UINT  count,
LCID  lcid,
DISPID *  ids 
)
static

Definition at line 741 of file window.c.

743{
745 HRESULT hr;
746
747 TRACE("iface %p, iid %s, names %p, count %u, lcid %#lx, ids %p.\n",
748 iface, debugstr_guid(iid), names, count, lcid, ids);
749
751 {
752 hr = ITypeInfo_GetIDsOfNames(typeinfo, names, count, ids);
753 ITypeInfo_Release(typeinfo);
754 }
755 return hr;
756}
@ IBasicVideo_tid
Definition: strmbase.h:226

◆ basic_video_GetSourcePosition()

static HRESULT WINAPI basic_video_GetSourcePosition ( IBasicVideo *  iface,
LONG *  left,
LONG *  top,
LONG *  width,
LONG *  height 
)
static

Definition at line 1087 of file window.c.

1089{
1090 struct video_window *window = impl_from_IBasicVideo(iface);
1091
1092 TRACE("window %p, left %p, top %p, width %p, height %p.\n", window, left, top, width, height);
1093
1094 if (!left || !top || !width || !height)
1095 return E_POINTER;
1096
1097 *left = window->src.left;
1098 *top = window->src.top;
1099 *width = window->src.right - window->src.left;
1100 *height = window->src.bottom - window->src.top;
1101 return S_OK;
1102}

◆ basic_video_GetTypeInfo()

static HRESULT WINAPI basic_video_GetTypeInfo ( IBasicVideo *  iface,
UINT  index,
LCID  lcid,
ITypeInfo **  typeinfo 
)
static

Definition at line 734 of file window.c.

736{
737 TRACE("iface %p, index %u, lcid %#lx, typeinfo %p.\n", iface, index, lcid, typeinfo);
739}

◆ basic_video_GetTypeInfoCount()

static HRESULT WINAPI basic_video_GetTypeInfoCount ( IBasicVideo *  iface,
UINT *  count 
)
static

Definition at line 727 of file window.c.

728{
729 TRACE("iface %p, count %p.\n", iface, count);
730 *count = 1;
731 return S_OK;
732}

◆ basic_video_GetVideoPaletteEntries()

static HRESULT WINAPI basic_video_GetVideoPaletteEntries ( IBasicVideo *  iface,
LONG  start,
LONG  count,
LONG *  ret_count,
LONG *  palette 
)
static

Definition at line 1176 of file window.c.

1178{
1179 struct video_window *window = impl_from_IBasicVideo(iface);
1180
1181 FIXME("window %p, start %ld, count %ld, ret_count %p, palette %p, stub!\n",
1182 window, start, count, ret_count, palette);
1183
1184 if (!ret_count || !palette)
1185 return E_POINTER;
1186
1187 *ret_count = 0;
1189}
GLuint start
Definition: gl.h:1545
static HPALETTE palette
Definition: clipboard.c:1457
#define VFW_E_NO_PALETTE_AVAILABLE
Definition: vfwmsgs.h:71

◆ basic_video_GetVideoSize()

static HRESULT WINAPI basic_video_GetVideoSize ( IBasicVideo *  iface,
LONG *  width,
LONG *  height 
)
static

Definition at line 1158 of file window.c.

1159{
1160 struct video_window *window = impl_from_IBasicVideo(iface);
1161 const BITMAPINFOHEADER *bitmap_header;
1162
1163 TRACE("window %p, width %p, height %p.\n", window, width, height);
1164
1165 if (!width || !height)
1166 return E_POINTER;
1167 if (!window->pPin->peer)
1168 return VFW_E_NOT_CONNECTED;
1169
1170 bitmap_header = get_bitmap_header(window);
1171 *width = bitmap_header->biWidth;
1172 *height = bitmap_header->biHeight;
1173 return S_OK;
1174}

◆ basic_video_Invoke()

static HRESULT WINAPI basic_video_Invoke ( IBasicVideo *  iface,
DISPID  id,
REFIID  iid,
LCID  lcid,
WORD  flags,
DISPPARAMS *  params,
VARIANT *  result,
EXCEPINFO *  excepinfo,
UINT *  error_arg 
)
static

Definition at line 758 of file window.c.

760{
762 HRESULT hr;
763
764 TRACE("iface %p, id %ld, iid %s, lcid %#lx, flags %#x, params %p, result %p, excepinfo %p, error_arg %p.\n",
765 iface, id, debugstr_guid(iid), lcid, flags, params, result, excepinfo, error_arg);
766
768 {
769 hr = ITypeInfo_Invoke(typeinfo, iface, id, flags, params, result, excepinfo, error_arg);
770 ITypeInfo_Release(typeinfo);
771 }
772 return hr;
773}

◆ basic_video_IsUsingDefaultDestination()

static HRESULT WINAPI basic_video_IsUsingDefaultDestination ( IBasicVideo *  iface)
static

Definition at line 1217 of file window.c.

1218{
1219 struct video_window *window = impl_from_IBasicVideo(iface);
1220
1221 TRACE("window %p.\n", window);
1222
1223 return window->default_dst ? S_OK : S_FALSE;
1224}
#define S_FALSE
Definition: winerror.h:3451

◆ basic_video_IsUsingDefaultSource()

static HRESULT WINAPI basic_video_IsUsingDefaultSource ( IBasicVideo *  iface)
static

Definition at line 1203 of file window.c.

1204{
1205 struct video_window *window = impl_from_IBasicVideo(iface);
1206 const BITMAPINFOHEADER *bitmap_header = get_bitmap_header(window);
1207
1208 TRACE("window %p.\n", window);
1209
1210 if (!window->src.left && !window->src.top
1211 && window->src.right == bitmap_header->biWidth
1212 && window->src.bottom == bitmap_header->biHeight)
1213 return S_OK;
1214 return S_FALSE;
1215}

◆ basic_video_put_DestinationHeight()

static HRESULT WINAPI basic_video_put_DestinationHeight ( IBasicVideo *  iface,
LONG  height 
)
static

Definition at line 1043 of file window.c.

1044{
1045 struct video_window *window = impl_from_IBasicVideo(iface);
1046
1047 TRACE("window %p, height %ld.\n", window, height);
1048
1049 if (height <= 0)
1050 return E_INVALIDARG;
1051
1052 window->default_dst = FALSE;
1053 window->dst.bottom = window->dst.top + height;
1054 return S_OK;
1055}
#define FALSE
Definition: types.h:117

◆ basic_video_put_DestinationLeft()

static HRESULT WINAPI basic_video_put_DestinationLeft ( IBasicVideo *  iface,
LONG  left 
)
static

Definition at line 968 of file window.c.

969{
971
972 TRACE("window %p, left %ld.\n", window, left);
973
974 window->default_dst = FALSE;
975 OffsetRect(&window->dst, left - window->dst.left, 0);
976 return S_OK;
977}
BOOL WINAPI OffsetRect(_Inout_ LPRECT, _In_ int, _In_ int)

◆ basic_video_put_DestinationTop()

static HRESULT WINAPI basic_video_put_DestinationTop ( IBasicVideo *  iface,
LONG  top 
)
static

Definition at line 1019 of file window.c.

1020{
1021 struct video_window *window = impl_from_IBasicVideo(iface);
1022
1023 TRACE("window %p, top %ld.\n", window, top);
1024
1025 window->default_dst = FALSE;
1026 OffsetRect(&window->dst, 0, top - window->dst.top);
1027 return S_OK;
1028}

◆ basic_video_put_DestinationWidth()

static HRESULT WINAPI basic_video_put_DestinationWidth ( IBasicVideo *  iface,
LONG  width 
)
static

Definition at line 992 of file window.c.

993{
995
996 TRACE("window %p, width %ld.\n", window, width);
997
998 if (width <= 0)
999 return E_INVALIDARG;
1000
1001 window->default_dst = FALSE;
1002 window->dst.right = window->dst.left + width;
1003 return S_OK;
1004}

◆ basic_video_put_SourceHeight()

static HRESULT WINAPI basic_video_put_SourceHeight ( IBasicVideo *  iface,
LONG  height 
)
static

Definition at line 942 of file window.c.

943{
945
946 TRACE("window %p, height %ld.\n", window, height);
947
948 if (height <= 0 || window->src.top + height > get_bitmap_header(window)->biHeight)
949 return E_INVALIDARG;
950
951 window->src.bottom = window->src.top + height;
952 return S_OK;
953}
GLenum src
Definition: glext.h:6340

◆ basic_video_put_SourceLeft()

static HRESULT WINAPI basic_video_put_SourceLeft ( IBasicVideo *  iface,
LONG  left 
)
static

Definition at line 864 of file window.c.

865{
867
868 TRACE("window %p, left %ld.\n", window, left);
869
870 if (left < 0 || window->src.right + left - window->src.left > get_bitmap_header(window)->biWidth)
871 return E_INVALIDARG;
872
873 OffsetRect(&window->src, left - window->src.left, 0);
874 return S_OK;
875}

◆ basic_video_put_SourceTop()

static HRESULT WINAPI basic_video_put_SourceTop ( IBasicVideo *  iface,
LONG  top 
)
static

Definition at line 916 of file window.c.

917{
919
920 TRACE("window %p, top %ld.\n", window, top);
921
922 if (top < 0 || window->src.bottom + top - window->src.top > get_bitmap_header(window)->biHeight)
923 return E_INVALIDARG;
924
925 OffsetRect(&window->src, 0, top - window->src.top);
926 return S_OK;
927}

◆ basic_video_put_SourceWidth()

static HRESULT WINAPI basic_video_put_SourceWidth ( IBasicVideo *  iface,
LONG  width 
)
static

Definition at line 890 of file window.c.

891{
893
894 TRACE("window %p, width %ld.\n", window, width);
895
896 if (width <= 0 || window->src.left + width > get_bitmap_header(window)->biWidth)
897 return E_INVALIDARG;
898
899 window->src.right = window->src.left + width;
900 return S_OK;
901}

◆ basic_video_QueryInterface()

static HRESULT WINAPI basic_video_QueryInterface ( IBasicVideo *  iface,
REFIID  iid,
void **  out 
)
static

Definition at line 709 of file window.c.

710{
712 return IUnknown_QueryInterface(window->pFilter->outer_unk, iid, out);
713}

◆ basic_video_Release()

static ULONG WINAPI basic_video_Release ( IBasicVideo *  iface)
static

Definition at line 721 of file window.c.

722{
724 return IUnknown_Release(window->pFilter->outer_unk);
725}

◆ basic_video_SetDefaultDestinationPosition()

static HRESULT WINAPI basic_video_SetDefaultDestinationPosition ( IBasicVideo *  iface)
static

Definition at line 1147 of file window.c.

1148{
1149 struct video_window *window = impl_from_IBasicVideo(iface);
1150
1151 TRACE("window %p.\n", window);
1152
1153 window->default_dst = TRUE;
1154 GetClientRect(window->hwnd, &window->dst);
1155 return S_OK;
1156}
#define TRUE
Definition: types.h:120
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)

◆ basic_video_SetDefaultSourcePosition()

static HRESULT WINAPI basic_video_SetDefaultSourcePosition ( IBasicVideo *  iface)
static

Definition at line 1104 of file window.c.

1105{
1106 struct video_window *window = impl_from_IBasicVideo(iface);
1107 const BITMAPINFOHEADER *bitmap_header = get_bitmap_header(window);
1108
1109 TRACE("window %p.\n", window);
1110
1111 SetRect(&window->src, 0, 0, bitmap_header->biWidth, bitmap_header->biHeight);
1112 return S_OK;
1113}
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)

◆ basic_video_SetDestinationPosition()

static HRESULT WINAPI basic_video_SetDestinationPosition ( IBasicVideo *  iface,
LONG  left,
LONG  top,
LONG  width,
LONG  height 
)
static

Definition at line 1115 of file window.c.

1117{
1118 struct video_window *window = impl_from_IBasicVideo(iface);
1119
1120 TRACE("window %p, left %ld, top %ld, width %ld, height %ld.\n", window, left, top, width, height);
1121
1122 if (width <= 0 || height <= 0)
1123 return E_INVALIDARG;
1124
1125 window->default_dst = FALSE;
1126 SetRect(&window->dst, left, top, left + width, top + height);
1127 return S_OK;
1128}

◆ basic_video_SetSourcePosition()

static HRESULT WINAPI basic_video_SetSourcePosition ( IBasicVideo *  iface,
LONG  left,
LONG  top,
LONG  width,
LONG  height 
)
static

Definition at line 1070 of file window.c.

1072{
1073 struct video_window *window = impl_from_IBasicVideo(iface);
1074 const BITMAPINFOHEADER *bitmap_header = get_bitmap_header(window);
1075
1076 TRACE("window %p, left %ld, top %ld, width %ld, height %ld.\n", window, left, top, width, height);
1077
1078 if (left < 0 || left + width > bitmap_header->biWidth || width <= 0)
1079 return E_INVALIDARG;
1080 if (top < 0 || top + height > bitmap_header->biHeight || height <= 0)
1081 return E_INVALIDARG;
1082
1083 SetRect(&window->src, left, top, left + width, top + height);
1084 return S_OK;
1085}

◆ get_bitmap_header()

static const BITMAPINFOHEADER * get_bitmap_header ( struct video_window *  window)
static

Definition at line 782 of file window.c.

783{
784 const AM_MEDIA_TYPE *mt = &window->pPin->mt;
785 if (IsEqualGUID(&mt->formattype, &FORMAT_VideoInfo))
786 return &((VIDEOINFOHEADER *)mt->pbFormat)->bmiHeader;
787 else
788 return &((VIDEOINFOHEADER2 *)mt->pbFormat)->bmiHeader;
789}
#define IsEqualGUID(rguid1, rguid2)
Definition: guiddef.h:147

Referenced by basic_video_get_VideoHeight(), basic_video_get_VideoWidth(), basic_video_GetVideoSize(), basic_video_IsUsingDefaultSource(), basic_video_put_SourceHeight(), basic_video_put_SourceLeft(), basic_video_put_SourceTop(), basic_video_put_SourceWidth(), basic_video_SetDefaultSourcePosition(), and basic_video_SetSourcePosition().

◆ get_video_format()

static const VIDEOINFOHEADER * get_video_format ( struct video_window *  window)
static

Definition at line 775 of file window.c.

776{
777 /* Members of VIDEOINFOHEADER up to bmiHeader are identical to those of
778 * VIDEOINFOHEADER2. */
779 return (const VIDEOINFOHEADER *)window->pPin->mt.pbFormat;
780}

Referenced by basic_video_get_AvgTimePerFrame(), basic_video_get_BitErrorRate(), and basic_video_get_BitRate().

◆ impl_from_IBasicVideo()

◆ impl_from_IVideoWindow()

static struct video_window * impl_from_IVideoWindow ( IVideoWindow *  iface)
inlinestatic

Definition at line 29 of file window.c.

30{
31 return CONTAINING_RECORD(iface, struct video_window, IVideoWindow_iface);
32}

Referenced by BaseControlWindowImpl_AddRef(), BaseControlWindowImpl_get_AutoShow(), BaseControlWindowImpl_get_BackgroundPalette(), BaseControlWindowImpl_get_BorderColor(), BaseControlWindowImpl_get_Caption(), BaseControlWindowImpl_get_Height(), BaseControlWindowImpl_get_Left(), BaseControlWindowImpl_get_MessageDrain(), BaseControlWindowImpl_get_Owner(), BaseControlWindowImpl_get_Top(), BaseControlWindowImpl_get_Visible(), BaseControlWindowImpl_get_Width(), BaseControlWindowImpl_get_WindowState(), BaseControlWindowImpl_get_WindowStyle(), BaseControlWindowImpl_get_WindowStyleEx(), BaseControlWindowImpl_GetIDsOfNames(), BaseControlWindowImpl_GetMaxIdealImageSize(), BaseControlWindowImpl_GetMinIdealImageSize(), BaseControlWindowImpl_GetRestorePosition(), BaseControlWindowImpl_GetTypeInfo(), BaseControlWindowImpl_GetTypeInfoCount(), BaseControlWindowImpl_GetWindowPosition(), BaseControlWindowImpl_HideCursor(), BaseControlWindowImpl_Invoke(), BaseControlWindowImpl_IsCursorHidden(), BaseControlWindowImpl_NotifyOwnerMessage(), BaseControlWindowImpl_put_AutoShow(), BaseControlWindowImpl_put_BackgroundPalette(), BaseControlWindowImpl_put_BorderColor(), BaseControlWindowImpl_put_Caption(), BaseControlWindowImpl_put_FullScreenMode(), BaseControlWindowImpl_put_Height(), BaseControlWindowImpl_put_Left(), BaseControlWindowImpl_put_MessageDrain(), BaseControlWindowImpl_put_Owner(), BaseControlWindowImpl_put_Top(), BaseControlWindowImpl_put_Visible(), BaseControlWindowImpl_put_Width(), BaseControlWindowImpl_put_WindowState(), BaseControlWindowImpl_put_WindowStyle(), BaseControlWindowImpl_put_WindowStyleEx(), BaseControlWindowImpl_QueryInterface(), BaseControlWindowImpl_Release(), BaseControlWindowImpl_SetWindowForeground(), and BaseControlWindowImpl_SetWindowPosition().

◆ video_window_cleanup()

void video_window_cleanup ( struct video_window *  window)

Definition at line 1288 of file window.c.

1289{
1290 if (window->hwnd)
1291 {
1292 /* Media Player Classic deadlocks if WM_PARENTNOTIFY is sent, so clear
1293 * the child style first. Just like Windows, we don't actually unparent
1294 * the window, to prevent extra focus events from being generated since
1295 * it would become top-level for a brief period before being destroyed. */
1297
1299 window->hwnd = NULL;
1300 }
1301}
#define WM_QUARTZ_DESTROY
Definition: window.c:23

Referenced by filter_config_SetRenderingMode(), video_renderer_create(), video_renderer_destroy(), vmr7_create(), vmr9_create(), VMR9FilterConfig_SetRenderingMode(), and vmr_destroy().

◆ video_window_create_window()

HRESULT video_window_create_window ( struct video_window *  window)

Definition at line 98 of file window.c.

99{
100 WNDCLASSW winclass = {0};
101
102 winclass.lpfnWndProc = WndProcW;
103 winclass.cbWndExtra = sizeof(window);
104 winclass.lpszClassName = class_name;
106 {
107 ERR("Failed to register class, error %lu.\n", GetLastError());
108 return E_FAIL;
109 }
110
111 if (!(window->hwnd = CreateWindowExW(0, class_name, L"ActiveMovie Window",
114 NULL, NULL, NULL, NULL)))
115 {
116 ERR("Unable to create window\n");
117 return E_FAIL;
118 }
119
121
122 return S_OK;
123}
#define ERR(fmt,...)
Definition: precomp.h:57
static const WCHAR class_name[]
Definition: window.c:27
static LRESULT CALLBACK WndProcW(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
Definition: window.c:34
#define L(x)
Definition: resources.c:13
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define WS_OVERLAPPEDWINDOW
Definition: pedump.c:637
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
#define WS_CLIPCHILDREN
Definition: pedump.c:619
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
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)
#define CW_USEDEFAULT
Definition: winuser.h:225
LPCWSTR lpszClassName
Definition: winuser.h:3293
WNDPROC lpfnWndProc
Definition: winuser.h:3285
int cbWndExtra
Definition: winuser.h:3287
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define ERROR_CLASS_ALREADY_EXISTS
Definition: winerror.h:1236

Referenced by video_renderer_create(), vmr7_create(), and vmr9_create().

◆ video_window_init()

void video_window_init ( struct video_window *  window,
const IVideoWindowVtbl *  vtbl,
struct strmbase_filter *  owner,
struct strmbase_pin *  pin,
const struct video_window_ops *  ops 
)

Definition at line 1275 of file window.c.

1277{
1278 memset(window, 0, sizeof(*window));
1279 window->ops = ops;
1280 window->IVideoWindow_iface.lpVtbl = vtbl;
1281 window->IBasicVideo_iface.lpVtbl = &basic_video_vtbl;
1282 window->default_dst = TRUE;
1283 window->AutoShow = OATRUE;
1284 window->pFilter = owner;
1285 window->pPin = pin;
1286}
static const IBasicVideoVtbl basic_video_vtbl
Definition: window.c:1226
#define memset(x, y, z)
Definition: compat.h:39

Referenced by video_renderer_create(), vmr7_create(), and vmr9_create().

◆ video_window_unregister_class()

void video_window_unregister_class ( void  )

Definition at line 1269 of file window.c.

1270{
1272 ERR("Failed to unregister class, error %lu.\n", GetLastError());
1273}
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
#define ERROR_CLASS_DOES_NOT_EXIST
Definition: winerror.h:1237

Referenced by DllMain().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( quartz  )

◆ WndProcW()

static LRESULT CALLBACK WndProcW ( HWND  hwnd,
UINT  message,
WPARAM  wparam,
LPARAM  lparam 
)
static

Definition at line 34 of file window.c.

35{
37
38 if (!window)
40
41 switch (message)
42 {
43 case WM_KEYDOWN:
44 case WM_KEYUP:
46 case WM_LBUTTONDOWN:
47 case WM_LBUTTONUP:
49 case WM_MBUTTONDOWN:
50 case WM_MBUTTONUP:
52 case WM_MOUSEMOVE:
55 case WM_NCLBUTTONUP:
58 case WM_NCMBUTTONUP:
59 case WM_NCMOUSEMOVE:
62 case WM_NCRBUTTONUP:
64 case WM_RBUTTONDOWN:
65 case WM_RBUTTONUP:
66 if (window->hwndDrain)
67 {
69 return 0;
70 }
71 break;
72 case WM_SIZE:
73 if (window->default_dst)
74 GetClientRect(window->hwnd, &window->dst);
75 break;
78 return 0;
79 case WM_CLOSE:
80 {
81 IFilterGraph *graph = window->pFilter->graph;
82 IMediaEventSink *event_sink;
83 IVideoWindow_put_Visible(&window->IVideoWindow_iface, OAFALSE);
84 if (graph && SUCCEEDED(IFilterGraph_QueryInterface(graph,
85 &IID_IMediaEventSink,
86 (void **)&event_sink)))
87 {
88 IMediaEventSink_Notify(event_sink, EC_USERABORT, 0, 0);
89 IMediaEventSink_Release(event_sink);
90 }
91 return 0;
92 }
93 }
94
96}
#define EC_USERABORT
Definition: evcode.h:50
#define WM_CLOSE
Definition: winuser.h:1649
#define WM_KEYUP
Definition: winuser.h:1744
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_SIZE
Definition: winuser.h:1639
#define WM_LBUTTONDBLCLK
Definition: winuser.h:1806
#define WM_RBUTTONUP
Definition: winuser.h:1808
#define WM_NCRBUTTONDBLCLK
Definition: winuser.h:1725
#define WM_RBUTTONDBLCLK
Definition: winuser.h:1809
#define WM_MOUSEMOVE
Definition: winuser.h:1803
#define WM_NCMBUTTONUP
Definition: winuser.h:1727
#define WM_LBUTTONDOWN
Definition: winuser.h:1804
#define WM_NCLBUTTONDBLCLK
Definition: winuser.h:1722
#define WM_RBUTTONDOWN
Definition: winuser.h:1807
#define WM_NCMOUSEMOVE
Definition: winuser.h:1719
#define WM_NCMBUTTONDOWN
Definition: winuser.h:1726
#define WM_MBUTTONDBLCLK
Definition: winuser.h:1812
#define WM_MOUSEACTIVATE
Definition: winuser.h:1665
#define WM_LBUTTONUP
Definition: winuser.h:1805
#define WM_NCLBUTTONUP
Definition: winuser.h:1721
#define WM_NCRBUTTONUP
Definition: winuser.h:1724
#define WM_KEYDOWN
Definition: winuser.h:1743
#define WM_NCMBUTTONDBLCLK
Definition: winuser.h:1728
#define WM_MBUTTONUP
Definition: winuser.h:1811
BOOL WINAPI DestroyWindow(_In_ HWND)
#define WM_NCLBUTTONDOWN
Definition: winuser.h:1720
#define WM_MBUTTONDOWN
Definition: winuser.h:1810
#define WM_NCRBUTTONDOWN
Definition: winuser.h:1723
Definition: graph.c:32

Referenced by BaseWindowImpl_PrepareWindow(), and video_window_create_window().

Variable Documentation

◆ basic_video_vtbl

const IBasicVideoVtbl basic_video_vtbl
static

Definition at line 1226 of file window.c.

Referenced by video_window_init().

◆ class_name