1 /* DirectShow FilterGraph object (QUARTZ.DLL)
3 * Copyright 2002 Lionel Ulmer
5 * This file contains the (internal) driver registration functions,
6 * driver enumeration APIs and DirectDraw creation functions.
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 #include "wine/debug.h"
27 #include "wine/unicode.h"
29 #include "quartz_private.h"
31 WINE_DEFAULT_DEBUG_CHANNEL(quartz
);
33 typedef struct _IFilterGraphImpl
{
34 ICOM_VTABLE(IGraphBuilder
) *IGraphBuilder_vtbl
;
35 ICOM_VTABLE(IMediaControl
) *IMediaControl_vtbl
;
36 ICOM_VTABLE(IMediaSeeking
) *IMediaSeeking_vtbl
;
37 ICOM_VTABLE(IBasicAudio
) *IBasicAudio_vtbl
;
38 ICOM_VTABLE(IBasicVideo
) *IBasicVideo_vtbl
;
39 ICOM_VTABLE(IVideoWindow
) *IVideoWindow_vtbl
;
40 ICOM_VTABLE(IMediaEventEx
) *IMediaEventEx_vtbl
;
41 ICOM_VTABLE(IMediaFilter
) *IMediaFilter_vtbl
;
53 /* IRegisterServiceProvider */
54 /* IResourceMananger */
55 /* IServiceProvider */
59 IBaseFilter
** ppFiltersInGraph
;
60 LPWSTR
* pFilterNames
;
66 static HRESULT
Filtergraph_QueryInterface(IFilterGraphImpl
*This
,
69 TRACE("(%p)->(%s (%p), %p)\n", This
, debugstr_guid(riid
), riid
, ppvObj
);
71 if (IsEqualGUID(&IID_IUnknown
, riid
) ||
72 IsEqualGUID(&IID_IGraphBuilder
, riid
)) {
73 *ppvObj
= &(This
->IGraphBuilder_vtbl
);
74 TRACE(" returning IGraphBuilder interface (%p)\n", *ppvObj
);
75 } else if (IsEqualGUID(&IID_IMediaControl
, riid
)) {
76 *ppvObj
= &(This
->IMediaControl_vtbl
);
77 TRACE(" returning IMediaControl interface (%p)\n", *ppvObj
);
78 } else if (IsEqualGUID(&IID_IMediaSeeking
, riid
)) {
79 *ppvObj
= &(This
->IMediaSeeking_vtbl
);
80 TRACE(" returning IMediaSeeking interface (%p)\n", *ppvObj
);
81 } else if (IsEqualGUID(&IID_IBasicAudio
, riid
)) {
82 *ppvObj
= &(This
->IBasicAudio_vtbl
);
83 TRACE(" returning IBasicAudio interface (%p)\n", *ppvObj
);
84 } else if (IsEqualGUID(&IID_IBasicVideo
, riid
)) {
85 *ppvObj
= &(This
->IBasicVideo_vtbl
);
86 TRACE(" returning IBasicVideo interface (%p)\n", *ppvObj
);
87 } else if (IsEqualGUID(&IID_IVideoWindow
, riid
)) {
88 *ppvObj
= &(This
->IVideoWindow_vtbl
);
89 TRACE(" returning IVideoWindow interface (%p)\n", *ppvObj
);
90 } else if (IsEqualGUID(&IID_IMediaEvent
, riid
) ||
91 IsEqualGUID(&IID_IMediaEventEx
, riid
)) {
92 *ppvObj
= &(This
->IMediaEventEx_vtbl
);
93 TRACE(" returning IMediaEvent(Ex) interface (%p)\n", *ppvObj
);
94 } else if (IsEqualGUID(&IID_IMediaFilter
, riid
) ||
95 IsEqualGUID(&IID_IPersist
, riid
)) {
96 *ppvObj
= &(This
->IMediaFilter_vtbl
);
97 TRACE(" returning IMediaFilter interface (%p)\n", *ppvObj
);
100 FIXME("unknown interface %s\n", debugstr_guid(riid
));
101 return E_NOINTERFACE
;
108 static ULONG
Filtergraph_AddRef(IFilterGraphImpl
*This
) {
109 TRACE("(%p)->(): new ref = %ld\n", This
, This
->ref
+ 1);
114 static ULONG
Filtergraph_Release(IFilterGraphImpl
*This
) {
117 TRACE("(%p)->(): new ref = %ld\n", This
, This
->ref
- 1);
121 HeapFree(GetProcessHeap(), 0, This
->ppFiltersInGraph
);
122 HeapFree(GetProcessHeap(), 0, This
->pFilterNames
);
123 HeapFree(GetProcessHeap(), 0, This
);
129 /*** IUnknown methods ***/
130 static HRESULT WINAPI
Graphbuilder_QueryInterface(IGraphBuilder
*iface
,
133 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
135 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
136 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
139 static ULONG WINAPI
Graphbuilder_AddRef(IGraphBuilder
*iface
) {
140 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
142 TRACE("(%p/%p)->() calling FilterGraph AddRef\n", This
, iface
);
144 return Filtergraph_AddRef(This
);
147 static ULONG WINAPI
Graphbuilder_Release(IGraphBuilder
*iface
) {
148 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
150 TRACE("(%p/%p)->() calling FilterGraph Release\n", This
, iface
);
152 return Filtergraph_Release(This
);
155 /*** IFilterGraph methods ***/
156 static HRESULT WINAPI
Graphbuilder_AddFilter(IGraphBuilder
*iface
,
157 IBaseFilter
*pFilter
,
159 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
163 TRACE("(%p/%p)->(%p, %s (%p))\n", This
, iface
, pFilter
, debugstr_w(pName
), pName
);
165 /* FIXME: generate name of filter if NULL */
167 if (This
->nFilters
+ 1 > This
->filterCapacity
)
169 int newCapacity
= 2*This
->filterCapacity
;
170 IBaseFilter
** ppNewFilters
= CoTaskMemAlloc(newCapacity
* sizeof(IBaseFilter
*));
171 LPWSTR
* pNewNames
= CoTaskMemAlloc(newCapacity
* sizeof(LPWSTR
));
172 memcpy(ppNewFilters
, This
->ppFiltersInGraph
, This
->nFilters
* sizeof(IBaseFilter
*));
173 memcpy(pNewNames
, This
->pFilterNames
, This
->nFilters
* sizeof(LPWSTR
));
174 CoTaskMemFree(This
->ppFiltersInGraph
);
175 CoTaskMemFree(This
->pFilterNames
);
176 This
->ppFiltersInGraph
= ppNewFilters
;
177 This
->pFilterNames
= pNewNames
;
178 This
->filterCapacity
= newCapacity
;
181 hr
= IBaseFilter_JoinFilterGraph(pFilter
, (IFilterGraph
*)This
, pName
);
185 size
= (strlenW(pName
) + 1) * sizeof(WCHAR
);
186 IBaseFilter_AddRef(pFilter
);
187 This
->ppFiltersInGraph
[This
->nFilters
] = pFilter
;
188 This
->pFilterNames
[This
->nFilters
] = CoTaskMemAlloc(size
);
189 memcpy(This
->pFilterNames
[This
->nFilters
], pName
, size
);
196 static HRESULT WINAPI
Graphbuilder_RemoveFilter(IGraphBuilder
*iface
,
197 IBaseFilter
*pFilter
) {
198 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
202 TRACE("(%p/%p)->(%p)\n", This
, iface
, pFilter
);
204 /* FIXME: check graph is stopped */
206 for (i
= 0; i
< This
->nFilters
; i
++)
208 if (This
->ppFiltersInGraph
[i
] == pFilter
)
210 /* FIXME: disconnect pins */
211 hr
= IBaseFilter_JoinFilterGraph(pFilter
, NULL
, This
->pFilterNames
[i
]);
214 IPin_Release(pFilter
);
215 CoTaskMemFree(This
->pFilterNames
[i
]);
216 memmove(This
->ppFiltersInGraph
+i
, This
->ppFiltersInGraph
+i
+1, sizeof(IBaseFilter
*)*(This
->nFilters
- 1 - i
));
217 memmove(This
->pFilterNames
+i
, This
->pFilterNames
+i
+1, sizeof(LPWSTR
)*(This
->nFilters
- 1 - i
));
225 return hr
; /* FIXME: check this error code */
228 static HRESULT WINAPI
Graphbuilder_EnumFilter(IGraphBuilder
*iface
,
229 IEnumFilters
**ppEnum
) {
230 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
232 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppEnum
);
237 static HRESULT WINAPI
Graphbuilder_FindFilterByName(IGraphBuilder
*iface
,
239 IBaseFilter
**ppFilter
) {
240 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
243 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_w(pName
), pName
, ppFilter
);
247 for (i
= 0; i
< This
->nFilters
; i
++)
249 if (!strcmpW(pName
, This
->pFilterNames
[i
]))
251 *ppFilter
= This
->ppFiltersInGraph
[i
];
252 IBaseFilter_AddRef(*ppFilter
);
257 return E_FAIL
; /* FIXME: check this error code */
260 static HRESULT WINAPI
Graphbuilder_ConnectDirect(IGraphBuilder
*iface
,
263 const AM_MEDIA_TYPE
*pmt
) {
264 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
266 TRACE("(%p/%p)->(%p, %p, %p)\n", This
, iface
, ppinIn
, ppinOut
, pmt
);
268 return IPin_Connect(ppinOut
, ppinIn
, pmt
);
271 static HRESULT WINAPI
Graphbuilder_Reconnect(IGraphBuilder
*iface
,
273 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
275 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppin
);
280 static HRESULT WINAPI
Graphbuilder_Disconnect(IGraphBuilder
*iface
,
282 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
284 TRACE("(%p/%p)->(%p)\n", This
, iface
, ppin
);
286 return IPin_Disconnect(ppin
);
289 static HRESULT WINAPI
Graphbuilder_SetDefaultSyncSource(IGraphBuilder
*iface
) {
290 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
292 TRACE("(%p/%p)->(): stub !!!\n", iface
, This
);
297 /*** IGraphBuilder methods ***/
298 static HRESULT WINAPI
Graphbuilder_Connect(IGraphBuilder
*iface
,
301 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
303 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, ppinOut
, ppinIn
);
308 static HRESULT WINAPI
Graphbuilder_Render(IGraphBuilder
*iface
,
310 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
312 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppinOut
);
317 static HRESULT WINAPI
Graphbuilder_RenderFile(IGraphBuilder
*iface
,
319 LPCWSTR lpcwstrPlayList
) {
320 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
322 TRACE("(%p/%p)->(%s (%p), %s (%p)): stub !!!\n", This
, iface
, debugstr_w(lpcwstrFile
), lpcwstrFile
, debugstr_w(lpcwstrPlayList
), lpcwstrPlayList
);
327 static HRESULT WINAPI
Graphbuilder_AddSourceFilter(IGraphBuilder
*iface
,
328 LPCWSTR lpcwstrFileName
,
329 LPCWSTR lpcwstrFilterName
,
330 IBaseFilter
**ppFilter
) {
331 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
333 TRACE("(%p/%p)->(%s (%p), %s (%p), %p): stub !!!\n", This
, iface
, debugstr_w(lpcwstrFileName
), lpcwstrFileName
, debugstr_w(lpcwstrFilterName
), lpcwstrFilterName
, ppFilter
);
338 static HRESULT WINAPI
Graphbuilder_SetLogFile(IGraphBuilder
*iface
,
340 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
342 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) hFile
);
347 static HRESULT WINAPI
Graphbuilder_Abort(IGraphBuilder
*iface
) {
348 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
350 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
355 static HRESULT WINAPI
Graphbuilder_ShouldOperationContinue(IGraphBuilder
*iface
) {
356 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
358 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
364 static ICOM_VTABLE(IGraphBuilder
) IGraphBuilder_VTable
=
366 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
367 Graphbuilder_QueryInterface
,
369 Graphbuilder_Release
,
370 Graphbuilder_AddFilter
,
371 Graphbuilder_RemoveFilter
,
372 Graphbuilder_EnumFilter
,
373 Graphbuilder_FindFilterByName
,
374 Graphbuilder_ConnectDirect
,
375 Graphbuilder_Reconnect
,
376 Graphbuilder_Disconnect
,
377 Graphbuilder_SetDefaultSyncSource
,
378 Graphbuilder_Connect
,
380 Graphbuilder_RenderFile
,
381 Graphbuilder_AddSourceFilter
,
382 Graphbuilder_SetLogFile
,
384 Graphbuilder_ShouldOperationContinue
387 /*** IUnknown methods ***/
388 static HRESULT WINAPI
Mediacontrol_QueryInterface(IMediaControl
*iface
,
391 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
393 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
395 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
398 static ULONG WINAPI
Mediacontrol_AddRef(IMediaControl
*iface
) {
399 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
401 TRACE("(%p/%p)->()\n", This
, iface
);
403 return Filtergraph_AddRef(This
);
406 static ULONG WINAPI
Mediacontrol_Release(IMediaControl
*iface
) {
407 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
409 TRACE("(%p/%p)->()\n", This
, iface
);
411 return Filtergraph_Release(This
);
415 /*** IDispatch methods ***/
416 static HRESULT WINAPI
Mediacontrol_GetTypeInfoCount(IMediaControl
*iface
,
418 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
420 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
425 static HRESULT WINAPI
Mediacontrol_GetTypeInfo(IMediaControl
*iface
,
428 ITypeInfo
**ppTInfo
) {
429 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
431 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
436 static HRESULT WINAPI
Mediacontrol_GetIDsOfNames(IMediaControl
*iface
,
442 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
444 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
449 static HRESULT WINAPI
Mediacontrol_Invoke(IMediaControl
*iface
,
454 DISPPARAMS
*pDispParams
,
458 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
460 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
);
465 /*** IMediaControl methods ***/
466 static HRESULT WINAPI
Mediacontrol_Run(IMediaControl
*iface
) {
467 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
469 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
474 static HRESULT WINAPI
Mediacontrol_Pause(IMediaControl
*iface
) {
475 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
477 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
482 static HRESULT WINAPI
Mediacontrol_Stop(IMediaControl
*iface
) {
483 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
485 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
490 static HRESULT WINAPI
Mediacontrol_GetState(IMediaControl
*iface
,
492 OAFilterState
*pfs
) {
493 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
495 TRACE("(%p/%p)->(%ld, %p): stub !!!\n", This
, iface
, msTimeout
, pfs
);
500 static HRESULT WINAPI
Mediacontrol_RenderFile(IMediaControl
*iface
,
502 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
504 TRACE("(%p/%p)->(%s (%p)): stub !!!\n", This
, iface
, debugstr_w(strFilename
), strFilename
);
509 static HRESULT WINAPI
Mediacontrol_AddSourceFilter(IMediaControl
*iface
,
512 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
514 TRACE("(%p/%p)->(%s (%p), %p): stub !!!\n", This
, iface
, debugstr_w(strFilename
), strFilename
, ppUnk
);
519 static HRESULT WINAPI
Mediacontrol_get_FilterCollection(IMediaControl
*iface
,
521 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
523 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppUnk
);
528 static HRESULT WINAPI
Mediacontrol_get_RegFilterCollection(IMediaControl
*iface
,
530 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
532 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppUnk
);
537 static HRESULT WINAPI
Mediacontrol_StopWhenReady(IMediaControl
*iface
) {
538 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
540 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
546 static ICOM_VTABLE(IMediaControl
) IMediaControl_VTable
=
548 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
549 Mediacontrol_QueryInterface
,
551 Mediacontrol_Release
,
552 Mediacontrol_GetTypeInfoCount
,
553 Mediacontrol_GetTypeInfo
,
554 Mediacontrol_GetIDsOfNames
,
559 Mediacontrol_GetState
,
560 Mediacontrol_RenderFile
,
561 Mediacontrol_AddSourceFilter
,
562 Mediacontrol_get_FilterCollection
,
563 Mediacontrol_get_RegFilterCollection
,
564 Mediacontrol_StopWhenReady
568 /*** IUnknown methods ***/
569 static HRESULT WINAPI
Mediaseeking_QueryInterface(IMediaSeeking
*iface
,
572 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
574 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
576 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
579 static ULONG WINAPI
Mediaseeking_AddRef(IMediaSeeking
*iface
) {
580 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
582 TRACE("(%p/%p)->()\n", This
, iface
);
584 return Filtergraph_AddRef(This
);
587 static ULONG WINAPI
Mediaseeking_Release(IMediaSeeking
*iface
) {
588 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
590 TRACE("(%p/%p)->()\n", This
, iface
);
592 return Filtergraph_Release(This
);
595 /*** IMediaSeeking methods ***/
596 static HRESULT WINAPI
Mediaseeking_GetCapabilities(IMediaSeeking
*iface
,
597 DWORD
*pCapabilities
) {
598 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
600 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pCapabilities
);
605 static HRESULT WINAPI
Mediaseeking_CheckCapabilities(IMediaSeeking
*iface
,
606 DWORD
*pCapabilities
) {
607 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
609 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pCapabilities
);
614 static HRESULT WINAPI
Mediaseeking_IsFormatSupported(IMediaSeeking
*iface
,
615 const GUID
*pFormat
) {
616 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
618 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
623 static HRESULT WINAPI
Mediaseeking_QueryPreferredFormat(IMediaSeeking
*iface
,
625 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
627 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
632 static HRESULT WINAPI
Mediaseeking_GetTimeFormat(IMediaSeeking
*iface
,
634 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
636 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
641 static HRESULT WINAPI
Mediaseeking_IsUsingTimeFormat(IMediaSeeking
*iface
,
642 const GUID
*pFormat
) {
643 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
645 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
650 static HRESULT WINAPI
Mediaseeking_SetTimeFormat(IMediaSeeking
*iface
,
651 const GUID
*pFormat
) {
652 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
654 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
659 static HRESULT WINAPI
Mediaseeking_GetDuration(IMediaSeeking
*iface
,
660 LONGLONG
*pDuration
) {
661 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
663 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDuration
);
668 static HRESULT WINAPI
Mediaseeking_GetStopPosition(IMediaSeeking
*iface
,
670 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
672 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pStop
);
677 static HRESULT WINAPI
Mediaseeking_GetCurrentPosition(IMediaSeeking
*iface
,
678 LONGLONG
*pCurrent
) {
679 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
681 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pCurrent
);
686 static HRESULT WINAPI
Mediaseeking_ConvertTimeFormat(IMediaSeeking
*iface
,
688 const GUID
*pTargetFormat
,
690 const GUID
*pSourceFormat
) {
691 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
693 TRACE("(%p/%p)->(%p, %p, %lld, %p): stub !!!\n", This
, iface
, pTarget
, pTargetFormat
, Source
, pSourceFormat
);
698 static HRESULT WINAPI
Mediaseeking_SetPositions(IMediaSeeking
*iface
,
700 DWORD dwCurrentFlags
,
703 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
705 TRACE("(%p/%p)->(%p, %08lx, %p, %08lx): stub !!!\n", This
, iface
, pCurrent
, dwCurrentFlags
, pStop
, dwStopFlags
);
710 static HRESULT WINAPI
Mediaseeking_GetPositions(IMediaSeeking
*iface
,
713 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
715 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pCurrent
, pStop
);
720 static HRESULT WINAPI
Mediaseeking_GetAvailable(IMediaSeeking
*iface
,
723 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
725 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pEarliest
, pLatest
);
730 static HRESULT WINAPI
Mediaseeking_SetRate(IMediaSeeking
*iface
,
732 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
734 TRACE("(%p/%p)->(%f): stub !!!\n", This
, iface
, dRate
);
739 static HRESULT WINAPI
Mediaseeking_GetRate(IMediaSeeking
*iface
,
741 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
743 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pdRate
);
748 static HRESULT WINAPI
Mediaseeking_GetPreroll(IMediaSeeking
*iface
,
749 LONGLONG
*pllPreroll
) {
750 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
752 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pllPreroll
);
758 static ICOM_VTABLE(IMediaSeeking
) IMediaSeeking_VTable
=
760 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
761 Mediaseeking_QueryInterface
,
763 Mediaseeking_Release
,
764 Mediaseeking_GetCapabilities
,
765 Mediaseeking_CheckCapabilities
,
766 Mediaseeking_IsFormatSupported
,
767 Mediaseeking_QueryPreferredFormat
,
768 Mediaseeking_GetTimeFormat
,
769 Mediaseeking_IsUsingTimeFormat
,
770 Mediaseeking_SetTimeFormat
,
771 Mediaseeking_GetDuration
,
772 Mediaseeking_GetStopPosition
,
773 Mediaseeking_GetCurrentPosition
,
774 Mediaseeking_ConvertTimeFormat
,
775 Mediaseeking_SetPositions
,
776 Mediaseeking_GetPositions
,
777 Mediaseeking_GetAvailable
,
778 Mediaseeking_SetRate
,
779 Mediaseeking_GetRate
,
780 Mediaseeking_GetPreroll
783 /*** IUnknown methods ***/
784 static HRESULT WINAPI
Basicaudio_QueryInterface(IBasicAudio
*iface
,
787 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
789 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
791 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
794 static ULONG WINAPI
Basicaudio_AddRef(IBasicAudio
*iface
) {
795 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
797 TRACE("(%p/%p)->()\n", This
, iface
);
799 return Filtergraph_AddRef(This
);
802 static ULONG WINAPI
Basicaudio_Release(IBasicAudio
*iface
) {
803 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
805 TRACE("(%p/%p)->()\n", This
, iface
);
807 return Filtergraph_Release(This
);
810 /*** IDispatch methods ***/
811 static HRESULT WINAPI
Basicaudio_GetTypeInfoCount(IBasicAudio
*iface
,
813 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
815 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
820 static HRESULT WINAPI
Basicaudio_GetTypeInfo(IBasicAudio
*iface
,
823 ITypeInfo
**ppTInfo
) {
824 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
826 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
831 static HRESULT WINAPI
Basicaudio_GetIDsOfNames(IBasicAudio
*iface
,
837 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
839 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
844 static HRESULT WINAPI
Basicaudio_Invoke(IBasicAudio
*iface
,
849 DISPPARAMS
*pDispParams
,
853 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
855 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
);
860 /*** IBasicAudio methods ***/
861 static HRESULT WINAPI
Basicaudio_put_Volume(IBasicAudio
*iface
,
863 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
865 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lVolume
);
870 static HRESULT WINAPI
Basicaudio_get_Volume(IBasicAudio
*iface
,
872 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
874 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, plVolume
);
879 static HRESULT WINAPI
Basicaudio_put_Balance(IBasicAudio
*iface
,
881 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
883 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lBalance
);
888 static HRESULT WINAPI
Basicaudio_get_Balance(IBasicAudio
*iface
,
890 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
892 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, plBalance
);
897 static ICOM_VTABLE(IBasicAudio
) IBasicAudio_VTable
=
899 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
900 Basicaudio_QueryInterface
,
903 Basicaudio_GetTypeInfoCount
,
904 Basicaudio_GetTypeInfo
,
905 Basicaudio_GetIDsOfNames
,
907 Basicaudio_put_Volume
,
908 Basicaudio_get_Volume
,
909 Basicaudio_put_Balance
,
910 Basicaudio_get_Balance
913 /*** IUnknown methods ***/
914 static HRESULT WINAPI
Basicvideo_QueryInterface(IBasicVideo
*iface
,
917 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
919 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
921 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
924 static ULONG WINAPI
Basicvideo_AddRef(IBasicVideo
*iface
) {
925 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
927 TRACE("(%p/%p)->()\n", This
, iface
);
929 return Filtergraph_AddRef(This
);
932 static ULONG WINAPI
Basicvideo_Release(IBasicVideo
*iface
) {
933 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
935 TRACE("(%p/%p)->()\n", This
, iface
);
937 return Filtergraph_Release(This
);
940 /*** IDispatch methods ***/
941 static HRESULT WINAPI
Basicvideo_GetTypeInfoCount(IBasicVideo
*iface
,
943 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
945 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
950 static HRESULT WINAPI
Basicvideo_GetTypeInfo(IBasicVideo
*iface
,
953 ITypeInfo
**ppTInfo
) {
954 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
956 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
961 static HRESULT WINAPI
Basicvideo_GetIDsOfNames(IBasicVideo
*iface
,
967 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
969 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
974 static HRESULT WINAPI
Basicvideo_Invoke(IBasicVideo
*iface
,
979 DISPPARAMS
*pDispParams
,
983 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
985 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
);
990 /*** IBasicVideo methods ***/
991 static HRESULT WINAPI
Basicvideo_get_AvgTimePerFrame(IBasicVideo
*iface
,
992 REFTIME
*pAvgTimePerFrame
) {
993 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
995 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pAvgTimePerFrame
);
1000 static HRESULT WINAPI
Basicvideo_get_BitRate(IBasicVideo
*iface
,
1002 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1004 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pBitRate
);
1009 static HRESULT WINAPI
Basicvideo_get_BitErrorRate(IBasicVideo
*iface
,
1010 long *pBitErrorRate
) {
1011 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1013 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pBitErrorRate
);
1018 static HRESULT WINAPI
Basicvideo_get_VideoWidth(IBasicVideo
*iface
,
1019 long *pVideoWidth
) {
1020 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1022 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pVideoWidth
);
1027 static HRESULT WINAPI
Basicvideo_get_VideoHeight(IBasicVideo
*iface
,
1028 long *pVideoHeight
) {
1029 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1031 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pVideoHeight
);
1036 static HRESULT WINAPI
Basicvideo_put_SourceLeft(IBasicVideo
*iface
,
1038 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1040 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceLeft
);
1045 static HRESULT WINAPI
Basicvideo_get_SourceLeft(IBasicVideo
*iface
,
1046 long *pSourceLeft
) {
1047 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1049 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceLeft
);
1054 static HRESULT WINAPI
Basicvideo_put_SourceWidth(IBasicVideo
*iface
,
1056 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1058 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceWidth
);
1063 static HRESULT WINAPI
Basicvideo_get_SourceWidth(IBasicVideo
*iface
,
1064 long *pSourceWidth
) {
1065 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1067 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceWidth
);
1072 static HRESULT WINAPI
Basicvideo_put_SourceTop(IBasicVideo
*iface
,
1074 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1076 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceTop
);
1081 static HRESULT WINAPI
Basicvideo_get_SourceTop(IBasicVideo
*iface
,
1083 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1085 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceTop
);
1090 static HRESULT WINAPI
Basicvideo_put_SourceHeight(IBasicVideo
*iface
,
1091 long SourceHeight
) {
1092 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1094 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceHeight
);
1099 static HRESULT WINAPI
Basicvideo_get_SourceHeight(IBasicVideo
*iface
,
1100 long *pSourceHeight
) {
1101 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1103 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceHeight
);
1108 static HRESULT WINAPI
Basicvideo_put_DestinationLeft(IBasicVideo
*iface
,
1109 long DestinationLeft
) {
1110 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1112 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationLeft
);
1117 static HRESULT WINAPI
Basicvideo_get_DestinationLeft(IBasicVideo
*iface
,
1118 long *pDestinationLeft
) {
1119 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1121 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationLeft
);
1126 static HRESULT WINAPI
Basicvideo_put_DestinationWidth(IBasicVideo
*iface
,
1127 long DestinationWidth
) {
1128 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1130 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationWidth
);
1135 static HRESULT WINAPI
Basicvideo_get_DestinationWidth(IBasicVideo
*iface
,
1136 long *pDestinationWidth
) {
1137 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1139 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationWidth
);
1144 static HRESULT WINAPI
Basicvideo_put_DestinationTop(IBasicVideo
*iface
,
1145 long DestinationTop
) {
1146 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1148 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationTop
);
1153 static HRESULT WINAPI
Basicvideo_get_DestinationTop(IBasicVideo
*iface
,
1154 long *pDestinationTop
) {
1155 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1157 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationTop
);
1162 static HRESULT WINAPI
Basicvideo_put_DestinationHeight(IBasicVideo
*iface
,
1163 long DestinationHeight
) {
1164 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1166 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationHeight
);
1171 static HRESULT WINAPI
Basicvideo_get_DestinationHeight(IBasicVideo
*iface
,
1172 long *pDestinationHeight
) {
1173 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1175 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationHeight
);
1180 static HRESULT WINAPI
Basicvideo_SetSourcePosition(IBasicVideo
*iface
,
1185 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1187 TRACE("(%p/%p)->(%ld, %ld, %ld, %ld): stub !!!\n", This
, iface
, Left
, Top
, Width
, Height
);
1192 static HRESULT WINAPI
Basicvideo_GetSourcePosition(IBasicVideo
*iface
,
1197 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1199 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1204 static HRESULT WINAPI
Basicvideo_SetDefaultSourcePosition(IBasicVideo
*iface
) {
1205 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1207 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1212 static HRESULT WINAPI
Basicvideo_SetDestinationPosition(IBasicVideo
*iface
,
1217 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1219 TRACE("(%p/%p)->(%ld, %ld, %ld, %ld): stub !!!\n", This
, iface
, Left
, Top
, Width
, Height
);
1224 static HRESULT WINAPI
Basicvideo_GetDestinationPosition(IBasicVideo
*iface
,
1229 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1231 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1236 static HRESULT WINAPI
Basicvideo_SetDefaultDestinationPosition(IBasicVideo
*iface
) {
1237 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1239 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1244 static HRESULT WINAPI
Basicvideo_GetVideoSize(IBasicVideo
*iface
,
1247 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1249 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pWidth
, pHeight
);
1254 static HRESULT WINAPI
Basicvideo_GetVideoPaletteEntries(IBasicVideo
*iface
,
1259 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1261 TRACE("(%p/%p)->(%ld, %ld, %p, %p): stub !!!\n", This
, iface
, StartIndex
, Entries
, pRetrieved
, pPalette
);
1266 static HRESULT WINAPI
Basicvideo_GetCurrentImage(IBasicVideo
*iface
,
1269 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1271 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pBufferSize
, pDIBImage
);
1276 static HRESULT WINAPI
Basicvideo_IsUsingDefaultSource(IBasicVideo
*iface
) {
1277 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1279 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1284 static HRESULT WINAPI
Basicvideo_IsUsingDefaultDestination(IBasicVideo
*iface
) {
1285 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1287 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1293 static ICOM_VTABLE(IBasicVideo
) IBasicVideo_VTable
=
1295 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
1296 Basicvideo_QueryInterface
,
1299 Basicvideo_GetTypeInfoCount
,
1300 Basicvideo_GetTypeInfo
,
1301 Basicvideo_GetIDsOfNames
,
1303 Basicvideo_get_AvgTimePerFrame
,
1304 Basicvideo_get_BitRate
,
1305 Basicvideo_get_BitErrorRate
,
1306 Basicvideo_get_VideoWidth
,
1307 Basicvideo_get_VideoHeight
,
1308 Basicvideo_put_SourceLeft
,
1309 Basicvideo_get_SourceLeft
,
1310 Basicvideo_put_SourceWidth
,
1311 Basicvideo_get_SourceWidth
,
1312 Basicvideo_put_SourceTop
,
1313 Basicvideo_get_SourceTop
,
1314 Basicvideo_put_SourceHeight
,
1315 Basicvideo_get_SourceHeight
,
1316 Basicvideo_put_DestinationLeft
,
1317 Basicvideo_get_DestinationLeft
,
1318 Basicvideo_put_DestinationWidth
,
1319 Basicvideo_get_DestinationWidth
,
1320 Basicvideo_put_DestinationTop
,
1321 Basicvideo_get_DestinationTop
,
1322 Basicvideo_put_DestinationHeight
,
1323 Basicvideo_get_DestinationHeight
,
1324 Basicvideo_SetSourcePosition
,
1325 Basicvideo_GetSourcePosition
,
1326 Basicvideo_SetDefaultSourcePosition
,
1327 Basicvideo_SetDestinationPosition
,
1328 Basicvideo_GetDestinationPosition
,
1329 Basicvideo_SetDefaultDestinationPosition
,
1330 Basicvideo_GetVideoSize
,
1331 Basicvideo_GetVideoPaletteEntries
,
1332 Basicvideo_GetCurrentImage
,
1333 Basicvideo_IsUsingDefaultSource
,
1334 Basicvideo_IsUsingDefaultDestination
1338 /*** IUnknown methods ***/
1339 static HRESULT WINAPI
Videowindow_QueryInterface(IVideoWindow
*iface
,
1342 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1344 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
1346 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
1349 static ULONG WINAPI
Videowindow_AddRef(IVideoWindow
*iface
) {
1350 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1352 TRACE("(%p/%p)->()\n", This
, iface
);
1354 return Filtergraph_AddRef(This
);
1357 static ULONG WINAPI
Videowindow_Release(IVideoWindow
*iface
) {
1358 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1360 TRACE("(%p/%p)->()\n", This
, iface
);
1362 return Filtergraph_Release(This
);
1365 /*** IDispatch methods ***/
1366 static HRESULT WINAPI
Videowindow_GetTypeInfoCount(IVideoWindow
*iface
,
1368 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1370 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
1375 static HRESULT WINAPI
Videowindow_GetTypeInfo(IVideoWindow
*iface
,
1378 ITypeInfo
**ppTInfo
) {
1379 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1381 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
1386 static HRESULT WINAPI
Videowindow_GetIDsOfNames(IVideoWindow
*iface
,
1392 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1394 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
1399 static HRESULT WINAPI
Videowindow_Invoke(IVideoWindow
*iface
,
1400 DISPID dispIdMember
,
1404 DISPPARAMS
*pDispParams
,
1406 EXCEPINFO
*pExepInfo
,
1408 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1410 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
);
1415 /*** IVideoWindow methods ***/
1416 static HRESULT WINAPI
Videowindow_put_Caption(IVideoWindow
*iface
,
1418 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1420 TRACE("(%p/%p)->(%s (%p)): stub !!!\n", This
, iface
, debugstr_w(strCaption
), strCaption
);
1425 static HRESULT WINAPI
Videowindow_get_Caption(IVideoWindow
*iface
,
1427 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1429 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, strCaption
);
1434 static HRESULT WINAPI
Videowindow_put_WindowStyle(IVideoWindow
*iface
,
1436 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1438 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, WindowStyle
);
1443 static HRESULT WINAPI
Videowindow_get_WindowStyle(IVideoWindow
*iface
,
1444 long *WindowStyle
) {
1445 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1447 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, WindowStyle
);
1452 static HRESULT WINAPI
Videowindow_put_WindowStyleEx(IVideoWindow
*iface
,
1453 long WindowStyleEx
) {
1454 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1456 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, WindowStyleEx
);
1461 static HRESULT WINAPI
Videowindow_get_WindowStyleEx(IVideoWindow
*iface
,
1462 long *WindowStyleEx
) {
1463 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1465 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, WindowStyleEx
);
1470 static HRESULT WINAPI
Videowindow_put_AutoShow(IVideoWindow
*iface
,
1472 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1474 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, AutoShow
);
1479 static HRESULT WINAPI
Videowindow_get_AutoShow(IVideoWindow
*iface
,
1481 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1483 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, AutoShow
);
1488 static HRESULT WINAPI
Videowindow_put_WindowState(IVideoWindow
*iface
,
1490 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1492 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, WindowState
);
1497 static HRESULT WINAPI
Videowindow_get_WindowState(IVideoWindow
*iface
,
1498 long *WindowState
) {
1499 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1501 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, WindowState
);
1506 static HRESULT WINAPI
Videowindow_put_BackgroundPalette(IVideoWindow
*iface
,
1507 long BackgroundPalette
) {
1508 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1510 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, BackgroundPalette
);
1515 static HRESULT WINAPI
Videowindow_get_BackgroundPalette(IVideoWindow
*iface
,
1516 long *pBackgroundPalette
) {
1517 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1519 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pBackgroundPalette
);
1524 static HRESULT WINAPI
Videowindow_put_Visible(IVideoWindow
*iface
,
1526 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1528 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Visible
);
1533 static HRESULT WINAPI
Videowindow_get_Visible(IVideoWindow
*iface
,
1535 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1537 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pVisible
);
1542 static HRESULT WINAPI
Videowindow_put_Left(IVideoWindow
*iface
,
1544 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1546 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Left
);
1551 static HRESULT WINAPI
Videowindow_get_Left(IVideoWindow
*iface
,
1553 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1555 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pLeft
);
1560 static HRESULT WINAPI
Videowindow_put_Width(IVideoWindow
*iface
,
1562 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1564 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Width
);
1569 static HRESULT WINAPI
Videowindow_get_Width(IVideoWindow
*iface
,
1571 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1573 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pWidth
);
1578 static HRESULT WINAPI
Videowindow_put_Top(IVideoWindow
*iface
,
1580 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1582 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Top
);
1587 static HRESULT WINAPI
Videowindow_get_Top(IVideoWindow
*iface
,
1589 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1591 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pTop
);
1596 static HRESULT WINAPI
Videowindow_put_Height(IVideoWindow
*iface
,
1598 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1600 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Height
);
1605 static HRESULT WINAPI
Videowindow_get_Height(IVideoWindow
*iface
,
1607 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1609 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pHeight
);
1614 static HRESULT WINAPI
Videowindow_put_Owner(IVideoWindow
*iface
,
1616 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1618 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) Owner
);
1623 static HRESULT WINAPI
Videowindow_get_Owner(IVideoWindow
*iface
,
1625 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1627 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) Owner
);
1632 static HRESULT WINAPI
Videowindow_put_MessageDrain(IVideoWindow
*iface
,
1634 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1636 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) Drain
);
1641 static HRESULT WINAPI
Videowindow_get_MessageDrain(IVideoWindow
*iface
,
1643 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1645 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, Drain
);
1650 static HRESULT WINAPI
Videowindow_get_BorderColor(IVideoWindow
*iface
,
1652 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1654 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, Color
);
1659 static HRESULT WINAPI
Videowindow_put_BorderColor(IVideoWindow
*iface
,
1661 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1663 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Color
);
1668 static HRESULT WINAPI
Videowindow_get_FullScreenMode(IVideoWindow
*iface
,
1669 long *FullScreenMode
) {
1670 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1672 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, FullScreenMode
);
1677 static HRESULT WINAPI
Videowindow_put_FullScreenMode(IVideoWindow
*iface
,
1678 long FullScreenMode
) {
1679 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1681 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, FullScreenMode
);
1686 static HRESULT WINAPI
Videowindow_SetWindowForeground(IVideoWindow
*iface
,
1688 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1690 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Focus
);
1695 static HRESULT WINAPI
Videowindow_NotifyOwnerMessage(IVideoWindow
*iface
,
1700 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1702 TRACE("(%p/%p)->(%08lx, %ld, %08lx, %08lx): stub !!!\n", This
, iface
, (DWORD
) hwnd
, uMsg
, wParam
, lParam
);
1707 static HRESULT WINAPI
Videowindow_SetWindowPosition(IVideoWindow
*iface
,
1712 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1714 TRACE("(%p/%p)->(%ld, %ld, %ld, %ld): stub !!!\n", This
, iface
, Left
, Top
, Width
, Height
);
1719 static HRESULT WINAPI
Videowindow_GetWindowPosition(IVideoWindow
*iface
,
1724 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1726 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1731 static HRESULT WINAPI
Videowindow_GetMinIdealImageSize(IVideoWindow
*iface
,
1734 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1736 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pWidth
, pHeight
);
1741 static HRESULT WINAPI
Videowindow_GetMaxIdealImageSize(IVideoWindow
*iface
,
1744 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1746 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pWidth
, pHeight
);
1751 static HRESULT WINAPI
Videowindow_GetRestorePosition(IVideoWindow
*iface
,
1756 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1758 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1763 static HRESULT WINAPI
Videowindow_HideCursor(IVideoWindow
*iface
,
1765 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1767 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, HideCursor
);
1772 static HRESULT WINAPI
Videowindow_IsCursorHidden(IVideoWindow
*iface
,
1773 long *CursorHidden
) {
1774 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1776 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, CursorHidden
);
1782 static ICOM_VTABLE(IVideoWindow
) IVideoWindow_VTable
=
1784 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
1785 Videowindow_QueryInterface
,
1787 Videowindow_Release
,
1788 Videowindow_GetTypeInfoCount
,
1789 Videowindow_GetTypeInfo
,
1790 Videowindow_GetIDsOfNames
,
1792 Videowindow_put_Caption
,
1793 Videowindow_get_Caption
,
1794 Videowindow_put_WindowStyle
,
1795 Videowindow_get_WindowStyle
,
1796 Videowindow_put_WindowStyleEx
,
1797 Videowindow_get_WindowStyleEx
,
1798 Videowindow_put_AutoShow
,
1799 Videowindow_get_AutoShow
,
1800 Videowindow_put_WindowState
,
1801 Videowindow_get_WindowState
,
1802 Videowindow_put_BackgroundPalette
,
1803 Videowindow_get_BackgroundPalette
,
1804 Videowindow_put_Visible
,
1805 Videowindow_get_Visible
,
1806 Videowindow_put_Left
,
1807 Videowindow_get_Left
,
1808 Videowindow_put_Width
,
1809 Videowindow_get_Width
,
1810 Videowindow_put_Top
,
1811 Videowindow_get_Top
,
1812 Videowindow_put_Height
,
1813 Videowindow_get_Height
,
1814 Videowindow_put_Owner
,
1815 Videowindow_get_Owner
,
1816 Videowindow_put_MessageDrain
,
1817 Videowindow_get_MessageDrain
,
1818 Videowindow_get_BorderColor
,
1819 Videowindow_put_BorderColor
,
1820 Videowindow_get_FullScreenMode
,
1821 Videowindow_put_FullScreenMode
,
1822 Videowindow_SetWindowForeground
,
1823 Videowindow_NotifyOwnerMessage
,
1824 Videowindow_SetWindowPosition
,
1825 Videowindow_GetWindowPosition
,
1826 Videowindow_GetMinIdealImageSize
,
1827 Videowindow_GetMaxIdealImageSize
,
1828 Videowindow_GetRestorePosition
,
1829 Videowindow_HideCursor
,
1830 Videowindow_IsCursorHidden
1834 /*** IUnknown methods ***/
1835 static HRESULT WINAPI
Mediaevent_QueryInterface(IMediaEventEx
*iface
,
1838 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1840 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
1842 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
1845 static ULONG WINAPI
Mediaevent_AddRef(IMediaEventEx
*iface
) {
1846 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1848 TRACE("(%p/%p)->()\n", This
, iface
);
1850 return Filtergraph_AddRef(This
);
1853 static ULONG WINAPI
Mediaevent_Release(IMediaEventEx
*iface
) {
1854 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1856 TRACE("(%p/%p)->()\n", This
, iface
);
1858 return Filtergraph_Release(This
);
1861 /*** IDispatch methods ***/
1862 static HRESULT WINAPI
Mediaevent_GetTypeInfoCount(IMediaEventEx
*iface
,
1864 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1866 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
1871 static HRESULT WINAPI
Mediaevent_GetTypeInfo(IMediaEventEx
*iface
,
1874 ITypeInfo
**ppTInfo
) {
1875 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1877 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
1882 static HRESULT WINAPI
Mediaevent_GetIDsOfNames(IMediaEventEx
*iface
,
1888 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1890 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
1895 static HRESULT WINAPI
Mediaevent_Invoke(IMediaEventEx
*iface
,
1896 DISPID dispIdMember
,
1900 DISPPARAMS
*pDispParams
,
1902 EXCEPINFO
*pExepInfo
,
1904 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1906 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
);
1911 /*** IMediaEvent methods ***/
1912 static HRESULT WINAPI
Mediaevent_GetEventHandle(IMediaEventEx
*iface
,
1914 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1916 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, hEvent
);
1921 static HRESULT WINAPI
Mediaevent_GetEvent(IMediaEventEx
*iface
,
1926 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1928 TRACE("(%p/%p)->(%p, %p, %p, %ld): stub !!!\n", This
, iface
, lEventCode
, lParam1
, lParam2
, msTimeout
);
1933 static HRESULT WINAPI
Mediaevent_WaitForCompletion(IMediaEventEx
*iface
,
1936 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1938 TRACE("(%p/%p)->(%ld, %p): stub !!!\n", This
, iface
, msTimeout
, pEvCode
);
1943 static HRESULT WINAPI
Mediaevent_CancelDefaultHandling(IMediaEventEx
*iface
,
1945 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1947 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lEvCode
);
1952 static HRESULT WINAPI
Mediaevent_RestoreDefaultHandling(IMediaEventEx
*iface
,
1954 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1956 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lEvCode
);
1961 static HRESULT WINAPI
Mediaevent_FreeEventParams(IMediaEventEx
*iface
,
1965 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1967 TRACE("(%p/%p)->(%ld, %08lx, %08lx): stub !!!\n", This
, iface
, lEvCode
, lParam1
, lParam2
);
1972 /*** IMediaEventEx methods ***/
1973 static HRESULT WINAPI
Mediaevent_SetNotifyWindow(IMediaEventEx
*iface
,
1976 LONG_PTR lInstanceData
) {
1977 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1979 TRACE("(%p/%p)->(%08lx, %ld, %08lx): stub !!!\n", This
, iface
, (DWORD
) hwnd
, lMsg
, lInstanceData
);
1984 static HRESULT WINAPI
Mediaevent_SetNotifyFlags(IMediaEventEx
*iface
,
1985 long lNoNotifyFlags
) {
1986 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1988 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lNoNotifyFlags
);
1993 static HRESULT WINAPI
Mediaevent_GetNotifyFlags(IMediaEventEx
*iface
,
1994 long *lplNoNotifyFlags
) {
1995 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1997 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, lplNoNotifyFlags
);
2003 static ICOM_VTABLE(IMediaEventEx
) IMediaEventEx_VTable
=
2005 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
2006 Mediaevent_QueryInterface
,
2009 Mediaevent_GetTypeInfoCount
,
2010 Mediaevent_GetTypeInfo
,
2011 Mediaevent_GetIDsOfNames
,
2013 Mediaevent_GetEventHandle
,
2014 Mediaevent_GetEvent
,
2015 Mediaevent_WaitForCompletion
,
2016 Mediaevent_CancelDefaultHandling
,
2017 Mediaevent_RestoreDefaultHandling
,
2018 Mediaevent_FreeEventParams
,
2019 Mediaevent_SetNotifyWindow
,
2020 Mediaevent_SetNotifyFlags
,
2021 Mediaevent_GetNotifyFlags
2025 static HRESULT WINAPI
MediaFilter_QueryInterface(IMediaFilter
*iface
, REFIID riid
, LPVOID
*ppv
)
2027 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
2029 return Filtergraph_QueryInterface(This
, riid
, ppv
);
2032 static ULONG WINAPI
MediaFilter_AddRef(IMediaFilter
*iface
)
2034 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
2036 return Filtergraph_AddRef(This
);
2039 static ULONG WINAPI
MediaFilter_Release(IMediaFilter
*iface
)
2041 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
2043 return Filtergraph_Release(This
);
2046 static HRESULT WINAPI
MediaFilter_GetClassID(IMediaFilter
*iface
, CLSID
* pClassID
)
2048 FIXME("(%p): stub\n", pClassID
);
2053 static HRESULT WINAPI
MediaFilter_Stop(IMediaFilter
*iface
)
2055 FIXME("(): stub\n");
2060 static HRESULT WINAPI
MediaFilter_Pause(IMediaFilter
*iface
)
2062 FIXME("(): stub\n");
2067 static HRESULT WINAPI
MediaFilter_Run(IMediaFilter
*iface
, REFERENCE_TIME tStart
)
2069 FIXME("(%lld): stub\n", tStart
);
2074 static HRESULT WINAPI
MediaFilter_GetState(IMediaFilter
*iface
, DWORD dwMsTimeout
, FILTER_STATE
* pState
)
2076 FIXME("(%ld, %p): stub\n", dwMsTimeout
, pState
);
2081 static HRESULT WINAPI
MediaFilter_SetSyncSource(IMediaFilter
*iface
, IReferenceClock
*pClock
)
2083 FIXME("(%p): stub\n", pClock
);
2088 static HRESULT WINAPI
MediaFilter_GetSyncSource(IMediaFilter
*iface
, IReferenceClock
**ppClock
)
2090 FIXME("(%p): stub\n", ppClock
);
2095 static ICOM_VTABLE(IMediaFilter
) IMediaFilter_VTable
=
2097 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
2098 MediaFilter_QueryInterface
,
2100 MediaFilter_Release
,
2101 MediaFilter_GetClassID
,
2105 MediaFilter_GetState
,
2106 MediaFilter_SetSyncSource
,
2107 MediaFilter_GetSyncSource
2110 /* This is the only function that actually creates a FilterGraph class... */
2111 HRESULT
FILTERGRAPH_create(IUnknown
*pUnkOuter
, LPVOID
*ppObj
) {
2112 IFilterGraphImpl
*fimpl
;
2114 TRACE("(%p,%p)\n", pUnkOuter
, ppObj
);
2116 fimpl
= (IFilterGraphImpl
*) HeapAlloc(GetProcessHeap(), 0, sizeof(*fimpl
));
2117 fimpl
->IGraphBuilder_vtbl
= &IGraphBuilder_VTable
;
2118 fimpl
->IMediaControl_vtbl
= &IMediaControl_VTable
;
2119 fimpl
->IMediaSeeking_vtbl
= &IMediaSeeking_VTable
;
2120 fimpl
->IBasicAudio_vtbl
= &IBasicAudio_VTable
;
2121 fimpl
->IBasicVideo_vtbl
= &IBasicVideo_VTable
;
2122 fimpl
->IVideoWindow_vtbl
= &IVideoWindow_VTable
;
2123 fimpl
->IMediaEventEx_vtbl
= &IMediaEventEx_VTable
;
2124 fimpl
->IMediaFilter_vtbl
= &IMediaFilter_VTable
;
2126 fimpl
->ppFiltersInGraph
= NULL
;
2127 fimpl
->pFilterNames
= NULL
;
2128 fimpl
->nFilters
= 0;
2129 fimpl
->filterCapacity
= 0;