1 /* DirectShow private interfaces (QUARTZ.DLL)
3 * Copyright 2002 Lionel Ulmer
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.
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.
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
20 #ifndef __QUARTZ_PRIVATE_INCLUDED__
21 #define __QUARTZ_PRIVATE_INCLUDED__
35 #include "wine/debug.h"
36 #include "wine/heap.h"
37 #include "wine/strmbase.h"
38 #include "wine/list.h"
40 static inline const char *debugstr_time(REFERENCE_TIME time
)
42 ULONGLONG abstime
= time
>= 0 ? time
: -time
;
43 unsigned int i
= 0, j
= 0;
44 char buffer
[23], rev
[23];
46 while (abstime
|| i
<= 8)
48 buffer
[i
++] = '0' + (abstime
% 10);
50 if (i
== 7) buffer
[i
++] = '.';
52 if (time
< 0) buffer
[i
++] = '-';
54 while (i
--) rev
[j
++] = buffer
[i
];
55 while (rev
[j
-1] == '0' && rev
[j
-2] != '.') --j
;
58 return wine_dbg_sprintf("%s", rev
);
61 extern LONG object_locks
;
63 /* see IAsyncReader::Request on MSDN for the explanation of this */
64 #define MEDIATIME_FROM_BYTES(x) ((LONGLONG)(x) * 10000000)
65 #define BYTES_FROM_MEDIATIME(time) ((time) / 10000000)
67 HRESULT
acm_wrapper_create(IUnknown
*outer
, IUnknown
**out
) DECLSPEC_HIDDEN
;
68 HRESULT
avi_dec_create(IUnknown
*outer
, IUnknown
**out
) DECLSPEC_HIDDEN
;
69 HRESULT
async_reader_create(IUnknown
*outer
, IUnknown
**out
) DECLSPEC_HIDDEN
;
70 HRESULT
dsound_render_create(IUnknown
*outer
, IUnknown
**out
) DECLSPEC_HIDDEN
;
71 HRESULT
filter_graph_create(IUnknown
*outer
, IUnknown
**out
) DECLSPEC_HIDDEN
;
72 HRESULT
filter_graph_no_thread_create(IUnknown
*outer
, IUnknown
**out
) DECLSPEC_HIDDEN
;
73 HRESULT
filter_mapper_create(IUnknown
*outer
, IUnknown
**out
) DECLSPEC_HIDDEN
;
74 HRESULT
mem_allocator_create(IUnknown
*outer
, IUnknown
**out
) DECLSPEC_HIDDEN
;
75 HRESULT
system_clock_create(IUnknown
*outer
, IUnknown
**out
) DECLSPEC_HIDDEN
;
76 HRESULT
seeking_passthrough_create(IUnknown
*outer
, IUnknown
**out
) DECLSPEC_HIDDEN
;
77 HRESULT
video_renderer_create(IUnknown
*outer
, IUnknown
**out
) DECLSPEC_HIDDEN
;
78 HRESULT
video_renderer_default_create(IUnknown
*outer
, IUnknown
**out
) DECLSPEC_HIDDEN
;
79 HRESULT
vmr7_create(IUnknown
*outer
, IUnknown
**out
) DECLSPEC_HIDDEN
;
80 HRESULT
vmr9_create(IUnknown
*outer
, IUnknown
**out
) DECLSPEC_HIDDEN
;
82 extern const char * qzdebugstr_guid(const GUID
* id
) DECLSPEC_HIDDEN
;
83 extern void video_unregister_windowclass(void) DECLSPEC_HIDDEN
;
85 BOOL
get_media_type(const WCHAR
*filename
, GUID
*majortype
, GUID
*subtype
, GUID
*source_clsid
) DECLSPEC_HIDDEN
;
89 IVideoWindow IVideoWindow_iface
;
90 IBasicVideo IBasicVideo_iface
;
99 struct strmbase_filter
*pFilter
;
100 struct strmbase_pin
*pPin
;
101 const struct video_window_ops
*ops
;
104 struct video_window_ops
106 RECT (*get_default_rect
)(struct video_window
*window
);
107 HRESULT (*get_current_image
)(struct video_window
*window
, LONG
*size
, LONG
*image
);
110 void video_window_cleanup(struct video_window
*window
) DECLSPEC_HIDDEN
;
111 HRESULT
video_window_create_window(struct video_window
*window
) DECLSPEC_HIDDEN
;
112 void video_window_init(struct video_window
*window
, const IVideoWindowVtbl
*vtbl
,
113 struct strmbase_filter
*filter
, struct strmbase_pin
*pin
, const struct video_window_ops
*ops
) DECLSPEC_HIDDEN
;
114 void video_window_unregister_class(void) DECLSPEC_HIDDEN
;
116 HRESULT WINAPI
BaseControlWindowImpl_QueryInterface(IVideoWindow
*iface
, REFIID iid
, void **out
) DECLSPEC_HIDDEN
;
117 ULONG WINAPI
BaseControlWindowImpl_AddRef(IVideoWindow
*iface
) DECLSPEC_HIDDEN
;
118 ULONG WINAPI
BaseControlWindowImpl_Release(IVideoWindow
*iface
) DECLSPEC_HIDDEN
;
119 HRESULT WINAPI
BaseControlWindowImpl_GetTypeInfoCount(IVideoWindow
*iface
, UINT
*pctinfo
) DECLSPEC_HIDDEN
;
120 HRESULT WINAPI
BaseControlWindowImpl_GetTypeInfo(IVideoWindow
*iface
, UINT iTInfo
, LCID lcid
, ITypeInfo
**ppTInfo
) DECLSPEC_HIDDEN
;
121 HRESULT WINAPI
BaseControlWindowImpl_GetIDsOfNames(IVideoWindow
*iface
, REFIID riid
, LPOLESTR
*rgszNames
, UINT cNames
, LCID lcid
, DISPID
*rgDispId
) DECLSPEC_HIDDEN
;
122 HRESULT WINAPI
BaseControlWindowImpl_Invoke(IVideoWindow
*iface
, DISPID dispIdMember
, REFIID riid
, LCID lcid
, WORD wFlags
, DISPPARAMS
*pDispParams
, VARIANT
*pVarResult
, EXCEPINFO
*pExepInfo
, UINT
*puArgErr
) DECLSPEC_HIDDEN
;
123 HRESULT WINAPI
BaseControlWindowImpl_put_Caption(IVideoWindow
*iface
, BSTR strCaption
) DECLSPEC_HIDDEN
;
124 HRESULT WINAPI
BaseControlWindowImpl_get_Caption(IVideoWindow
*iface
, BSTR
*strCaption
) DECLSPEC_HIDDEN
;
125 HRESULT WINAPI
BaseControlWindowImpl_put_WindowStyle(IVideoWindow
*iface
, LONG WindowStyle
) DECLSPEC_HIDDEN
;
126 HRESULT WINAPI
BaseControlWindowImpl_get_WindowStyle(IVideoWindow
*iface
, LONG
*WindowStyle
) DECLSPEC_HIDDEN
;
127 HRESULT WINAPI
BaseControlWindowImpl_put_WindowStyleEx(IVideoWindow
*iface
, LONG WindowStyleEx
) DECLSPEC_HIDDEN
;
128 HRESULT WINAPI
BaseControlWindowImpl_get_WindowStyleEx(IVideoWindow
*iface
, LONG
*WindowStyleEx
) DECLSPEC_HIDDEN
;
129 HRESULT WINAPI
BaseControlWindowImpl_put_AutoShow(IVideoWindow
*iface
, LONG AutoShow
) DECLSPEC_HIDDEN
;
130 HRESULT WINAPI
BaseControlWindowImpl_get_AutoShow(IVideoWindow
*iface
, LONG
*AutoShow
) DECLSPEC_HIDDEN
;
131 HRESULT WINAPI
BaseControlWindowImpl_put_WindowState(IVideoWindow
*iface
, LONG WindowState
) DECLSPEC_HIDDEN
;
132 HRESULT WINAPI
BaseControlWindowImpl_get_WindowState(IVideoWindow
*iface
, LONG
*WindowState
) DECLSPEC_HIDDEN
;
133 HRESULT WINAPI
BaseControlWindowImpl_put_BackgroundPalette(IVideoWindow
*iface
, LONG BackgroundPalette
) DECLSPEC_HIDDEN
;
134 HRESULT WINAPI
BaseControlWindowImpl_get_BackgroundPalette(IVideoWindow
*iface
, LONG
*pBackgroundPalette
) DECLSPEC_HIDDEN
;
135 HRESULT WINAPI
BaseControlWindowImpl_put_Visible(IVideoWindow
*iface
, LONG Visible
) DECLSPEC_HIDDEN
;
136 HRESULT WINAPI
BaseControlWindowImpl_get_Visible(IVideoWindow
*iface
, LONG
*pVisible
) DECLSPEC_HIDDEN
;
137 HRESULT WINAPI
BaseControlWindowImpl_put_Left(IVideoWindow
*iface
, LONG Left
) DECLSPEC_HIDDEN
;
138 HRESULT WINAPI
BaseControlWindowImpl_get_Left(IVideoWindow
*iface
, LONG
*pLeft
) DECLSPEC_HIDDEN
;
139 HRESULT WINAPI
BaseControlWindowImpl_put_Width(IVideoWindow
*iface
, LONG Width
) DECLSPEC_HIDDEN
;
140 HRESULT WINAPI
BaseControlWindowImpl_get_Width(IVideoWindow
*iface
, LONG
*pWidth
) DECLSPEC_HIDDEN
;
141 HRESULT WINAPI
BaseControlWindowImpl_put_Top(IVideoWindow
*iface
, LONG Top
) DECLSPEC_HIDDEN
;
142 HRESULT WINAPI
BaseControlWindowImpl_get_Top(IVideoWindow
*iface
, LONG
*pTop
) DECLSPEC_HIDDEN
;
143 HRESULT WINAPI
BaseControlWindowImpl_put_Height(IVideoWindow
*iface
, LONG Height
) DECLSPEC_HIDDEN
;
144 HRESULT WINAPI
BaseControlWindowImpl_get_Height(IVideoWindow
*iface
, LONG
*pHeight
) DECLSPEC_HIDDEN
;
145 HRESULT WINAPI
BaseControlWindowImpl_put_Owner(IVideoWindow
*iface
, OAHWND Owner
) DECLSPEC_HIDDEN
;
146 HRESULT WINAPI
BaseControlWindowImpl_get_Owner(IVideoWindow
*iface
, OAHWND
*Owner
) DECLSPEC_HIDDEN
;
147 HRESULT WINAPI
BaseControlWindowImpl_put_MessageDrain(IVideoWindow
*iface
, OAHWND Drain
) DECLSPEC_HIDDEN
;
148 HRESULT WINAPI
BaseControlWindowImpl_get_MessageDrain(IVideoWindow
*iface
, OAHWND
*Drain
) DECLSPEC_HIDDEN
;
149 HRESULT WINAPI
BaseControlWindowImpl_get_BorderColor(IVideoWindow
*iface
, LONG
*Color
) DECLSPEC_HIDDEN
;
150 HRESULT WINAPI
BaseControlWindowImpl_put_BorderColor(IVideoWindow
*iface
, LONG Color
) DECLSPEC_HIDDEN
;
151 HRESULT WINAPI
BaseControlWindowImpl_get_FullScreenMode(IVideoWindow
*iface
, LONG
*FullScreenMode
) DECLSPEC_HIDDEN
;
152 HRESULT WINAPI
BaseControlWindowImpl_put_FullScreenMode(IVideoWindow
*iface
, LONG FullScreenMode
) DECLSPEC_HIDDEN
;
153 HRESULT WINAPI
BaseControlWindowImpl_SetWindowForeground(IVideoWindow
*iface
, LONG Focus
) DECLSPEC_HIDDEN
;
154 HRESULT WINAPI
BaseControlWindowImpl_SetWindowPosition(IVideoWindow
*iface
, LONG Left
, LONG Top
, LONG Width
, LONG Height
) DECLSPEC_HIDDEN
;
155 HRESULT WINAPI
BaseControlWindowImpl_GetWindowPosition(IVideoWindow
*iface
, LONG
*pLeft
, LONG
*pTop
, LONG
*pWidth
, LONG
*pHeight
) DECLSPEC_HIDDEN
;
156 HRESULT WINAPI
BaseControlWindowImpl_NotifyOwnerMessage(IVideoWindow
*iface
, OAHWND hwnd
, LONG uMsg
, LONG_PTR wParam
, LONG_PTR lParam
) DECLSPEC_HIDDEN
;
157 HRESULT WINAPI
BaseControlWindowImpl_GetMinIdealImageSize(IVideoWindow
*iface
, LONG
*pWidth
, LONG
*pHeight
) DECLSPEC_HIDDEN
;
158 HRESULT WINAPI
BaseControlWindowImpl_GetMaxIdealImageSize(IVideoWindow
*iface
, LONG
*pWidth
, LONG
*pHeight
) DECLSPEC_HIDDEN
;
159 HRESULT WINAPI
BaseControlWindowImpl_GetRestorePosition(IVideoWindow
*iface
, LONG
*pLeft
, LONG
*pTop
, LONG
*pWidth
, LONG
*pHeight
) DECLSPEC_HIDDEN
;
160 HRESULT WINAPI
BaseControlWindowImpl_HideCursor(IVideoWindow
*iface
, LONG HideCursor
) DECLSPEC_HIDDEN
;
161 HRESULT WINAPI
BaseControlWindowImpl_IsCursorHidden(IVideoWindow
*iface
, LONG
*CursorHidden
) DECLSPEC_HIDDEN
;
163 #endif /* __QUARTZ_PRIVATE_INCLUDED__ */