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;