25#include "wine/unicode.h"
50 if (
This->pFuncsTable->pfnOnReceiveMessage)
58 if (
This->pFuncsTable->pfnPossiblyEatMessage &&
This->pFuncsTable->pfnPossiblyEatMessage(
This, uMsg,
wParam,
lParam))
64 if (
This->pFuncsTable->pfnOnSize)
103 static const WCHAR windownameW[] = {
'A',
'c',
't',
'i',
'v',
'e',
'M',
'o',
'v',
'i',
'e',
' ',
'W',
'i',
'n',
'd',
'o',
'w',0 };
105 This->pClassName =
This->pFuncsTable->pfnGetClassWindowStyles(
This, &
This->ClassStyles, &
This->WindowStyles, &
This->WindowStylesEx);
124 This->pClassName, windownameW,
132 ERR(
"Unable to create window\n");
160 static RECT defRect = {0, 0, 800, 600};
168 if (pControlWindow->hwndDrain)
212 pControlWindow->IVideoWindow_iface.lpVtbl = lpVtbl;
213 pControlWindow->AutoShow =
TRUE;
214 pControlWindow->hwndDrain =
NULL;
215 pControlWindow->hwndOwner =
NULL;
216 pControlWindow->pFilter = owner;
217 pControlWindow->pInterfaceLock =
lock;
218 pControlWindow->pPin = pPin;
259 hr = ITypeInfo_Invoke(pTypeInfo, &
This->IVideoWindow_iface, dispIdMember,
wFlags, pDispParams, pVarResult, pExepInfo, puArgErr);
260 ITypeInfo_Release(pTypeInfo);
282 TRACE(
"(%p/%p)->(%p)\n",
This, iface, strCaption);
296 TRACE(
"(%p/%p)->(%x -> %x)\n",
This, iface, old, WindowStyle);
303 This->baseWindow.WindowStyles = WindowStyle;
312 TRACE(
"(%p/%p)->(%p)\n",
This, iface, WindowStyle);
314 *WindowStyle =
This->baseWindow.WindowStyles;
323 TRACE(
"(%p/%p)->(%d)\n",
This, iface, WindowStyleEx);
335 TRACE(
"(%p/%p)->(%p)\n",
This, iface, WindowStyleEx);
346 TRACE(
"(%p/%p)->(%d)\n",
This, iface, AutoShow);
348 This->AutoShow = AutoShow;
357 TRACE(
"(%p/%p)->(%p)\n",
This, iface, AutoShow);
359 *AutoShow =
This->AutoShow;
368 TRACE(
"(%p/%p)->(%d)\n",
This, iface, WindowState);
380 TRACE(
"(%p/%p)->(%p)\n",
This, iface, WindowState);
381 *WindowState =
place.showCmd;
390 FIXME(
"(%p/%p)->(%d): stub !!!\n",
This, iface, BackgroundPalette);
399 FIXME(
"(%p/%p)->(%p): stub !!!\n",
This, iface, pBackgroundPalette);
408 TRACE(
"(%p/%p)->(%d)\n",
This, iface, Visible);
419 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pVisible);
431 TRACE(
"(%p/%p)->(%d)\n",
This, iface, Left);
445 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pLeft);
448 *pLeft = WindowPos.
left;
471 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pWidth);
473 *pWidth =
This->baseWindow.Width;
497 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pTop);
500 *pTop = WindowPos.
top;
523 TRACE(
"(%p/%p)->(%p)\n",
This, iface, pHeight);
525 *pHeight =
This->baseWindow.Height;
541 if (old !=
This->baseWindow.WindowStyles)
577 TRACE(
"(%p/%p)->(%p)\n",
This, iface, Drain);
579 *Drain = (OAHWND)
This->hwndDrain;
604 TRACE(
"(%p)->(%p)\n", iface, FullScreenMode);
611 TRACE(
"(%p)->(%d)\n", iface, FullScreenMode);
622 TRACE(
"(%p/%p)->(%d)\n",
This, iface, Focus);
627 hr = IPin_ConnectedTo(&
This->pPin->IPin_iface, &pPin);
628 if ((
hr !=
S_OK) || !pPin)
662 TRACE(
"(%p/%p)->(%p, %p, %p, %p)\n",
This, iface, pLeft, pTop, pWidth, pHeight);
665 *pLeft = WindowPos.
left;
666 *pTop = WindowPos.
top;
667 *pWidth =
This->baseWindow.Width;
668 *pHeight =
This->baseWindow.Height;
690 TRACE(
"(%p/%p)->(%p, %p)\n",
This, iface, pWidth, pHeight);
691 defaultRect =
This->baseWindow.pFuncsTable->pfnGetDefaultRect(&
This->baseWindow);
693 *pWidth = defaultRect.
right - defaultRect.
left;
694 *pHeight = defaultRect.
bottom - defaultRect.
top;
704 TRACE(
"(%p/%p)->(%p, %p)\n",
This, iface, pWidth, pHeight);
705 defaultRect =
This->baseWindow.pFuncsTable->pfnGetDefaultRect(&
This->baseWindow);
707 *pWidth = defaultRect.
right - defaultRect.
left;
708 *pHeight = defaultRect.
bottom - defaultRect.
top;
717 FIXME(
"(%p/%p)->(%p, %p, %p, %p): stub !!!\n",
This, iface, pLeft, pTop, pWidth, pHeight);
726 FIXME(
"(%p/%p)->(%d): stub !!!\n",
This, iface, HideCursor);
735 FIXME(
"(%p/%p)->(%p): stub !!!\n",
This, iface, CursorHidden);
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
#define HeapFree(x, y, z)
static VARIANTARG static DISPID
_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
HRESULT WINAPI BaseControlWindow_Destroy(BaseControlWindow *pControlWindow)
HRESULT WINAPI BaseControlWindowImpl_HideCursor(IVideoWindow *iface, LONG HideCursor)
HRESULT WINAPI BaseControlWindowImpl_put_Visible(IVideoWindow *iface, LONG Visible)
HRESULT WINAPI BaseControlWindowImpl_GetTypeInfo(IVideoWindow *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
HRESULT WINAPI BaseControlWindowImpl_get_FullScreenMode(IVideoWindow *iface, LONG *FullScreenMode)
HRESULT WINAPI BaseControlWindowImpl_put_WindowState(IVideoWindow *iface, LONG WindowState)
HRESULT WINAPI BaseControlWindowImpl_get_Top(IVideoWindow *iface, LONG *pTop)
HRESULT WINAPI BaseControlWindowImpl_put_Height(IVideoWindow *iface, LONG Height)
HRESULT WINAPI BaseControlWindowImpl_get_Height(IVideoWindow *iface, LONG *pHeight)
HRESULT WINAPI BaseControlWindow_Init(BaseControlWindow *pControlWindow, const IVideoWindowVtbl *lpVtbl, BaseFilter *owner, CRITICAL_SECTION *lock, BasePin *pPin, const BaseWindowFuncTable *pFuncsTable)
static BaseControlWindow * impl_from_BaseWindow(BaseWindow *iface)
HRESULT WINAPI BaseControlWindowImpl_get_Width(IVideoWindow *iface, LONG *pWidth)
HRESULT WINAPI BaseControlWindowImpl_put_AutoShow(IVideoWindow *iface, LONG AutoShow)
static LRESULT CALLBACK WndProcW(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
HRESULT WINAPI BaseControlWindowImpl_Invoke(IVideoWindow *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExepInfo, UINT *puArgErr)
HRESULT WINAPI BaseWindowImpl_PrepareWindow(BaseWindow *This)
HRESULT WINAPI BaseControlWindowImpl_get_Caption(IVideoWindow *iface, BSTR *strCaption)
HRESULT WINAPI BaseControlWindowImpl_put_Top(IVideoWindow *iface, LONG Top)
HRESULT WINAPI BaseControlWindowImpl_put_Owner(IVideoWindow *iface, OAHWND Owner)
HRESULT WINAPI BaseControlWindowImpl_get_WindowStyle(IVideoWindow *iface, LONG *WindowStyle)
HRESULT WINAPI BaseControlWindowImpl_GetWindowPosition(IVideoWindow *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
HRESULT WINAPI BaseWindow_Init(BaseWindow *pBaseWindow, const BaseWindowFuncTable *pFuncsTable)
BOOL WINAPI BaseWindowImpl_OnSize(BaseWindow *This, LONG Width, LONG Height)
HRESULT WINAPI BaseControlWindowImpl_get_WindowState(IVideoWindow *iface, LONG *WindowState)
HRESULT WINAPI BaseControlWindowImpl_GetMinIdealImageSize(IVideoWindow *iface, LONG *pWidth, LONG *pHeight)
HRESULT WINAPI BaseControlWindowImpl_put_Width(IVideoWindow *iface, LONG Width)
HRESULT WINAPI BaseWindowImpl_DoneWithWindow(BaseWindow *This)
HRESULT WINAPI BaseControlWindowImpl_get_Left(IVideoWindow *iface, LONG *pLeft)
HRESULT WINAPI BaseControlWindowImpl_GetIDsOfNames(IVideoWindow *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
HRESULT WINAPI BaseControlWindowImpl_GetMaxIdealImageSize(IVideoWindow *iface, LONG *pWidth, LONG *pHeight)
HRESULT WINAPI BaseControlWindowImpl_get_WindowStyleEx(IVideoWindow *iface, LONG *WindowStyleEx)
HRESULT WINAPI BaseControlWindowImpl_put_Left(IVideoWindow *iface, LONG Left)
HRESULT WINAPI BaseControlWindowImpl_SetWindowPosition(IVideoWindow *iface, LONG Left, LONG Top, LONG Width, LONG Height)
HRESULT WINAPI BaseControlWindowImpl_put_FullScreenMode(IVideoWindow *iface, LONG FullScreenMode)
HRESULT WINAPI BaseWindow_Destroy(BaseWindow *This)
static BaseControlWindow * impl_from_IVideoWindow(IVideoWindow *iface)
HRESULT WINAPI BaseControlWindowImpl_put_BorderColor(IVideoWindow *iface, LONG Color)
HRESULT WINAPI BaseControlWindowImpl_get_Visible(IVideoWindow *iface, LONG *pVisible)
HRESULT WINAPI BaseControlWindowImpl_get_BackgroundPalette(IVideoWindow *iface, LONG *pBackgroundPalette)
BOOL WINAPI BaseControlWindowImpl_PossiblyEatMessage(BaseWindow *This, UINT uMsg, WPARAM wParam, LPARAM lParam)
HRESULT WINAPI BaseControlWindowImpl_get_MessageDrain(IVideoWindow *iface, OAHWND *Drain)
HRESULT WINAPI BaseControlWindowImpl_put_MessageDrain(IVideoWindow *iface, OAHWND Drain)
HRESULT WINAPI BaseControlWindowImpl_SetWindowForeground(IVideoWindow *iface, LONG Focus)
RECT WINAPI BaseWindowImpl_GetDefaultRect(BaseWindow *This)
HRESULT WINAPI BaseControlWindowImpl_get_AutoShow(IVideoWindow *iface, LONG *AutoShow)
HRESULT WINAPI BaseControlWindowImpl_GetTypeInfoCount(IVideoWindow *iface, UINT *pctinfo)
HRESULT WINAPI BaseControlWindowImpl_put_WindowStyle(IVideoWindow *iface, LONG WindowStyle)
HRESULT WINAPI BaseControlWindowImpl_get_Owner(IVideoWindow *iface, OAHWND *Owner)
HRESULT WINAPI BaseControlWindowImpl_GetRestorePosition(IVideoWindow *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
LRESULT WINAPI BaseWindowImpl_OnReceiveMessage(BaseWindow *This, HWND hwnd, INT uMsg, WPARAM wParam, LPARAM lParam)
HRESULT WINAPI BaseControlWindowImpl_NotifyOwnerMessage(IVideoWindow *iface, OAHWND hwnd, LONG uMsg, LONG_PTR wParam, LONG_PTR lParam)
HRESULT WINAPI BaseControlWindowImpl_put_BackgroundPalette(IVideoWindow *iface, LONG BackgroundPalette)
HRESULT WINAPI BaseControlWindowImpl_IsCursorHidden(IVideoWindow *iface, LONG *CursorHidden)
HRESULT WINAPI BaseControlWindowImpl_get_BorderColor(IVideoWindow *iface, LONG *Color)
HRESULT WINAPI BaseControlWindowImpl_put_Caption(IVideoWindow *iface, BSTR strCaption)
HRESULT WINAPI BaseControlWindowImpl_put_WindowStyleEx(IVideoWindow *iface, LONG WindowStyleEx)
HRESULT WINAPI BaseDispatchImpl_GetTypeInfoCount(BaseDispatch *This, UINT *pctinfo)
HRESULT WINAPI BaseDispatchImpl_GetIDsOfNames(BaseDispatch *This, REFIID riid, OLECHAR **rgszNames, UINT cNames, LCID lcid, DISPID *rgdispid)
HRESULT WINAPI BaseDispatch_Init(BaseDispatch *This, REFIID riid)
HRESULT WINAPI BaseDispatch_Destroy(BaseDispatch *This)
HRESULT WINAPI BaseDispatchImpl_GetTypeInfo(BaseDispatch *This, REFIID riid, UINT itinfo, LCID lcid, ITypeInfo **pptinfo)
const struct BaseWindowFuncTable * pFuncsTable
#define CONTAINING_RECORD(address, type, field)
_In_ HFONT _Out_ PUINT _Out_ PUINT Width
_In_ HFONT _Out_ PUINT Height
#define VFW_E_NOT_CONNECTED
int WINAPI GetWindowTextW(HWND hWnd, LPWSTR lpString, int nMaxCount)
DWORD WINAPI GetLastError(void)
_In_ DWORD _Out_ _In_ WORD wFlags
#define ERROR_CLASS_ALREADY_EXISTS
HGDIOBJ WINAPI GetStockObject(_In_ int)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
#define GetWindowLongPtrW
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
LRESULT WINAPI DefWindowProcW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI GetWindowPlacement(_In_ HWND, _Inout_ WINDOWPLACEMENT *)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
HWND WINAPI SetParent(_In_ HWND, _In_opt_ HWND)
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
ATOM WINAPI RegisterClassW(_In_ CONST WNDCLASSW *)
BOOL WINAPI SetForegroundWindow(_In_ HWND)
#define WM_NCRBUTTONDBLCLK
#define WM_NCLBUTTONDBLCLK
BOOL WINAPI SetWindowTextW(_In_ HWND, _In_opt_ LPCWSTR)
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)
HDC WINAPI GetDC(_In_opt_ HWND)
#define WM_NCMBUTTONDBLCLK
#define SetWindowLongPtrW
BOOL WINAPI IsWindowVisible(_In_ HWND)
BOOL WINAPI DestroyWindow(_In_ HWND)