2 * Implementation of IBasicAudio, IBasicVideo2, IVideoWindow for FilterGraph.
4 * hidenori@a2.ctktv.ne.jp
18 #include "debugtools.h"
19 DEFAULT_DEBUG_CHANNEL(quartz);
21 #include "quartz_private.h"
25 static HRESULT CFilterGraph_QIFilters(
26 CFilterGraph* This, REFIID riid, void** ppvobj )
28 QUARTZ_CompListItem* pItem;
29 HRESULT hr = E_NOINTERFACE;
31 TRACE( "(%p,%p,%p)\n",This,riid,ppvobj);
33 QUARTZ_CompList_Lock( This->m_pFilterList );
34 pItem = QUARTZ_CompList_GetLast( This->m_pFilterList );
35 while ( pItem != NULL )
37 if ( IUnknown_QueryInterface( QUARTZ_CompList_GetItemPtr(pItem),riid,ppvobj) == S_OK )
42 pItem = QUARTZ_CompList_GetPrev( This->m_pFilterList, pItem );
44 QUARTZ_CompList_Unlock( This->m_pFilterList );
50 static HRESULT CFilterGraph_QueryBasicAudio(
51 CFilterGraph* This, IBasicAudio** ppAudio )
53 return CFilterGraph_QIFilters(This,&IID_IBasicAudio,(void**)ppAudio);
56 static HRESULT CFilterGraph_QueryBasicVideo(
57 CFilterGraph* This, IBasicVideo** ppVideo )
59 return CFilterGraph_QIFilters(This,&IID_IBasicVideo,(void**)ppVideo);
62 static HRESULT CFilterGraph_QueryBasicVideo2(
63 CFilterGraph* This, IBasicVideo2** ppVideo )
65 return CFilterGraph_QIFilters(This,&IID_IBasicVideo2,(void**)ppVideo);
68 static HRESULT CFilterGraph_QueryVideoWindow(
69 CFilterGraph* This, IVideoWindow** ppVidWin )
71 return CFilterGraph_QIFilters(This,&IID_IVideoWindow,(void**)ppVidWin);
76 /***************************************************************************
78 * CFilterGraph::IBasicAudio
82 #define QUERYBASICAUDIO \
83 IBasicAudio* pAudio = NULL; \
85 hr = CFilterGraph_QueryBasicAudio( This, &pAudio ); \
86 if ( FAILED(hr) ) return hr;
90 IBasicAudio_fnQueryInterface(IBasicAudio* iface,REFIID riid,void** ppobj)
92 CFilterGraph_THIS(iface,basaud);
94 TRACE("(%p)->()\n",This);
96 return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
100 IBasicAudio_fnAddRef(IBasicAudio* iface)
102 CFilterGraph_THIS(iface,basaud);
104 TRACE("(%p)->()\n",This);
106 return IUnknown_AddRef(This->unk.punkControl);
110 IBasicAudio_fnRelease(IBasicAudio* iface)
112 CFilterGraph_THIS(iface,basaud);
114 TRACE("(%p)->()\n",This);
116 return IUnknown_Release(This->unk.punkControl);
119 static HRESULT WINAPI
120 IBasicAudio_fnGetTypeInfoCount(IBasicAudio* iface,UINT* pcTypeInfo)
122 CFilterGraph_THIS(iface,basaud);
124 FIXME("(%p)->()\n",This);
129 static HRESULT WINAPI
130 IBasicAudio_fnGetTypeInfo(IBasicAudio* iface,UINT iTypeInfo, LCID lcid, ITypeInfo** ppobj)
132 CFilterGraph_THIS(iface,basaud);
134 FIXME("(%p)->()\n",This);
139 static HRESULT WINAPI
140 IBasicAudio_fnGetIDsOfNames(IBasicAudio* iface,REFIID riid, LPOLESTR* ppwszName, UINT cNames, LCID lcid, DISPID* pDispId)
142 CFilterGraph_THIS(iface,basaud);
144 FIXME("(%p)->()\n",This);
149 static HRESULT WINAPI
150 IBasicAudio_fnInvoke(IBasicAudio* iface,DISPID DispId, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarRes, EXCEPINFO* pExcepInfo, UINT* puArgErr)
152 CFilterGraph_THIS(iface,basaud);
154 FIXME("(%p)->()\n",This);
160 static HRESULT WINAPI
161 IBasicAudio_fnput_Volume(IBasicAudio* iface,long lVol)
163 CFilterGraph_THIS(iface,basaud);
166 TRACE("(%p)->()\n",This);
168 return IBasicAudio_put_Volume(pAudio,lVol);
171 static HRESULT WINAPI
172 IBasicAudio_fnget_Volume(IBasicAudio* iface,long* plVol)
174 CFilterGraph_THIS(iface,basaud);
177 TRACE("(%p)->()\n",This);
179 return IBasicAudio_get_Volume(pAudio,plVol);
182 static HRESULT WINAPI
183 IBasicAudio_fnput_Balance(IBasicAudio* iface,long lBalance)
185 CFilterGraph_THIS(iface,basaud);
188 TRACE("(%p)->()\n",This);
190 return IBasicAudio_put_Balance(pAudio,lBalance);
193 static HRESULT WINAPI
194 IBasicAudio_fnget_Balance(IBasicAudio* iface,long* plBalance)
196 CFilterGraph_THIS(iface,basaud);
199 TRACE("(%p)->()\n",This);
201 return IBasicAudio_get_Balance(pAudio,plBalance);
205 static ICOM_VTABLE(IBasicAudio) ibasicaudio =
207 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
208 /* IUnknown fields */
209 IBasicAudio_fnQueryInterface,
210 IBasicAudio_fnAddRef,
211 IBasicAudio_fnRelease,
212 /* IDispatch fields */
213 IBasicAudio_fnGetTypeInfoCount,
214 IBasicAudio_fnGetTypeInfo,
215 IBasicAudio_fnGetIDsOfNames,
216 IBasicAudio_fnInvoke,
217 /* IBasicAudio fields */
218 IBasicAudio_fnput_Volume,
219 IBasicAudio_fnget_Volume,
220 IBasicAudio_fnput_Balance,
221 IBasicAudio_fnget_Balance,
225 HRESULT CFilterGraph_InitIBasicAudio( CFilterGraph* pfg )
228 ICOM_VTBL(&pfg->basaud) = &ibasicaudio;
233 void CFilterGraph_UninitIBasicAudio( CFilterGraph* pfg )
238 #undef QUERYBASICAUDIO
241 /***************************************************************************
243 * CFilterGraph::IBasicVideo2
248 #define QUERYBASICVIDEO \
249 IBasicVideo* pVideo = NULL; \
251 hr = CFilterGraph_QueryBasicVideo( This, &pVideo ); \
252 if ( FAILED(hr) ) return hr;
254 #define QUERYBASICVIDEO2 \
255 IBasicVideo2* pVideo = NULL; \
257 hr = CFilterGraph_QueryBasicVideo2( This, &pVideo ); \
258 if ( FAILED(hr) ) return hr;
261 static HRESULT WINAPI
262 IBasicVideo2_fnQueryInterface(IBasicVideo2* iface,REFIID riid,void** ppobj)
264 CFilterGraph_THIS(iface,basvid);
266 TRACE("(%p)->()\n",This);
268 return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
272 IBasicVideo2_fnAddRef(IBasicVideo2* iface)
274 CFilterGraph_THIS(iface,basvid);
276 TRACE("(%p)->()\n",This);
278 return IUnknown_AddRef(This->unk.punkControl);
282 IBasicVideo2_fnRelease(IBasicVideo2* iface)
284 CFilterGraph_THIS(iface,basvid);
286 TRACE("(%p)->()\n",This);
288 return IUnknown_Release(This->unk.punkControl);
291 static HRESULT WINAPI
292 IBasicVideo2_fnGetTypeInfoCount(IBasicVideo2* iface,UINT* pcTypeInfo)
294 CFilterGraph_THIS(iface,basvid);
296 FIXME("(%p)->()\n",This);
301 static HRESULT WINAPI
302 IBasicVideo2_fnGetTypeInfo(IBasicVideo2* iface,UINT iTypeInfo, LCID lcid, ITypeInfo** ppobj)
304 CFilterGraph_THIS(iface,basvid);
306 FIXME("(%p)->()\n",This);
311 static HRESULT WINAPI
312 IBasicVideo2_fnGetIDsOfNames(IBasicVideo2* iface,REFIID riid, LPOLESTR* ppwszName, UINT cNames, LCID lcid, DISPID* pDispId)
314 CFilterGraph_THIS(iface,basvid);
316 FIXME("(%p)->()\n",This);
321 static HRESULT WINAPI
322 IBasicVideo2_fnInvoke(IBasicVideo2* iface,DISPID DispId, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarRes, EXCEPINFO* pExcepInfo, UINT* puArgErr)
324 CFilterGraph_THIS(iface,basvid);
326 FIXME("(%p)->()\n",This);
332 static HRESULT WINAPI
333 IBasicVideo2_fnget_AvgTimePerFrame(IBasicVideo2* iface,REFTIME* prefTime)
335 CFilterGraph_THIS(iface,basvid);
338 TRACE("(%p)->()\n",This);
340 return IBasicVideo_get_AvgTimePerFrame(pVideo,prefTime);
343 static HRESULT WINAPI
344 IBasicVideo2_fnget_BitRate(IBasicVideo2* iface,long* plRate)
346 CFilterGraph_THIS(iface,basvid);
349 TRACE("(%p)->()\n",This);
351 return IBasicVideo_get_BitRate(pVideo,plRate);
354 static HRESULT WINAPI
355 IBasicVideo2_fnget_BitErrorRate(IBasicVideo2* iface,long* plRate)
357 CFilterGraph_THIS(iface,basvid);
360 TRACE("(%p)->()\n",This);
362 return IBasicVideo_get_BitErrorRate(pVideo,plRate);
365 static HRESULT WINAPI
366 IBasicVideo2_fnget_VideoWidth(IBasicVideo2* iface,long* plWidth)
368 CFilterGraph_THIS(iface,basvid);
371 TRACE("(%p)->()\n",This);
373 return IBasicVideo_get_VideoWidth(pVideo,plWidth);
376 static HRESULT WINAPI
377 IBasicVideo2_fnget_VideoHeight(IBasicVideo2* iface,long* plHeight)
379 CFilterGraph_THIS(iface,basvid);
382 TRACE("(%p)->()\n",This);
384 return IBasicVideo_get_VideoHeight(pVideo,plHeight);
387 static HRESULT WINAPI
388 IBasicVideo2_fnput_SourceLeft(IBasicVideo2* iface,long lLeft)
390 CFilterGraph_THIS(iface,basvid);
393 TRACE("(%p)->()\n",This);
395 return IBasicVideo_put_SourceLeft(pVideo,lLeft);
398 static HRESULT WINAPI
399 IBasicVideo2_fnget_SourceLeft(IBasicVideo2* iface,long* plLeft)
401 CFilterGraph_THIS(iface,basvid);
404 TRACE("(%p)->()\n",This);
406 return IBasicVideo_get_SourceLeft(pVideo,plLeft);
409 static HRESULT WINAPI
410 IBasicVideo2_fnput_SourceWidth(IBasicVideo2* iface,long lWidth)
412 CFilterGraph_THIS(iface,basvid);
415 TRACE("(%p)->()\n",This);
417 return IBasicVideo_put_SourceWidth(pVideo,lWidth);
420 static HRESULT WINAPI
421 IBasicVideo2_fnget_SourceWidth(IBasicVideo2* iface,long* plWidth)
423 CFilterGraph_THIS(iface,basvid);
426 TRACE("(%p)->()\n",This);
428 return IBasicVideo_get_SourceWidth(pVideo,plWidth);
431 static HRESULT WINAPI
432 IBasicVideo2_fnput_SourceTop(IBasicVideo2* iface,long lTop)
434 CFilterGraph_THIS(iface,basvid);
437 TRACE("(%p)->()\n",This);
439 return IBasicVideo_put_SourceTop(pVideo,lTop);
442 static HRESULT WINAPI
443 IBasicVideo2_fnget_SourceTop(IBasicVideo2* iface,long* plTop)
445 CFilterGraph_THIS(iface,basvid);
448 TRACE("(%p)->()\n",This);
450 return IBasicVideo_get_SourceTop(pVideo,plTop);
453 static HRESULT WINAPI
454 IBasicVideo2_fnput_SourceHeight(IBasicVideo2* iface,long lHeight)
456 CFilterGraph_THIS(iface,basvid);
459 TRACE("(%p)->()\n",This);
461 return IBasicVideo_put_SourceHeight(pVideo,lHeight);
464 static HRESULT WINAPI
465 IBasicVideo2_fnget_SourceHeight(IBasicVideo2* iface,long* plHeight)
467 CFilterGraph_THIS(iface,basvid);
470 TRACE("(%p)->()\n",This);
472 return IBasicVideo_get_SourceHeight(pVideo,plHeight);
475 static HRESULT WINAPI
476 IBasicVideo2_fnput_DestinationLeft(IBasicVideo2* iface,long lLeft)
478 CFilterGraph_THIS(iface,basvid);
481 TRACE("(%p)->()\n",This);
483 return IBasicVideo_put_DestinationLeft(pVideo,lLeft);
486 static HRESULT WINAPI
487 IBasicVideo2_fnget_DestinationLeft(IBasicVideo2* iface,long* plLeft)
489 CFilterGraph_THIS(iface,basvid);
492 TRACE("(%p)->()\n",This);
494 return IBasicVideo_get_DestinationLeft(pVideo,plLeft);
497 static HRESULT WINAPI
498 IBasicVideo2_fnput_DestinationWidth(IBasicVideo2* iface,long lWidth)
500 CFilterGraph_THIS(iface,basvid);
503 TRACE("(%p)->()\n",This);
505 return IBasicVideo_put_DestinationWidth(pVideo,lWidth);
508 static HRESULT WINAPI
509 IBasicVideo2_fnget_DestinationWidth(IBasicVideo2* iface,long* plWidth)
511 CFilterGraph_THIS(iface,basvid);
514 TRACE("(%p)->()\n",This);
516 return IBasicVideo_get_DestinationWidth(pVideo,plWidth);
519 static HRESULT WINAPI
520 IBasicVideo2_fnput_DestinationTop(IBasicVideo2* iface,long lTop)
522 CFilterGraph_THIS(iface,basvid);
525 TRACE("(%p)->()\n",This);
527 return IBasicVideo_put_DestinationTop(pVideo,lTop);
530 static HRESULT WINAPI
531 IBasicVideo2_fnget_DestinationTop(IBasicVideo2* iface,long* plTop)
533 CFilterGraph_THIS(iface,basvid);
536 TRACE("(%p)->()\n",This);
538 return IBasicVideo_get_DestinationTop(pVideo,plTop);
541 static HRESULT WINAPI
542 IBasicVideo2_fnput_DestinationHeight(IBasicVideo2* iface,long lHeight)
544 CFilterGraph_THIS(iface,basvid);
547 TRACE("(%p)->()\n",This);
549 return IBasicVideo_put_DestinationHeight(pVideo,lHeight);
552 static HRESULT WINAPI
553 IBasicVideo2_fnget_DestinationHeight(IBasicVideo2* iface,long* plHeight)
555 CFilterGraph_THIS(iface,basvid);
558 TRACE("(%p)->()\n",This);
560 return IBasicVideo_get_DestinationHeight(pVideo,plHeight);
563 static HRESULT WINAPI
564 IBasicVideo2_fnSetSourcePosition(IBasicVideo2* iface,long lLeft,long lTop,long lWidth,long lHeight)
566 CFilterGraph_THIS(iface,basvid);
569 TRACE("(%p)->()\n",This);
571 return IBasicVideo_SetSourcePosition(pVideo,lLeft,lTop,lWidth,lHeight);
574 static HRESULT WINAPI
575 IBasicVideo2_fnGetSourcePosition(IBasicVideo2* iface,long* plLeft,long* plTop,long* plWidth,long* plHeight)
577 CFilterGraph_THIS(iface,basvid);
580 TRACE("(%p)->()\n",This);
582 return IBasicVideo_GetSourcePosition(pVideo,plLeft,plTop,plWidth,plHeight);
585 static HRESULT WINAPI
586 IBasicVideo2_fnSetDefaultSourcePosition(IBasicVideo2* iface)
588 CFilterGraph_THIS(iface,basvid);
591 TRACE("(%p)->()\n",This);
593 return IBasicVideo_SetDefaultSourcePosition(pVideo);
596 static HRESULT WINAPI
597 IBasicVideo2_fnSetDestinationPosition(IBasicVideo2* iface,long lLeft,long lTop,long lWidth,long lHeight)
599 CFilterGraph_THIS(iface,basvid);
602 TRACE("(%p)->()\n",This);
604 return IBasicVideo_SetDestinationPosition(pVideo,lLeft,lTop,lWidth,lHeight);
607 static HRESULT WINAPI
608 IBasicVideo2_fnGetDestinationPosition(IBasicVideo2* iface,long* plLeft,long* plTop,long* plWidth,long* plHeight)
610 CFilterGraph_THIS(iface,basvid);
613 TRACE("(%p)->()\n",This);
615 return IBasicVideo_GetDestinationPosition(pVideo,plLeft,plTop,plWidth,plHeight);
618 static HRESULT WINAPI
619 IBasicVideo2_fnSetDefaultDestinationPosition(IBasicVideo2* iface)
621 CFilterGraph_THIS(iface,basvid);
624 TRACE("(%p)->()\n",This);
626 return IBasicVideo_SetDefaultDestinationPosition(pVideo);
629 static HRESULT WINAPI
630 IBasicVideo2_fnGetVideoSize(IBasicVideo2* iface,long* plWidth,long* plHeight)
632 CFilterGraph_THIS(iface,basvid);
635 TRACE("(%p)->()\n",This);
637 return IBasicVideo_GetVideoSize(pVideo,plWidth,plHeight);
640 static HRESULT WINAPI
641 IBasicVideo2_fnGetVideoPaletteEntries(IBasicVideo2* iface,long lStart,long lCount,long* plRet,long* plPaletteEntry)
643 CFilterGraph_THIS(iface,basvid);
646 TRACE("(%p)->()\n",This);
648 return IBasicVideo_GetVideoPaletteEntries(pVideo,lStart,lCount,plRet,plPaletteEntry);
651 static HRESULT WINAPI
652 IBasicVideo2_fnGetCurrentImage(IBasicVideo2* iface,long* plBufferSize,long* plDIBBuffer)
654 CFilterGraph_THIS(iface,basvid);
657 TRACE("(%p)->()\n",This);
659 return IBasicVideo_GetCurrentImage(pVideo,plBufferSize,plDIBBuffer);
662 static HRESULT WINAPI
663 IBasicVideo2_fnIsUsingDefaultSource(IBasicVideo2* iface)
665 CFilterGraph_THIS(iface,basvid);
668 TRACE("(%p)->()\n",This);
670 return IBasicVideo_IsUsingDefaultSource(pVideo);
673 static HRESULT WINAPI
674 IBasicVideo2_fnIsUsingDefaultDestination(IBasicVideo2* iface)
676 CFilterGraph_THIS(iface,basvid);
679 TRACE("(%p)->()\n",This);
681 return IBasicVideo_IsUsingDefaultDestination(pVideo);
684 static HRESULT WINAPI
685 IBasicVideo2_fnGetPreferredAspectRatio(IBasicVideo2* iface,long* plRateX,long* plRateY)
687 CFilterGraph_THIS(iface,basvid);
690 TRACE("(%p)->()\n",This);
692 return IBasicVideo2_GetPreferredAspectRatio(pVideo,plRateX,plRateY);
698 static ICOM_VTABLE(IBasicVideo2) ibasicvideo =
700 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
701 /* IUnknown fields */
702 IBasicVideo2_fnQueryInterface,
703 IBasicVideo2_fnAddRef,
704 IBasicVideo2_fnRelease,
705 /* IDispatch fields */
706 IBasicVideo2_fnGetTypeInfoCount,
707 IBasicVideo2_fnGetTypeInfo,
708 IBasicVideo2_fnGetIDsOfNames,
709 IBasicVideo2_fnInvoke,
710 /* IBasicVideo fields */
711 IBasicVideo2_fnget_AvgTimePerFrame,
712 IBasicVideo2_fnget_BitRate,
713 IBasicVideo2_fnget_BitErrorRate,
714 IBasicVideo2_fnget_VideoWidth,
715 IBasicVideo2_fnget_VideoHeight,
716 IBasicVideo2_fnput_SourceLeft,
717 IBasicVideo2_fnget_SourceLeft,
718 IBasicVideo2_fnput_SourceWidth,
719 IBasicVideo2_fnget_SourceWidth,
720 IBasicVideo2_fnput_SourceTop,
721 IBasicVideo2_fnget_SourceTop,
722 IBasicVideo2_fnput_SourceHeight,
723 IBasicVideo2_fnget_SourceHeight,
724 IBasicVideo2_fnput_DestinationLeft,
725 IBasicVideo2_fnget_DestinationLeft,
726 IBasicVideo2_fnput_DestinationWidth,
727 IBasicVideo2_fnget_DestinationWidth,
728 IBasicVideo2_fnput_DestinationTop,
729 IBasicVideo2_fnget_DestinationTop,
730 IBasicVideo2_fnput_DestinationHeight,
731 IBasicVideo2_fnget_DestinationHeight,
732 IBasicVideo2_fnSetSourcePosition,
733 IBasicVideo2_fnGetSourcePosition,
734 IBasicVideo2_fnSetDefaultSourcePosition,
735 IBasicVideo2_fnSetDestinationPosition,
736 IBasicVideo2_fnGetDestinationPosition,
737 IBasicVideo2_fnSetDefaultDestinationPosition,
738 IBasicVideo2_fnGetVideoSize,
739 IBasicVideo2_fnGetVideoPaletteEntries,
740 IBasicVideo2_fnGetCurrentImage,
741 IBasicVideo2_fnIsUsingDefaultSource,
742 IBasicVideo2_fnIsUsingDefaultDestination,
743 /* IBasicVideo2 fields */
744 IBasicVideo2_fnGetPreferredAspectRatio,
748 HRESULT CFilterGraph_InitIBasicVideo2( CFilterGraph* pfg )
751 ICOM_VTBL(&pfg->basvid) = &ibasicvideo;
756 void CFilterGraph_UninitIBasicVideo2( CFilterGraph* pfg )
761 #undef QUERYBASICVIDEO2
762 #undef QUERYBASICVIDEO
764 /***************************************************************************
766 * CFilterGraph::IVideoWindow
770 #define QUERYVIDEOWINDOW \
771 IVideoWindow* pVidWin = NULL; \
773 hr = CFilterGraph_QueryVideoWindow( This, &pVidWin ); \
774 if ( FAILED(hr) ) return hr;
777 static HRESULT WINAPI
778 IVideoWindow_fnQueryInterface(IVideoWindow* iface,REFIID riid,void** ppobj)
780 CFilterGraph_THIS(iface,vidwin);
782 TRACE("(%p)->()\n",This);
784 return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
788 IVideoWindow_fnAddRef(IVideoWindow* iface)
790 CFilterGraph_THIS(iface,vidwin);
792 TRACE("(%p)->()\n",This);
794 return IUnknown_AddRef(This->unk.punkControl);
798 IVideoWindow_fnRelease(IVideoWindow* iface)
800 CFilterGraph_THIS(iface,vidwin);
802 TRACE("(%p)->()\n",This);
804 return IUnknown_Release(This->unk.punkControl);
807 static HRESULT WINAPI
808 IVideoWindow_fnGetTypeInfoCount(IVideoWindow* iface,UINT* pcTypeInfo)
810 CFilterGraph_THIS(iface,vidwin);
812 FIXME("(%p)->()\n",This);
817 static HRESULT WINAPI
818 IVideoWindow_fnGetTypeInfo(IVideoWindow* iface,UINT iTypeInfo, LCID lcid, ITypeInfo** ppobj)
820 CFilterGraph_THIS(iface,vidwin);
822 FIXME("(%p)->()\n",This);
827 static HRESULT WINAPI
828 IVideoWindow_fnGetIDsOfNames(IVideoWindow* iface,REFIID riid, LPOLESTR* ppwszName, UINT cNames, LCID lcid, DISPID* pDispId)
830 CFilterGraph_THIS(iface,vidwin);
832 FIXME("(%p)->()\n",This);
837 static HRESULT WINAPI
838 IVideoWindow_fnInvoke(IVideoWindow* iface,DISPID DispId, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarRes, EXCEPINFO* pExcepInfo, UINT* puArgErr)
840 CFilterGraph_THIS(iface,vidwin);
842 FIXME("(%p)->()\n",This);
849 static HRESULT WINAPI
850 IVideoWindow_fnput_Caption(IVideoWindow* iface,BSTR strCaption)
852 CFilterGraph_THIS(iface,vidwin);
855 TRACE("(%p)->()\n",This);
857 return IVideoWindow_put_Caption(pVidWin,strCaption);
860 static HRESULT WINAPI
861 IVideoWindow_fnget_Caption(IVideoWindow* iface,BSTR* pstrCaption)
863 CFilterGraph_THIS(iface,vidwin);
866 TRACE("(%p)->()\n",This);
868 return IVideoWindow_get_Caption(pVidWin,pstrCaption);
871 static HRESULT WINAPI
872 IVideoWindow_fnput_WindowStyle(IVideoWindow* iface,long lStyle)
874 CFilterGraph_THIS(iface,vidwin);
877 TRACE("(%p)->()\n",This);
879 return IVideoWindow_put_WindowStyle(pVidWin,lStyle);
882 static HRESULT WINAPI
883 IVideoWindow_fnget_WindowStyle(IVideoWindow* iface,long* plStyle)
885 CFilterGraph_THIS(iface,vidwin);
888 TRACE("(%p)->()\n",This);
890 return IVideoWindow_get_WindowStyle(pVidWin,plStyle);
893 static HRESULT WINAPI
894 IVideoWindow_fnput_WindowStyleEx(IVideoWindow* iface,long lExStyle)
896 CFilterGraph_THIS(iface,vidwin);
899 TRACE("(%p)->()\n",This);
901 return IVideoWindow_put_WindowStyleEx(pVidWin,lExStyle);
904 static HRESULT WINAPI
905 IVideoWindow_fnget_WindowStyleEx(IVideoWindow* iface,long* plExStyle)
907 CFilterGraph_THIS(iface,vidwin);
910 TRACE("(%p)->()\n",This);
912 return IVideoWindow_get_WindowStyleEx(pVidWin,plExStyle);
915 static HRESULT WINAPI
916 IVideoWindow_fnput_AutoShow(IVideoWindow* iface,long lAutoShow)
918 CFilterGraph_THIS(iface,vidwin);
921 TRACE("(%p)->()\n",This);
923 return IVideoWindow_put_AutoShow(pVidWin,lAutoShow);
926 static HRESULT WINAPI
927 IVideoWindow_fnget_AutoShow(IVideoWindow* iface,long* plAutoShow)
929 CFilterGraph_THIS(iface,vidwin);
932 TRACE("(%p)->()\n",This);
934 return IVideoWindow_get_AutoShow(pVidWin,plAutoShow);
937 static HRESULT WINAPI
938 IVideoWindow_fnput_WindowState(IVideoWindow* iface,long lState)
940 CFilterGraph_THIS(iface,vidwin);
943 TRACE("(%p)->()\n",This);
945 return IVideoWindow_put_WindowState(pVidWin,lState);
948 static HRESULT WINAPI
949 IVideoWindow_fnget_WindowState(IVideoWindow* iface,long* plState)
951 CFilterGraph_THIS(iface,vidwin);
954 TRACE("(%p)->()\n",This);
956 return IVideoWindow_get_WindowState(pVidWin,plState);
959 static HRESULT WINAPI
960 IVideoWindow_fnput_BackgroundPalette(IVideoWindow* iface,long lBackPal)
962 CFilterGraph_THIS(iface,vidwin);
965 TRACE("(%p)->()\n",This);
967 return IVideoWindow_put_BackgroundPalette(pVidWin,lBackPal);
970 static HRESULT WINAPI
971 IVideoWindow_fnget_BackgroundPalette(IVideoWindow* iface,long* plBackPal)
973 CFilterGraph_THIS(iface,vidwin);
976 TRACE("(%p)->()\n",This);
978 return IVideoWindow_get_BackgroundPalette(pVidWin,plBackPal);
981 static HRESULT WINAPI
982 IVideoWindow_fnput_Visible(IVideoWindow* iface,long lVisible)
984 CFilterGraph_THIS(iface,vidwin);
987 TRACE("(%p)->()\n",This);
989 return IVideoWindow_put_Visible(pVidWin,lVisible);
992 static HRESULT WINAPI
993 IVideoWindow_fnget_Visible(IVideoWindow* iface,long* plVisible)
995 CFilterGraph_THIS(iface,vidwin);
998 TRACE("(%p)->()\n",This);
1000 return IVideoWindow_get_Visible(pVidWin,plVisible);
1003 static HRESULT WINAPI
1004 IVideoWindow_fnput_Left(IVideoWindow* iface,long lLeft)
1006 CFilterGraph_THIS(iface,vidwin);
1009 TRACE("(%p)->()\n",This);
1011 return IVideoWindow_put_Left(pVidWin,lLeft);
1014 static HRESULT WINAPI
1015 IVideoWindow_fnget_Left(IVideoWindow* iface,long* plLeft)
1017 CFilterGraph_THIS(iface,vidwin);
1020 TRACE("(%p)->()\n",This);
1022 return IVideoWindow_get_Left(pVidWin,plLeft);
1025 static HRESULT WINAPI
1026 IVideoWindow_fnput_Width(IVideoWindow* iface,long lWidth)
1028 CFilterGraph_THIS(iface,vidwin);
1031 TRACE("(%p)->()\n",This);
1033 return IVideoWindow_put_Width(pVidWin,lWidth);
1036 static HRESULT WINAPI
1037 IVideoWindow_fnget_Width(IVideoWindow* iface,long* plWidth)
1039 CFilterGraph_THIS(iface,vidwin);
1042 TRACE("(%p)->()\n",This);
1044 return IVideoWindow_get_Width(pVidWin,plWidth);
1047 static HRESULT WINAPI
1048 IVideoWindow_fnput_Top(IVideoWindow* iface,long lTop)
1050 CFilterGraph_THIS(iface,vidwin);
1053 TRACE("(%p)->()\n",This);
1055 return IVideoWindow_put_Top(pVidWin,lTop);
1058 static HRESULT WINAPI
1059 IVideoWindow_fnget_Top(IVideoWindow* iface,long* plTop)
1061 CFilterGraph_THIS(iface,vidwin);
1064 TRACE("(%p)->()\n",This);
1066 return IVideoWindow_get_Top(pVidWin,plTop);
1069 static HRESULT WINAPI
1070 IVideoWindow_fnput_Height(IVideoWindow* iface,long lHeight)
1072 CFilterGraph_THIS(iface,vidwin);
1075 TRACE("(%p)->()\n",This);
1077 return IVideoWindow_put_Height(pVidWin,lHeight);
1080 static HRESULT WINAPI
1081 IVideoWindow_fnget_Height(IVideoWindow* iface,long* plHeight)
1083 CFilterGraph_THIS(iface,vidwin);
1086 TRACE("(%p)->()\n",This);
1088 return IVideoWindow_get_Height(pVidWin,plHeight);
1091 static HRESULT WINAPI
1092 IVideoWindow_fnput_Owner(IVideoWindow* iface,OAHWND hwnd)
1094 CFilterGraph_THIS(iface,vidwin);
1097 TRACE("(%p)->()\n",This);
1099 return IVideoWindow_put_Owner(pVidWin,hwnd);
1102 static HRESULT WINAPI
1103 IVideoWindow_fnget_Owner(IVideoWindow* iface,OAHWND* phwnd)
1105 CFilterGraph_THIS(iface,vidwin);
1108 TRACE("(%p)->()\n",This);
1110 return IVideoWindow_get_Owner(pVidWin,phwnd);
1113 static HRESULT WINAPI
1114 IVideoWindow_fnput_MessageDrain(IVideoWindow* iface,OAHWND hwnd)
1116 CFilterGraph_THIS(iface,vidwin);
1119 TRACE("(%p)->()\n",This);
1121 return IVideoWindow_put_MessageDrain(pVidWin,hwnd);
1124 static HRESULT WINAPI
1125 IVideoWindow_fnget_MessageDrain(IVideoWindow* iface,OAHWND* phwnd)
1127 CFilterGraph_THIS(iface,vidwin);
1130 TRACE("(%p)->()\n",This);
1132 return IVideoWindow_get_MessageDrain(pVidWin,phwnd);
1135 static HRESULT WINAPI
1136 IVideoWindow_fnget_BorderColor(IVideoWindow* iface,long* plColor)
1138 CFilterGraph_THIS(iface,vidwin);
1141 TRACE("(%p)->()\n",This);
1143 return IVideoWindow_get_BorderColor(pVidWin,plColor);
1146 static HRESULT WINAPI
1147 IVideoWindow_fnput_BorderColor(IVideoWindow* iface,long lColor)
1149 CFilterGraph_THIS(iface,vidwin);
1152 TRACE("(%p)->()\n",This);
1154 return IVideoWindow_put_BorderColor(pVidWin,lColor);
1157 static HRESULT WINAPI
1158 IVideoWindow_fnget_FullScreenMode(IVideoWindow* iface,long* plMode)
1160 CFilterGraph_THIS(iface,vidwin);
1163 TRACE("(%p)->()\n",This);
1165 return IVideoWindow_get_FullScreenMode(pVidWin,plMode);
1168 static HRESULT WINAPI
1169 IVideoWindow_fnput_FullScreenMode(IVideoWindow* iface,long lMode)
1171 CFilterGraph_THIS(iface,vidwin);
1174 TRACE("(%p)->()\n",This);
1176 return IVideoWindow_put_FullScreenMode(pVidWin,lMode);
1179 static HRESULT WINAPI
1180 IVideoWindow_fnSetWindowForeground(IVideoWindow* iface,long lFocus)
1182 CFilterGraph_THIS(iface,vidwin);
1185 TRACE("(%p)->()\n",This);
1187 return IVideoWindow_SetWindowForeground(pVidWin,lFocus);
1190 static HRESULT WINAPI
1191 IVideoWindow_fnNotifyOwnerMessage(IVideoWindow* iface,OAHWND hwnd,long message,LONG_PTR wParam,LONG_PTR lParam)
1193 CFilterGraph_THIS(iface,vidwin);
1196 TRACE("(%p)->()\n",This);
1198 return IVideoWindow_NotifyOwnerMessage(pVidWin,hwnd,message,wParam,lParam);
1201 static HRESULT WINAPI
1202 IVideoWindow_fnSetWindowPosition(IVideoWindow* iface,long lLeft,long lTop,long lWidth,long lHeight)
1204 CFilterGraph_THIS(iface,vidwin);
1207 TRACE("(%p)->()\n",This);
1209 return IVideoWindow_SetWindowPosition(pVidWin,lLeft,lTop,lWidth,lHeight);
1212 static HRESULT WINAPI
1213 IVideoWindow_fnGetWindowPosition(IVideoWindow* iface,long* plLeft,long* plTop,long* plWidth,long* plHeight)
1215 CFilterGraph_THIS(iface,vidwin);
1218 TRACE("(%p)->()\n",This);
1220 return IVideoWindow_GetWindowPosition(pVidWin,plLeft,plTop,plWidth,plHeight);
1223 static HRESULT WINAPI
1224 IVideoWindow_fnGetMinIdealImageSize(IVideoWindow* iface,long* plWidth,long* plHeight)
1226 CFilterGraph_THIS(iface,vidwin);
1229 TRACE("(%p)->()\n",This);
1231 return IVideoWindow_GetMinIdealImageSize(pVidWin,plWidth,plHeight);
1234 static HRESULT WINAPI
1235 IVideoWindow_fnGetMaxIdealImageSize(IVideoWindow* iface,long* plWidth,long* plHeight)
1237 CFilterGraph_THIS(iface,vidwin);
1240 TRACE("(%p)->()\n",This);
1242 return IVideoWindow_GetMaxIdealImageSize(pVidWin,plWidth,plHeight);
1245 static HRESULT WINAPI
1246 IVideoWindow_fnGetRestorePosition(IVideoWindow* iface,long* plLeft,long* plTop,long* plWidth,long* plHeight)
1248 CFilterGraph_THIS(iface,vidwin);
1251 TRACE("(%p)->()\n",This);
1253 return IVideoWindow_GetRestorePosition(pVidWin,plLeft,plTop,plWidth,plHeight);
1256 static HRESULT WINAPI
1257 IVideoWindow_fnHideCursor(IVideoWindow* iface,long lHide)
1259 CFilterGraph_THIS(iface,vidwin);
1262 TRACE("(%p)->()\n",This);
1264 return IVideoWindow_HideCursor(pVidWin,lHide);
1267 static HRESULT WINAPI
1268 IVideoWindow_fnIsCursorHidden(IVideoWindow* iface,long* plHide)
1270 CFilterGraph_THIS(iface,vidwin);
1273 TRACE("(%p)->()\n",This);
1275 return IVideoWindow_IsCursorHidden(pVidWin,plHide);
1281 static ICOM_VTABLE(IVideoWindow) ivideowindow =
1283 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
1284 /* IUnknown fields */
1285 IVideoWindow_fnQueryInterface,
1286 IVideoWindow_fnAddRef,
1287 IVideoWindow_fnRelease,
1288 /* IDispatch fields */
1289 IVideoWindow_fnGetTypeInfoCount,
1290 IVideoWindow_fnGetTypeInfo,
1291 IVideoWindow_fnGetIDsOfNames,
1292 IVideoWindow_fnInvoke,
1293 /* IVideoWindow fields */
1294 IVideoWindow_fnput_Caption,
1295 IVideoWindow_fnget_Caption,
1296 IVideoWindow_fnput_WindowStyle,
1297 IVideoWindow_fnget_WindowStyle,
1298 IVideoWindow_fnput_WindowStyleEx,
1299 IVideoWindow_fnget_WindowStyleEx,
1300 IVideoWindow_fnput_AutoShow,
1301 IVideoWindow_fnget_AutoShow,
1302 IVideoWindow_fnput_WindowState,
1303 IVideoWindow_fnget_WindowState,
1304 IVideoWindow_fnput_BackgroundPalette,
1305 IVideoWindow_fnget_BackgroundPalette,
1306 IVideoWindow_fnput_Visible,
1307 IVideoWindow_fnget_Visible,
1308 IVideoWindow_fnput_Left,
1309 IVideoWindow_fnget_Left,
1310 IVideoWindow_fnput_Width,
1311 IVideoWindow_fnget_Width,
1312 IVideoWindow_fnput_Top,
1313 IVideoWindow_fnget_Top,
1314 IVideoWindow_fnput_Height,
1315 IVideoWindow_fnget_Height,
1316 IVideoWindow_fnput_Owner,
1317 IVideoWindow_fnget_Owner,
1318 IVideoWindow_fnput_MessageDrain,
1319 IVideoWindow_fnget_MessageDrain,
1320 IVideoWindow_fnget_BorderColor,
1321 IVideoWindow_fnput_BorderColor,
1322 IVideoWindow_fnget_FullScreenMode,
1323 IVideoWindow_fnput_FullScreenMode,
1324 IVideoWindow_fnSetWindowForeground,
1325 IVideoWindow_fnNotifyOwnerMessage,
1326 IVideoWindow_fnSetWindowPosition,
1327 IVideoWindow_fnGetWindowPosition,
1328 IVideoWindow_fnGetMinIdealImageSize,
1329 IVideoWindow_fnGetMaxIdealImageSize,
1330 IVideoWindow_fnGetRestorePosition,
1331 IVideoWindow_fnHideCursor,
1332 IVideoWindow_fnIsCursorHidden,
1337 HRESULT CFilterGraph_InitIVideoWindow( CFilterGraph* pfg )
1339 TRACE("(%p)\n",pfg);
1340 ICOM_VTBL(&pfg->vidwin) = &ivideowindow;
1345 void CFilterGraph_UninitIVideoWindow( CFilterGraph* pfg )
1347 TRACE("(%p)\n",pfg);
1350 #undef QUERYVIDEOWINDOW