1 /* DirectShow FilterGraph object (QUARTZ.DLL)
3 * Copyright 2002 Lionel Ulmer
5 * This file contains the (internal) driver registration functions,
6 * driver enumeration APIs and DirectDraw creation functions.
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 #include "wine/debug.h"
27 #include "quartz_private.h"
29 WINE_DEFAULT_DEBUG_CHANNEL(quartz
);
31 static HRESULT
Filtergraph_QueryInterface(IFilterGraphImpl
*This
,
34 TRACE("(%p)->(%s (%p), %p)\n", This
, debugstr_guid(riid
), riid
, ppvObj
);
36 if (IsEqualGUID(&IID_IUnknown
, riid
) ||
37 IsEqualGUID(&IID_IGraphBuilder
, riid
)) {
38 *ppvObj
= &(This
->IGraphBuilder_vtbl
);
39 TRACE(" returning IGraphBuilder interface (%p)\n", *ppvObj
);
40 } else if (IsEqualGUID(&IID_IMediaControl
, riid
)) {
41 *ppvObj
= &(This
->IMediaControl_vtbl
);
42 TRACE(" returning IMediaControl interface (%p)\n", *ppvObj
);
43 } else if (IsEqualGUID(&IID_IMediaSeeking
, riid
)) {
44 *ppvObj
= &(This
->IMediaSeeking_vtbl
);
45 TRACE(" returning IMediaSeeking interface (%p)\n", *ppvObj
);
46 } else if (IsEqualGUID(&IID_IBasicAudio
, riid
)) {
47 *ppvObj
= &(This
->IBasicAudio_vtbl
);
48 TRACE(" returning IBasicAudio interface (%p)\n", *ppvObj
);
49 } else if (IsEqualGUID(&IID_IBasicVideo
, riid
)) {
50 *ppvObj
= &(This
->IBasicVideo_vtbl
);
51 TRACE(" returning IBasicVideo interface (%p)\n", *ppvObj
);
52 } else if (IsEqualGUID(&IID_IVideoWindow
, riid
)) {
53 *ppvObj
= &(This
->IVideoWindow_vtbl
);
54 TRACE(" returning IVideoWindow interface (%p)\n", *ppvObj
);
55 } else if (IsEqualGUID(&IID_IMediaEvent
, riid
) ||
56 IsEqualGUID(&IID_IMediaEventEx
, riid
)) {
57 *ppvObj
= &(This
->IMediaEventEx_vtbl
);
58 TRACE(" returning IMediaEvent(Ex) interface (%p)\n", *ppvObj
);
61 FIXME(" unknown interface !\n");
69 static ULONG
Filtergraph_AddRef(IFilterGraphImpl
*This
) {
70 TRACE("(%p)->(): new ref = %ld\n", This
, This
->ref
+ 1);
75 static ULONG
Filtergraph_Release(IFilterGraphImpl
*This
) {
78 TRACE("(%p)->(): new ref = %ld\n", This
, This
->ref
- 1);
82 HeapFree(GetProcessHeap(), 0, This
);
88 /*** IUnknown methods ***/
89 static HRESULT WINAPI
Graphbuilder_QueryInterface(IGraphBuilder
*iface
,
92 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
94 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
95 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
98 static ULONG WINAPI
Graphbuilder_AddRef(IGraphBuilder
*iface
) {
99 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
101 TRACE("(%p/%p)->() calling FilterGraph AddRef\n", This
, iface
);
103 return Filtergraph_AddRef(This
);
106 static ULONG WINAPI
Graphbuilder_Release(IGraphBuilder
*iface
) {
107 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
109 TRACE("(%p/%p)->() calling FilterGraph Release\n", This
, iface
);
111 return Filtergraph_Release(This
);
114 /*** IFilterGraph methods ***/
115 static HRESULT WINAPI
Graphbuilder_AddFilter(IGraphBuilder
*iface
,
116 IBaseFilter
*pFilter
,
118 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
120 TRACE("(%p/%p)->(%p, %s (%p)): stub !!!\n", This
, iface
, pFilter
, debugstr_w(pName
), pName
);
125 static HRESULT WINAPI
Graphbuilder_RemoveFilter(IGraphBuilder
*iface
,
126 IBaseFilter
*pFilter
) {
127 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
129 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFilter
);
134 static HRESULT WINAPI
Graphbuilder_EnumFilter(IGraphBuilder
*iface
,
135 IEnumFilters
**ppEnum
) {
136 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
138 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppEnum
);
143 static HRESULT WINAPI
Graphbuilder_FindFilterByName(IGraphBuilder
*iface
,
145 IBaseFilter
**ppFilter
) {
146 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
148 TRACE("(%p/%p)->(%s (%p), %p): stub !!!\n", This
, iface
, debugstr_w(pName
), pName
, ppFilter
);
153 static HRESULT WINAPI
Graphbuilder_ConnectDirect(IGraphBuilder
*iface
,
156 const AM_MEDIA_TYPE
*pmt
) {
157 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
159 TRACE("(%p/%p)->(%p, %p, %p): stub !!!\n", This
, iface
, ppinIn
, ppinOut
, pmt
);
164 static HRESULT WINAPI
Graphbuilder_Reconnect(IGraphBuilder
*iface
,
166 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
168 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppin
);
173 static HRESULT WINAPI
Graphbuilder_Disconnect(IGraphBuilder
*iface
,
175 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
177 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppin
);
182 static HRESULT WINAPI
Graphbuilder_SetDefaultSyncSource(IGraphBuilder
*iface
) {
183 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
185 TRACE("(%p/%p)->(): stub !!!\n", iface
, This
);
190 /*** IGraphBuilder methods ***/
191 static HRESULT WINAPI
Graphbuilder_Connect(IGraphBuilder
*iface
,
194 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
196 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, ppinOut
, ppinIn
);
201 static HRESULT WINAPI
Graphbuilder_Render(IGraphBuilder
*iface
,
203 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
205 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppinOut
);
210 static HRESULT WINAPI
Graphbuilder_RenderFile(IGraphBuilder
*iface
,
212 LPCWSTR lpcwstrPlayList
) {
213 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
215 TRACE("(%p/%p)->(%s (%p), %s (%p)): stub !!!\n", This
, iface
, debugstr_w(lpcwstrFile
), lpcwstrFile
, debugstr_w(lpcwstrPlayList
), lpcwstrPlayList
);
220 static HRESULT WINAPI
Graphbuilder_AddSourceFilter(IGraphBuilder
*iface
,
221 LPCWSTR lpcwstrFileName
,
222 LPCWSTR lpcwstrFilterName
,
223 IBaseFilter
**ppFilter
) {
224 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
226 TRACE("(%p/%p)->(%s (%p), %s (%p), %p): stub !!!\n", This
, iface
, debugstr_w(lpcwstrFileName
), lpcwstrFileName
, debugstr_w(lpcwstrFilterName
), lpcwstrFilterName
, ppFilter
);
231 static HRESULT WINAPI
Graphbuilder_SetLogFile(IGraphBuilder
*iface
,
233 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
235 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) hFile
);
240 static HRESULT WINAPI
Graphbuilder_Abort(IGraphBuilder
*iface
) {
241 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
243 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
248 static HRESULT WINAPI
Graphbuilder_ShouldOperationContinue(IGraphBuilder
*iface
) {
249 ICOM_THIS_MULTI(IFilterGraphImpl
, IGraphBuilder_vtbl
, iface
);
251 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
257 static ICOM_VTABLE(IGraphBuilder
) IGraphBuilder_VTable
=
259 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
260 Graphbuilder_QueryInterface
,
262 Graphbuilder_Release
,
263 Graphbuilder_AddFilter
,
264 Graphbuilder_RemoveFilter
,
265 Graphbuilder_EnumFilter
,
266 Graphbuilder_FindFilterByName
,
267 Graphbuilder_ConnectDirect
,
268 Graphbuilder_Reconnect
,
269 Graphbuilder_Disconnect
,
270 Graphbuilder_SetDefaultSyncSource
,
271 Graphbuilder_Connect
,
273 Graphbuilder_RenderFile
,
274 Graphbuilder_AddSourceFilter
,
275 Graphbuilder_SetLogFile
,
277 Graphbuilder_ShouldOperationContinue
280 /*** IUnknown methods ***/
281 static HRESULT WINAPI
Mediacontrol_QueryInterface(IMediaControl
*iface
,
284 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
286 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
288 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
291 static ULONG WINAPI
Mediacontrol_AddRef(IMediaControl
*iface
) {
292 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
294 TRACE("(%p/%p)->()\n", This
, iface
);
296 return Filtergraph_AddRef(This
);
299 static ULONG WINAPI
Mediacontrol_Release(IMediaControl
*iface
) {
300 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
302 TRACE("(%p/%p)->()\n", This
, iface
);
304 return Filtergraph_Release(This
);
308 /*** IDispatch methods ***/
309 static HRESULT WINAPI
Mediacontrol_GetTypeInfoCount(IMediaControl
*iface
,
311 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
313 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
318 static HRESULT WINAPI
Mediacontrol_GetTypeInfo(IMediaControl
*iface
,
321 ITypeInfo
**ppTInfo
) {
322 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
324 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
329 static HRESULT WINAPI
Mediacontrol_GetIDsOfNames(IMediaControl
*iface
,
335 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
337 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
342 static HRESULT WINAPI
Mediacontrol_Invoke(IMediaControl
*iface
,
347 DISPPARAMS
*pDispParams
,
351 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
353 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
);
358 /*** IMediaControl methods ***/
359 static HRESULT WINAPI
Mediacontrol_Run(IMediaControl
*iface
) {
360 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
362 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
367 static HRESULT WINAPI
Mediacontrol_Pause(IMediaControl
*iface
) {
368 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
370 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
375 static HRESULT WINAPI
Mediacontrol_Stop(IMediaControl
*iface
) {
376 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
378 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
383 static HRESULT WINAPI
Mediacontrol_GetState(IMediaControl
*iface
,
385 OAFilterState
*pfs
) {
386 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
388 TRACE("(%p/%p)->(%ld, %p): stub !!!\n", This
, iface
, msTimeout
, pfs
);
393 static HRESULT WINAPI
Mediacontrol_RenderFile(IMediaControl
*iface
,
395 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
397 TRACE("(%p/%p)->(%s (%p)): stub !!!\n", This
, iface
, debugstr_w(strFilename
), strFilename
);
402 static HRESULT WINAPI
Mediacontrol_AddSourceFilter(IMediaControl
*iface
,
405 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
407 TRACE("(%p/%p)->(%s (%p), %p): stub !!!\n", This
, iface
, debugstr_w(strFilename
), strFilename
, ppUnk
);
412 static HRESULT WINAPI
Mediacontrol_get_FilterCollection(IMediaControl
*iface
,
414 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
416 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppUnk
);
421 static HRESULT WINAPI
Mediacontrol_get_RegFilterCollection(IMediaControl
*iface
,
423 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
425 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, ppUnk
);
430 static HRESULT WINAPI
Mediacontrol_StopWhenReady(IMediaControl
*iface
) {
431 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaControl_vtbl
, iface
);
433 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
439 static ICOM_VTABLE(IMediaControl
) IMediaControl_VTable
=
441 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
442 Mediacontrol_QueryInterface
,
444 Mediacontrol_Release
,
445 Mediacontrol_GetTypeInfoCount
,
446 Mediacontrol_GetTypeInfo
,
447 Mediacontrol_GetIDsOfNames
,
452 Mediacontrol_GetState
,
453 Mediacontrol_RenderFile
,
454 Mediacontrol_AddSourceFilter
,
455 Mediacontrol_get_FilterCollection
,
456 Mediacontrol_get_RegFilterCollection
,
457 Mediacontrol_StopWhenReady
461 /*** IUnknown methods ***/
462 static HRESULT WINAPI
Mediaseeking_QueryInterface(IMediaSeeking
*iface
,
465 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
467 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
469 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
472 static ULONG WINAPI
Mediaseeking_AddRef(IMediaSeeking
*iface
) {
473 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
475 TRACE("(%p/%p)->()\n", This
, iface
);
477 return Filtergraph_AddRef(This
);
480 static ULONG WINAPI
Mediaseeking_Release(IMediaSeeking
*iface
) {
481 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
483 TRACE("(%p/%p)->()\n", This
, iface
);
485 return Filtergraph_Release(This
);
488 /*** IMediaSeeking methods ***/
489 static HRESULT WINAPI
Mediaseeking_GetCapabilities(IMediaSeeking
*iface
,
490 DWORD
*pCapabilities
) {
491 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
493 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pCapabilities
);
498 static HRESULT WINAPI
Mediaseeking_CheckCapabilities(IMediaSeeking
*iface
,
499 DWORD
*pCapabilities
) {
500 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
502 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pCapabilities
);
507 static HRESULT WINAPI
Mediaseeking_IsFormatSupported(IMediaSeeking
*iface
,
509 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
511 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
516 static HRESULT WINAPI
Mediaseeking_QueryPreferredFormat(IMediaSeeking
*iface
,
518 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
520 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
525 static HRESULT WINAPI
Mediaseeking_GetTimeFormat(IMediaSeeking
*iface
,
527 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
529 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
534 static HRESULT WINAPI
Mediaseeking_IsUsingTimeFormat(IMediaSeeking
*iface
,
536 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
538 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
543 static HRESULT WINAPI
Mediaseeking_SetTimeFormat(IMediaSeeking
*iface
,
545 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
547 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pFormat
);
552 static HRESULT WINAPI
Mediaseeking_GetDuration(IMediaSeeking
*iface
,
553 LONGLONG
*pDuration
) {
554 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
556 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDuration
);
561 static HRESULT WINAPI
Mediaseeking_GetStopPosition(IMediaSeeking
*iface
,
563 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
565 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pStop
);
570 static HRESULT WINAPI
Mediaseeking_GetCurrentPosition(IMediaSeeking
*iface
,
571 LONGLONG
*pCurrent
) {
572 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
574 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pCurrent
);
579 static HRESULT WINAPI
Mediaseeking_ConvertTimeFormat(IMediaSeeking
*iface
,
583 GUID
*pSourceFormat
) {
584 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
586 TRACE("(%p/%p)->(%p, %p, %lld, %p): stub !!!\n", This
, iface
, pTarget
, pTargetFormat
, Source
, pSourceFormat
);
591 static HRESULT WINAPI
Mediaseeking_SetPositions(IMediaSeeking
*iface
,
593 DWORD dwCurrentFlags
,
596 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
598 TRACE("(%p/%p)->(%p, %08lx, %p, %08lx): stub !!!\n", This
, iface
, pCurrent
, dwCurrentFlags
, pStop
, dwStopFlags
);
603 static HRESULT WINAPI
Mediaseeking_GetPositions(IMediaSeeking
*iface
,
606 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
608 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pCurrent
, pStop
);
613 static HRESULT WINAPI
Mediaseeking_GetAvailable(IMediaSeeking
*iface
,
616 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
618 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pEarliest
, pLatest
);
623 static HRESULT WINAPI
Mediaseeking_SetRate(IMediaSeeking
*iface
,
625 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
627 TRACE("(%p/%p)->(%f): stub !!!\n", This
, iface
, dRate
);
632 static HRESULT WINAPI
Mediaseeking_GetRate(IMediaSeeking
*iface
,
634 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
636 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pdRate
);
641 static HRESULT WINAPI
Mediaseeking_GetPreroll(IMediaSeeking
*iface
,
642 LONGLONG
*pllPreroll
) {
643 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaSeeking_vtbl
, iface
);
645 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pllPreroll
);
651 static ICOM_VTABLE(IMediaSeeking
) IMediaSeeking_VTable
=
653 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
654 Mediaseeking_QueryInterface
,
656 Mediaseeking_Release
,
657 Mediaseeking_GetCapabilities
,
658 Mediaseeking_CheckCapabilities
,
659 Mediaseeking_IsFormatSupported
,
660 Mediaseeking_QueryPreferredFormat
,
661 Mediaseeking_GetTimeFormat
,
662 Mediaseeking_IsUsingTimeFormat
,
663 Mediaseeking_SetTimeFormat
,
664 Mediaseeking_GetDuration
,
665 Mediaseeking_GetStopPosition
,
666 Mediaseeking_GetCurrentPosition
,
667 Mediaseeking_ConvertTimeFormat
,
668 Mediaseeking_SetPositions
,
669 Mediaseeking_GetPositions
,
670 Mediaseeking_GetAvailable
,
671 Mediaseeking_SetRate
,
672 Mediaseeking_GetRate
,
673 Mediaseeking_GetPreroll
676 /*** IUnknown methods ***/
677 static HRESULT WINAPI
Basicaudio_QueryInterface(IBasicAudio
*iface
,
680 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
682 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
684 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
687 static ULONG WINAPI
Basicaudio_AddRef(IBasicAudio
*iface
) {
688 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
690 TRACE("(%p/%p)->()\n", This
, iface
);
692 return Filtergraph_AddRef(This
);
695 static ULONG WINAPI
Basicaudio_Release(IBasicAudio
*iface
) {
696 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
698 TRACE("(%p/%p)->()\n", This
, iface
);
700 return Filtergraph_Release(This
);
703 /*** IDispatch methods ***/
704 static HRESULT WINAPI
Basicaudio_GetTypeInfoCount(IBasicAudio
*iface
,
706 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
708 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
713 static HRESULT WINAPI
Basicaudio_GetTypeInfo(IBasicAudio
*iface
,
716 ITypeInfo
**ppTInfo
) {
717 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
719 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
724 static HRESULT WINAPI
Basicaudio_GetIDsOfNames(IBasicAudio
*iface
,
730 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
732 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
737 static HRESULT WINAPI
Basicaudio_Invoke(IBasicAudio
*iface
,
742 DISPPARAMS
*pDispParams
,
746 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
748 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
);
753 /*** IBasicAudio methods ***/
754 static HRESULT WINAPI
Basicaudio_put_Volume(IBasicAudio
*iface
,
756 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
758 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lVolume
);
763 static HRESULT WINAPI
Basicaudio_get_Volume(IBasicAudio
*iface
,
765 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
767 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, plVolume
);
772 static HRESULT WINAPI
Basicaudio_put_Balance(IBasicAudio
*iface
,
774 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
776 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lBalance
);
781 static HRESULT WINAPI
Basicaudio_get_Balance(IBasicAudio
*iface
,
783 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicAudio_vtbl
, iface
);
785 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, plBalance
);
790 static ICOM_VTABLE(IBasicAudio
) IBasicAudio_VTable
=
792 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
793 Basicaudio_QueryInterface
,
796 Basicaudio_GetTypeInfoCount
,
797 Basicaudio_GetTypeInfo
,
798 Basicaudio_GetIDsOfNames
,
800 Basicaudio_put_Volume
,
801 Basicaudio_get_Volume
,
802 Basicaudio_put_Balance
,
803 Basicaudio_get_Balance
806 /*** IUnknown methods ***/
807 static HRESULT WINAPI
Basicvideo_QueryInterface(IBasicVideo
*iface
,
810 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
812 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
814 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
817 static ULONG WINAPI
Basicvideo_AddRef(IBasicVideo
*iface
) {
818 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
820 TRACE("(%p/%p)->()\n", This
, iface
);
822 return Filtergraph_AddRef(This
);
825 static ULONG WINAPI
Basicvideo_Release(IBasicVideo
*iface
) {
826 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
828 TRACE("(%p/%p)->()\n", This
, iface
);
830 return Filtergraph_Release(This
);
833 /*** IDispatch methods ***/
834 static HRESULT WINAPI
Basicvideo_GetTypeInfoCount(IBasicVideo
*iface
,
836 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
838 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
843 static HRESULT WINAPI
Basicvideo_GetTypeInfo(IBasicVideo
*iface
,
846 ITypeInfo
**ppTInfo
) {
847 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
849 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
854 static HRESULT WINAPI
Basicvideo_GetIDsOfNames(IBasicVideo
*iface
,
860 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
862 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
867 static HRESULT WINAPI
Basicvideo_Invoke(IBasicVideo
*iface
,
872 DISPPARAMS
*pDispParams
,
876 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
878 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
);
883 /*** IBasicVideo methods ***/
884 static HRESULT WINAPI
Basicvideo_get_AvgTimePerFrame(IBasicVideo
*iface
,
885 REFTIME
*pAvgTimePerFrame
) {
886 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
888 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pAvgTimePerFrame
);
893 static HRESULT WINAPI
Basicvideo_get_BitRate(IBasicVideo
*iface
,
895 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
897 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pBitRate
);
902 static HRESULT WINAPI
Basicvideo_get_BitErrorRate(IBasicVideo
*iface
,
903 long *pBitErrorRate
) {
904 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
906 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pBitErrorRate
);
911 static HRESULT WINAPI
Basicvideo_get_VideoWidth(IBasicVideo
*iface
,
913 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
915 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pVideoWidth
);
920 static HRESULT WINAPI
Basicvideo_get_VideoHeight(IBasicVideo
*iface
,
921 long *pVideoHeight
) {
922 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
924 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pVideoHeight
);
929 static HRESULT WINAPI
Basicvideo_put_SourceLeft(IBasicVideo
*iface
,
931 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
933 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceLeft
);
938 static HRESULT WINAPI
Basicvideo_get_SourceLeft(IBasicVideo
*iface
,
940 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
942 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceLeft
);
947 static HRESULT WINAPI
Basicvideo_put_SourceWidth(IBasicVideo
*iface
,
949 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
951 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceWidth
);
956 static HRESULT WINAPI
Basicvideo_get_SourceWidth(IBasicVideo
*iface
,
957 long *pSourceWidth
) {
958 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
960 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceWidth
);
965 static HRESULT WINAPI
Basicvideo_put_SourceTop(IBasicVideo
*iface
,
967 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
969 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceTop
);
974 static HRESULT WINAPI
Basicvideo_get_SourceTop(IBasicVideo
*iface
,
976 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
978 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceTop
);
983 static HRESULT WINAPI
Basicvideo_put_SourceHeight(IBasicVideo
*iface
,
985 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
987 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, SourceHeight
);
992 static HRESULT WINAPI
Basicvideo_get_SourceHeight(IBasicVideo
*iface
,
993 long *pSourceHeight
) {
994 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
996 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pSourceHeight
);
1001 static HRESULT WINAPI
Basicvideo_put_DestinationLeft(IBasicVideo
*iface
,
1002 long DestinationLeft
) {
1003 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1005 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationLeft
);
1010 static HRESULT WINAPI
Basicvideo_get_DestinationLeft(IBasicVideo
*iface
,
1011 long *pDestinationLeft
) {
1012 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1014 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationLeft
);
1019 static HRESULT WINAPI
Basicvideo_put_DestinationWidth(IBasicVideo
*iface
,
1020 long DestinationWidth
) {
1021 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1023 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationWidth
);
1028 static HRESULT WINAPI
Basicvideo_get_DestinationWidth(IBasicVideo
*iface
,
1029 long *pDestinationWidth
) {
1030 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1032 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationWidth
);
1037 static HRESULT WINAPI
Basicvideo_put_DestinationTop(IBasicVideo
*iface
,
1038 long DestinationTop
) {
1039 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1041 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationTop
);
1046 static HRESULT WINAPI
Basicvideo_get_DestinationTop(IBasicVideo
*iface
,
1047 long *pDestinationTop
) {
1048 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1050 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationTop
);
1055 static HRESULT WINAPI
Basicvideo_put_DestinationHeight(IBasicVideo
*iface
,
1056 long DestinationHeight
) {
1057 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1059 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, DestinationHeight
);
1064 static HRESULT WINAPI
Basicvideo_get_DestinationHeight(IBasicVideo
*iface
,
1065 long *pDestinationHeight
) {
1066 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1068 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pDestinationHeight
);
1073 static HRESULT WINAPI
Basicvideo_SetSourcePosition(IBasicVideo
*iface
,
1078 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1080 TRACE("(%p/%p)->(%ld, %ld, %ld, %ld): stub !!!\n", This
, iface
, Left
, Top
, Width
, Height
);
1085 static HRESULT WINAPI
Basicvideo_GetSourcePosition(IBasicVideo
*iface
,
1090 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1092 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1097 static HRESULT WINAPI
Basicvideo_SetDefaultSourcePosition(IBasicVideo
*iface
) {
1098 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1100 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1105 static HRESULT WINAPI
Basicvideo_SetDestinationPosition(IBasicVideo
*iface
,
1110 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1112 TRACE("(%p/%p)->(%ld, %ld, %ld, %ld): stub !!!\n", This
, iface
, Left
, Top
, Width
, Height
);
1117 static HRESULT WINAPI
Basicvideo_GetDestinationPosition(IBasicVideo
*iface
,
1122 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1124 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1129 static HRESULT WINAPI
Basicvideo_SetDefaultDestinationPosition(IBasicVideo
*iface
) {
1130 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1132 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1137 static HRESULT WINAPI
Basicvideo_GetVideoSize(IBasicVideo
*iface
,
1140 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1142 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pWidth
, pHeight
);
1147 static HRESULT WINAPI
Basicvideo_GetVideoPaletteEntries(IBasicVideo
*iface
,
1152 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1154 TRACE("(%p/%p)->(%ld, %ld, %p, %p): stub !!!\n", This
, iface
, StartIndex
, Entries
, pRetrieved
, pPalette
);
1159 static HRESULT WINAPI
Basicvideo_GetCurrentImage(IBasicVideo
*iface
,
1162 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1164 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pBufferSize
, pDIBImage
);
1169 static HRESULT WINAPI
Basicvideo_IsUsingDefaultSource(IBasicVideo
*iface
) {
1170 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1172 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1177 static HRESULT WINAPI
Basicvideo_IsUsingDefaultDestination(IBasicVideo
*iface
) {
1178 ICOM_THIS_MULTI(IFilterGraphImpl
, IBasicVideo_vtbl
, iface
);
1180 TRACE("(%p/%p)->(): stub !!!\n", This
, iface
);
1186 static ICOM_VTABLE(IBasicVideo
) IBasicVideo_VTable
=
1188 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
1189 Basicvideo_QueryInterface
,
1192 Basicvideo_GetTypeInfoCount
,
1193 Basicvideo_GetTypeInfo
,
1194 Basicvideo_GetIDsOfNames
,
1196 Basicvideo_get_AvgTimePerFrame
,
1197 Basicvideo_get_BitRate
,
1198 Basicvideo_get_BitErrorRate
,
1199 Basicvideo_get_VideoWidth
,
1200 Basicvideo_get_VideoHeight
,
1201 Basicvideo_put_SourceLeft
,
1202 Basicvideo_get_SourceLeft
,
1203 Basicvideo_put_SourceWidth
,
1204 Basicvideo_get_SourceWidth
,
1205 Basicvideo_put_SourceTop
,
1206 Basicvideo_get_SourceTop
,
1207 Basicvideo_put_SourceHeight
,
1208 Basicvideo_get_SourceHeight
,
1209 Basicvideo_put_DestinationLeft
,
1210 Basicvideo_get_DestinationLeft
,
1211 Basicvideo_put_DestinationWidth
,
1212 Basicvideo_get_DestinationWidth
,
1213 Basicvideo_put_DestinationTop
,
1214 Basicvideo_get_DestinationTop
,
1215 Basicvideo_put_DestinationHeight
,
1216 Basicvideo_get_DestinationHeight
,
1217 Basicvideo_SetSourcePosition
,
1218 Basicvideo_GetSourcePosition
,
1219 Basicvideo_SetDefaultSourcePosition
,
1220 Basicvideo_SetDestinationPosition
,
1221 Basicvideo_GetDestinationPosition
,
1222 Basicvideo_SetDefaultDestinationPosition
,
1223 Basicvideo_GetVideoSize
,
1224 Basicvideo_GetVideoPaletteEntries
,
1225 Basicvideo_GetCurrentImage
,
1226 Basicvideo_IsUsingDefaultSource
,
1227 Basicvideo_IsUsingDefaultDestination
1231 /*** IUnknown methods ***/
1232 static HRESULT WINAPI
Videowindow_QueryInterface(IVideoWindow
*iface
,
1235 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1237 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
1239 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
1242 static ULONG WINAPI
Videowindow_AddRef(IVideoWindow
*iface
) {
1243 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1245 TRACE("(%p/%p)->()\n", This
, iface
);
1247 return Filtergraph_AddRef(This
);
1250 static ULONG WINAPI
Videowindow_Release(IVideoWindow
*iface
) {
1251 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1253 TRACE("(%p/%p)->()\n", This
, iface
);
1255 return Filtergraph_Release(This
);
1258 /*** IDispatch methods ***/
1259 static HRESULT WINAPI
Videowindow_GetTypeInfoCount(IVideoWindow
*iface
,
1261 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1263 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
1268 static HRESULT WINAPI
Videowindow_GetTypeInfo(IVideoWindow
*iface
,
1271 ITypeInfo
**ppTInfo
) {
1272 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1274 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
1279 static HRESULT WINAPI
Videowindow_GetIDsOfNames(IVideoWindow
*iface
,
1285 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1287 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
1292 static HRESULT WINAPI
Videowindow_Invoke(IVideoWindow
*iface
,
1293 DISPID dispIdMember
,
1297 DISPPARAMS
*pDispParams
,
1299 EXCEPINFO
*pExepInfo
,
1301 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1303 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
);
1308 /*** IVideoWindow methods ***/
1309 static HRESULT WINAPI
Videowindow_put_Caption(IVideoWindow
*iface
,
1311 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1313 TRACE("(%p/%p)->(%s (%p)): stub !!!\n", This
, iface
, debugstr_w(strCaption
), strCaption
);
1318 static HRESULT WINAPI
Videowindow_get_Caption(IVideoWindow
*iface
,
1320 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1322 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, strCaption
);
1327 static HRESULT WINAPI
Videowindow_put_WindowStyle(IVideoWindow
*iface
,
1329 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1331 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, WindowStyle
);
1336 static HRESULT WINAPI
Videowindow_get_WindowStyle(IVideoWindow
*iface
,
1337 long *WindowStyle
) {
1338 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1340 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, WindowStyle
);
1345 static HRESULT WINAPI
Videowindow_put_WindowStyleEx(IVideoWindow
*iface
,
1346 long WindowStyleEx
) {
1347 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1349 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, WindowStyleEx
);
1354 static HRESULT WINAPI
Videowindow_get_WindowStyleEx(IVideoWindow
*iface
,
1355 long *WindowStyleEx
) {
1356 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1358 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, WindowStyleEx
);
1363 static HRESULT WINAPI
Videowindow_put_AutoShow(IVideoWindow
*iface
,
1365 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1367 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, AutoShow
);
1372 static HRESULT WINAPI
Videowindow_get_AutoShow(IVideoWindow
*iface
,
1374 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1376 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, AutoShow
);
1381 static HRESULT WINAPI
Videowindow_put_WindowState(IVideoWindow
*iface
,
1383 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1385 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, WindowState
);
1390 static HRESULT WINAPI
Videowindow_get_WindowState(IVideoWindow
*iface
,
1391 long *WindowState
) {
1392 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1394 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, WindowState
);
1399 static HRESULT WINAPI
Videowindow_put_BackgroundPalette(IVideoWindow
*iface
,
1400 long BackgroundPalette
) {
1401 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1403 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, BackgroundPalette
);
1408 static HRESULT WINAPI
Videowindow_get_BackgroundPalette(IVideoWindow
*iface
,
1409 long *pBackgroundPalette
) {
1410 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1412 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pBackgroundPalette
);
1417 static HRESULT WINAPI
Videowindow_put_Visible(IVideoWindow
*iface
,
1419 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1421 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Visible
);
1426 static HRESULT WINAPI
Videowindow_get_Visible(IVideoWindow
*iface
,
1428 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1430 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pVisible
);
1435 static HRESULT WINAPI
Videowindow_put_Left(IVideoWindow
*iface
,
1437 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1439 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Left
);
1444 static HRESULT WINAPI
Videowindow_get_Left(IVideoWindow
*iface
,
1446 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1448 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pLeft
);
1453 static HRESULT WINAPI
Videowindow_put_Width(IVideoWindow
*iface
,
1455 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1457 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Width
);
1462 static HRESULT WINAPI
Videowindow_get_Width(IVideoWindow
*iface
,
1464 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1466 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pWidth
);
1471 static HRESULT WINAPI
Videowindow_put_Top(IVideoWindow
*iface
,
1473 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1475 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Top
);
1480 static HRESULT WINAPI
Videowindow_get_Top(IVideoWindow
*iface
,
1482 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1484 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pTop
);
1489 static HRESULT WINAPI
Videowindow_put_Height(IVideoWindow
*iface
,
1491 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1493 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Height
);
1498 static HRESULT WINAPI
Videowindow_get_Height(IVideoWindow
*iface
,
1500 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1502 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pHeight
);
1507 static HRESULT WINAPI
Videowindow_put_Owner(IVideoWindow
*iface
,
1509 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1511 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) Owner
);
1516 static HRESULT WINAPI
Videowindow_get_Owner(IVideoWindow
*iface
,
1518 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1520 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) Owner
);
1525 static HRESULT WINAPI
Videowindow_put_MessageDrain(IVideoWindow
*iface
,
1527 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1529 TRACE("(%p/%p)->(%08lx): stub !!!\n", This
, iface
, (DWORD
) Drain
);
1534 static HRESULT WINAPI
Videowindow_get_MessageDrain(IVideoWindow
*iface
,
1536 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1538 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, Drain
);
1543 static HRESULT WINAPI
Videowindow_get_BorderColor(IVideoWindow
*iface
,
1545 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1547 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, Color
);
1552 static HRESULT WINAPI
Videowindow_put_BorderColor(IVideoWindow
*iface
,
1554 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1556 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Color
);
1561 static HRESULT WINAPI
Videowindow_get_FullScreenMode(IVideoWindow
*iface
,
1562 long *FullScreenMode
) {
1563 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1565 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, FullScreenMode
);
1570 static HRESULT WINAPI
Videowindow_put_FullScreenMode(IVideoWindow
*iface
,
1571 long FullScreenMode
) {
1572 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1574 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, FullScreenMode
);
1579 static HRESULT WINAPI
Videowindow_SetWindowForeground(IVideoWindow
*iface
,
1581 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1583 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, Focus
);
1588 static HRESULT WINAPI
Videowindow_NotifyOwnerMessage(IVideoWindow
*iface
,
1593 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1595 TRACE("(%p/%p)->(%08lx, %ld, %08lx, %08lx): stub !!!\n", This
, iface
, (DWORD
) hwnd
, uMsg
, wParam
, lParam
);
1600 static HRESULT WINAPI
Videowindow_SetWindowPosition(IVideoWindow
*iface
,
1605 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1607 TRACE("(%p/%p)->(%ld, %ld, %ld, %ld): stub !!!\n", This
, iface
, Left
, Top
, Width
, Height
);
1612 static HRESULT WINAPI
Videowindow_GetWindowPosition(IVideoWindow
*iface
,
1617 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1619 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1624 static HRESULT WINAPI
Videowindow_GetMinIdealImageSize(IVideoWindow
*iface
,
1627 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1629 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pWidth
, pHeight
);
1634 static HRESULT WINAPI
Videowindow_GetMaxIdealImageSize(IVideoWindow
*iface
,
1637 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1639 TRACE("(%p/%p)->(%p, %p): stub !!!\n", This
, iface
, pWidth
, pHeight
);
1644 static HRESULT WINAPI
Videowindow_GetRestorePosition(IVideoWindow
*iface
,
1649 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1651 TRACE("(%p/%p)->(%p, %p, %p, %p): stub !!!\n", This
, iface
, pLeft
, pTop
, pWidth
, pHeight
);
1656 static HRESULT WINAPI
Videowindow_HideCursor(IVideoWindow
*iface
,
1658 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1660 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, HideCursor
);
1665 static HRESULT WINAPI
Videowindow_IsCursorHidden(IVideoWindow
*iface
,
1666 long *CursorHidden
) {
1667 ICOM_THIS_MULTI(IFilterGraphImpl
, IVideoWindow_vtbl
, iface
);
1669 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, CursorHidden
);
1675 static ICOM_VTABLE(IVideoWindow
) IVideoWindow_VTable
=
1677 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
1678 Videowindow_QueryInterface
,
1680 Videowindow_Release
,
1681 Videowindow_GetTypeInfoCount
,
1682 Videowindow_GetTypeInfo
,
1683 Videowindow_GetIDsOfNames
,
1685 Videowindow_put_Caption
,
1686 Videowindow_get_Caption
,
1687 Videowindow_put_WindowStyle
,
1688 Videowindow_get_WindowStyle
,
1689 Videowindow_put_WindowStyleEx
,
1690 Videowindow_get_WindowStyleEx
,
1691 Videowindow_put_AutoShow
,
1692 Videowindow_get_AutoShow
,
1693 Videowindow_put_WindowState
,
1694 Videowindow_get_WindowState
,
1695 Videowindow_put_BackgroundPalette
,
1696 Videowindow_get_BackgroundPalette
,
1697 Videowindow_put_Visible
,
1698 Videowindow_get_Visible
,
1699 Videowindow_put_Left
,
1700 Videowindow_get_Left
,
1701 Videowindow_put_Width
,
1702 Videowindow_get_Width
,
1703 Videowindow_put_Top
,
1704 Videowindow_get_Top
,
1705 Videowindow_put_Height
,
1706 Videowindow_get_Height
,
1707 Videowindow_put_Owner
,
1708 Videowindow_get_Owner
,
1709 Videowindow_put_MessageDrain
,
1710 Videowindow_get_MessageDrain
,
1711 Videowindow_get_BorderColor
,
1712 Videowindow_put_BorderColor
,
1713 Videowindow_get_FullScreenMode
,
1714 Videowindow_put_FullScreenMode
,
1715 Videowindow_SetWindowForeground
,
1716 Videowindow_NotifyOwnerMessage
,
1717 Videowindow_SetWindowPosition
,
1718 Videowindow_GetWindowPosition
,
1719 Videowindow_GetMinIdealImageSize
,
1720 Videowindow_GetMaxIdealImageSize
,
1721 Videowindow_GetRestorePosition
,
1722 Videowindow_HideCursor
,
1723 Videowindow_IsCursorHidden
1727 /*** IUnknown methods ***/
1728 static HRESULT WINAPI
Mediaevent_QueryInterface(IMediaEventEx
*iface
,
1731 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1733 TRACE("(%p/%p)->(%s (%p), %p)\n", This
, iface
, debugstr_guid(riid
), riid
, ppvObj
);
1735 return Filtergraph_QueryInterface(This
, riid
, ppvObj
);
1738 static ULONG WINAPI
Mediaevent_AddRef(IMediaEventEx
*iface
) {
1739 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1741 TRACE("(%p/%p)->()\n", This
, iface
);
1743 return Filtergraph_AddRef(This
);
1746 static ULONG WINAPI
Mediaevent_Release(IMediaEventEx
*iface
) {
1747 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1749 TRACE("(%p/%p)->()\n", This
, iface
);
1751 return Filtergraph_Release(This
);
1754 /*** IDispatch methods ***/
1755 static HRESULT WINAPI
Mediaevent_GetTypeInfoCount(IMediaEventEx
*iface
,
1757 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1759 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, pctinfo
);
1764 static HRESULT WINAPI
Mediaevent_GetTypeInfo(IMediaEventEx
*iface
,
1767 ITypeInfo
**ppTInfo
) {
1768 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1770 TRACE("(%p/%p)->(%d, %ld, %p): stub !!!\n", This
, iface
, iTInfo
, lcid
, ppTInfo
);
1775 static HRESULT WINAPI
Mediaevent_GetIDsOfNames(IMediaEventEx
*iface
,
1781 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1783 TRACE("(%p/%p)->(%s (%p), %p, %d, %ld, %p): stub !!!\n", This
, iface
, debugstr_guid(riid
), riid
, rgszNames
, cNames
, lcid
, rgDispId
);
1788 static HRESULT WINAPI
Mediaevent_Invoke(IMediaEventEx
*iface
,
1789 DISPID dispIdMember
,
1793 DISPPARAMS
*pDispParams
,
1795 EXCEPINFO
*pExepInfo
,
1797 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1799 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
);
1804 /*** IMediaEvent methods ***/
1805 static HRESULT WINAPI
Mediaevent_GetEventHandle(IMediaEventEx
*iface
,
1807 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1809 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, hEvent
);
1814 static HRESULT WINAPI
Mediaevent_GetEvent(IMediaEventEx
*iface
,
1819 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1821 TRACE("(%p/%p)->(%p, %p, %p, %ld): stub !!!\n", This
, iface
, lEventCode
, lParam1
, lParam2
, msTimeout
);
1826 static HRESULT WINAPI
Mediaevent_WaitForCompletion(IMediaEventEx
*iface
,
1829 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1831 TRACE("(%p/%p)->(%ld, %p): stub !!!\n", This
, iface
, msTimeout
, pEvCode
);
1836 static HRESULT WINAPI
Mediaevent_CancelDefaultHandling(IMediaEventEx
*iface
,
1838 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1840 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lEvCode
);
1845 static HRESULT WINAPI
Mediaevent_RestoreDefaultHandling(IMediaEventEx
*iface
,
1847 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1849 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lEvCode
);
1854 static HRESULT WINAPI
Mediaevent_FreeEventParams(IMediaEventEx
*iface
,
1858 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1860 TRACE("(%p/%p)->(%ld, %08lx, %08lx): stub !!!\n", This
, iface
, lEvCode
, lParam1
, lParam2
);
1865 /*** IMediaEventEx methods ***/
1866 static HRESULT WINAPI
Mediaevent_SetNotifyWindow(IMediaEventEx
*iface
,
1869 LONG_PTR lInstanceData
) {
1870 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1872 TRACE("(%p/%p)->(%08lx, %ld, %08lx): stub !!!\n", This
, iface
, (DWORD
) hwnd
, lMsg
, lInstanceData
);
1877 static HRESULT WINAPI
Mediaevent_SetNotifyFlags(IMediaEventEx
*iface
,
1878 long lNoNotifyFlags
) {
1879 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1881 TRACE("(%p/%p)->(%ld): stub !!!\n", This
, iface
, lNoNotifyFlags
);
1886 static HRESULT WINAPI
Mediaevent_GetNotifyFlags(IMediaEventEx
*iface
,
1887 long *lplNoNotifyFlags
) {
1888 ICOM_THIS_MULTI(IFilterGraphImpl
, IMediaEventEx_vtbl
, iface
);
1890 TRACE("(%p/%p)->(%p): stub !!!\n", This
, iface
, lplNoNotifyFlags
);
1896 static ICOM_VTABLE(IMediaEventEx
) IMediaEventEx_VTable
=
1898 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
1899 Mediaevent_QueryInterface
,
1902 Mediaevent_GetTypeInfoCount
,
1903 Mediaevent_GetTypeInfo
,
1904 Mediaevent_GetIDsOfNames
,
1906 Mediaevent_GetEventHandle
,
1907 Mediaevent_GetEvent
,
1908 Mediaevent_WaitForCompletion
,
1909 Mediaevent_CancelDefaultHandling
,
1910 Mediaevent_RestoreDefaultHandling
,
1911 Mediaevent_FreeEventParams
,
1912 Mediaevent_SetNotifyWindow
,
1913 Mediaevent_SetNotifyFlags
,
1914 Mediaevent_GetNotifyFlags
1921 /* This is the only function that actually creates a FilterGraph class... */
1922 HRESULT
FILTERGRAPH_create(IUnknown
*pUnkOuter
, LPVOID
*ppObj
) {
1923 IFilterGraphImpl
*fimpl
;
1925 TRACE("(%p,%p)\n", pUnkOuter
, ppObj
);
1927 fimpl
= (IFilterGraphImpl
*) HeapAlloc(GetProcessHeap(), 0, sizeof(*fimpl
));
1928 fimpl
->IGraphBuilder_vtbl
= &IGraphBuilder_VTable
;
1929 fimpl
->IMediaControl_vtbl
= &IMediaControl_VTable
;
1930 fimpl
->IMediaSeeking_vtbl
= &IMediaSeeking_VTable
;
1931 fimpl
->IBasicAudio_vtbl
= &IBasicAudio_VTable
;
1932 fimpl
->IBasicVideo_vtbl
= &IBasicVideo_VTable
;
1933 fimpl
->IVideoWindow_vtbl
= &IVideoWindow_VTable
;
1934 fimpl
->IMediaEventEx_vtbl
= &IMediaEventEx_VTable
;