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 /* NOTE: despite the implication, it doesn't matter which
265 * way round you put in the input and output pins */
266 static HRESULT WINAPI
Graphbuilder_ConnectDirect(IGraphBuilder
*iface
,
269 const AM_MEDIA_TYPE
*pmt
) {
273 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
275 TRACE("(%p/%p)->(%p, %p, %p)\n", This
, iface
, ppinIn
, ppinOut
, pmt
);
277 /* FIXME: check pins are in graph */
279 hr
= IPin_QueryDirection(ppinIn
, &dir
);
282 if (dir
== PINDIR_INPUT
)
283 hr
= IPin_Connect(ppinOut
, ppinIn
, pmt
);
285 hr
= IPin_Connect(ppinIn
, ppinOut
, pmt
);
291 static HRESULT WINAPI
Graphbuilder_Reconnect(IGraphBuilder
*iface
,
293 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
295 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppin
);
300 static HRESULT WINAPI
Graphbuilder_Disconnect(IGraphBuilder
*iface
,
302 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
304 TRACE("(%p/%p)->(%p)\n", This
, iface
, ppin
);
306 return IPin_Disconnect(ppin
);
309 static HRESULT WINAPI
Graphbuilder_SetDefaultSyncSource(IGraphBuilder
*iface
) {
310 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
312 TRACE("(%p/%p)->(): stub !!!\n", iface
, This
);
317 /*** IGraphBuilder methods ***/
318 static HRESULT WINAPI
Graphbuilder_Connect(IGraphBuilder
*iface
,
321 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
323 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, ppinOut
, ppinIn
);
328 static HRESULT WINAPI
Graphbuilder_Render(IGraphBuilder
*iface
,
330 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
332 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppinOut
);
337 static HRESULT WINAPI
Graphbuilder_RenderFile(IGraphBuilder
*iface
,
339 LPCWSTR lpcwstrPlayList
) {
340 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
342 TRACE("(%p/%p)->(%s (%p), %s (%p)): stub !!!\n", This
, iface
, debugstr_w(lpcwstrFile
), lpcwstrFile
, debugstr_w(lpcwstrPlayList
), lpcwstrPlayList
);
347 static HRESULT WINAPI
Graphbuilder_AddSourceFilter(IGraphBuilder
*iface
,
348 LPCWSTR lpcwstrFileName
,
349 LPCWSTR lpcwstrFilterName
,
350 IBaseFilter
**ppFilter
) {
351 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
353 TRACE("(%p/%p)->(%s (%p), %s (%p), %p): stub !!!\n", This
, iface
, debugstr_w(lpcwstrFileName
), lpcwstrFileName
, debugstr_w(lpcwstrFilterName
), lpcwstrFilterName
, ppFilter
);
358 static HRESULT WINAPI
Graphbuilder_SetLogFile(IGraphBuilder
*iface
,
360 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
362 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) hFile
);
367 static HRESULT WINAPI
Graphbuilder_Abort(IGraphBuilder
*iface
) {
368 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
370 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
375 static HRESULT WINAPI
Graphbuilder_ShouldOperationContinue(IGraphBuilder
*iface
) {
376 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
378 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
384 static ICOM_VTABLE(IGraphBuilder
) IGraphBuilder_VTable
=
386 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
387 Graphbuilder_QueryInterface
,
389 Graphbuilder_Release
,
390 Graphbuilder_AddFilter
,
391 Graphbuilder_RemoveFilter
,
392 Graphbuilder_EnumFilter
,
393 Graphbuilder_FindFilterByName
,
394 Graphbuilder_ConnectDirect
,
395 Graphbuilder_Reconnect
,
396 Graphbuilder_Disconnect
,
397 Graphbuilder_SetDefaultSyncSource
,
398 Graphbuilder_Connect
,
400 Graphbuilder_RenderFile
,
401 Graphbuilder_AddSourceFilter
,
402 Graphbuilder_SetLogFile
,
404 Graphbuilder_ShouldOperationContinue
407 /*** IUnknown methods ***/
408 static HRESULT WINAPI
Mediacontrol_QueryInterface(IMediaControl
*iface
,
411 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
413 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
415 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
418 static ULONG WINAPI
Mediacontrol_AddRef(IMediaControl
*iface
) {
419 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
421 TRACE("(%p/%p)->()\n", This
, iface
);
423 return Filtergraph_AddRef(This
);
426 static ULONG WINAPI
Mediacontrol_Release(IMediaControl
*iface
) {
427 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
429 TRACE("(%p/%p)->()\n", This
, iface
);
431 return Filtergraph_Release(This
);
435 /*** IDispatch methods ***/
436 static HRESULT WINAPI
Mediacontrol_GetTypeInfoCount(IMediaControl
*iface
,
438 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
440 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
445 static HRESULT WINAPI
Mediacontrol_GetTypeInfo(IMediaControl
*iface
,
448 ITypeInfo
**ppTInfo
) {
449 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
451 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
456 static HRESULT WINAPI
Mediacontrol_GetIDsOfNames(IMediaControl
*iface
,
462 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
464 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
469 static HRESULT WINAPI
Mediacontrol_Invoke(IMediaControl
*iface
,
474 DISPPARAMS
*pDispParams
,
478 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
480 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
);
485 /*** IMediaControl methods ***/
486 static HRESULT WINAPI
Mediacontrol_Run(IMediaControl
*iface
) {
487 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
489 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
494 static HRESULT WINAPI
Mediacontrol_Pause(IMediaControl
*iface
) {
495 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
497 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
502 static HRESULT WINAPI
Mediacontrol_Stop(IMediaControl
*iface
) {
503 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
505 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
510 static HRESULT WINAPI
Mediacontrol_GetState(IMediaControl
*iface
,
512 OAFilterState
*pfs
) {
513 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
515 TRACE("(%p/%p)->(%ld, %p): stub !!!\n", This
, iface
, msTimeout
, pfs
);
520 static HRESULT WINAPI
Mediacontrol_RenderFile(IMediaControl
*iface
,
522 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
524 TRACE("(%p/%p)->(%s (%p)): stub !!!\n", This
, iface
, debugstr_w(strFilename
), strFilename
);
529 static HRESULT WINAPI
Mediacontrol_AddSourceFilter(IMediaControl
*iface
,
532 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
534 TRACE("(%p/%p)->(%s (%p), %p): stub !!!\n", This
, iface
, debugstr_w(strFilename
), strFilename
, ppUnk
);
539 static HRESULT WINAPI
Mediacontrol_get_FilterCollection(IMediaControl
*iface
,
541 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
543 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppUnk
);
548 static HRESULT WINAPI
Mediacontrol_get_RegFilterCollection(IMediaControl
*iface
,
550 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
552 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppUnk
);
557 static HRESULT WINAPI
Mediacontrol_StopWhenReady(IMediaControl
*iface
) {
558 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
560 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
566 static ICOM_VTABLE(IMediaControl
) IMediaControl_VTable
=
568 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
569 Mediacontrol_QueryInterface
,
571 Mediacontrol_Release
,
572 Mediacontrol_GetTypeInfoCount
,
573 Mediacontrol_GetTypeInfo
,
574 Mediacontrol_GetIDsOfNames
,
579 Mediacontrol_GetState
,
580 Mediacontrol_RenderFile
,
581 Mediacontrol_AddSourceFilter
,
582 Mediacontrol_get_FilterCollection
,
583 Mediacontrol_get_RegFilterCollection
,
584 Mediacontrol_StopWhenReady
588 /*** IUnknown methods ***/
589 static HRESULT WINAPI
Mediaseeking_QueryInterface(IMediaSeeking
*iface
,
592 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
594 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
596 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
599 static ULONG WINAPI
Mediaseeking_AddRef(IMediaSeeking
*iface
) {
600 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
602 TRACE("(%p/%p)->()\n", This
, iface
);
604 return Filtergraph_AddRef(This
);
607 static ULONG WINAPI
Mediaseeking_Release(IMediaSeeking
*iface
) {
608 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
610 TRACE("(%p/%p)->()\n", This
, iface
);
612 return Filtergraph_Release(This
);
615 /*** IMediaSeeking methods ***/
616 static HRESULT WINAPI
Mediaseeking_GetCapabilities(IMediaSeeking
*iface
,
617 DWORD
*pCapabilities
) {
618 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
620 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pCapabilities
);
625 static HRESULT WINAPI
Mediaseeking_CheckCapabilities(IMediaSeeking
*iface
,
626 DWORD
*pCapabilities
) {
627 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
629 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pCapabilities
);
634 static HRESULT WINAPI
Mediaseeking_IsFormatSupported(IMediaSeeking
*iface
,
635 const GUID
*pFormat
) {
636 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
638 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
643 static HRESULT WINAPI
Mediaseeking_QueryPreferredFormat(IMediaSeeking
*iface
,
645 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
647 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
652 static HRESULT WINAPI
Mediaseeking_GetTimeFormat(IMediaSeeking
*iface
,
654 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
656 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
661 static HRESULT WINAPI
Mediaseeking_IsUsingTimeFormat(IMediaSeeking
*iface
,
662 const GUID
*pFormat
) {
663 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
665 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
670 static HRESULT WINAPI
Mediaseeking_SetTimeFormat(IMediaSeeking
*iface
,
671 const GUID
*pFormat
) {
672 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
674 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
679 static HRESULT WINAPI
Mediaseeking_GetDuration(IMediaSeeking
*iface
,
680 LONGLONG
*pDuration
) {
681 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
683 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDuration
);
688 static HRESULT WINAPI
Mediaseeking_GetStopPosition(IMediaSeeking
*iface
,
690 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
692 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pStop
);
697 static HRESULT WINAPI
Mediaseeking_GetCurrentPosition(IMediaSeeking
*iface
,
698 LONGLONG
*pCurrent
) {
699 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
701 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pCurrent
);
706 static HRESULT WINAPI
Mediaseeking_ConvertTimeFormat(IMediaSeeking
*iface
,
708 const GUID
*pTargetFormat
,
710 const GUID
*pSourceFormat
) {
711 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
713 TRACE("(%p/%p)->(%p, %p, %lld, %p): stub !!!\n", This
, iface
, pTarget
, pTargetFormat
, Source
, pSourceFormat
);
718 static HRESULT WINAPI
Mediaseeking_SetPositions(IMediaSeeking
*iface
,
720 DWORD dwCurrentFlags
,
723 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
725 TRACE("(%p/%p)->(%p, %08lx, %p, %08lx): stub !!!\n", This
, iface
, pCurrent
, dwCurrentFlags
, pStop
, dwStopFlags
);
730 static HRESULT WINAPI
Mediaseeking_GetPositions(IMediaSeeking
*iface
,
733 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
735 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pCurrent
, pStop
);
740 static HRESULT WINAPI
Mediaseeking_GetAvailable(IMediaSeeking
*iface
,
743 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
745 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pEarliest
, pLatest
);
750 static HRESULT WINAPI
Mediaseeking_SetRate(IMediaSeeking
*iface
,
752 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
754 TRACE("(%p/%p)->(%f): stub !!!\n", This
, iface
, dRate
);
759 static HRESULT WINAPI
Mediaseeking_GetRate(IMediaSeeking
*iface
,
761 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
763 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pdRate
);
768 static HRESULT WINAPI
Mediaseeking_GetPreroll(IMediaSeeking
*iface
,
769 LONGLONG
*pllPreroll
) {
770 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
772 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pllPreroll
);
778 static ICOM_VTABLE(IMediaSeeking
) IMediaSeeking_VTable
=
780 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
781 Mediaseeking_QueryInterface
,
783 Mediaseeking_Release
,
784 Mediaseeking_GetCapabilities
,
785 Mediaseeking_CheckCapabilities
,
786 Mediaseeking_IsFormatSupported
,
787 Mediaseeking_QueryPreferredFormat
,
788 Mediaseeking_GetTimeFormat
,
789 Mediaseeking_IsUsingTimeFormat
,
790 Mediaseeking_SetTimeFormat
,
791 Mediaseeking_GetDuration
,
792 Mediaseeking_GetStopPosition
,
793 Mediaseeking_GetCurrentPosition
,
794 Mediaseeking_ConvertTimeFormat
,
795 Mediaseeking_SetPositions
,
796 Mediaseeking_GetPositions
,
797 Mediaseeking_GetAvailable
,
798 Mediaseeking_SetRate
,
799 Mediaseeking_GetRate
,
800 Mediaseeking_GetPreroll
803 /*** IUnknown methods ***/
804 static HRESULT WINAPI
Basicaudio_QueryInterface(IBasicAudio
*iface
,
807 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
809 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
811 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
814 static ULONG WINAPI
Basicaudio_AddRef(IBasicAudio
*iface
) {
815 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
817 TRACE("(%p/%p)->()\n", This
, iface
);
819 return Filtergraph_AddRef(This
);
822 static ULONG WINAPI
Basicaudio_Release(IBasicAudio
*iface
) {
823 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
825 TRACE("(%p/%p)->()\n", This
, iface
);
827 return Filtergraph_Release(This
);
830 /*** IDispatch methods ***/
831 static HRESULT WINAPI
Basicaudio_GetTypeInfoCount(IBasicAudio
*iface
,
833 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
835 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
840 static HRESULT WINAPI
Basicaudio_GetTypeInfo(IBasicAudio
*iface
,
843 ITypeInfo
**ppTInfo
) {
844 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
846 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
851 static HRESULT WINAPI
Basicaudio_GetIDsOfNames(IBasicAudio
*iface
,
857 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
859 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
864 static HRESULT WINAPI
Basicaudio_Invoke(IBasicAudio
*iface
,
869 DISPPARAMS
*pDispParams
,
873 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
875 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
);
880 /*** IBasicAudio methods ***/
881 static HRESULT WINAPI
Basicaudio_put_Volume(IBasicAudio
*iface
,
883 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
885 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lVolume
);
890 static HRESULT WINAPI
Basicaudio_get_Volume(IBasicAudio
*iface
,
892 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
894 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, plVolume
);
899 static HRESULT WINAPI
Basicaudio_put_Balance(IBasicAudio
*iface
,
901 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
903 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lBalance
);
908 static HRESULT WINAPI
Basicaudio_get_Balance(IBasicAudio
*iface
,
910 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
912 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, plBalance
);
917 static ICOM_VTABLE(IBasicAudio
) IBasicAudio_VTable
=
919 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
920 Basicaudio_QueryInterface
,
923 Basicaudio_GetTypeInfoCount
,
924 Basicaudio_GetTypeInfo
,
925 Basicaudio_GetIDsOfNames
,
927 Basicaudio_put_Volume
,
928 Basicaudio_get_Volume
,
929 Basicaudio_put_Balance
,
930 Basicaudio_get_Balance
933 /*** IUnknown methods ***/
934 static HRESULT WINAPI
Basicvideo_QueryInterface(IBasicVideo
*iface
,
937 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
939 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
941 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
944 static ULONG WINAPI
Basicvideo_AddRef(IBasicVideo
*iface
) {
945 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
947 TRACE("(%p/%p)->()\n", This
, iface
);
949 return Filtergraph_AddRef(This
);
952 static ULONG WINAPI
Basicvideo_Release(IBasicVideo
*iface
) {
953 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
955 TRACE("(%p/%p)->()\n", This
, iface
);
957 return Filtergraph_Release(This
);
960 /*** IDispatch methods ***/
961 static HRESULT WINAPI
Basicvideo_GetTypeInfoCount(IBasicVideo
*iface
,
963 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
965 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
970 static HRESULT WINAPI
Basicvideo_GetTypeInfo(IBasicVideo
*iface
,
973 ITypeInfo
**ppTInfo
) {
974 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
976 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
981 static HRESULT WINAPI
Basicvideo_GetIDsOfNames(IBasicVideo
*iface
,
987 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
989 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
994 static HRESULT WINAPI
Basicvideo_Invoke(IBasicVideo
*iface
,
999 DISPPARAMS
*pDispParams
,
1001 EXCEPINFO
*pExepInfo
,
1003 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1005 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
);
1010 /*** IBasicVideo methods ***/
1011 static HRESULT WINAPI
Basicvideo_get_AvgTimePerFrame(IBasicVideo
*iface
,
1012 REFTIME
*pAvgTimePerFrame
) {
1013 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1015 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pAvgTimePerFrame
);
1020 static HRESULT WINAPI
Basicvideo_get_BitRate(IBasicVideo
*iface
,
1022 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1024 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pBitRate
);
1029 static HRESULT WINAPI
Basicvideo_get_BitErrorRate(IBasicVideo
*iface
,
1030 long *pBitErrorRate
) {
1031 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1033 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pBitErrorRate
);
1038 static HRESULT WINAPI
Basicvideo_get_VideoWidth(IBasicVideo
*iface
,
1039 long *pVideoWidth
) {
1040 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1042 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pVideoWidth
);
1047 static HRESULT WINAPI
Basicvideo_get_VideoHeight(IBasicVideo
*iface
,
1048 long *pVideoHeight
) {
1049 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1051 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pVideoHeight
);
1056 static HRESULT WINAPI
Basicvideo_put_SourceLeft(IBasicVideo
*iface
,
1058 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1060 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceLeft
);
1065 static HRESULT WINAPI
Basicvideo_get_SourceLeft(IBasicVideo
*iface
,
1066 long *pSourceLeft
) {
1067 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1069 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceLeft
);
1074 static HRESULT WINAPI
Basicvideo_put_SourceWidth(IBasicVideo
*iface
,
1076 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1078 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceWidth
);
1083 static HRESULT WINAPI
Basicvideo_get_SourceWidth(IBasicVideo
*iface
,
1084 long *pSourceWidth
) {
1085 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1087 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceWidth
);
1092 static HRESULT WINAPI
Basicvideo_put_SourceTop(IBasicVideo
*iface
,
1094 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1096 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceTop
);
1101 static HRESULT WINAPI
Basicvideo_get_SourceTop(IBasicVideo
*iface
,
1103 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1105 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceTop
);
1110 static HRESULT WINAPI
Basicvideo_put_SourceHeight(IBasicVideo
*iface
,
1111 long SourceHeight
) {
1112 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1114 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceHeight
);
1119 static HRESULT WINAPI
Basicvideo_get_SourceHeight(IBasicVideo
*iface
,
1120 long *pSourceHeight
) {
1121 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1123 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceHeight
);
1128 static HRESULT WINAPI
Basicvideo_put_DestinationLeft(IBasicVideo
*iface
,
1129 long DestinationLeft
) {
1130 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1132 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationLeft
);
1137 static HRESULT WINAPI
Basicvideo_get_DestinationLeft(IBasicVideo
*iface
,
1138 long *pDestinationLeft
) {
1139 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1141 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationLeft
);
1146 static HRESULT WINAPI
Basicvideo_put_DestinationWidth(IBasicVideo
*iface
,
1147 long DestinationWidth
) {
1148 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1150 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationWidth
);
1155 static HRESULT WINAPI
Basicvideo_get_DestinationWidth(IBasicVideo
*iface
,
1156 long *pDestinationWidth
) {
1157 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1159 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationWidth
);
1164 static HRESULT WINAPI
Basicvideo_put_DestinationTop(IBasicVideo
*iface
,
1165 long DestinationTop
) {
1166 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1168 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationTop
);
1173 static HRESULT WINAPI
Basicvideo_get_DestinationTop(IBasicVideo
*iface
,
1174 long *pDestinationTop
) {
1175 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1177 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationTop
);
1182 static HRESULT WINAPI
Basicvideo_put_DestinationHeight(IBasicVideo
*iface
,
1183 long DestinationHeight
) {
1184 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1186 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationHeight
);
1191 static HRESULT WINAPI
Basicvideo_get_DestinationHeight(IBasicVideo
*iface
,
1192 long *pDestinationHeight
) {
1193 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1195 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationHeight
);
1200 static HRESULT WINAPI
Basicvideo_SetSourcePosition(IBasicVideo
*iface
,
1205 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1207 TRACE("(%p/%p)->(%ld, %ld, %ld, %ld): stub !!!\n", This
, iface
, Left
, Top
, Width
, Height
);
1212 static HRESULT WINAPI
Basicvideo_GetSourcePosition(IBasicVideo
*iface
,
1217 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1219 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1224 static HRESULT WINAPI
Basicvideo_SetDefaultSourcePosition(IBasicVideo
*iface
) {
1225 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1227 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1232 static HRESULT WINAPI
Basicvideo_SetDestinationPosition(IBasicVideo
*iface
,
1237 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1239 TRACE("(%p/%p)->(%ld, %ld, %ld, %ld): stub !!!\n", This
, iface
, Left
, Top
, Width
, Height
);
1244 static HRESULT WINAPI
Basicvideo_GetDestinationPosition(IBasicVideo
*iface
,
1249 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1251 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1256 static HRESULT WINAPI
Basicvideo_SetDefaultDestinationPosition(IBasicVideo
*iface
) {
1257 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1259 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1264 static HRESULT WINAPI
Basicvideo_GetVideoSize(IBasicVideo
*iface
,
1267 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1269 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pWidth
, pHeight
);
1274 static HRESULT WINAPI
Basicvideo_GetVideoPaletteEntries(IBasicVideo
*iface
,
1279 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1281 TRACE("(%p/%p)->(%ld, %ld, %p, %p): stub !!!\n", This
, iface
, StartIndex
, Entries
, pRetrieved
, pPalette
);
1286 static HRESULT WINAPI
Basicvideo_GetCurrentImage(IBasicVideo
*iface
,
1289 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1291 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pBufferSize
, pDIBImage
);
1296 static HRESULT WINAPI
Basicvideo_IsUsingDefaultSource(IBasicVideo
*iface
) {
1297 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1299 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1304 static HRESULT WINAPI
Basicvideo_IsUsingDefaultDestination(IBasicVideo
*iface
) {
1305 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1307 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1313 static ICOM_VTABLE(IBasicVideo
) IBasicVideo_VTable
=
1315 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
1316 Basicvideo_QueryInterface
,
1319 Basicvideo_GetTypeInfoCount
,
1320 Basicvideo_GetTypeInfo
,
1321 Basicvideo_GetIDsOfNames
,
1323 Basicvideo_get_AvgTimePerFrame
,
1324 Basicvideo_get_BitRate
,
1325 Basicvideo_get_BitErrorRate
,
1326 Basicvideo_get_VideoWidth
,
1327 Basicvideo_get_VideoHeight
,
1328 Basicvideo_put_SourceLeft
,
1329 Basicvideo_get_SourceLeft
,
1330 Basicvideo_put_SourceWidth
,
1331 Basicvideo_get_SourceWidth
,
1332 Basicvideo_put_SourceTop
,
1333 Basicvideo_get_SourceTop
,
1334 Basicvideo_put_SourceHeight
,
1335 Basicvideo_get_SourceHeight
,
1336 Basicvideo_put_DestinationLeft
,
1337 Basicvideo_get_DestinationLeft
,
1338 Basicvideo_put_DestinationWidth
,
1339 Basicvideo_get_DestinationWidth
,
1340 Basicvideo_put_DestinationTop
,
1341 Basicvideo_get_DestinationTop
,
1342 Basicvideo_put_DestinationHeight
,
1343 Basicvideo_get_DestinationHeight
,
1344 Basicvideo_SetSourcePosition
,
1345 Basicvideo_GetSourcePosition
,
1346 Basicvideo_SetDefaultSourcePosition
,
1347 Basicvideo_SetDestinationPosition
,
1348 Basicvideo_GetDestinationPosition
,
1349 Basicvideo_SetDefaultDestinationPosition
,
1350 Basicvideo_GetVideoSize
,
1351 Basicvideo_GetVideoPaletteEntries
,
1352 Basicvideo_GetCurrentImage
,
1353 Basicvideo_IsUsingDefaultSource
,
1354 Basicvideo_IsUsingDefaultDestination
1358 /*** IUnknown methods ***/
1359 static HRESULT WINAPI
Videowindow_QueryInterface(IVideoWindow
*iface
,
1362 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1364 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
1366 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
1369 static ULONG WINAPI
Videowindow_AddRef(IVideoWindow
*iface
) {
1370 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1372 TRACE("(%p/%p)->()\n", This
, iface
);
1374 return Filtergraph_AddRef(This
);
1377 static ULONG WINAPI
Videowindow_Release(IVideoWindow
*iface
) {
1378 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1380 TRACE("(%p/%p)->()\n", This
, iface
);
1382 return Filtergraph_Release(This
);
1385 /*** IDispatch methods ***/
1386 static HRESULT WINAPI
Videowindow_GetTypeInfoCount(IVideoWindow
*iface
,
1388 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1390 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
1395 static HRESULT WINAPI
Videowindow_GetTypeInfo(IVideoWindow
*iface
,
1398 ITypeInfo
**ppTInfo
) {
1399 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1401 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
1406 static HRESULT WINAPI
Videowindow_GetIDsOfNames(IVideoWindow
*iface
,
1412 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1414 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
1419 static HRESULT WINAPI
Videowindow_Invoke(IVideoWindow
*iface
,
1420 DISPID dispIdMember
,
1424 DISPPARAMS
*pDispParams
,
1426 EXCEPINFO
*pExepInfo
,
1428 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1430 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
);
1435 /*** IVideoWindow methods ***/
1436 static HRESULT WINAPI
Videowindow_put_Caption(IVideoWindow
*iface
,
1438 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1440 TRACE("(%p/%p)->(%s (%p)): stub !!!\n", This
, iface
, debugstr_w(strCaption
), strCaption
);
1445 static HRESULT WINAPI
Videowindow_get_Caption(IVideoWindow
*iface
,
1447 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1449 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, strCaption
);
1454 static HRESULT WINAPI
Videowindow_put_WindowStyle(IVideoWindow
*iface
,
1456 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1458 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, WindowStyle
);
1463 static HRESULT WINAPI
Videowindow_get_WindowStyle(IVideoWindow
*iface
,
1464 long *WindowStyle
) {
1465 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1467 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, WindowStyle
);
1472 static HRESULT WINAPI
Videowindow_put_WindowStyleEx(IVideoWindow
*iface
,
1473 long WindowStyleEx
) {
1474 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1476 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, WindowStyleEx
);
1481 static HRESULT WINAPI
Videowindow_get_WindowStyleEx(IVideoWindow
*iface
,
1482 long *WindowStyleEx
) {
1483 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1485 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, WindowStyleEx
);
1490 static HRESULT WINAPI
Videowindow_put_AutoShow(IVideoWindow
*iface
,
1492 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1494 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, AutoShow
);
1499 static HRESULT WINAPI
Videowindow_get_AutoShow(IVideoWindow
*iface
,
1501 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1503 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, AutoShow
);
1508 static HRESULT WINAPI
Videowindow_put_WindowState(IVideoWindow
*iface
,
1510 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1512 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, WindowState
);
1517 static HRESULT WINAPI
Videowindow_get_WindowState(IVideoWindow
*iface
,
1518 long *WindowState
) {
1519 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1521 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, WindowState
);
1526 static HRESULT WINAPI
Videowindow_put_BackgroundPalette(IVideoWindow
*iface
,
1527 long BackgroundPalette
) {
1528 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1530 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, BackgroundPalette
);
1535 static HRESULT WINAPI
Videowindow_get_BackgroundPalette(IVideoWindow
*iface
,
1536 long *pBackgroundPalette
) {
1537 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1539 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pBackgroundPalette
);
1544 static HRESULT WINAPI
Videowindow_put_Visible(IVideoWindow
*iface
,
1546 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1548 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Visible
);
1553 static HRESULT WINAPI
Videowindow_get_Visible(IVideoWindow
*iface
,
1555 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1557 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pVisible
);
1562 static HRESULT WINAPI
Videowindow_put_Left(IVideoWindow
*iface
,
1564 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1566 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Left
);
1571 static HRESULT WINAPI
Videowindow_get_Left(IVideoWindow
*iface
,
1573 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1575 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pLeft
);
1580 static HRESULT WINAPI
Videowindow_put_Width(IVideoWindow
*iface
,
1582 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1584 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Width
);
1589 static HRESULT WINAPI
Videowindow_get_Width(IVideoWindow
*iface
,
1591 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1593 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pWidth
);
1598 static HRESULT WINAPI
Videowindow_put_Top(IVideoWindow
*iface
,
1600 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1602 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Top
);
1607 static HRESULT WINAPI
Videowindow_get_Top(IVideoWindow
*iface
,
1609 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1611 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pTop
);
1616 static HRESULT WINAPI
Videowindow_put_Height(IVideoWindow
*iface
,
1618 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1620 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Height
);
1625 static HRESULT WINAPI
Videowindow_get_Height(IVideoWindow
*iface
,
1627 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1629 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pHeight
);
1634 static HRESULT WINAPI
Videowindow_put_Owner(IVideoWindow
*iface
,
1636 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1638 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) Owner
);
1643 static HRESULT WINAPI
Videowindow_get_Owner(IVideoWindow
*iface
,
1645 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1647 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) Owner
);
1652 static HRESULT WINAPI
Videowindow_put_MessageDrain(IVideoWindow
*iface
,
1654 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1656 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) Drain
);
1661 static HRESULT WINAPI
Videowindow_get_MessageDrain(IVideoWindow
*iface
,
1663 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1665 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, Drain
);
1670 static HRESULT WINAPI
Videowindow_get_BorderColor(IVideoWindow
*iface
,
1672 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1674 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, Color
);
1679 static HRESULT WINAPI
Videowindow_put_BorderColor(IVideoWindow
*iface
,
1681 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1683 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Color
);
1688 static HRESULT WINAPI
Videowindow_get_FullScreenMode(IVideoWindow
*iface
,
1689 long *FullScreenMode
) {
1690 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1692 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, FullScreenMode
);
1697 static HRESULT WINAPI
Videowindow_put_FullScreenMode(IVideoWindow
*iface
,
1698 long FullScreenMode
) {
1699 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1701 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, FullScreenMode
);
1706 static HRESULT WINAPI
Videowindow_SetWindowForeground(IVideoWindow
*iface
,
1708 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1710 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Focus
);
1715 static HRESULT WINAPI
Videowindow_NotifyOwnerMessage(IVideoWindow
*iface
,
1720 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1722 TRACE("(%p/%p)->(%08lx, %ld, %08lx, %08lx): stub !!!\n", This
, iface
, (DWORD
) hwnd
, uMsg
, wParam
, lParam
);
1727 static HRESULT WINAPI
Videowindow_SetWindowPosition(IVideoWindow
*iface
,
1732 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1734 TRACE("(%p/%p)->(%ld, %ld, %ld, %ld): stub !!!\n", This
, iface
, Left
, Top
, Width
, Height
);
1739 static HRESULT WINAPI
Videowindow_GetWindowPosition(IVideoWindow
*iface
,
1744 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1746 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1751 static HRESULT WINAPI
Videowindow_GetMinIdealImageSize(IVideoWindow
*iface
,
1754 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1756 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pWidth
, pHeight
);
1761 static HRESULT WINAPI
Videowindow_GetMaxIdealImageSize(IVideoWindow
*iface
,
1764 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1766 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pWidth
, pHeight
);
1771 static HRESULT WINAPI
Videowindow_GetRestorePosition(IVideoWindow
*iface
,
1776 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1778 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1783 static HRESULT WINAPI
Videowindow_HideCursor(IVideoWindow
*iface
,
1785 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1787 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, HideCursor
);
1792 static HRESULT WINAPI
Videowindow_IsCursorHidden(IVideoWindow
*iface
,
1793 long *CursorHidden
) {
1794 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1796 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, CursorHidden
);
1802 static ICOM_VTABLE(IVideoWindow
) IVideoWindow_VTable
=
1804 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
1805 Videowindow_QueryInterface
,
1807 Videowindow_Release
,
1808 Videowindow_GetTypeInfoCount
,
1809 Videowindow_GetTypeInfo
,
1810 Videowindow_GetIDsOfNames
,
1812 Videowindow_put_Caption
,
1813 Videowindow_get_Caption
,
1814 Videowindow_put_WindowStyle
,
1815 Videowindow_get_WindowStyle
,
1816 Videowindow_put_WindowStyleEx
,
1817 Videowindow_get_WindowStyleEx
,
1818 Videowindow_put_AutoShow
,
1819 Videowindow_get_AutoShow
,
1820 Videowindow_put_WindowState
,
1821 Videowindow_get_WindowState
,
1822 Videowindow_put_BackgroundPalette
,
1823 Videowindow_get_BackgroundPalette
,
1824 Videowindow_put_Visible
,
1825 Videowindow_get_Visible
,
1826 Videowindow_put_Left
,
1827 Videowindow_get_Left
,
1828 Videowindow_put_Width
,
1829 Videowindow_get_Width
,
1830 Videowindow_put_Top
,
1831 Videowindow_get_Top
,
1832 Videowindow_put_Height
,
1833 Videowindow_get_Height
,
1834 Videowindow_put_Owner
,
1835 Videowindow_get_Owner
,
1836 Videowindow_put_MessageDrain
,
1837 Videowindow_get_MessageDrain
,
1838 Videowindow_get_BorderColor
,
1839 Videowindow_put_BorderColor
,
1840 Videowindow_get_FullScreenMode
,
1841 Videowindow_put_FullScreenMode
,
1842 Videowindow_SetWindowForeground
,
1843 Videowindow_NotifyOwnerMessage
,
1844 Videowindow_SetWindowPosition
,
1845 Videowindow_GetWindowPosition
,
1846 Videowindow_GetMinIdealImageSize
,
1847 Videowindow_GetMaxIdealImageSize
,
1848 Videowindow_GetRestorePosition
,
1849 Videowindow_HideCursor
,
1850 Videowindow_IsCursorHidden
1854 /*** IUnknown methods ***/
1855 static HRESULT WINAPI
Mediaevent_QueryInterface(IMediaEventEx
*iface
,
1858 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1860 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
1862 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
1865 static ULONG WINAPI
Mediaevent_AddRef(IMediaEventEx
*iface
) {
1866 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1868 TRACE("(%p/%p)->()\n", This
, iface
);
1870 return Filtergraph_AddRef(This
);
1873 static ULONG WINAPI
Mediaevent_Release(IMediaEventEx
*iface
) {
1874 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1876 TRACE("(%p/%p)->()\n", This
, iface
);
1878 return Filtergraph_Release(This
);
1881 /*** IDispatch methods ***/
1882 static HRESULT WINAPI
Mediaevent_GetTypeInfoCount(IMediaEventEx
*iface
,
1884 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1886 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
1891 static HRESULT WINAPI
Mediaevent_GetTypeInfo(IMediaEventEx
*iface
,
1894 ITypeInfo
**ppTInfo
) {
1895 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1897 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
1902 static HRESULT WINAPI
Mediaevent_GetIDsOfNames(IMediaEventEx
*iface
,
1908 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1910 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
1915 static HRESULT WINAPI
Mediaevent_Invoke(IMediaEventEx
*iface
,
1916 DISPID dispIdMember
,
1920 DISPPARAMS
*pDispParams
,
1922 EXCEPINFO
*pExepInfo
,
1924 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1926 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
);
1931 /*** IMediaEvent methods ***/
1932 static HRESULT WINAPI
Mediaevent_GetEventHandle(IMediaEventEx
*iface
,
1934 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1936 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, hEvent
);
1941 static HRESULT WINAPI
Mediaevent_GetEvent(IMediaEventEx
*iface
,
1946 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1948 TRACE("(%p/%p)->(%p, %p, %p, %ld): stub !!!\n", This
, iface
, lEventCode
, lParam1
, lParam2
, msTimeout
);
1953 static HRESULT WINAPI
Mediaevent_WaitForCompletion(IMediaEventEx
*iface
,
1956 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1958 TRACE("(%p/%p)->(%ld, %p): stub !!!\n", This
, iface
, msTimeout
, pEvCode
);
1963 static HRESULT WINAPI
Mediaevent_CancelDefaultHandling(IMediaEventEx
*iface
,
1965 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1967 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lEvCode
);
1972 static HRESULT WINAPI
Mediaevent_RestoreDefaultHandling(IMediaEventEx
*iface
,
1974 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1976 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lEvCode
);
1981 static HRESULT WINAPI
Mediaevent_FreeEventParams(IMediaEventEx
*iface
,
1985 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1987 TRACE("(%p/%p)->(%ld, %08lx, %08lx): stub !!!\n", This
, iface
, lEvCode
, lParam1
, lParam2
);
1992 /*** IMediaEventEx methods ***/
1993 static HRESULT WINAPI
Mediaevent_SetNotifyWindow(IMediaEventEx
*iface
,
1996 LONG_PTR lInstanceData
) {
1997 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1999 TRACE("(%p/%p)->(%08lx, %ld, %08lx): stub !!!\n", This
, iface
, (DWORD
) hwnd
, lMsg
, lInstanceData
);
2004 static HRESULT WINAPI
Mediaevent_SetNotifyFlags(IMediaEventEx
*iface
,
2005 long lNoNotifyFlags
) {
2006 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
2008 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lNoNotifyFlags
);
2013 static HRESULT WINAPI
Mediaevent_GetNotifyFlags(IMediaEventEx
*iface
,
2014 long *lplNoNotifyFlags
) {
2015 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
2017 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, lplNoNotifyFlags
);
2023 static ICOM_VTABLE(IMediaEventEx
) IMediaEventEx_VTable
=
2025 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
2026 Mediaevent_QueryInterface
,
2029 Mediaevent_GetTypeInfoCount
,
2030 Mediaevent_GetTypeInfo
,
2031 Mediaevent_GetIDsOfNames
,
2033 Mediaevent_GetEventHandle
,
2034 Mediaevent_GetEvent
,
2035 Mediaevent_WaitForCompletion
,
2036 Mediaevent_CancelDefaultHandling
,
2037 Mediaevent_RestoreDefaultHandling
,
2038 Mediaevent_FreeEventParams
,
2039 Mediaevent_SetNotifyWindow
,
2040 Mediaevent_SetNotifyFlags
,
2041 Mediaevent_GetNotifyFlags
2045 static HRESULT WINAPI
MediaFilter_QueryInterface(IMediaFilter
*iface
, REFIID riid
, LPVOID
*ppv
)
2047 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
2049 return Filtergraph_QueryInterface(This
, riid
, ppv
);
2052 static ULONG WINAPI
MediaFilter_AddRef(IMediaFilter
*iface
)
2054 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
2056 return Filtergraph_AddRef(This
);
2059 static ULONG WINAPI
MediaFilter_Release(IMediaFilter
*iface
)
2061 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
2063 return Filtergraph_Release(This
);
2066 static HRESULT WINAPI
MediaFilter_GetClassID(IMediaFilter
*iface
, CLSID
* pClassID
)
2068 FIXME("(%p): stub\n", pClassID
);
2073 static HRESULT WINAPI
MediaFilter_Stop(IMediaFilter
*iface
)
2075 FIXME("(): stub\n");
2080 static HRESULT WINAPI
MediaFilter_Pause(IMediaFilter
*iface
)
2082 FIXME("(): stub\n");
2087 static HRESULT WINAPI
MediaFilter_Run(IMediaFilter
*iface
, REFERENCE_TIME tStart
)
2089 FIXME("(%lld): stub\n", tStart
);
2094 static HRESULT WINAPI
MediaFilter_GetState(IMediaFilter
*iface
, DWORD dwMsTimeout
, FILTER_STATE
* pState
)
2096 FIXME("(%ld, %p): stub\n", dwMsTimeout
, pState
);
2101 static HRESULT WINAPI
MediaFilter_SetSyncSource(IMediaFilter
*iface
, IReferenceClock
*pClock
)
2103 FIXME("(%p): stub\n", pClock
);
2108 static HRESULT WINAPI
MediaFilter_GetSyncSource(IMediaFilter
*iface
, IReferenceClock
**ppClock
)
2110 FIXME("(%p): stub\n", ppClock
);
2115 static ICOM_VTABLE(IMediaFilter
) IMediaFilter_VTable
=
2117 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
2118 MediaFilter_QueryInterface
,
2120 MediaFilter_Release
,
2121 MediaFilter_GetClassID
,
2125 MediaFilter_GetState
,
2126 MediaFilter_SetSyncSource
,
2127 MediaFilter_GetSyncSource
2130 /* This is the only function that actually creates a FilterGraph class... */
2131 HRESULT
FILTERGRAPH_create(IUnknown
*pUnkOuter
, LPVOID
*ppObj
) {
2132 IFilterGraphImpl
*fimpl
;
2134 TRACE("(%p,%p)\n", pUnkOuter
, ppObj
);
2136 fimpl
= (IFilterGraphImpl
*) HeapAlloc(GetProcessHeap(), 0, sizeof(*fimpl
));
2137 fimpl
->IGraphBuilder_vtbl
= &IGraphBuilder_VTable
;
2138 fimpl
->IMediaControl_vtbl
= &IMediaControl_VTable
;
2139 fimpl
->IMediaSeeking_vtbl
= &IMediaSeeking_VTable
;
2140 fimpl
->IBasicAudio_vtbl
= &IBasicAudio_VTable
;
2141 fimpl
->IBasicVideo_vtbl
= &IBasicVideo_VTable
;
2142 fimpl
->IVideoWindow_vtbl
= &IVideoWindow_VTable
;
2143 fimpl
->IMediaEventEx_vtbl
= &IMediaEventEx_VTable
;
2144 fimpl
->IMediaFilter_vtbl
= &IMediaFilter_VTable
;
2146 fimpl
->ppFiltersInGraph
= NULL
;
2147 fimpl
->pFilterNames
= NULL
;
2148 fimpl
->nFilters
= 0;
2149 fimpl
->filterCapacity
= 0;