ReactOS 0.4.17-dev-966-gf06eace
quartz_private.h
Go to the documentation of this file.
1/* DirectShow private interfaces (QUARTZ.DLL)
2 *
3 * Copyright 2002 Lionel Ulmer
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 */
19
20#ifndef __QUARTZ_PRIVATE_INCLUDED__
21#define __QUARTZ_PRIVATE_INCLUDED__
22
23#include <stdarg.h>
24#include <stdbool.h>
25#include <wchar.h>
26
27#define COBJMACROS
28
29#include "windef.h"
30#include "winbase.h"
31#include "wtypes.h"
32#include "wingdi.h"
33#include "winuser.h"
34#include "dshow.h"
35#include "dvdmedia.h"
36#include "wine/debug.h"
37#include "wine/heap.h"
38#include "wine/strmbase.h"
39#include "wine/list.h"
40
41#define DECLARE_CRITICAL_SECTION(cs) \
42 static CRITICAL_SECTION cs; \
43 static CRITICAL_SECTION_DEBUG cs##_debug = \
44 { 0, 0, &cs, { &cs##_debug.ProcessLocksList, &cs##_debug.ProcessLocksList }, \
45 0, 0, { (DWORD_PTR)(__FILE__ ": " # cs) }}; \
46 static CRITICAL_SECTION cs = { &cs##_debug, -1, 0, 0, 0, 0 };
47
48/* see IAsyncReader::Request on MSDN for the explanation of this */
49#define MEDIATIME_FROM_BYTES(x) ((LONGLONG)(x) * 10000000)
50#define BYTES_FROM_MEDIATIME(time) ((time) / 10000000)
51
52bool array_reserve(void **elements, size_t *capacity, size_t count, size_t size);
53
75
76extern const char * qzdebugstr_guid(const GUID * id);
78
79BOOL get_media_type(const WCHAR *filename, GUID *majortype, GUID *subtype, GUID *source_clsid);
80
82{
83 IVideoWindow IVideoWindow_iface;
84 IBasicVideo IBasicVideo_iface;
85
88
95 const struct video_window_ops *ops;
96};
97
99{
102};
103
106void video_window_init(struct video_window *window, const IVideoWindowVtbl *vtbl,
107 struct strmbase_filter *filter, struct strmbase_pin *pin, const struct video_window_ops *ops);
109
110HRESULT WINAPI BaseControlWindowImpl_QueryInterface(IVideoWindow *iface, REFIID iid, void **out);
111ULONG WINAPI BaseControlWindowImpl_AddRef(IVideoWindow *iface);
112ULONG WINAPI BaseControlWindowImpl_Release(IVideoWindow *iface);
113HRESULT WINAPI BaseControlWindowImpl_GetTypeInfoCount(IVideoWindow *iface, UINT *pctinfo);
114HRESULT WINAPI BaseControlWindowImpl_GetTypeInfo(IVideoWindow *iface, UINT iTInfo, LCID lcid, ITypeInfo**ppTInfo);
115HRESULT WINAPI BaseControlWindowImpl_GetIDsOfNames(IVideoWindow *iface, REFIID riid, LPOLESTR*rgszNames, UINT cNames, LCID lcid, DISPID*rgDispId);
116HRESULT WINAPI BaseControlWindowImpl_Invoke(IVideoWindow *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS*pDispParams, VARIANT*pVarResult, EXCEPINFO*pExepInfo, UINT*puArgErr);
117HRESULT WINAPI BaseControlWindowImpl_put_Caption(IVideoWindow *iface, BSTR strCaption);
118HRESULT WINAPI BaseControlWindowImpl_get_Caption(IVideoWindow *iface, BSTR *strCaption);
119HRESULT WINAPI BaseControlWindowImpl_put_WindowStyle(IVideoWindow *iface, LONG WindowStyle);
120HRESULT WINAPI BaseControlWindowImpl_get_WindowStyle(IVideoWindow *iface, LONG *WindowStyle);
121HRESULT WINAPI BaseControlWindowImpl_put_WindowStyleEx(IVideoWindow *iface, LONG WindowStyleEx);
122HRESULT WINAPI BaseControlWindowImpl_get_WindowStyleEx(IVideoWindow *iface, LONG *WindowStyleEx);
125HRESULT WINAPI BaseControlWindowImpl_put_WindowState(IVideoWindow *iface, LONG WindowState);
126HRESULT WINAPI BaseControlWindowImpl_get_WindowState(IVideoWindow *iface, LONG *WindowState);
127HRESULT WINAPI BaseControlWindowImpl_put_BackgroundPalette(IVideoWindow *iface, LONG BackgroundPalette);
128HRESULT WINAPI BaseControlWindowImpl_get_BackgroundPalette(IVideoWindow *iface, LONG *pBackgroundPalette);
129HRESULT WINAPI BaseControlWindowImpl_put_Visible(IVideoWindow *iface, LONG Visible);
130HRESULT WINAPI BaseControlWindowImpl_get_Visible(IVideoWindow *iface, LONG *pVisible);
131HRESULT WINAPI BaseControlWindowImpl_put_Left(IVideoWindow *iface, LONG Left);
132HRESULT WINAPI BaseControlWindowImpl_get_Left(IVideoWindow *iface, LONG *pLeft);
134HRESULT WINAPI BaseControlWindowImpl_get_Width(IVideoWindow *iface, LONG *pWidth);
136HRESULT WINAPI BaseControlWindowImpl_get_Top(IVideoWindow *iface, LONG *pTop);
138HRESULT WINAPI BaseControlWindowImpl_get_Height(IVideoWindow *iface, LONG *pHeight);
139HRESULT WINAPI BaseControlWindowImpl_put_Owner(IVideoWindow *iface, OAHWND Owner);
140HRESULT WINAPI BaseControlWindowImpl_get_Owner(IVideoWindow *iface, OAHWND *Owner);
141HRESULT WINAPI BaseControlWindowImpl_put_MessageDrain(IVideoWindow *iface, OAHWND Drain);
142HRESULT WINAPI BaseControlWindowImpl_get_MessageDrain(IVideoWindow *iface, OAHWND *Drain);
145HRESULT WINAPI BaseControlWindowImpl_get_FullScreenMode(IVideoWindow *iface, LONG *FullScreenMode);
146HRESULT WINAPI BaseControlWindowImpl_put_FullScreenMode(IVideoWindow *iface, LONG FullScreenMode);
149HRESULT WINAPI BaseControlWindowImpl_GetWindowPosition(IVideoWindow *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight);
151HRESULT WINAPI BaseControlWindowImpl_GetMinIdealImageSize(IVideoWindow *iface, LONG *pWidth, LONG *pHeight);
152HRESULT WINAPI BaseControlWindowImpl_GetMaxIdealImageSize(IVideoWindow *iface, LONG *pWidth, LONG *pHeight);
153HRESULT WINAPI BaseControlWindowImpl_GetRestorePosition(IVideoWindow *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight);
154HRESULT WINAPI BaseControlWindowImpl_HideCursor(IVideoWindow *iface, LONG HideCursor);
155HRESULT WINAPI BaseControlWindowImpl_IsCursorHidden(IVideoWindow *iface, LONG *CursorHidden);
156
157#endif /* __QUARTZ_PRIVATE_INCLUDED__ */
static LPHIST_ENTRY Top
Definition: history.c:53
RECT rect
Definition: combotst.c:67
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
_Check_return_ _In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ PDXGKARG_SYSTEM_DISPLAY_ENABLE_FLAGS _Out_ UINT _Out_ UINT * Height
Definition: dispmprt.h:1445
_Check_return_ _In_ D3DDDI_VIDEO_PRESENT_TARGET_ID _In_ PDXGKARG_SYSTEM_DISPLAY_ENABLE_FLAGS _Out_ UINT * Width
Definition: dispmprt.h:1444
OLECHAR * BSTR
Definition: compat.h:2293
LCID lcid
Definition: locale.c:5660
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned int BOOL
Definition: ntddk_ex.h:94
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLsizeiptr size
Definition: glext.h:5919
unsigned int UINT
Definition: sysinfo.c:13
REFIID riid
Definition: atlbase.h:39
const char * filename
Definition: ioapi.h:137
static IHTMLWindow2 * window
Definition: events.c:77
static IUnknown * outer
Definition: compobj.c:82
static VARIANTARG static DISPID
Definition: ordinal.c:49
const GUID * subtype
Definition: mpegvideo.c:120
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
_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
short WCHAR
Definition: pedump.c:58
long LONG
Definition: pedump.c:60
#define REFIID
Definition: guiddef.h:118
HRESULT filter_graph_no_thread_create(IUnknown *outer, IUnknown **out)
Definition: filtergraph.c:5757
ULONG WINAPI BaseControlWindowImpl_AddRef(IVideoWindow *iface)
Definition: window.c:131
ULONG WINAPI BaseControlWindowImpl_Release(IVideoWindow *iface)
Definition: window.c:137
HRESULT acm_wrapper_create(IUnknown *outer, IUnknown **out)
Definition: acmwrapper.c:513
void video_window_init(struct video_window *window, const IVideoWindowVtbl *vtbl, struct strmbase_filter *filter, struct strmbase_pin *pin, const struct video_window_ops *ops)
Definition: window.c:1275
HRESULT WINAPI BaseControlWindowImpl_HideCursor(IVideoWindow *iface, LONG HideCursor)
Definition: window.c:686
void video_unregister_windowclass(void)
HRESULT WINAPI BaseControlWindowImpl_put_Visible(IVideoWindow *iface, LONG Visible)
Definition: window.c:347
HRESULT WINAPI BaseControlWindowImpl_GetTypeInfo(IVideoWindow *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
Definition: window.c:150
HRESULT WINAPI BaseControlWindowImpl_get_FullScreenMode(IVideoWindow *iface, LONG *FullScreenMode)
Definition: window.c:558
HRESULT mem_allocator_create(IUnknown *outer, IUnknown **out)
Definition: memallocator.c:912
const char * qzdebugstr_guid(const GUID *id)
Definition: main.c:671
HRESULT mpeg_layer3_decoder_create(IUnknown *outer, IUnknown **out)
HRESULT WINAPI BaseControlWindowImpl_put_WindowState(IVideoWindow *iface, LONG WindowState)
Definition: window.c:299
HRESULT dsound_render_create(IUnknown *outer, IUnknown **out)
HRESULT avi_dec_create(IUnknown *outer, IUnknown **out)
Definition: avidec.c:613
HRESULT WINAPI BaseControlWindowImpl_get_Top(IVideoWindow *iface, LONG *pTop)
Definition: window.c:442
HRESULT WINAPI BaseControlWindowImpl_put_Height(IVideoWindow *iface, LONG Height)
Definition: window.c:454
HRESULT WINAPI BaseControlWindowImpl_get_Height(IVideoWindow *iface, LONG *pHeight)
Definition: window.c:469
HRESULT filter_mapper_create(IUnknown *outer, IUnknown **out)
HRESULT video_window_create_window(struct video_window *window)
Definition: window.c:98
HRESULT mpeg1_splitter_create(IUnknown *outer, IUnknown **out)
Definition: parser.c:27
HRESULT WINAPI BaseControlWindowImpl_get_Width(IVideoWindow *iface, LONG *pWidth)
Definition: window.c:415
HRESULT WINAPI BaseControlWindowImpl_put_AutoShow(IVideoWindow *iface, LONG AutoShow)
Definition: window.c:274
HRESULT seeking_passthrough_create(IUnknown *outer, IUnknown **out)
Definition: passthrough.c:94
HRESULT WINAPI BaseControlWindowImpl_Invoke(IVideoWindow *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExepInfo, UINT *puArgErr)
Definition: window.c:174
HRESULT WINAPI BaseControlWindowImpl_QueryInterface(IVideoWindow *iface, REFIID iid, void **out)
Definition: window.c:125
HRESULT vmr9_create(IUnknown *outer, IUnknown **out)
Definition: vmr9.c:2169
HRESULT WINAPI BaseControlWindowImpl_get_Caption(IVideoWindow *iface, BSTR *strCaption)
Definition: window.c:206
HRESULT WINAPI BaseControlWindowImpl_put_Top(IVideoWindow *iface, LONG Top)
Definition: window.c:427
HRESULT WINAPI BaseControlWindowImpl_put_Owner(IVideoWindow *iface, OAHWND Owner)
Definition: window.c:481
HRESULT WINAPI BaseControlWindowImpl_get_WindowStyle(IVideoWindow *iface, LONG *WindowStyle)
Definition: window.c:243
HRESULT WINAPI BaseControlWindowImpl_GetWindowPosition(IVideoWindow *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
Definition: window.c:609
HRESULT WINAPI BaseControlWindowImpl_get_WindowState(IVideoWindow *iface, LONG *WindowState)
Definition: window.c:309
HRESULT WINAPI BaseControlWindowImpl_GetMinIdealImageSize(IVideoWindow *iface, LONG *pWidth, LONG *pHeight)
Definition: window.c:651
HRESULT WINAPI BaseControlWindowImpl_put_Width(IVideoWindow *iface, LONG Width)
Definition: window.c:400
HRESULT WINAPI BaseControlWindowImpl_get_Left(IVideoWindow *iface, LONG *pLeft)
Definition: window.c:388
HRESULT WINAPI BaseControlWindowImpl_GetIDsOfNames(IVideoWindow *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
Definition: window.c:157
HRESULT WINAPI BaseControlWindowImpl_GetMaxIdealImageSize(IVideoWindow *iface, LONG *pWidth, LONG *pHeight)
Definition: window.c:664
HRESULT WINAPI BaseControlWindowImpl_get_WindowStyleEx(IVideoWindow *iface, LONG *WindowStyleEx)
Definition: window.c:264
HRESULT async_reader_create(IUnknown *outer, IUnknown **out)
Definition: filesource.c:430
HRESULT WINAPI BaseControlWindowImpl_put_Left(IVideoWindow *iface, LONG Left)
Definition: window.c:373
HRESULT video_renderer_create(IUnknown *outer, IUnknown **out)
HRESULT vmr7_create(IUnknown *outer, IUnknown **out)
Definition: vmr7.c:1553
HRESULT mpeg_video_codec_create(IUnknown *outer, IUnknown **out)
Definition: decoder.c:27
HRESULT WINAPI BaseControlWindowImpl_SetWindowPosition(IVideoWindow *iface, LONG Left, LONG Top, LONG Width, LONG Height)
Definition: window.c:594
HRESULT WINAPI BaseControlWindowImpl_put_FullScreenMode(IVideoWindow *iface, LONG FullScreenMode)
Definition: window.c:565
HRESULT wave_parser_create(IUnknown *outer, IUnknown **out)
Definition: parser.c:33
HRESULT video_renderer_default_create(IUnknown *outer, IUnknown **out)
HRESULT filter_graph_create(IUnknown *outer, IUnknown **out)
Definition: filtergraph.c:5752
HRESULT WINAPI BaseControlWindowImpl_put_BorderColor(IVideoWindow *iface, LONG Color)
Definition: window.c:549
HRESULT WINAPI BaseControlWindowImpl_get_Visible(IVideoWindow *iface, LONG *pVisible)
Definition: window.c:360
HRESULT WINAPI BaseControlWindowImpl_get_BackgroundPalette(IVideoWindow *iface, LONG *pBackgroundPalette)
Definition: window.c:338
HRESULT avi_splitter_create(IUnknown *outer, IUnknown **out)
Definition: parser.c:21
HRESULT WINAPI BaseControlWindowImpl_get_MessageDrain(IVideoWindow *iface, OAHWND *Drain)
Definition: window.c:529
void video_window_unregister_class(void)
Definition: window.c:1269
HRESULT WINAPI BaseControlWindowImpl_put_MessageDrain(IVideoWindow *iface, OAHWND Drain)
Definition: window.c:515
HRESULT WINAPI BaseControlWindowImpl_SetWindowForeground(IVideoWindow *iface, LONG Focus)
Definition: window.c:574
void video_window_cleanup(struct video_window *window)
Definition: window.c:1288
HRESULT WINAPI BaseControlWindowImpl_get_AutoShow(IVideoWindow *iface, LONG *AutoShow)
Definition: window.c:288
HRESULT WINAPI BaseControlWindowImpl_GetTypeInfoCount(IVideoWindow *iface, UINT *pctinfo)
Definition: window.c:143
HRESULT WINAPI BaseControlWindowImpl_put_WindowStyle(IVideoWindow *iface, LONG WindowStyle)
Definition: window.c:226
BOOL get_media_type(const WCHAR *filename, GUID *majortype, GUID *subtype, GUID *source_clsid)
Definition: filesource.c:198
HRESULT WINAPI BaseControlWindowImpl_get_Owner(IVideoWindow *iface, OAHWND *Owner)
Definition: window.c:504
HRESULT WINAPI BaseControlWindowImpl_GetRestorePosition(IVideoWindow *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
Definition: window.c:677
HRESULT WINAPI BaseControlWindowImpl_NotifyOwnerMessage(IVideoWindow *iface, OAHWND hwnd, LONG uMsg, LONG_PTR wParam, LONG_PTR lParam)
Definition: window.c:625
HRESULT vmr7_presenter_create(IUnknown *outer, IUnknown **out)
HRESULT system_clock_create(IUnknown *outer, IUnknown **out)
Definition: systemclock.c:327
HRESULT WINAPI BaseControlWindowImpl_put_BackgroundPalette(IVideoWindow *iface, LONG BackgroundPalette)
Definition: window.c:329
HRESULT WINAPI BaseControlWindowImpl_IsCursorHidden(IVideoWindow *iface, LONG *CursorHidden)
Definition: window.c:695
HRESULT WINAPI BaseControlWindowImpl_get_BorderColor(IVideoWindow *iface, LONG *Color)
Definition: window.c:540
HRESULT WINAPI BaseControlWindowImpl_put_Caption(IVideoWindow *iface, BSTR strCaption)
Definition: window.c:191
HRESULT WINAPI BaseControlWindowImpl_put_WindowStyleEx(IVideoWindow *iface, LONG WindowStyleEx)
Definition: window.c:253
HRESULT mpeg_audio_codec_create(IUnknown *outer, IUnknown **out)
Definition: decoder.c:21
bool array_reserve(void **elements, size_t *capacity, size_t count, size_t size)
Definition: main.c:31
DWORD LCID
Definition: nls.h:13
Definition: dcommon.idl:28
Definition: filter.c:165
Definition: image.c:84
void(* get_default_rect)(struct video_window *window, RECT *rect)
HRESULT(* get_current_image)(struct video_window *window, LONG *size, LONG *image)
IVideoWindow IVideoWindow_iface
struct strmbase_pin * pPin
struct strmbase_filter * pFilter
const struct video_window_ops * ops
IBasicVideo IBasicVideo_iface
uint32_t ULONG
Definition: typedefs.h:59
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon_undoc.h:337
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
#define HRESULT
Definition: msvc.h:7
#define WINAPI
Definition: msvc.h:6