Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
df75a4f0
Commit
df75a4f0
authored
Sep 02, 2005
by
Christian Costa
Committed by
Alexandre Julliard
Sep 02, 2005
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Forward calls of IBasic* and IVideoWindow interfaces of the
filtergraph to the right filter.
parent
c963461f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
1202 additions
and
179 deletions
+1202
-179
filtergraph.c
dlls/quartz/filtergraph.c
+1202
-179
No files found.
dlls/quartz/filtergraph.c
View file @
df75a4f0
...
...
@@ -140,6 +140,13 @@ static int EventsQueue_GetEvent(EventsQueue* omr, Event* evt, long msTimeOut)
return
TRUE
;
}
#define MAX_ITF_CACHE_ENTRIES 3
typedef
struct
_ITF_CACHE_ENTRY
{
IID
*
riid
;
IBaseFilter
*
filter
;
IUnknown
*
iface
;
}
ITF_CACHE_ENTRY
;
typedef
struct
_IFilterGraphImpl
{
const
IGraphBuilderVtbl
*
IGraphBuilder_vtbl
;
const
IMediaControlVtbl
*
IMediaControl_vtbl
;
...
...
@@ -182,6 +189,8 @@ typedef struct _IFilterGraphImpl {
int
HandleEcRepaint
;
OAFilterState
state
;
CRITICAL_SECTION
cs
;
ITF_CACHE_ENTRY
ItfCacheEntries
[
MAX_ITF_CACHE_ENTRIES
];
int
nItfCacheEntries
;
}
IFilterGraphImpl
;
...
...
@@ -250,7 +259,9 @@ static ULONG Filtergraph_Release(IFilterGraphImpl *This) {
if
(
ref
==
0
)
{
int
i
;
for
(
i
=
0
;
i
<
This
->
nFilters
;
i
++
)
IBaseFilter_Release
(
This
->
ppFiltersInGraph
[
i
]);
IBaseFilter_Release
(
This
->
ppFiltersInGraph
[
i
]);
for
(
i
=
0
;
i
<
This
->
nItfCacheEntries
;
i
++
)
IUnknown_Release
(
This
->
ItfCacheEntries
[
i
].
iface
);
IFilterMapper2_Release
(
This
->
pFilterMapper2
);
CloseHandle
(
This
->
hEventCompletion
);
EventsQueue_Destroy
(
&
This
->
evqueue
);
...
...
@@ -408,6 +419,14 @@ static HRESULT WINAPI Graphbuilder_RemoveFilter(IGraphBuilder *iface,
memmove
(
This
->
ppFiltersInGraph
+
i
,
This
->
ppFiltersInGraph
+
i
+
1
,
sizeof
(
IBaseFilter
*
)
*
(
This
->
nFilters
-
1
-
i
));
memmove
(
This
->
pFilterNames
+
i
,
This
->
pFilterNames
+
i
+
1
,
sizeof
(
LPWSTR
)
*
(
This
->
nFilters
-
1
-
i
));
This
->
nFilters
--
;
/* Invalidate interfaces in the cache */
for
(
i
=
0
;
i
<
This
->
nItfCacheEntries
;
i
++
)
if
(
pFilter
==
This
->
ItfCacheEntries
[
i
].
filter
)
{
IUnknown_Release
(
This
->
ItfCacheEntries
[
i
].
iface
);
This
->
ItfCacheEntries
[
i
].
iface
=
NULL
;
This
->
ItfCacheEntries
[
i
].
filter
=
NULL
;
}
return
S_OK
;
}
break
;
...
...
@@ -1716,6 +1735,51 @@ static const IMediaSeekingVtbl IMediaSeeking_VTable =
Mediaseeking_GetPreroll
};
static
HRESULT
GetTargetInterface
(
IFilterGraphImpl
*
pGraph
,
REFIID
riid
,
LPVOID
*
ppvObj
)
{
HRESULT
hr
=
E_NOINTERFACE
;
int
i
;
int
entry
;
/* Check if the interface type is already registered */
for
(
entry
=
0
;
entry
<
pGraph
->
nItfCacheEntries
;
entry
++
)
if
(
riid
==
pGraph
->
ItfCacheEntries
[
entry
].
riid
)
{
if
(
pGraph
->
ItfCacheEntries
[
entry
].
iface
)
{
/* Return the interface if available */
*
ppvObj
=
pGraph
->
ItfCacheEntries
[
entry
].
iface
;
return
S_OK
;
}
break
;
}
if
(
entry
>=
MAX_ITF_CACHE_ENTRIES
)
{
FIXME
(
"Not enough space to store interface in the cache
\n
"
);
return
E_OUTOFMEMORY
;
}
/* Find a filter supporting the requested interface */
for
(
i
=
0
;
i
<
pGraph
->
nFilters
;
i
++
)
{
hr
=
IBaseFilter_QueryInterface
(
pGraph
->
ppFiltersInGraph
[
i
],
riid
,
ppvObj
);
if
(
hr
==
S_OK
)
{
pGraph
->
ItfCacheEntries
[
entry
].
riid
=
(
IID
*
)
riid
;
pGraph
->
ItfCacheEntries
[
entry
].
filter
=
pGraph
->
ppFiltersInGraph
[
i
];
pGraph
->
ItfCacheEntries
[
entry
].
iface
=
(
IUnknown
*
)
*
ppvObj
;
if
(
entry
>=
pGraph
->
nItfCacheEntries
)
pGraph
->
nItfCacheEntries
++
;
return
S_OK
;
}
if
(
hr
!=
E_NOINTERFACE
)
return
hr
;
}
return
hr
;
}
/*** IUnknown methods ***/
static
HRESULT
WINAPI
Basicaudio_QueryInterface
(
IBasicAudio
*
iface
,
REFIID
riid
,
...
...
@@ -1747,10 +1811,21 @@ static ULONG WINAPI Basicaudio_Release(IBasicAudio *iface) {
static
HRESULT
WINAPI
Basicaudio_GetTypeInfoCount
(
IBasicAudio
*
iface
,
UINT
*
pctinfo
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicAudio_vtbl
,
iface
);
IBasicAudio
*
pBasicAudio
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pctinfo
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pctinfo
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicAudio
,
(
LPVOID
*
)
&
pBasicAudio
);
if
(
hr
==
S_OK
)
hr
=
IBasicAudio_GetTypeInfoCount
(
pBasicAudio
,
pctinfo
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicaudio_GetTypeInfo
(
IBasicAudio
*
iface
,
...
...
@@ -1758,10 +1833,21 @@ static HRESULT WINAPI Basicaudio_GetTypeInfo(IBasicAudio *iface,
LCID
lcid
,
ITypeInfo
**
ppTInfo
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicAudio_vtbl
,
iface
);
IBasicAudio
*
pBasicAudio
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%d, %ld, %p)
: stub !!!
\n
"
,
This
,
iface
,
iTInfo
,
lcid
,
ppTInfo
);
TRACE
(
"(%p/%p)->(%d, %ld, %p)
\n
"
,
This
,
iface
,
iTInfo
,
lcid
,
ppTInfo
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicAudio
,
(
LPVOID
*
)
&
pBasicAudio
);
if
(
hr
==
S_OK
)
hr
=
IBasicAudio_GetTypeInfo
(
pBasicAudio
,
iTInfo
,
lcid
,
ppTInfo
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicaudio_GetIDsOfNames
(
IBasicAudio
*
iface
,
...
...
@@ -1771,10 +1857,21 @@ static HRESULT WINAPI Basicaudio_GetIDsOfNames(IBasicAudio *iface,
LCID
lcid
,
DISPID
*
rgDispId
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicAudio_vtbl
,
iface
);
IBasicAudio
*
pBasicAudio
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%s (%p), %p, %d, %ld, %p)
: stub !!!
\n
"
,
This
,
iface
,
debugstr_guid
(
riid
),
riid
,
rgszNames
,
cNames
,
lcid
,
rgDispId
);
TRACE
(
"(%p/%p)->(%s (%p), %p, %d, %ld, %p)
\n
"
,
This
,
iface
,
debugstr_guid
(
riid
),
riid
,
rgszNames
,
cNames
,
lcid
,
rgDispId
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicAudio
,
(
LPVOID
*
)
&
pBasicAudio
);
if
(
hr
==
S_OK
)
hr
=
IBasicAudio_GetIDsOfNames
(
pBasicAudio
,
riid
,
rgszNames
,
cNames
,
lcid
,
rgDispId
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicaudio_Invoke
(
IBasicAudio
*
iface
,
...
...
@@ -1787,47 +1884,102 @@ static HRESULT WINAPI Basicaudio_Invoke(IBasicAudio *iface,
EXCEPINFO
*
pExepInfo
,
UINT
*
puArgErr
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicAudio_vtbl
,
iface
);
IBasicAudio
*
pBasicAudio
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld, %s (%p), %ld, %04x, %p, %p, %p, %p)
: stub !!!
\n
"
,
This
,
iface
,
dispIdMember
,
debugstr_guid
(
riid
),
riid
,
lcid
,
wFlags
,
pDispParams
,
pVarResult
,
pExepInfo
,
puArgErr
);
TRACE
(
"(%p/%p)->(%ld, %s (%p), %ld, %04x, %p, %p, %p, %p)
\n
"
,
This
,
iface
,
dispIdMember
,
debugstr_guid
(
riid
),
riid
,
lcid
,
wFlags
,
pDispParams
,
pVarResult
,
pExepInfo
,
puArgErr
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicAudio
,
(
LPVOID
*
)
&
pBasicAudio
);
if
(
hr
==
S_OK
)
hr
=
IBasicAudio_Invoke
(
pBasicAudio
,
dispIdMember
,
riid
,
lcid
,
wFlags
,
pDispParams
,
pVarResult
,
pExepInfo
,
puArgErr
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
/*** IBasicAudio methods ***/
static
HRESULT
WINAPI
Basicaudio_put_Volume
(
IBasicAudio
*
iface
,
long
lVolume
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicAudio_vtbl
,
iface
);
IBasicAudio
*
pBasicAudio
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
lVolume
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
lVolume
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicAudio
,
(
LPVOID
*
)
&
pBasicAudio
);
if
(
hr
==
S_OK
)
hr
=
IBasicAudio_put_Volume
(
pBasicAudio
,
lVolume
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicaudio_get_Volume
(
IBasicAudio
*
iface
,
long
*
plVolume
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicAudio_vtbl
,
iface
);
IBasicAudio
*
pBasicAudio
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
plVolume
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
plVolume
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicAudio
,
(
LPVOID
*
)
&
pBasicAudio
);
if
(
hr
==
S_OK
)
hr
=
IBasicAudio_get_Volume
(
pBasicAudio
,
plVolume
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicaudio_put_Balance
(
IBasicAudio
*
iface
,
long
lBalance
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicAudio_vtbl
,
iface
);
IBasicAudio
*
pBasicAudio
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
lBalance
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
lBalance
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicAudio
,
(
LPVOID
*
)
&
pBasicAudio
);
if
(
hr
==
S_OK
)
hr
=
IBasicAudio_put_Balance
(
pBasicAudio
,
lBalance
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicaudio_get_Balance
(
IBasicAudio
*
iface
,
long
*
plBalance
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicAudio_vtbl
,
iface
);
IBasicAudio
*
pBasicAudio
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
plBalance
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
plBalance
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicAudio
,
(
LPVOID
*
)
&
pBasicAudio
);
if
(
hr
==
S_OK
)
hr
=
IBasicAudio_get_Balance
(
pBasicAudio
,
plBalance
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
const
IBasicAudioVtbl
IBasicAudio_VTable
=
...
...
@@ -1876,10 +2028,21 @@ static ULONG WINAPI Basicvideo_Release(IBasicVideo *iface) {
static
HRESULT
WINAPI
Basicvideo_GetTypeInfoCount
(
IBasicVideo
*
iface
,
UINT
*
pctinfo
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pctinfo
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pctinfo
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_GetTypeInfoCount
(
pBasicVideo
,
pctinfo
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_GetTypeInfo
(
IBasicVideo
*
iface
,
...
...
@@ -1887,10 +2050,21 @@ static HRESULT WINAPI Basicvideo_GetTypeInfo(IBasicVideo *iface,
LCID
lcid
,
ITypeInfo
**
ppTInfo
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%d, %ld, %p)
: stub !!!
\n
"
,
This
,
iface
,
iTInfo
,
lcid
,
ppTInfo
);
TRACE
(
"(%p/%p)->(%d, %ld, %p)
\n
"
,
This
,
iface
,
iTInfo
,
lcid
,
ppTInfo
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_GetTypeInfo
(
pBasicVideo
,
iTInfo
,
lcid
,
ppTInfo
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_GetIDsOfNames
(
IBasicVideo
*
iface
,
...
...
@@ -1900,10 +2074,21 @@ static HRESULT WINAPI Basicvideo_GetIDsOfNames(IBasicVideo *iface,
LCID
lcid
,
DISPID
*
rgDispId
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%s (%p), %p, %d, %ld, %p)
: stub !!!
\n
"
,
This
,
iface
,
debugstr_guid
(
riid
),
riid
,
rgszNames
,
cNames
,
lcid
,
rgDispId
);
TRACE
(
"(%p/%p)->(%s (%p), %p, %d, %ld, %p)
\n
"
,
This
,
iface
,
debugstr_guid
(
riid
),
riid
,
rgszNames
,
cNames
,
lcid
,
rgDispId
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_GetIDsOfNames
(
pBasicVideo
,
riid
,
rgszNames
,
cNames
,
lcid
,
rgDispId
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_Invoke
(
IBasicVideo
*
iface
,
...
...
@@ -1916,200 +2101,442 @@ static HRESULT WINAPI Basicvideo_Invoke(IBasicVideo *iface,
EXCEPINFO
*
pExepInfo
,
UINT
*
puArgErr
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld, %s (%p), %ld, %04x, %p, %p, %p, %p)
: stub !!!
\n
"
,
This
,
iface
,
dispIdMember
,
debugstr_guid
(
riid
),
riid
,
lcid
,
wFlags
,
pDispParams
,
pVarResult
,
pExepInfo
,
puArgErr
);
TRACE
(
"(%p/%p)->(%ld, %s (%p), %ld, %04x, %p, %p, %p, %p)
\n
"
,
This
,
iface
,
dispIdMember
,
debugstr_guid
(
riid
),
riid
,
lcid
,
wFlags
,
pDispParams
,
pVarResult
,
pExepInfo
,
puArgErr
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_Invoke
(
pBasicVideo
,
dispIdMember
,
riid
,
lcid
,
wFlags
,
pDispParams
,
pVarResult
,
pExepInfo
,
puArgErr
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
/*** IBasicVideo methods ***/
static
HRESULT
WINAPI
Basicvideo_get_AvgTimePerFrame
(
IBasicVideo
*
iface
,
REFTIME
*
pAvgTimePerFrame
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pAvgTimePerFrame
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pAvgTimePerFrame
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_get_AvgTimePerFrame
(
pBasicVideo
,
pAvgTimePerFrame
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_get_BitRate
(
IBasicVideo
*
iface
,
long
*
pBitRate
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pBitRate
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pBitRate
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_get_BitRate
(
pBasicVideo
,
pBitRate
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_get_BitErrorRate
(
IBasicVideo
*
iface
,
long
*
pBitErrorRate
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pBitErrorRate
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pBitErrorRate
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_get_BitErrorRate
(
pBasicVideo
,
pBitErrorRate
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_get_VideoWidth
(
IBasicVideo
*
iface
,
long
*
pVideoWidth
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pVideoWidth
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pVideoWidth
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_get_VideoWidth
(
pBasicVideo
,
pVideoWidth
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_get_VideoHeight
(
IBasicVideo
*
iface
,
long
*
pVideoHeight
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pVideoHeight
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pVideoHeight
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_get_VideoHeight
(
pBasicVideo
,
pVideoHeight
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_put_SourceLeft
(
IBasicVideo
*
iface
,
long
SourceLeft
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
SourceLeft
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
SourceLeft
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_put_SourceLeft
(
pBasicVideo
,
SourceLeft
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_get_SourceLeft
(
IBasicVideo
*
iface
,
long
*
pSourceLeft
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pSourceLeft
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pSourceLeft
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_get_SourceLeft
(
pBasicVideo
,
pSourceLeft
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_put_SourceWidth
(
IBasicVideo
*
iface
,
long
SourceWidth
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
SourceWidth
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
SourceWidth
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_put_SourceWidth
(
pBasicVideo
,
SourceWidth
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_get_SourceWidth
(
IBasicVideo
*
iface
,
long
*
pSourceWidth
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pSourceWidth
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pSourceWidth
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_get_SourceWidth
(
pBasicVideo
,
pSourceWidth
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_put_SourceTop
(
IBasicVideo
*
iface
,
long
SourceTop
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
SourceTop
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
SourceTop
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_put_SourceTop
(
pBasicVideo
,
SourceTop
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_get_SourceTop
(
IBasicVideo
*
iface
,
long
*
pSourceTop
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pSourceTop
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pSourceTop
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_get_SourceTop
(
pBasicVideo
,
pSourceTop
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_put_SourceHeight
(
IBasicVideo
*
iface
,
long
SourceHeight
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
SourceHeight
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
SourceHeight
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_put_SourceHeight
(
pBasicVideo
,
SourceHeight
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_get_SourceHeight
(
IBasicVideo
*
iface
,
long
*
pSourceHeight
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pSourceHeight
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pSourceHeight
);
return
S_OK
;
}
EnterCriticalSection
(
&
This
->
cs
);
static
HRESULT
WINAPI
Basicvideo_put_DestinationLeft
(
IBasicVideo
*
iface
,
long
DestinationLeft
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
TRACE
(
"(%p/%p)->(%ld): stub !!!
\n
"
,
This
,
iface
,
DestinationLeft
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_get_SourceHeight
(
pBasicVideo
,
pSourceHeight
);
return
S_OK
;
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_put_DestinationLeft
(
IBasicVideo
*
iface
,
long
DestinationLeft
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
DestinationLeft
);
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_put_DestinationLeft
(
pBasicVideo
,
DestinationLeft
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_get_DestinationLeft
(
IBasicVideo
*
iface
,
long
*
pDestinationLeft
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pDestinationLeft
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pDestinationLeft
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_get_DestinationLeft
(
pBasicVideo
,
pDestinationLeft
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_put_DestinationWidth
(
IBasicVideo
*
iface
,
long
DestinationWidth
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
DestinationWidth
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
DestinationWidth
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_put_DestinationWidth
(
pBasicVideo
,
DestinationWidth
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_get_DestinationWidth
(
IBasicVideo
*
iface
,
long
*
pDestinationWidth
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pDestinationWidth
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pDestinationWidth
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_get_DestinationWidth
(
pBasicVideo
,
pDestinationWidth
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_put_DestinationTop
(
IBasicVideo
*
iface
,
long
DestinationTop
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
DestinationTop
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
DestinationTop
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_put_DestinationTop
(
pBasicVideo
,
DestinationTop
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_get_DestinationTop
(
IBasicVideo
*
iface
,
long
*
pDestinationTop
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pDestinationTop
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pDestinationTop
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_get_DestinationTop
(
pBasicVideo
,
pDestinationTop
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_put_DestinationHeight
(
IBasicVideo
*
iface
,
long
DestinationHeight
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
DestinationHeight
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
DestinationHeight
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_put_DestinationHeight
(
pBasicVideo
,
DestinationHeight
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_get_DestinationHeight
(
IBasicVideo
*
iface
,
long
*
pDestinationHeight
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pDestinationHeight
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pDestinationHeight
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_get_DestinationHeight
(
pBasicVideo
,
pDestinationHeight
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_SetSourcePosition
(
IBasicVideo
*
iface
,
...
...
@@ -2118,10 +2545,21 @@ static HRESULT WINAPI Basicvideo_SetSourcePosition(IBasicVideo *iface,
long
Width
,
long
Height
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld, %ld, %ld, %ld)
: stub !!!
\n
"
,
This
,
iface
,
Left
,
Top
,
Width
,
Height
);
TRACE
(
"(%p/%p)->(%ld, %ld, %ld, %ld)
\n
"
,
This
,
iface
,
Left
,
Top
,
Width
,
Height
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_SetSourcePosition
(
pBasicVideo
,
Left
,
Top
,
Width
,
Height
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_GetSourcePosition
(
IBasicVideo
*
iface
,
...
...
@@ -2130,18 +2568,40 @@ static HRESULT WINAPI Basicvideo_GetSourcePosition(IBasicVideo *iface,
long
*
pWidth
,
long
*
pHeight
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p, %p, %p, %p)
: stub !!!
\n
"
,
This
,
iface
,
pLeft
,
pTop
,
pWidth
,
pHeight
);
TRACE
(
"(%p/%p)->(%p, %p, %p, %p)
\n
"
,
This
,
iface
,
pLeft
,
pTop
,
pWidth
,
pHeight
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_GetSourcePosition
(
pBasicVideo
,
pLeft
,
pTop
,
pWidth
,
pHeight
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_SetDefaultSourcePosition
(
IBasicVideo
*
iface
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->()
: stub !!!
\n
"
,
This
,
iface
);
TRACE
(
"(%p/%p)->()
\n
"
,
This
,
iface
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_SetDefaultSourcePosition
(
pBasicVideo
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_SetDestinationPosition
(
IBasicVideo
*
iface
,
...
...
@@ -2150,10 +2610,21 @@ static HRESULT WINAPI Basicvideo_SetDestinationPosition(IBasicVideo *iface,
long
Width
,
long
Height
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld, %ld, %ld, %ld)
: stub !!!
\n
"
,
This
,
iface
,
Left
,
Top
,
Width
,
Height
);
TRACE
(
"(%p/%p)->(%ld, %ld, %ld, %ld)
\n
"
,
This
,
iface
,
Left
,
Top
,
Width
,
Height
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_SetDestinationPosition
(
pBasicVideo
,
Left
,
Top
,
Width
,
Height
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_GetDestinationPosition
(
IBasicVideo
*
iface
,
...
...
@@ -2162,28 +2633,61 @@ static HRESULT WINAPI Basicvideo_GetDestinationPosition(IBasicVideo *iface,
long
*
pWidth
,
long
*
pHeight
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p, %p, %p, %p)
: stub !!!
\n
"
,
This
,
iface
,
pLeft
,
pTop
,
pWidth
,
pHeight
);
TRACE
(
"(%p/%p)->(%p, %p, %p, %p)
\n
"
,
This
,
iface
,
pLeft
,
pTop
,
pWidth
,
pHeight
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_GetDestinationPosition
(
pBasicVideo
,
pLeft
,
pTop
,
pWidth
,
pHeight
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_SetDefaultDestinationPosition
(
IBasicVideo
*
iface
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->()
: stub !!!
\n
"
,
This
,
iface
);
TRACE
(
"(%p/%p)->()
\n
"
,
This
,
iface
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_SetDefaultDestinationPosition
(
pBasicVideo
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_GetVideoSize
(
IBasicVideo
*
iface
,
long
*
pWidth
,
long
*
pHeight
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p, %p)
: stub !!!
\n
"
,
This
,
iface
,
pWidth
,
pHeight
);
TRACE
(
"(%p/%p)->(%p, %p)
\n
"
,
This
,
iface
,
pWidth
,
pHeight
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_GetVideoSize
(
pBasicVideo
,
pWidth
,
pHeight
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_GetVideoPaletteEntries
(
IBasicVideo
*
iface
,
...
...
@@ -2192,36 +2696,80 @@ static HRESULT WINAPI Basicvideo_GetVideoPaletteEntries(IBasicVideo *iface,
long
*
pRetrieved
,
long
*
pPalette
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld, %ld, %p, %p)
: stub !!!
\n
"
,
This
,
iface
,
StartIndex
,
Entries
,
pRetrieved
,
pPalette
);
TRACE
(
"(%p/%p)->(%ld, %ld, %p, %p)
\n
"
,
This
,
iface
,
StartIndex
,
Entries
,
pRetrieved
,
pPalette
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_GetVideoPaletteEntries
(
pBasicVideo
,
StartIndex
,
Entries
,
pRetrieved
,
pPalette
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_GetCurrentImage
(
IBasicVideo
*
iface
,
long
*
pBufferSize
,
long
*
pDIBImage
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p, %p)
: stub !!!
\n
"
,
This
,
iface
,
pBufferSize
,
pDIBImage
);
TRACE
(
"(%p/%p)->(%p, %p)
\n
"
,
This
,
iface
,
pBufferSize
,
pDIBImage
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_GetCurrentImage
(
pBasicVideo
,
pBufferSize
,
pDIBImage
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_IsUsingDefaultSource
(
IBasicVideo
*
iface
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->()
: stub !!!
\n
"
,
This
,
iface
);
TRACE
(
"(%p/%p)->()
\n
"
,
This
,
iface
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_IsUsingDefaultSource
(
pBasicVideo
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Basicvideo_IsUsingDefaultDestination
(
IBasicVideo
*
iface
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IBasicVideo_vtbl
,
iface
);
IBasicVideo
*
pBasicVideo
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->()
: stub !!!
\n
"
,
This
,
iface
);
TRACE
(
"(%p/%p)->()
\n
"
,
This
,
iface
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IBasicVideo
,
(
LPVOID
*
)
&
pBasicVideo
);
if
(
hr
==
S_OK
)
hr
=
IBasicVideo_IsUsingDefaultDestination
(
pBasicVideo
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
...
...
@@ -2300,10 +2848,21 @@ static ULONG WINAPI Videowindow_Release(IVideoWindow *iface) {
static
HRESULT
WINAPI
Videowindow_GetTypeInfoCount
(
IVideoWindow
*
iface
,
UINT
*
pctinfo
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pctinfo
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pctinfo
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_GetTypeInfoCount
(
pVideoWindow
,
pctinfo
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_GetTypeInfo
(
IVideoWindow
*
iface
,
...
...
@@ -2311,10 +2870,21 @@ static HRESULT WINAPI Videowindow_GetTypeInfo(IVideoWindow *iface,
LCID
lcid
,
ITypeInfo
**
ppTInfo
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%d, %ld, %p)
: stub !!!
\n
"
,
This
,
iface
,
iTInfo
,
lcid
,
ppTInfo
);
TRACE
(
"(%p/%p)->(%d, %ld, %p)
\n
"
,
This
,
iface
,
iTInfo
,
lcid
,
ppTInfo
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_GetTypeInfo
(
pVideoWindow
,
iTInfo
,
lcid
,
ppTInfo
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_GetIDsOfNames
(
IVideoWindow
*
iface
,
...
...
@@ -2324,10 +2894,21 @@ static HRESULT WINAPI Videowindow_GetIDsOfNames(IVideoWindow *iface,
LCID
lcid
,
DISPID
*
rgDispId
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%s (%p), %p, %d, %ld, %p)
: stub !!!
\n
"
,
This
,
iface
,
debugstr_guid
(
riid
),
riid
,
rgszNames
,
cNames
,
lcid
,
rgDispId
);
TRACE
(
"(%p/%p)->(%s (%p), %p, %d, %ld, %p)
\n
"
,
This
,
iface
,
debugstr_guid
(
riid
),
riid
,
rgszNames
,
cNames
,
lcid
,
rgDispId
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_GetIDsOfNames
(
pVideoWindow
,
riid
,
rgszNames
,
cNames
,
lcid
,
rgDispId
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_Invoke
(
IVideoWindow
*
iface
,
...
...
@@ -2340,290 +2921,643 @@ static HRESULT WINAPI Videowindow_Invoke(IVideoWindow *iface,
EXCEPINFO
*
pExepInfo
,
UINT
*
puArgErr
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld, %s (%p), %ld, %04x, %p, %p, %p, %p)
: stub !!!
\n
"
,
This
,
iface
,
dispIdMember
,
debugstr_guid
(
riid
),
riid
,
lcid
,
wFlags
,
pDispParams
,
pVarResult
,
pExepInfo
,
puArgErr
);
TRACE
(
"(%p/%p)->(%ld, %s (%p), %ld, %04x, %p, %p, %p, %p)
\n
"
,
This
,
iface
,
dispIdMember
,
debugstr_guid
(
riid
),
riid
,
lcid
,
wFlags
,
pDispParams
,
pVarResult
,
pExepInfo
,
puArgErr
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_Invoke
(
pVideoWindow
,
dispIdMember
,
riid
,
lcid
,
wFlags
,
pDispParams
,
pVarResult
,
pExepInfo
,
puArgErr
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
/*** IVideoWindow methods ***/
static
HRESULT
WINAPI
Videowindow_put_Caption
(
IVideoWindow
*
iface
,
BSTR
strCaption
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%s (%p))
\n
"
,
This
,
iface
,
debugstr_w
(
strCaption
),
strCaption
);
EnterCriticalSection
(
&
This
->
cs
);
TRACE
(
"(%p/%p)->(%s (%p)): stub !!!
\n
"
,
This
,
iface
,
debugstr_w
(
strCaption
),
strCaption
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
return
S_OK
;
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_Caption
(
pVideoWindow
,
strCaption
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_Caption
(
IVideoWindow
*
iface
,
BSTR
*
strCaption
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
strCaption
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
strCaption
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_Caption
(
pVideoWindow
,
strCaption
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_put_WindowStyle
(
IVideoWindow
*
iface
,
long
WindowStyle
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
WindowStyle
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
WindowStyle
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_WindowStyle
(
pVideoWindow
,
WindowStyle
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_WindowStyle
(
IVideoWindow
*
iface
,
long
*
WindowStyle
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
WindowStyle
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
WindowStyle
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_WindowStyle
(
pVideoWindow
,
WindowStyle
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_put_WindowStyleEx
(
IVideoWindow
*
iface
,
long
WindowStyleEx
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
WindowStyleEx
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
WindowStyleEx
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_WindowStyleEx
(
pVideoWindow
,
WindowStyleEx
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_WindowStyleEx
(
IVideoWindow
*
iface
,
long
*
WindowStyleEx
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
WindowStyleEx
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
WindowStyleEx
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_WindowStyleEx
(
pVideoWindow
,
WindowStyleEx
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_put_AutoShow
(
IVideoWindow
*
iface
,
long
AutoShow
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
AutoShow
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
AutoShow
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_AutoShow
(
pVideoWindow
,
AutoShow
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_AutoShow
(
IVideoWindow
*
iface
,
long
*
AutoShow
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
AutoShow
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
AutoShow
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_AutoShow
(
pVideoWindow
,
AutoShow
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_put_WindowState
(
IVideoWindow
*
iface
,
long
WindowState
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
WindowState
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
WindowState
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_WindowState
(
pVideoWindow
,
WindowState
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_WindowState
(
IVideoWindow
*
iface
,
long
*
WindowState
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
WindowState
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
WindowState
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_WindowState
(
pVideoWindow
,
WindowState
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_put_BackgroundPalette
(
IVideoWindow
*
iface
,
long
BackgroundPalette
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
BackgroundPalette
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
BackgroundPalette
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_BackgroundPalette
(
pVideoWindow
,
BackgroundPalette
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_BackgroundPalette
(
IVideoWindow
*
iface
,
long
*
pBackgroundPalette
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pBackgroundPalette
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pBackgroundPalette
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_BackgroundPalette
(
pVideoWindow
,
pBackgroundPalette
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_put_Visible
(
IVideoWindow
*
iface
,
long
Visible
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
Visible
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
Visible
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_Visible
(
pVideoWindow
,
Visible
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_Visible
(
IVideoWindow
*
iface
,
long
*
pVisible
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pVisible
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pVisible
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_Visible
(
pVideoWindow
,
pVisible
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_put_Left
(
IVideoWindow
*
iface
,
long
Left
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
Left
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
Left
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_Left
(
pVideoWindow
,
Left
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_Left
(
IVideoWindow
*
iface
,
long
*
pLeft
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pLeft
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pLeft
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_Left
(
pVideoWindow
,
pLeft
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_put_Width
(
IVideoWindow
*
iface
,
long
Width
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
Width
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
Width
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_Width
(
pVideoWindow
,
Width
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_Width
(
IVideoWindow
*
iface
,
long
*
pWidth
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pWidth
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pWidth
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_Width
(
pVideoWindow
,
pWidth
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_put_Top
(
IVideoWindow
*
iface
,
long
Top
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
Top
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
Top
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_Top
(
pVideoWindow
,
Top
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_Top
(
IVideoWindow
*
iface
,
long
*
pTop
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pTop
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pTop
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_Top
(
pVideoWindow
,
pTop
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_put_Height
(
IVideoWindow
*
iface
,
long
Height
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
Height
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
Height
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_Height
(
pVideoWindow
,
Height
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_Height
(
IVideoWindow
*
iface
,
long
*
pHeight
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
pHeight
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
pHeight
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_Height
(
pVideoWindow
,
pHeight
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_put_Owner
(
IVideoWindow
*
iface
,
OAHWND
Owner
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%08lx)
: stub !!!
\n
"
,
This
,
iface
,
(
DWORD
)
Owner
);
TRACE
(
"(%p/%p)->(%08lx)
\n
"
,
This
,
iface
,
(
DWORD
)
Owner
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_Owner
(
pVideoWindow
,
Owner
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_Owner
(
IVideoWindow
*
iface
,
OAHWND
*
Owner
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%08lx)
: stub !!!
\n
"
,
This
,
iface
,
(
DWORD
)
Owner
);
TRACE
(
"(%p/%p)->(%08lx)
\n
"
,
This
,
iface
,
(
DWORD
)
Owner
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_Owner
(
pVideoWindow
,
Owner
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_put_MessageDrain
(
IVideoWindow
*
iface
,
OAHWND
Drain
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%08lx)
: stub !!!
\n
"
,
This
,
iface
,
(
DWORD
)
Drain
);
TRACE
(
"(%p/%p)->(%08lx)
\n
"
,
This
,
iface
,
(
DWORD
)
Drain
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_MessageDrain
(
pVideoWindow
,
Drain
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_MessageDrain
(
IVideoWindow
*
iface
,
OAHWND
*
Drain
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
Drain
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
Drain
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_MessageDrain
(
pVideoWindow
,
Drain
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_BorderColor
(
IVideoWindow
*
iface
,
long
*
Color
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
Color
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
Color
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_BorderColor
(
pVideoWindow
,
Color
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_put_BorderColor
(
IVideoWindow
*
iface
,
long
Color
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
Color
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
Color
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_BorderColor
(
pVideoWindow
,
Color
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_get_FullScreenMode
(
IVideoWindow
*
iface
,
long
*
FullScreenMode
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
FullScreenMode
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
FullScreenMode
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_get_FullScreenMode
(
pVideoWindow
,
FullScreenMode
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_put_FullScreenMode
(
IVideoWindow
*
iface
,
long
FullScreenMode
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
FullScreenMode
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
FullScreenMode
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_put_FullScreenMode
(
pVideoWindow
,
FullScreenMode
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_SetWindowForeground
(
IVideoWindow
*
iface
,
long
Focus
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
Focus
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
Focus
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_SetWindowForeground
(
pVideoWindow
,
Focus
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_NotifyOwnerMessage
(
IVideoWindow
*
iface
,
...
...
@@ -2632,10 +3566,21 @@ static HRESULT WINAPI Videowindow_NotifyOwnerMessage(IVideoWindow *iface,
LONG_PTR
wParam
,
LONG_PTR
lParam
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%08lx, %ld, %08lx, %08lx)
: stub !!!
\n
"
,
This
,
iface
,
(
DWORD
)
hwnd
,
uMsg
,
wParam
,
lParam
);
TRACE
(
"(%p/%p)->(%08lx, %ld, %08lx, %08lx)
\n
"
,
This
,
iface
,
(
DWORD
)
hwnd
,
uMsg
,
wParam
,
lParam
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_NotifyOwnerMessage
(
pVideoWindow
,
hwnd
,
uMsg
,
wParam
,
lParam
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_SetWindowPosition
(
IVideoWindow
*
iface
,
...
...
@@ -2644,10 +3589,21 @@ static HRESULT WINAPI Videowindow_SetWindowPosition(IVideoWindow *iface,
long
Width
,
long
Height
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld, %ld, %ld, %ld)
: stub !!!
\n
"
,
This
,
iface
,
Left
,
Top
,
Width
,
Height
);
TRACE
(
"(%p/%p)->(%ld, %ld, %ld, %ld)
\n
"
,
This
,
iface
,
Left
,
Top
,
Width
,
Height
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_SetWindowPosition
(
pVideoWindow
,
Left
,
Top
,
Width
,
Height
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_GetWindowPosition
(
IVideoWindow
*
iface
,
...
...
@@ -2656,30 +3612,63 @@ static HRESULT WINAPI Videowindow_GetWindowPosition(IVideoWindow *iface,
long
*
pWidth
,
long
*
pHeight
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p, %p, %p, %p)
: stub !!!
\n
"
,
This
,
iface
,
pLeft
,
pTop
,
pWidth
,
pHeight
);
TRACE
(
"(%p/%p)->(%p, %p, %p, %p)
\n
"
,
This
,
iface
,
pLeft
,
pTop
,
pWidth
,
pHeight
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_GetWindowPosition
(
pVideoWindow
,
pLeft
,
pTop
,
pWidth
,
pHeight
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_GetMinIdealImageSize
(
IVideoWindow
*
iface
,
long
*
pWidth
,
long
*
pHeight
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p, %p)
: stub !!!
\n
"
,
This
,
iface
,
pWidth
,
pHeight
);
TRACE
(
"(%p/%p)->(%p, %p)
\n
"
,
This
,
iface
,
pWidth
,
pHeight
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_GetMinIdealImageSize
(
pVideoWindow
,
pWidth
,
pHeight
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_GetMaxIdealImageSize
(
IVideoWindow
*
iface
,
long
*
pWidth
,
long
*
pHeight
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p, %p)
: stub !!!
\n
"
,
This
,
iface
,
pWidth
,
pHeight
);
TRACE
(
"(%p/%p)->(%p, %p)
\n
"
,
This
,
iface
,
pWidth
,
pHeight
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_GetMaxIdealImageSize
(
pVideoWindow
,
pWidth
,
pHeight
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_GetRestorePosition
(
IVideoWindow
*
iface
,
...
...
@@ -2688,28 +3677,61 @@ static HRESULT WINAPI Videowindow_GetRestorePosition(IVideoWindow *iface,
long
*
pWidth
,
long
*
pHeight
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p, %p, %p, %p)
: stub !!!
\n
"
,
This
,
iface
,
pLeft
,
pTop
,
pWidth
,
pHeight
);
TRACE
(
"(%p/%p)->(%p, %p, %p, %p)
\n
"
,
This
,
iface
,
pLeft
,
pTop
,
pWidth
,
pHeight
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_GetRestorePosition
(
pVideoWindow
,
pLeft
,
pTop
,
pWidth
,
pHeight
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_HideCursor
(
IVideoWindow
*
iface
,
long
HideCursor
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%ld)
: stub !!!
\n
"
,
This
,
iface
,
HideCursor
);
TRACE
(
"(%p/%p)->(%ld)
\n
"
,
This
,
iface
,
HideCursor
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_HideCursor
(
pVideoWindow
,
HideCursor
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
static
HRESULT
WINAPI
Videowindow_IsCursorHidden
(
IVideoWindow
*
iface
,
long
*
CursorHidden
)
{
ICOM_THIS_MULTI
(
IFilterGraphImpl
,
IVideoWindow_vtbl
,
iface
);
IVideoWindow
*
pVideoWindow
;
HRESULT
hr
;
TRACE
(
"(%p/%p)->(%p)
: stub !!!
\n
"
,
This
,
iface
,
CursorHidden
);
TRACE
(
"(%p/%p)->(%p)
\n
"
,
This
,
iface
,
CursorHidden
);
return
S_OK
;
EnterCriticalSection
(
&
This
->
cs
);
hr
=
GetTargetInterface
(
This
,
&
IID_IVideoWindow
,
(
LPVOID
*
)
&
pVideoWindow
);
if
(
hr
==
S_OK
)
hr
=
IVideoWindow_IsCursorHidden
(
pVideoWindow
,
CursorHidden
);
LeaveCriticalSection
(
&
This
->
cs
);
return
hr
;
}
...
...
@@ -3350,6 +4372,7 @@ HRESULT FilterGraph_create(IUnknown *pUnkOuter, LPVOID *ppObj)
fimpl
->
state
=
State_Stopped
;
EventsQueue_Init
(
&
fimpl
->
evqueue
);
InitializeCriticalSection
(
&
fimpl
->
cs
);
fimpl
->
nItfCacheEntries
=
0
;
hr
=
CoCreateInstance
(
&
CLSID_FilterMapper
,
NULL
,
CLSCTX_INPROC_SERVER
,
&
IID_IFilterMapper2
,
(
LPVOID
*
)
&
fimpl
->
pFilterMapper2
);
if
(
FAILED
(
hr
))
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment