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
29 #include "wine/debug.h"
31 #include "wine/unicode.h"
33 #include "quartz_private.h"
35 WINE_DEFAULT_DEBUG_CHANNEL(quartz
);
37 typedef struct _IFilterGraphImpl
{
38 ICOM_VTABLE(IGraphBuilder
) *IGraphBuilder_vtbl
;
39 ICOM_VTABLE(IMediaControl
) *IMediaControl_vtbl
;
40 ICOM_VTABLE(IMediaSeeking
) *IMediaSeeking_vtbl
;
41 ICOM_VTABLE(IBasicAudio
) *IBasicAudio_vtbl
;
42 ICOM_VTABLE(IBasicVideo
) *IBasicVideo_vtbl
;
43 ICOM_VTABLE(IVideoWindow
) *IVideoWindow_vtbl
;
44 ICOM_VTABLE(IMediaEventEx
) *IMediaEventEx_vtbl
;
45 ICOM_VTABLE(IMediaFilter
) *IMediaFilter_vtbl
;
57 /* IRegisterServiceProvider */
58 /* IResourceMananger */
59 /* IServiceProvider */
63 IBaseFilter
** ppFiltersInGraph
;
64 LPWSTR
* pFilterNames
;
70 static HRESULT
Filtergraph_QueryInterface(IFilterGraphImpl
*This
,
73 TRACE("(%p)->(%s (%p), %p)\n", This
, debugstr_guid(riid
), riid
, ppvObj
);
75 if (IsEqualGUID(&IID_IUnknown
, riid
) ||
76 IsEqualGUID(&IID_IGraphBuilder
, riid
)) {
77 *ppvObj
= &(This
->IGraphBuilder_vtbl
);
78 TRACE(" returning IGraphBuilder interface (%p)\n", *ppvObj
);
79 } else if (IsEqualGUID(&IID_IMediaControl
, riid
)) {
80 *ppvObj
= &(This
->IMediaControl_vtbl
);
81 TRACE(" returning IMediaControl interface (%p)\n", *ppvObj
);
82 } else if (IsEqualGUID(&IID_IMediaSeeking
, riid
)) {
83 *ppvObj
= &(This
->IMediaSeeking_vtbl
);
84 TRACE(" returning IMediaSeeking interface (%p)\n", *ppvObj
);
85 } else if (IsEqualGUID(&IID_IBasicAudio
, riid
)) {
86 *ppvObj
= &(This
->IBasicAudio_vtbl
);
87 TRACE(" returning IBasicAudio interface (%p)\n", *ppvObj
);
88 } else if (IsEqualGUID(&IID_IBasicVideo
, riid
)) {
89 *ppvObj
= &(This
->IBasicVideo_vtbl
);
90 TRACE(" returning IBasicVideo interface (%p)\n", *ppvObj
);
91 } else if (IsEqualGUID(&IID_IVideoWindow
, riid
)) {
92 *ppvObj
= &(This
->IVideoWindow_vtbl
);
93 TRACE(" returning IVideoWindow interface (%p)\n", *ppvObj
);
94 } else if (IsEqualGUID(&IID_IMediaEvent
, riid
) ||
95 IsEqualGUID(&IID_IMediaEventEx
, riid
)) {
96 *ppvObj
= &(This
->IMediaEventEx_vtbl
);
97 TRACE(" returning IMediaEvent(Ex) interface (%p)\n", *ppvObj
);
98 } else if (IsEqualGUID(&IID_IMediaFilter
, riid
) ||
99 IsEqualGUID(&IID_IPersist
, riid
)) {
100 *ppvObj
= &(This
->IMediaFilter_vtbl
);
101 TRACE(" returning IMediaFilter interface (%p)\n", *ppvObj
);
104 FIXME("unknown interface %s\n", debugstr_guid(riid
));
105 return E_NOINTERFACE
;
112 static ULONG
Filtergraph_AddRef(IFilterGraphImpl
*This
) {
113 TRACE("(%p)->(): new ref = %ld\n", This
, This
->ref
+ 1);
118 static ULONG
Filtergraph_Release(IFilterGraphImpl
*This
) {
121 TRACE("(%p)->(): new ref = %ld\n", This
, This
->ref
- 1);
125 HeapFree(GetProcessHeap(), 0, This
->ppFiltersInGraph
);
126 HeapFree(GetProcessHeap(), 0, This
->pFilterNames
);
127 HeapFree(GetProcessHeap(), 0, This
);
133 /*** IUnknown methods ***/
134 static HRESULT WINAPI
Graphbuilder_QueryInterface(IGraphBuilder
*iface
,
137 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
139 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
140 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
143 static ULONG WINAPI
Graphbuilder_AddRef(IGraphBuilder
*iface
) {
144 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
146 TRACE("(%p/%p)->() calling FilterGraph AddRef\n", This
, iface
);
148 return Filtergraph_AddRef(This
);
151 static ULONG WINAPI
Graphbuilder_Release(IGraphBuilder
*iface
) {
152 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
154 TRACE("(%p/%p)->() calling FilterGraph Release\n", This
, iface
);
156 return Filtergraph_Release(This
);
159 /*** IFilterGraph methods ***/
160 static HRESULT WINAPI
Graphbuilder_AddFilter(IGraphBuilder
*iface
,
161 IBaseFilter
*pFilter
,
163 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
167 TRACE("(%p/%p)->(%p, %s (%p))\n", This
, iface
, pFilter
, debugstr_w(pName
), pName
);
169 /* FIXME: generate name of filter if NULL */
171 if (This
->nFilters
+ 1 > This
->filterCapacity
)
173 int newCapacity
= 2*This
->filterCapacity
;
174 IBaseFilter
** ppNewFilters
= CoTaskMemAlloc(newCapacity
* sizeof(IBaseFilter
*));
175 LPWSTR
* pNewNames
= CoTaskMemAlloc(newCapacity
* sizeof(LPWSTR
));
176 memcpy(ppNewFilters
, This
->ppFiltersInGraph
, This
->nFilters
* sizeof(IBaseFilter
*));
177 memcpy(pNewNames
, This
->pFilterNames
, This
->nFilters
* sizeof(LPWSTR
));
178 CoTaskMemFree(This
->ppFiltersInGraph
);
179 CoTaskMemFree(This
->pFilterNames
);
180 This
->ppFiltersInGraph
= ppNewFilters
;
181 This
->pFilterNames
= pNewNames
;
182 This
->filterCapacity
= newCapacity
;
185 hr
= IBaseFilter_JoinFilterGraph(pFilter
, (IFilterGraph
*)This
, pName
);
189 size
= (strlenW(pName
) + 1) * sizeof(WCHAR
);
190 IBaseFilter_AddRef(pFilter
);
191 This
->ppFiltersInGraph
[This
->nFilters
] = pFilter
;
192 This
->pFilterNames
[This
->nFilters
] = CoTaskMemAlloc(size
);
193 memcpy(This
->pFilterNames
[This
->nFilters
], pName
, size
);
200 static HRESULT WINAPI
Graphbuilder_RemoveFilter(IGraphBuilder
*iface
,
201 IBaseFilter
*pFilter
) {
202 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
206 TRACE("(%p/%p)->(%p)\n", This
, iface
, pFilter
);
208 /* FIXME: check graph is stopped */
210 for (i
= 0; i
< This
->nFilters
; i
++)
212 if (This
->ppFiltersInGraph
[i
] == pFilter
)
214 /* FIXME: disconnect pins */
215 hr
= IBaseFilter_JoinFilterGraph(pFilter
, NULL
, This
->pFilterNames
[i
]);
218 IPin_Release(pFilter
);
219 CoTaskMemFree(This
->pFilterNames
[i
]);
220 memmove(This
->ppFiltersInGraph
+i
, This
->ppFiltersInGraph
+i
+1, sizeof(IBaseFilter
*)*(This
->nFilters
- 1 - i
));
221 memmove(This
->pFilterNames
+i
, This
->pFilterNames
+i
+1, sizeof(LPWSTR
)*(This
->nFilters
- 1 - i
));
229 return hr
; /* FIXME: check this error code */
232 static HRESULT WINAPI
Graphbuilder_EnumFilter(IGraphBuilder
*iface
,
233 IEnumFilters
**ppEnum
) {
234 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
236 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppEnum
);
241 static HRESULT WINAPI
Graphbuilder_FindFilterByName(IGraphBuilder
*iface
,
243 IBaseFilter
**ppFilter
) {
244 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
247 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_w(pName
), pName
, ppFilter
);
251 for (i
= 0; i
< This
->nFilters
; i
++)
253 if (!strcmpW(pName
, This
->pFilterNames
[i
]))
255 *ppFilter
= This
->ppFiltersInGraph
[i
];
256 IBaseFilter_AddRef(*ppFilter
);
261 return E_FAIL
; /* FIXME: check this error code */
264 static HRESULT WINAPI
Graphbuilder_ConnectDirect(IGraphBuilder
*iface
,
267 const AM_MEDIA_TYPE
*pmt
) {
268 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
270 TRACE("(%p/%p)->(%p, %p, %p)\n", This
, iface
, ppinIn
, ppinOut
, pmt
);
272 return IPin_Connect(ppinOut
, ppinIn
, pmt
);
275 static HRESULT WINAPI
Graphbuilder_Reconnect(IGraphBuilder
*iface
,
277 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
279 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppin
);
284 static HRESULT WINAPI
Graphbuilder_Disconnect(IGraphBuilder
*iface
,
286 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
288 TRACE("(%p/%p)->(%p)\n", This
, iface
, ppin
);
290 return IPin_Disconnect(ppin
);
293 static HRESULT WINAPI
Graphbuilder_SetDefaultSyncSource(IGraphBuilder
*iface
) {
294 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
296 TRACE("(%p/%p)->(): stub !!!\n", iface
, This
);
301 /*** IGraphBuilder methods ***/
302 static HRESULT WINAPI
Graphbuilder_Connect(IGraphBuilder
*iface
,
305 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
307 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, ppinOut
, ppinIn
);
312 static HRESULT WINAPI
Graphbuilder_Render(IGraphBuilder
*iface
,
314 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
316 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppinOut
);
321 static HRESULT WINAPI
Graphbuilder_RenderFile(IGraphBuilder
*iface
,
323 LPCWSTR lpcwstrPlayList
) {
324 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
326 TRACE("(%p/%p)->(%s (%p), %s (%p)): stub !!!\n", This
, iface
, debugstr_w(lpcwstrFile
), lpcwstrFile
, debugstr_w(lpcwstrPlayList
), lpcwstrPlayList
);
331 static HRESULT WINAPI
Graphbuilder_AddSourceFilter(IGraphBuilder
*iface
,
332 LPCWSTR lpcwstrFileName
,
333 LPCWSTR lpcwstrFilterName
,
334 IBaseFilter
**ppFilter
) {
335 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
337 TRACE("(%p/%p)->(%s (%p), %s (%p), %p): stub !!!\n", This
, iface
, debugstr_w(lpcwstrFileName
), lpcwstrFileName
, debugstr_w(lpcwstrFilterName
), lpcwstrFilterName
, ppFilter
);
342 static HRESULT WINAPI
Graphbuilder_SetLogFile(IGraphBuilder
*iface
,
344 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
346 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) hFile
);
351 static HRESULT WINAPI
Graphbuilder_Abort(IGraphBuilder
*iface
) {
352 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
354 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
359 static HRESULT WINAPI
Graphbuilder_ShouldOperationContinue(IGraphBuilder
*iface
) {
360 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
362 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
368 static ICOM_VTABLE(IGraphBuilder
) IGraphBuilder_VTable
=
370 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
371 Graphbuilder_QueryInterface
,
373 Graphbuilder_Release
,
374 Graphbuilder_AddFilter
,
375 Graphbuilder_RemoveFilter
,
376 Graphbuilder_EnumFilter
,
377 Graphbuilder_FindFilterByName
,
378 Graphbuilder_ConnectDirect
,
379 Graphbuilder_Reconnect
,
380 Graphbuilder_Disconnect
,
381 Graphbuilder_SetDefaultSyncSource
,
382 Graphbuilder_Connect
,
384 Graphbuilder_RenderFile
,
385 Graphbuilder_AddSourceFilter
,
386 Graphbuilder_SetLogFile
,
388 Graphbuilder_ShouldOperationContinue
391 /*** IUnknown methods ***/
392 static HRESULT WINAPI
Mediacontrol_QueryInterface(IMediaControl
*iface
,
395 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
397 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
399 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
402 static ULONG WINAPI
Mediacontrol_AddRef(IMediaControl
*iface
) {
403 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
405 TRACE("(%p/%p)->()\n", This
, iface
);
407 return Filtergraph_AddRef(This
);
410 static ULONG WINAPI
Mediacontrol_Release(IMediaControl
*iface
) {
411 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
413 TRACE("(%p/%p)->()\n", This
, iface
);
415 return Filtergraph_Release(This
);
419 /*** IDispatch methods ***/
420 static HRESULT WINAPI
Mediacontrol_GetTypeInfoCount(IMediaControl
*iface
,
422 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
424 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
429 static HRESULT WINAPI
Mediacontrol_GetTypeInfo(IMediaControl
*iface
,
432 ITypeInfo
**ppTInfo
) {
433 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
435 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
440 static HRESULT WINAPI
Mediacontrol_GetIDsOfNames(IMediaControl
*iface
,
446 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
448 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
453 static HRESULT WINAPI
Mediacontrol_Invoke(IMediaControl
*iface
,
458 DISPPARAMS
*pDispParams
,
462 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
464 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
);
469 /*** IMediaControl methods ***/
470 static HRESULT WINAPI
Mediacontrol_Run(IMediaControl
*iface
) {
471 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
473 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
478 static HRESULT WINAPI
Mediacontrol_Pause(IMediaControl
*iface
) {
479 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
481 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
486 static HRESULT WINAPI
Mediacontrol_Stop(IMediaControl
*iface
) {
487 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
489 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
494 static HRESULT WINAPI
Mediacontrol_GetState(IMediaControl
*iface
,
496 OAFilterState
*pfs
) {
497 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
499 TRACE("(%p/%p)->(%ld, %p): stub !!!\n", This
, iface
, msTimeout
, pfs
);
504 static HRESULT WINAPI
Mediacontrol_RenderFile(IMediaControl
*iface
,
506 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
508 TRACE("(%p/%p)->(%s (%p)): stub !!!\n", This
, iface
, debugstr_w(strFilename
), strFilename
);
513 static HRESULT WINAPI
Mediacontrol_AddSourceFilter(IMediaControl
*iface
,
516 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
518 TRACE("(%p/%p)->(%s (%p), %p): stub !!!\n", This
, iface
, debugstr_w(strFilename
), strFilename
, ppUnk
);
523 static HRESULT WINAPI
Mediacontrol_get_FilterCollection(IMediaControl
*iface
,
525 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
527 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppUnk
);
532 static HRESULT WINAPI
Mediacontrol_get_RegFilterCollection(IMediaControl
*iface
,
534 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
536 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppUnk
);
541 static HRESULT WINAPI
Mediacontrol_StopWhenReady(IMediaControl
*iface
) {
542 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
544 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
550 static ICOM_VTABLE(IMediaControl
) IMediaControl_VTable
=
552 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
553 Mediacontrol_QueryInterface
,
555 Mediacontrol_Release
,
556 Mediacontrol_GetTypeInfoCount
,
557 Mediacontrol_GetTypeInfo
,
558 Mediacontrol_GetIDsOfNames
,
563 Mediacontrol_GetState
,
564 Mediacontrol_RenderFile
,
565 Mediacontrol_AddSourceFilter
,
566 Mediacontrol_get_FilterCollection
,
567 Mediacontrol_get_RegFilterCollection
,
568 Mediacontrol_StopWhenReady
572 /*** IUnknown methods ***/
573 static HRESULT WINAPI
Mediaseeking_QueryInterface(IMediaSeeking
*iface
,
576 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
578 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
580 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
583 static ULONG WINAPI
Mediaseeking_AddRef(IMediaSeeking
*iface
) {
584 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
586 TRACE("(%p/%p)->()\n", This
, iface
);
588 return Filtergraph_AddRef(This
);
591 static ULONG WINAPI
Mediaseeking_Release(IMediaSeeking
*iface
) {
592 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
594 TRACE("(%p/%p)->()\n", This
, iface
);
596 return Filtergraph_Release(This
);
599 /*** IMediaSeeking methods ***/
600 static HRESULT WINAPI
Mediaseeking_GetCapabilities(IMediaSeeking
*iface
,
601 DWORD
*pCapabilities
) {
602 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
604 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pCapabilities
);
609 static HRESULT WINAPI
Mediaseeking_CheckCapabilities(IMediaSeeking
*iface
,
610 DWORD
*pCapabilities
) {
611 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
613 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pCapabilities
);
618 static HRESULT WINAPI
Mediaseeking_IsFormatSupported(IMediaSeeking
*iface
,
619 const GUID
*pFormat
) {
620 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
622 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
627 static HRESULT WINAPI
Mediaseeking_QueryPreferredFormat(IMediaSeeking
*iface
,
629 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
631 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
636 static HRESULT WINAPI
Mediaseeking_GetTimeFormat(IMediaSeeking
*iface
,
638 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
640 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
645 static HRESULT WINAPI
Mediaseeking_IsUsingTimeFormat(IMediaSeeking
*iface
,
646 const GUID
*pFormat
) {
647 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
649 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
654 static HRESULT WINAPI
Mediaseeking_SetTimeFormat(IMediaSeeking
*iface
,
655 const GUID
*pFormat
) {
656 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
658 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
663 static HRESULT WINAPI
Mediaseeking_GetDuration(IMediaSeeking
*iface
,
664 LONGLONG
*pDuration
) {
665 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
667 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDuration
);
672 static HRESULT WINAPI
Mediaseeking_GetStopPosition(IMediaSeeking
*iface
,
674 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
676 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pStop
);
681 static HRESULT WINAPI
Mediaseeking_GetCurrentPosition(IMediaSeeking
*iface
,
682 LONGLONG
*pCurrent
) {
683 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
685 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pCurrent
);
690 static HRESULT WINAPI
Mediaseeking_ConvertTimeFormat(IMediaSeeking
*iface
,
692 const GUID
*pTargetFormat
,
694 const GUID
*pSourceFormat
) {
695 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
697 TRACE("(%p/%p)->(%p, %p, %lld, %p): stub !!!\n", This
, iface
, pTarget
, pTargetFormat
, Source
, pSourceFormat
);
702 static HRESULT WINAPI
Mediaseeking_SetPositions(IMediaSeeking
*iface
,
704 DWORD dwCurrentFlags
,
707 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
709 TRACE("(%p/%p)->(%p, %08lx, %p, %08lx): stub !!!\n", This
, iface
, pCurrent
, dwCurrentFlags
, pStop
, dwStopFlags
);
714 static HRESULT WINAPI
Mediaseeking_GetPositions(IMediaSeeking
*iface
,
717 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
719 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pCurrent
, pStop
);
724 static HRESULT WINAPI
Mediaseeking_GetAvailable(IMediaSeeking
*iface
,
727 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
729 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pEarliest
, pLatest
);
734 static HRESULT WINAPI
Mediaseeking_SetRate(IMediaSeeking
*iface
,
736 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
738 TRACE("(%p/%p)->(%f): stub !!!\n", This
, iface
, dRate
);
743 static HRESULT WINAPI
Mediaseeking_GetRate(IMediaSeeking
*iface
,
745 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
747 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pdRate
);
752 static HRESULT WINAPI
Mediaseeking_GetPreroll(IMediaSeeking
*iface
,
753 LONGLONG
*pllPreroll
) {
754 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
756 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pllPreroll
);
762 static ICOM_VTABLE(IMediaSeeking
) IMediaSeeking_VTable
=
764 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
765 Mediaseeking_QueryInterface
,
767 Mediaseeking_Release
,
768 Mediaseeking_GetCapabilities
,
769 Mediaseeking_CheckCapabilities
,
770 Mediaseeking_IsFormatSupported
,
771 Mediaseeking_QueryPreferredFormat
,
772 Mediaseeking_GetTimeFormat
,
773 Mediaseeking_IsUsingTimeFormat
,
774 Mediaseeking_SetTimeFormat
,
775 Mediaseeking_GetDuration
,
776 Mediaseeking_GetStopPosition
,
777 Mediaseeking_GetCurrentPosition
,
778 Mediaseeking_ConvertTimeFormat
,
779 Mediaseeking_SetPositions
,
780 Mediaseeking_GetPositions
,
781 Mediaseeking_GetAvailable
,
782 Mediaseeking_SetRate
,
783 Mediaseeking_GetRate
,
784 Mediaseeking_GetPreroll
787 /*** IUnknown methods ***/
788 static HRESULT WINAPI
Basicaudio_QueryInterface(IBasicAudio
*iface
,
791 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
793 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
795 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
798 static ULONG WINAPI
Basicaudio_AddRef(IBasicAudio
*iface
) {
799 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
801 TRACE("(%p/%p)->()\n", This
, iface
);
803 return Filtergraph_AddRef(This
);
806 static ULONG WINAPI
Basicaudio_Release(IBasicAudio
*iface
) {
807 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
809 TRACE("(%p/%p)->()\n", This
, iface
);
811 return Filtergraph_Release(This
);
814 /*** IDispatch methods ***/
815 static HRESULT WINAPI
Basicaudio_GetTypeInfoCount(IBasicAudio
*iface
,
817 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
819 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
824 static HRESULT WINAPI
Basicaudio_GetTypeInfo(IBasicAudio
*iface
,
827 ITypeInfo
**ppTInfo
) {
828 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
830 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
835 static HRESULT WINAPI
Basicaudio_GetIDsOfNames(IBasicAudio
*iface
,
841 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
843 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
848 static HRESULT WINAPI
Basicaudio_Invoke(IBasicAudio
*iface
,
853 DISPPARAMS
*pDispParams
,
857 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
859 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
);
864 /*** IBasicAudio methods ***/
865 static HRESULT WINAPI
Basicaudio_put_Volume(IBasicAudio
*iface
,
867 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
869 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lVolume
);
874 static HRESULT WINAPI
Basicaudio_get_Volume(IBasicAudio
*iface
,
876 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
878 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, plVolume
);
883 static HRESULT WINAPI
Basicaudio_put_Balance(IBasicAudio
*iface
,
885 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
887 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lBalance
);
892 static HRESULT WINAPI
Basicaudio_get_Balance(IBasicAudio
*iface
,
894 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
896 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, plBalance
);
901 static ICOM_VTABLE(IBasicAudio
) IBasicAudio_VTable
=
903 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
904 Basicaudio_QueryInterface
,
907 Basicaudio_GetTypeInfoCount
,
908 Basicaudio_GetTypeInfo
,
909 Basicaudio_GetIDsOfNames
,
911 Basicaudio_put_Volume
,
912 Basicaudio_get_Volume
,
913 Basicaudio_put_Balance
,
914 Basicaudio_get_Balance
917 /*** IUnknown methods ***/
918 static HRESULT WINAPI
Basicvideo_QueryInterface(IBasicVideo
*iface
,
921 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
923 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
925 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
928 static ULONG WINAPI
Basicvideo_AddRef(IBasicVideo
*iface
) {
929 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
931 TRACE("(%p/%p)->()\n", This
, iface
);
933 return Filtergraph_AddRef(This
);
936 static ULONG WINAPI
Basicvideo_Release(IBasicVideo
*iface
) {
937 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
939 TRACE("(%p/%p)->()\n", This
, iface
);
941 return Filtergraph_Release(This
);
944 /*** IDispatch methods ***/
945 static HRESULT WINAPI
Basicvideo_GetTypeInfoCount(IBasicVideo
*iface
,
947 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
949 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
954 static HRESULT WINAPI
Basicvideo_GetTypeInfo(IBasicVideo
*iface
,
957 ITypeInfo
**ppTInfo
) {
958 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
960 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
965 static HRESULT WINAPI
Basicvideo_GetIDsOfNames(IBasicVideo
*iface
,
971 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
973 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
978 static HRESULT WINAPI
Basicvideo_Invoke(IBasicVideo
*iface
,
983 DISPPARAMS
*pDispParams
,
987 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
989 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
);
994 /*** IBasicVideo methods ***/
995 static HRESULT WINAPI
Basicvideo_get_AvgTimePerFrame(IBasicVideo
*iface
,
996 REFTIME
*pAvgTimePerFrame
) {
997 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
999 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pAvgTimePerFrame
);
1004 static HRESULT WINAPI
Basicvideo_get_BitRate(IBasicVideo
*iface
,
1006 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1008 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pBitRate
);
1013 static HRESULT WINAPI
Basicvideo_get_BitErrorRate(IBasicVideo
*iface
,
1014 long *pBitErrorRate
) {
1015 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1017 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pBitErrorRate
);
1022 static HRESULT WINAPI
Basicvideo_get_VideoWidth(IBasicVideo
*iface
,
1023 long *pVideoWidth
) {
1024 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1026 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pVideoWidth
);
1031 static HRESULT WINAPI
Basicvideo_get_VideoHeight(IBasicVideo
*iface
,
1032 long *pVideoHeight
) {
1033 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1035 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pVideoHeight
);
1040 static HRESULT WINAPI
Basicvideo_put_SourceLeft(IBasicVideo
*iface
,
1042 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1044 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceLeft
);
1049 static HRESULT WINAPI
Basicvideo_get_SourceLeft(IBasicVideo
*iface
,
1050 long *pSourceLeft
) {
1051 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1053 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceLeft
);
1058 static HRESULT WINAPI
Basicvideo_put_SourceWidth(IBasicVideo
*iface
,
1060 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1062 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceWidth
);
1067 static HRESULT WINAPI
Basicvideo_get_SourceWidth(IBasicVideo
*iface
,
1068 long *pSourceWidth
) {
1069 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1071 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceWidth
);
1076 static HRESULT WINAPI
Basicvideo_put_SourceTop(IBasicVideo
*iface
,
1078 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1080 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceTop
);
1085 static HRESULT WINAPI
Basicvideo_get_SourceTop(IBasicVideo
*iface
,
1087 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1089 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceTop
);
1094 static HRESULT WINAPI
Basicvideo_put_SourceHeight(IBasicVideo
*iface
,
1095 long SourceHeight
) {
1096 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1098 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceHeight
);
1103 static HRESULT WINAPI
Basicvideo_get_SourceHeight(IBasicVideo
*iface
,
1104 long *pSourceHeight
) {
1105 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1107 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceHeight
);
1112 static HRESULT WINAPI
Basicvideo_put_DestinationLeft(IBasicVideo
*iface
,
1113 long DestinationLeft
) {
1114 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1116 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationLeft
);
1121 static HRESULT WINAPI
Basicvideo_get_DestinationLeft(IBasicVideo
*iface
,
1122 long *pDestinationLeft
) {
1123 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1125 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationLeft
);
1130 static HRESULT WINAPI
Basicvideo_put_DestinationWidth(IBasicVideo
*iface
,
1131 long DestinationWidth
) {
1132 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1134 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationWidth
);
1139 static HRESULT WINAPI
Basicvideo_get_DestinationWidth(IBasicVideo
*iface
,
1140 long *pDestinationWidth
) {
1141 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1143 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationWidth
);
1148 static HRESULT WINAPI
Basicvideo_put_DestinationTop(IBasicVideo
*iface
,
1149 long DestinationTop
) {
1150 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1152 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationTop
);
1157 static HRESULT WINAPI
Basicvideo_get_DestinationTop(IBasicVideo
*iface
,
1158 long *pDestinationTop
) {
1159 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1161 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationTop
);
1166 static HRESULT WINAPI
Basicvideo_put_DestinationHeight(IBasicVideo
*iface
,
1167 long DestinationHeight
) {
1168 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1170 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationHeight
);
1175 static HRESULT WINAPI
Basicvideo_get_DestinationHeight(IBasicVideo
*iface
,
1176 long *pDestinationHeight
) {
1177 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1179 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationHeight
);
1184 static HRESULT WINAPI
Basicvideo_SetSourcePosition(IBasicVideo
*iface
,
1189 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1191 TRACE("(%p/%p)->(%ld, %ld, %ld, %ld): stub !!!\n", This
, iface
, Left
, Top
, Width
, Height
);
1196 static HRESULT WINAPI
Basicvideo_GetSourcePosition(IBasicVideo
*iface
,
1201 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1203 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1208 static HRESULT WINAPI
Basicvideo_SetDefaultSourcePosition(IBasicVideo
*iface
) {
1209 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1211 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1216 static HRESULT WINAPI
Basicvideo_SetDestinationPosition(IBasicVideo
*iface
,
1221 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1223 TRACE("(%p/%p)->(%ld, %ld, %ld, %ld): stub !!!\n", This
, iface
, Left
, Top
, Width
, Height
);
1228 static HRESULT WINAPI
Basicvideo_GetDestinationPosition(IBasicVideo
*iface
,
1233 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1235 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1240 static HRESULT WINAPI
Basicvideo_SetDefaultDestinationPosition(IBasicVideo
*iface
) {
1241 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1243 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1248 static HRESULT WINAPI
Basicvideo_GetVideoSize(IBasicVideo
*iface
,
1251 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1253 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pWidth
, pHeight
);
1258 static HRESULT WINAPI
Basicvideo_GetVideoPaletteEntries(IBasicVideo
*iface
,
1263 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1265 TRACE("(%p/%p)->(%ld, %ld, %p, %p): stub !!!\n", This
, iface
, StartIndex
, Entries
, pRetrieved
, pPalette
);
1270 static HRESULT WINAPI
Basicvideo_GetCurrentImage(IBasicVideo
*iface
,
1273 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1275 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pBufferSize
, pDIBImage
);
1280 static HRESULT WINAPI
Basicvideo_IsUsingDefaultSource(IBasicVideo
*iface
) {
1281 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1283 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1288 static HRESULT WINAPI
Basicvideo_IsUsingDefaultDestination(IBasicVideo
*iface
) {
1289 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1291 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1297 static ICOM_VTABLE(IBasicVideo
) IBasicVideo_VTable
=
1299 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
1300 Basicvideo_QueryInterface
,
1303 Basicvideo_GetTypeInfoCount
,
1304 Basicvideo_GetTypeInfo
,
1305 Basicvideo_GetIDsOfNames
,
1307 Basicvideo_get_AvgTimePerFrame
,
1308 Basicvideo_get_BitRate
,
1309 Basicvideo_get_BitErrorRate
,
1310 Basicvideo_get_VideoWidth
,
1311 Basicvideo_get_VideoHeight
,
1312 Basicvideo_put_SourceLeft
,
1313 Basicvideo_get_SourceLeft
,
1314 Basicvideo_put_SourceWidth
,
1315 Basicvideo_get_SourceWidth
,
1316 Basicvideo_put_SourceTop
,
1317 Basicvideo_get_SourceTop
,
1318 Basicvideo_put_SourceHeight
,
1319 Basicvideo_get_SourceHeight
,
1320 Basicvideo_put_DestinationLeft
,
1321 Basicvideo_get_DestinationLeft
,
1322 Basicvideo_put_DestinationWidth
,
1323 Basicvideo_get_DestinationWidth
,
1324 Basicvideo_put_DestinationTop
,
1325 Basicvideo_get_DestinationTop
,
1326 Basicvideo_put_DestinationHeight
,
1327 Basicvideo_get_DestinationHeight
,
1328 Basicvideo_SetSourcePosition
,
1329 Basicvideo_GetSourcePosition
,
1330 Basicvideo_SetDefaultSourcePosition
,
1331 Basicvideo_SetDestinationPosition
,
1332 Basicvideo_GetDestinationPosition
,
1333 Basicvideo_SetDefaultDestinationPosition
,
1334 Basicvideo_GetVideoSize
,
1335 Basicvideo_GetVideoPaletteEntries
,
1336 Basicvideo_GetCurrentImage
,
1337 Basicvideo_IsUsingDefaultSource
,
1338 Basicvideo_IsUsingDefaultDestination
1342 /*** IUnknown methods ***/
1343 static HRESULT WINAPI
Videowindow_QueryInterface(IVideoWindow
*iface
,
1346 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1348 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
1350 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
1353 static ULONG WINAPI
Videowindow_AddRef(IVideoWindow
*iface
) {
1354 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1356 TRACE("(%p/%p)->()\n", This
, iface
);
1358 return Filtergraph_AddRef(This
);
1361 static ULONG WINAPI
Videowindow_Release(IVideoWindow
*iface
) {
1362 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1364 TRACE("(%p/%p)->()\n", This
, iface
);
1366 return Filtergraph_Release(This
);
1369 /*** IDispatch methods ***/
1370 static HRESULT WINAPI
Videowindow_GetTypeInfoCount(IVideoWindow
*iface
,
1372 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1374 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
1379 static HRESULT WINAPI
Videowindow_GetTypeInfo(IVideoWindow
*iface
,
1382 ITypeInfo
**ppTInfo
) {
1383 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1385 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
1390 static HRESULT WINAPI
Videowindow_GetIDsOfNames(IVideoWindow
*iface
,
1396 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1398 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
1403 static HRESULT WINAPI
Videowindow_Invoke(IVideoWindow
*iface
,
1404 DISPID dispIdMember
,
1408 DISPPARAMS
*pDispParams
,
1410 EXCEPINFO
*pExepInfo
,
1412 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1414 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
);
1419 /*** IVideoWindow methods ***/
1420 static HRESULT WINAPI
Videowindow_put_Caption(IVideoWindow
*iface
,
1422 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1424 TRACE("(%p/%p)->(%s (%p)): stub !!!\n", This
, iface
, debugstr_w(strCaption
), strCaption
);
1429 static HRESULT WINAPI
Videowindow_get_Caption(IVideoWindow
*iface
,
1431 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1433 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, strCaption
);
1438 static HRESULT WINAPI
Videowindow_put_WindowStyle(IVideoWindow
*iface
,
1440 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1442 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, WindowStyle
);
1447 static HRESULT WINAPI
Videowindow_get_WindowStyle(IVideoWindow
*iface
,
1448 long *WindowStyle
) {
1449 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1451 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, WindowStyle
);
1456 static HRESULT WINAPI
Videowindow_put_WindowStyleEx(IVideoWindow
*iface
,
1457 long WindowStyleEx
) {
1458 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1460 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, WindowStyleEx
);
1465 static HRESULT WINAPI
Videowindow_get_WindowStyleEx(IVideoWindow
*iface
,
1466 long *WindowStyleEx
) {
1467 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1469 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, WindowStyleEx
);
1474 static HRESULT WINAPI
Videowindow_put_AutoShow(IVideoWindow
*iface
,
1476 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1478 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, AutoShow
);
1483 static HRESULT WINAPI
Videowindow_get_AutoShow(IVideoWindow
*iface
,
1485 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1487 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, AutoShow
);
1492 static HRESULT WINAPI
Videowindow_put_WindowState(IVideoWindow
*iface
,
1494 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1496 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, WindowState
);
1501 static HRESULT WINAPI
Videowindow_get_WindowState(IVideoWindow
*iface
,
1502 long *WindowState
) {
1503 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1505 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, WindowState
);
1510 static HRESULT WINAPI
Videowindow_put_BackgroundPalette(IVideoWindow
*iface
,
1511 long BackgroundPalette
) {
1512 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1514 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, BackgroundPalette
);
1519 static HRESULT WINAPI
Videowindow_get_BackgroundPalette(IVideoWindow
*iface
,
1520 long *pBackgroundPalette
) {
1521 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1523 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pBackgroundPalette
);
1528 static HRESULT WINAPI
Videowindow_put_Visible(IVideoWindow
*iface
,
1530 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1532 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Visible
);
1537 static HRESULT WINAPI
Videowindow_get_Visible(IVideoWindow
*iface
,
1539 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1541 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pVisible
);
1546 static HRESULT WINAPI
Videowindow_put_Left(IVideoWindow
*iface
,
1548 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1550 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Left
);
1555 static HRESULT WINAPI
Videowindow_get_Left(IVideoWindow
*iface
,
1557 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1559 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pLeft
);
1564 static HRESULT WINAPI
Videowindow_put_Width(IVideoWindow
*iface
,
1566 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1568 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Width
);
1573 static HRESULT WINAPI
Videowindow_get_Width(IVideoWindow
*iface
,
1575 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1577 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pWidth
);
1582 static HRESULT WINAPI
Videowindow_put_Top(IVideoWindow
*iface
,
1584 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1586 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Top
);
1591 static HRESULT WINAPI
Videowindow_get_Top(IVideoWindow
*iface
,
1593 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1595 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pTop
);
1600 static HRESULT WINAPI
Videowindow_put_Height(IVideoWindow
*iface
,
1602 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1604 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Height
);
1609 static HRESULT WINAPI
Videowindow_get_Height(IVideoWindow
*iface
,
1611 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1613 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pHeight
);
1618 static HRESULT WINAPI
Videowindow_put_Owner(IVideoWindow
*iface
,
1620 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1622 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) Owner
);
1627 static HRESULT WINAPI
Videowindow_get_Owner(IVideoWindow
*iface
,
1629 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1631 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) Owner
);
1636 static HRESULT WINAPI
Videowindow_put_MessageDrain(IVideoWindow
*iface
,
1638 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1640 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) Drain
);
1645 static HRESULT WINAPI
Videowindow_get_MessageDrain(IVideoWindow
*iface
,
1647 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1649 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, Drain
);
1654 static HRESULT WINAPI
Videowindow_get_BorderColor(IVideoWindow
*iface
,
1656 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1658 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, Color
);
1663 static HRESULT WINAPI
Videowindow_put_BorderColor(IVideoWindow
*iface
,
1665 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1667 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Color
);
1672 static HRESULT WINAPI
Videowindow_get_FullScreenMode(IVideoWindow
*iface
,
1673 long *FullScreenMode
) {
1674 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1676 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, FullScreenMode
);
1681 static HRESULT WINAPI
Videowindow_put_FullScreenMode(IVideoWindow
*iface
,
1682 long FullScreenMode
) {
1683 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1685 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, FullScreenMode
);
1690 static HRESULT WINAPI
Videowindow_SetWindowForeground(IVideoWindow
*iface
,
1692 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1694 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Focus
);
1699 static HRESULT WINAPI
Videowindow_NotifyOwnerMessage(IVideoWindow
*iface
,
1704 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1706 TRACE("(%p/%p)->(%08lx, %ld, %08lx, %08lx): stub !!!\n", This
, iface
, (DWORD
) hwnd
, uMsg
, wParam
, lParam
);
1711 static HRESULT WINAPI
Videowindow_SetWindowPosition(IVideoWindow
*iface
,
1716 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1718 TRACE("(%p/%p)->(%ld, %ld, %ld, %ld): stub !!!\n", This
, iface
, Left
, Top
, Width
, Height
);
1723 static HRESULT WINAPI
Videowindow_GetWindowPosition(IVideoWindow
*iface
,
1728 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1730 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1735 static HRESULT WINAPI
Videowindow_GetMinIdealImageSize(IVideoWindow
*iface
,
1738 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1740 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pWidth
, pHeight
);
1745 static HRESULT WINAPI
Videowindow_GetMaxIdealImageSize(IVideoWindow
*iface
,
1748 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1750 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pWidth
, pHeight
);
1755 static HRESULT WINAPI
Videowindow_GetRestorePosition(IVideoWindow
*iface
,
1760 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1762 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1767 static HRESULT WINAPI
Videowindow_HideCursor(IVideoWindow
*iface
,
1769 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1771 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, HideCursor
);
1776 static HRESULT WINAPI
Videowindow_IsCursorHidden(IVideoWindow
*iface
,
1777 long *CursorHidden
) {
1778 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1780 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, CursorHidden
);
1786 static ICOM_VTABLE(IVideoWindow
) IVideoWindow_VTable
=
1788 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
1789 Videowindow_QueryInterface
,
1791 Videowindow_Release
,
1792 Videowindow_GetTypeInfoCount
,
1793 Videowindow_GetTypeInfo
,
1794 Videowindow_GetIDsOfNames
,
1796 Videowindow_put_Caption
,
1797 Videowindow_get_Caption
,
1798 Videowindow_put_WindowStyle
,
1799 Videowindow_get_WindowStyle
,
1800 Videowindow_put_WindowStyleEx
,
1801 Videowindow_get_WindowStyleEx
,
1802 Videowindow_put_AutoShow
,
1803 Videowindow_get_AutoShow
,
1804 Videowindow_put_WindowState
,
1805 Videowindow_get_WindowState
,
1806 Videowindow_put_BackgroundPalette
,
1807 Videowindow_get_BackgroundPalette
,
1808 Videowindow_put_Visible
,
1809 Videowindow_get_Visible
,
1810 Videowindow_put_Left
,
1811 Videowindow_get_Left
,
1812 Videowindow_put_Width
,
1813 Videowindow_get_Width
,
1814 Videowindow_put_Top
,
1815 Videowindow_get_Top
,
1816 Videowindow_put_Height
,
1817 Videowindow_get_Height
,
1818 Videowindow_put_Owner
,
1819 Videowindow_get_Owner
,
1820 Videowindow_put_MessageDrain
,
1821 Videowindow_get_MessageDrain
,
1822 Videowindow_get_BorderColor
,
1823 Videowindow_put_BorderColor
,
1824 Videowindow_get_FullScreenMode
,
1825 Videowindow_put_FullScreenMode
,
1826 Videowindow_SetWindowForeground
,
1827 Videowindow_NotifyOwnerMessage
,
1828 Videowindow_SetWindowPosition
,
1829 Videowindow_GetWindowPosition
,
1830 Videowindow_GetMinIdealImageSize
,
1831 Videowindow_GetMaxIdealImageSize
,
1832 Videowindow_GetRestorePosition
,
1833 Videowindow_HideCursor
,
1834 Videowindow_IsCursorHidden
1838 /*** IUnknown methods ***/
1839 static HRESULT WINAPI
Mediaevent_QueryInterface(IMediaEventEx
*iface
,
1842 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1844 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
1846 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
1849 static ULONG WINAPI
Mediaevent_AddRef(IMediaEventEx
*iface
) {
1850 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1852 TRACE("(%p/%p)->()\n", This
, iface
);
1854 return Filtergraph_AddRef(This
);
1857 static ULONG WINAPI
Mediaevent_Release(IMediaEventEx
*iface
) {
1858 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1860 TRACE("(%p/%p)->()\n", This
, iface
);
1862 return Filtergraph_Release(This
);
1865 /*** IDispatch methods ***/
1866 static HRESULT WINAPI
Mediaevent_GetTypeInfoCount(IMediaEventEx
*iface
,
1868 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1870 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
1875 static HRESULT WINAPI
Mediaevent_GetTypeInfo(IMediaEventEx
*iface
,
1878 ITypeInfo
**ppTInfo
) {
1879 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1881 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
1886 static HRESULT WINAPI
Mediaevent_GetIDsOfNames(IMediaEventEx
*iface
,
1892 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1894 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
1899 static HRESULT WINAPI
Mediaevent_Invoke(IMediaEventEx
*iface
,
1900 DISPID dispIdMember
,
1904 DISPPARAMS
*pDispParams
,
1906 EXCEPINFO
*pExepInfo
,
1908 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1910 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
);
1915 /*** IMediaEvent methods ***/
1916 static HRESULT WINAPI
Mediaevent_GetEventHandle(IMediaEventEx
*iface
,
1918 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1920 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, hEvent
);
1925 static HRESULT WINAPI
Mediaevent_GetEvent(IMediaEventEx
*iface
,
1930 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1932 TRACE("(%p/%p)->(%p, %p, %p, %ld): stub !!!\n", This
, iface
, lEventCode
, lParam1
, lParam2
, msTimeout
);
1937 static HRESULT WINAPI
Mediaevent_WaitForCompletion(IMediaEventEx
*iface
,
1940 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1942 TRACE("(%p/%p)->(%ld, %p): stub !!!\n", This
, iface
, msTimeout
, pEvCode
);
1947 static HRESULT WINAPI
Mediaevent_CancelDefaultHandling(IMediaEventEx
*iface
,
1949 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1951 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lEvCode
);
1956 static HRESULT WINAPI
Mediaevent_RestoreDefaultHandling(IMediaEventEx
*iface
,
1958 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1960 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lEvCode
);
1965 static HRESULT WINAPI
Mediaevent_FreeEventParams(IMediaEventEx
*iface
,
1969 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1971 TRACE("(%p/%p)->(%ld, %08lx, %08lx): stub !!!\n", This
, iface
, lEvCode
, lParam1
, lParam2
);
1976 /*** IMediaEventEx methods ***/
1977 static HRESULT WINAPI
Mediaevent_SetNotifyWindow(IMediaEventEx
*iface
,
1980 LONG_PTR lInstanceData
) {
1981 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1983 TRACE("(%p/%p)->(%08lx, %ld, %08lx): stub !!!\n", This
, iface
, (DWORD
) hwnd
, lMsg
, lInstanceData
);
1988 static HRESULT WINAPI
Mediaevent_SetNotifyFlags(IMediaEventEx
*iface
,
1989 long lNoNotifyFlags
) {
1990 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1992 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lNoNotifyFlags
);
1997 static HRESULT WINAPI
Mediaevent_GetNotifyFlags(IMediaEventEx
*iface
,
1998 long *lplNoNotifyFlags
) {
1999 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
2001 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, lplNoNotifyFlags
);
2007 static ICOM_VTABLE(IMediaEventEx
) IMediaEventEx_VTable
=
2009 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
2010 Mediaevent_QueryInterface
,
2013 Mediaevent_GetTypeInfoCount
,
2014 Mediaevent_GetTypeInfo
,
2015 Mediaevent_GetIDsOfNames
,
2017 Mediaevent_GetEventHandle
,
2018 Mediaevent_GetEvent
,
2019 Mediaevent_WaitForCompletion
,
2020 Mediaevent_CancelDefaultHandling
,
2021 Mediaevent_RestoreDefaultHandling
,
2022 Mediaevent_FreeEventParams
,
2023 Mediaevent_SetNotifyWindow
,
2024 Mediaevent_SetNotifyFlags
,
2025 Mediaevent_GetNotifyFlags
2029 static HRESULT WINAPI
MediaFilter_QueryInterface(IMediaFilter
*iface
, REFIID riid
, LPVOID
*ppv
)
2031 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
2033 return Filtergraph_QueryInterface(This
, riid
, ppv
);
2036 static ULONG WINAPI
MediaFilter_AddRef(IMediaFilter
*iface
)
2038 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
2040 return Filtergraph_AddRef(This
);
2043 static ULONG WINAPI
MediaFilter_Release(IMediaFilter
*iface
)
2045 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
2047 return Filtergraph_Release(This
);
2050 static HRESULT WINAPI
MediaFilter_GetClassID(IMediaFilter
*iface
, CLSID
* pClassID
)
2052 FIXME("(%p): stub\n", pClassID
);
2057 static HRESULT WINAPI
MediaFilter_Stop(IMediaFilter
*iface
)
2059 FIXME("(): stub\n");
2064 static HRESULT WINAPI
MediaFilter_Pause(IMediaFilter
*iface
)
2066 FIXME("(): stub\n");
2071 static HRESULT WINAPI
MediaFilter_Run(IMediaFilter
*iface
, REFERENCE_TIME tStart
)
2073 FIXME("(%lld): stub\n", tStart
);
2078 static HRESULT WINAPI
MediaFilter_GetState(IMediaFilter
*iface
, DWORD dwMsTimeout
, FILTER_STATE
* pState
)
2080 FIXME("(%ld, %p): stub\n", dwMsTimeout
, pState
);
2085 static HRESULT WINAPI
MediaFilter_SetSyncSource(IMediaFilter
*iface
, IReferenceClock
*pClock
)
2087 FIXME("(%p): stub\n", pClock
);
2092 static HRESULT WINAPI
MediaFilter_GetSyncSource(IMediaFilter
*iface
, IReferenceClock
**ppClock
)
2094 FIXME("(%p): stub\n", ppClock
);
2099 static ICOM_VTABLE(IMediaFilter
) IMediaFilter_VTable
=
2101 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
2102 MediaFilter_QueryInterface
,
2104 MediaFilter_Release
,
2105 MediaFilter_GetClassID
,
2109 MediaFilter_GetState
,
2110 MediaFilter_SetSyncSource
,
2111 MediaFilter_GetSyncSource
2114 /* This is the only function that actually creates a FilterGraph class... */
2115 HRESULT
FILTERGRAPH_create(IUnknown
*pUnkOuter
, LPVOID
*ppObj
) {
2116 IFilterGraphImpl
*fimpl
;
2118 TRACE("(%p,%p)\n", pUnkOuter
, ppObj
);
2120 fimpl
= (IFilterGraphImpl
*) HeapAlloc(GetProcessHeap(), 0, sizeof(*fimpl
));
2121 fimpl
->IGraphBuilder_vtbl
= &IGraphBuilder_VTable
;
2122 fimpl
->IMediaControl_vtbl
= &IMediaControl_VTable
;
2123 fimpl
->IMediaSeeking_vtbl
= &IMediaSeeking_VTable
;
2124 fimpl
->IBasicAudio_vtbl
= &IBasicAudio_VTable
;
2125 fimpl
->IBasicVideo_vtbl
= &IBasicVideo_VTable
;
2126 fimpl
->IVideoWindow_vtbl
= &IVideoWindow_VTable
;
2127 fimpl
->IMediaEventEx_vtbl
= &IMediaEventEx_VTable
;
2128 fimpl
->IMediaFilter_vtbl
= &IMediaFilter_VTable
;
2130 fimpl
->ppFiltersInGraph
= NULL
;
2131 fimpl
->pFilterNames
= NULL
;
2132 fimpl
->nFilters
= 0;
2133 fimpl
->filterCapacity
= 0;