2 * Implementation of IBasicAudio, IBasicVideo, IVideoWindow for FilterGraph.
4 * Copyright (C) Hidenori TAKESHIMA <hidenori@a2.ctktv.ne.jp>
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
32 #include "wine/debug.h"
33 WINE_DEFAULT_DEBUG_CHANNEL(quartz);
35 #include "quartz_private.h"
39 static HRESULT CFilterGraph_QIFilters(
40 CFilterGraph* This, REFIID riid, void** ppvobj )
42 HRESULT hr = E_NOINTERFACE;
45 TRACE( "(%p,%p,%p)\n",This,riid,ppvobj);
47 EnterCriticalSection ( &This->m_csFilters );
49 for ( n = 0; n < This->m_cActiveFilters; n++ )
51 if ( IUnknown_QueryInterface(This->m_pActiveFilters[n].pFilter,riid,ppvobj) == S_OK )
58 LeaveCriticalSection ( &This->m_csFilters );
64 static HRESULT CFilterGraph_QueryBasicAudio(
65 CFilterGraph* This, IBasicAudio** ppAudio )
67 return CFilterGraph_QIFilters(This,&IID_IBasicAudio,(void**)ppAudio);
70 static HRESULT CFilterGraph_QueryBasicVideo(
71 CFilterGraph* This, IBasicVideo** ppVideo )
73 return CFilterGraph_QIFilters(This,&IID_IBasicVideo,(void**)ppVideo);
76 static HRESULT CFilterGraph_QueryVideoWindow(
77 CFilterGraph* This, IVideoWindow** ppVidWin )
79 return CFilterGraph_QIFilters(This,&IID_IVideoWindow,(void**)ppVidWin);
84 /***************************************************************************
86 * CFilterGraph::IBasicAudio
90 #define QUERYBASICAUDIO \
91 IBasicAudio* pAudio = NULL; \
93 hr = CFilterGraph_QueryBasicAudio( This, &pAudio ); \
94 if ( FAILED(hr) ) return hr;
98 IBasicAudio_fnQueryInterface(IBasicAudio* iface,REFIID riid,void** ppobj)
100 CFilterGraph_THIS(iface,basaud);
102 TRACE("(%p)->()\n",This);
104 return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
108 IBasicAudio_fnAddRef(IBasicAudio* iface)
110 CFilterGraph_THIS(iface,basaud);
112 TRACE("(%p)->()\n",This);
114 return IUnknown_AddRef(This->unk.punkControl);
118 IBasicAudio_fnRelease(IBasicAudio* iface)
120 CFilterGraph_THIS(iface,basaud);
122 TRACE("(%p)->()\n",This);
124 return IUnknown_Release(This->unk.punkControl);
127 static HRESULT WINAPI
128 IBasicAudio_fnGetTypeInfoCount(IBasicAudio* iface,UINT* pcTypeInfo)
130 CFilterGraph_THIS(iface,basaud);
132 FIXME("(%p)->()\n",This);
137 static HRESULT WINAPI
138 IBasicAudio_fnGetTypeInfo(IBasicAudio* iface,UINT iTypeInfo, LCID lcid, ITypeInfo** ppobj)
140 CFilterGraph_THIS(iface,basaud);
142 FIXME("(%p)->()\n",This);
147 static HRESULT WINAPI
148 IBasicAudio_fnGetIDsOfNames(IBasicAudio* iface,REFIID riid, LPOLESTR* ppwszName, UINT cNames, LCID lcid, DISPID* pDispId)
150 CFilterGraph_THIS(iface,basaud);
152 FIXME("(%p)->()\n",This);
157 static HRESULT WINAPI
158 IBasicAudio_fnInvoke(IBasicAudio* iface,DISPID DispId, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarRes, EXCEPINFO* pExcepInfo, UINT* puArgErr)
160 CFilterGraph_THIS(iface,basaud);
162 FIXME("(%p)->()\n",This);
168 static HRESULT WINAPI
169 IBasicAudio_fnput_Volume(IBasicAudio* iface,long lVol)
171 CFilterGraph_THIS(iface,basaud);
174 TRACE("(%p)->()\n",This);
176 hr = IBasicAudio_put_Volume(pAudio,lVol);
177 IBasicAudio_Release(pAudio);
181 static HRESULT WINAPI
182 IBasicAudio_fnget_Volume(IBasicAudio* iface,long* plVol)
184 CFilterGraph_THIS(iface,basaud);
187 TRACE("(%p)->()\n",This);
189 hr = IBasicAudio_get_Volume(pAudio,plVol);
190 IBasicAudio_Release(pAudio);
194 static HRESULT WINAPI
195 IBasicAudio_fnput_Balance(IBasicAudio* iface,long lBalance)
197 CFilterGraph_THIS(iface,basaud);
200 TRACE("(%p)->()\n",This);
202 hr = IBasicAudio_put_Balance(pAudio,lBalance);
203 IBasicAudio_Release(pAudio);
207 static HRESULT WINAPI
208 IBasicAudio_fnget_Balance(IBasicAudio* iface,long* plBalance)
210 CFilterGraph_THIS(iface,basaud);
213 TRACE("(%p)->()\n",This);
215 hr = IBasicAudio_get_Balance(pAudio,plBalance);
216 IBasicAudio_Release(pAudio);
221 static ICOM_VTABLE(IBasicAudio) ibasicaudio =
223 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
224 /* IUnknown fields */
225 IBasicAudio_fnQueryInterface,
226 IBasicAudio_fnAddRef,
227 IBasicAudio_fnRelease,
228 /* IDispatch fields */
229 IBasicAudio_fnGetTypeInfoCount,
230 IBasicAudio_fnGetTypeInfo,
231 IBasicAudio_fnGetIDsOfNames,
232 IBasicAudio_fnInvoke,
233 /* IBasicAudio fields */
234 IBasicAudio_fnput_Volume,
235 IBasicAudio_fnget_Volume,
236 IBasicAudio_fnput_Balance,
237 IBasicAudio_fnget_Balance,
241 HRESULT CFilterGraph_InitIBasicAudio( CFilterGraph* pfg )
244 ICOM_VTBL(&pfg->basaud) = &ibasicaudio;
249 void CFilterGraph_UninitIBasicAudio( CFilterGraph* pfg )
254 #undef QUERYBASICAUDIO
257 /***************************************************************************
259 * CFilterGraph::IBasicVideo
264 #define QUERYBASICVIDEO \
265 IBasicVideo* pVideo = NULL; \
267 hr = CFilterGraph_QueryBasicVideo( This, &pVideo ); \
268 if ( FAILED(hr) ) return hr;
271 static HRESULT WINAPI
272 IBasicVideo_fnQueryInterface(IBasicVideo* iface,REFIID riid,void** ppobj)
274 CFilterGraph_THIS(iface,basvid);
276 TRACE("(%p)->()\n",This);
278 return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
282 IBasicVideo_fnAddRef(IBasicVideo* iface)
284 CFilterGraph_THIS(iface,basvid);
286 TRACE("(%p)->()\n",This);
288 return IUnknown_AddRef(This->unk.punkControl);
292 IBasicVideo_fnRelease(IBasicVideo* iface)
294 CFilterGraph_THIS(iface,basvid);
296 TRACE("(%p)->()\n",This);
298 return IUnknown_Release(This->unk.punkControl);
301 static HRESULT WINAPI
302 IBasicVideo_fnGetTypeInfoCount(IBasicVideo* iface,UINT* pcTypeInfo)
304 CFilterGraph_THIS(iface,basvid);
306 FIXME("(%p)->()\n",This);
311 static HRESULT WINAPI
312 IBasicVideo_fnGetTypeInfo(IBasicVideo* iface,UINT iTypeInfo, LCID lcid, ITypeInfo** ppobj)
314 CFilterGraph_THIS(iface,basvid);
316 FIXME("(%p)->()\n",This);
321 static HRESULT WINAPI
322 IBasicVideo_fnGetIDsOfNames(IBasicVideo* iface,REFIID riid, LPOLESTR* ppwszName, UINT cNames, LCID lcid, DISPID* pDispId)
324 CFilterGraph_THIS(iface,basvid);
326 FIXME("(%p)->()\n",This);
331 static HRESULT WINAPI
332 IBasicVideo_fnInvoke(IBasicVideo* iface,DISPID DispId, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarRes, EXCEPINFO* pExcepInfo, UINT* puArgErr)
334 CFilterGraph_THIS(iface,basvid);
336 FIXME("(%p)->()\n",This);
342 static HRESULT WINAPI
343 IBasicVideo_fnget_AvgTimePerFrame(IBasicVideo* iface,REFTIME* prefTime)
345 CFilterGraph_THIS(iface,basvid);
348 TRACE("(%p)->()\n",This);
350 hr = IBasicVideo_get_AvgTimePerFrame(pVideo,prefTime);
351 IBasicVideo_Release(pVideo);
355 static HRESULT WINAPI
356 IBasicVideo_fnget_BitRate(IBasicVideo* iface,long* plRate)
358 CFilterGraph_THIS(iface,basvid);
361 TRACE("(%p)->()\n",This);
363 hr = IBasicVideo_get_BitRate(pVideo,plRate);
364 IBasicVideo_Release(pVideo);
368 static HRESULT WINAPI
369 IBasicVideo_fnget_BitErrorRate(IBasicVideo* iface,long* plRate)
371 CFilterGraph_THIS(iface,basvid);
374 TRACE("(%p)->()\n",This);
376 hr = IBasicVideo_get_BitErrorRate(pVideo,plRate);
377 IBasicVideo_Release(pVideo);
381 static HRESULT WINAPI
382 IBasicVideo_fnget_VideoWidth(IBasicVideo* iface,long* plWidth)
384 CFilterGraph_THIS(iface,basvid);
387 TRACE("(%p)->()\n",This);
389 hr = IBasicVideo_get_VideoWidth(pVideo,plWidth);
390 IBasicVideo_Release(pVideo);
394 static HRESULT WINAPI
395 IBasicVideo_fnget_VideoHeight(IBasicVideo* iface,long* plHeight)
397 CFilterGraph_THIS(iface,basvid);
400 TRACE("(%p)->()\n",This);
402 hr = IBasicVideo_get_VideoHeight(pVideo,plHeight);
403 IBasicVideo_Release(pVideo);
407 static HRESULT WINAPI
408 IBasicVideo_fnput_SourceLeft(IBasicVideo* iface,long lLeft)
410 CFilterGraph_THIS(iface,basvid);
413 TRACE("(%p)->()\n",This);
415 hr = IBasicVideo_put_SourceLeft(pVideo,lLeft);
416 IBasicVideo_Release(pVideo);
420 static HRESULT WINAPI
421 IBasicVideo_fnget_SourceLeft(IBasicVideo* iface,long* plLeft)
423 CFilterGraph_THIS(iface,basvid);
426 TRACE("(%p)->()\n",This);
428 hr = IBasicVideo_get_SourceLeft(pVideo,plLeft);
429 IBasicVideo_Release(pVideo);
433 static HRESULT WINAPI
434 IBasicVideo_fnput_SourceWidth(IBasicVideo* iface,long lWidth)
436 CFilterGraph_THIS(iface,basvid);
439 TRACE("(%p)->()\n",This);
441 hr = IBasicVideo_put_SourceWidth(pVideo,lWidth);
442 IBasicVideo_Release(pVideo);
446 static HRESULT WINAPI
447 IBasicVideo_fnget_SourceWidth(IBasicVideo* iface,long* plWidth)
449 CFilterGraph_THIS(iface,basvid);
452 TRACE("(%p)->()\n",This);
454 hr = IBasicVideo_get_SourceWidth(pVideo,plWidth);
455 IBasicVideo_Release(pVideo);
459 static HRESULT WINAPI
460 IBasicVideo_fnput_SourceTop(IBasicVideo* iface,long lTop)
462 CFilterGraph_THIS(iface,basvid);
465 TRACE("(%p)->()\n",This);
467 hr = IBasicVideo_put_SourceTop(pVideo,lTop);
468 IBasicVideo_Release(pVideo);
472 static HRESULT WINAPI
473 IBasicVideo_fnget_SourceTop(IBasicVideo* iface,long* plTop)
475 CFilterGraph_THIS(iface,basvid);
478 TRACE("(%p)->()\n",This);
480 hr = IBasicVideo_get_SourceTop(pVideo,plTop);
481 IBasicVideo_Release(pVideo);
485 static HRESULT WINAPI
486 IBasicVideo_fnput_SourceHeight(IBasicVideo* iface,long lHeight)
488 CFilterGraph_THIS(iface,basvid);
491 TRACE("(%p)->()\n",This);
493 hr = IBasicVideo_put_SourceHeight(pVideo,lHeight);
494 IBasicVideo_Release(pVideo);
498 static HRESULT WINAPI
499 IBasicVideo_fnget_SourceHeight(IBasicVideo* iface,long* plHeight)
501 CFilterGraph_THIS(iface,basvid);
504 TRACE("(%p)->()\n",This);
506 hr = IBasicVideo_get_SourceHeight(pVideo,plHeight);
507 IBasicVideo_Release(pVideo);
511 static HRESULT WINAPI
512 IBasicVideo_fnput_DestinationLeft(IBasicVideo* iface,long lLeft)
514 CFilterGraph_THIS(iface,basvid);
517 TRACE("(%p)->()\n",This);
519 hr = IBasicVideo_put_DestinationLeft(pVideo,lLeft);
520 IBasicVideo_Release(pVideo);
524 static HRESULT WINAPI
525 IBasicVideo_fnget_DestinationLeft(IBasicVideo* iface,long* plLeft)
527 CFilterGraph_THIS(iface,basvid);
530 TRACE("(%p)->()\n",This);
532 hr = IBasicVideo_get_DestinationLeft(pVideo,plLeft);
533 IBasicVideo_Release(pVideo);
537 static HRESULT WINAPI
538 IBasicVideo_fnput_DestinationWidth(IBasicVideo* iface,long lWidth)
540 CFilterGraph_THIS(iface,basvid);
543 TRACE("(%p)->()\n",This);
545 hr = IBasicVideo_put_DestinationWidth(pVideo,lWidth);
546 IBasicVideo_Release(pVideo);
550 static HRESULT WINAPI
551 IBasicVideo_fnget_DestinationWidth(IBasicVideo* iface,long* plWidth)
553 CFilterGraph_THIS(iface,basvid);
556 TRACE("(%p)->()\n",This);
558 hr = IBasicVideo_get_DestinationWidth(pVideo,plWidth);
559 IBasicVideo_Release(pVideo);
563 static HRESULT WINAPI
564 IBasicVideo_fnput_DestinationTop(IBasicVideo* iface,long lTop)
566 CFilterGraph_THIS(iface,basvid);
569 TRACE("(%p)->()\n",This);
571 hr = IBasicVideo_put_DestinationTop(pVideo,lTop);
572 IBasicVideo_Release(pVideo);
576 static HRESULT WINAPI
577 IBasicVideo_fnget_DestinationTop(IBasicVideo* iface,long* plTop)
579 CFilterGraph_THIS(iface,basvid);
582 TRACE("(%p)->()\n",This);
584 hr = IBasicVideo_get_DestinationTop(pVideo,plTop);
585 IBasicVideo_Release(pVideo);
589 static HRESULT WINAPI
590 IBasicVideo_fnput_DestinationHeight(IBasicVideo* iface,long lHeight)
592 CFilterGraph_THIS(iface,basvid);
595 TRACE("(%p)->()\n",This);
597 hr = IBasicVideo_put_DestinationHeight(pVideo,lHeight);
598 IBasicVideo_Release(pVideo);
602 static HRESULT WINAPI
603 IBasicVideo_fnget_DestinationHeight(IBasicVideo* iface,long* plHeight)
605 CFilterGraph_THIS(iface,basvid);
608 TRACE("(%p)->()\n",This);
610 hr = IBasicVideo_get_DestinationHeight(pVideo,plHeight);
611 IBasicVideo_Release(pVideo);
615 static HRESULT WINAPI
616 IBasicVideo_fnSetSourcePosition(IBasicVideo* iface,long lLeft,long lTop,long lWidth,long lHeight)
618 CFilterGraph_THIS(iface,basvid);
621 TRACE("(%p)->()\n",This);
623 hr = IBasicVideo_SetSourcePosition(pVideo,lLeft,lTop,lWidth,lHeight);
624 IBasicVideo_Release(pVideo);
628 static HRESULT WINAPI
629 IBasicVideo_fnGetSourcePosition(IBasicVideo* iface,long* plLeft,long* plTop,long* plWidth,long* plHeight)
631 CFilterGraph_THIS(iface,basvid);
634 TRACE("(%p)->()\n",This);
636 hr = IBasicVideo_GetSourcePosition(pVideo,plLeft,plTop,plWidth,plHeight);
637 IBasicVideo_Release(pVideo);
641 static HRESULT WINAPI
642 IBasicVideo_fnSetDefaultSourcePosition(IBasicVideo* iface)
644 CFilterGraph_THIS(iface,basvid);
647 TRACE("(%p)->()\n",This);
649 hr = IBasicVideo_SetDefaultSourcePosition(pVideo);
650 IBasicVideo_Release(pVideo);
654 static HRESULT WINAPI
655 IBasicVideo_fnSetDestinationPosition(IBasicVideo* iface,long lLeft,long lTop,long lWidth,long lHeight)
657 CFilterGraph_THIS(iface,basvid);
660 TRACE("(%p)->()\n",This);
662 hr = IBasicVideo_SetDestinationPosition(pVideo,lLeft,lTop,lWidth,lHeight);
663 IBasicVideo_Release(pVideo);
667 static HRESULT WINAPI
668 IBasicVideo_fnGetDestinationPosition(IBasicVideo* iface,long* plLeft,long* plTop,long* plWidth,long* plHeight)
670 CFilterGraph_THIS(iface,basvid);
673 TRACE("(%p)->()\n",This);
675 hr = IBasicVideo_GetDestinationPosition(pVideo,plLeft,plTop,plWidth,plHeight);
676 IBasicVideo_Release(pVideo);
680 static HRESULT WINAPI
681 IBasicVideo_fnSetDefaultDestinationPosition(IBasicVideo* iface)
683 CFilterGraph_THIS(iface,basvid);
686 TRACE("(%p)->()\n",This);
688 hr = IBasicVideo_SetDefaultDestinationPosition(pVideo);
689 IBasicVideo_Release(pVideo);
693 static HRESULT WINAPI
694 IBasicVideo_fnGetVideoSize(IBasicVideo* iface,long* plWidth,long* plHeight)
696 CFilterGraph_THIS(iface,basvid);
699 TRACE("(%p)->()\n",This);
701 hr = IBasicVideo_GetVideoSize(pVideo,plWidth,plHeight);
702 IBasicVideo_Release(pVideo);
706 static HRESULT WINAPI
707 IBasicVideo_fnGetVideoPaletteEntries(IBasicVideo* iface,long lStart,long lCount,long* plRet,long* plPaletteEntry)
709 CFilterGraph_THIS(iface,basvid);
712 TRACE("(%p)->()\n",This);
714 hr = IBasicVideo_GetVideoPaletteEntries(pVideo,lStart,lCount,plRet,plPaletteEntry);
715 IBasicVideo_Release(pVideo);
719 static HRESULT WINAPI
720 IBasicVideo_fnGetCurrentImage(IBasicVideo* iface,long* plBufferSize,long* plDIBBuffer)
722 CFilterGraph_THIS(iface,basvid);
725 TRACE("(%p)->()\n",This);
727 hr = IBasicVideo_GetCurrentImage(pVideo,plBufferSize,plDIBBuffer);
728 IBasicVideo_Release(pVideo);
732 static HRESULT WINAPI
733 IBasicVideo_fnIsUsingDefaultSource(IBasicVideo* iface)
735 CFilterGraph_THIS(iface,basvid);
738 TRACE("(%p)->()\n",This);
740 hr = IBasicVideo_IsUsingDefaultSource(pVideo);
741 IBasicVideo_Release(pVideo);
745 static HRESULT WINAPI
746 IBasicVideo_fnIsUsingDefaultDestination(IBasicVideo* iface)
748 CFilterGraph_THIS(iface,basvid);
751 TRACE("(%p)->()\n",This);
753 hr = IBasicVideo_IsUsingDefaultDestination(pVideo);
754 IBasicVideo_Release(pVideo);
760 static ICOM_VTABLE(IBasicVideo) ibasicvideo =
762 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
763 /* IUnknown fields */
764 IBasicVideo_fnQueryInterface,
765 IBasicVideo_fnAddRef,
766 IBasicVideo_fnRelease,
767 /* IDispatch fields */
768 IBasicVideo_fnGetTypeInfoCount,
769 IBasicVideo_fnGetTypeInfo,
770 IBasicVideo_fnGetIDsOfNames,
771 IBasicVideo_fnInvoke,
772 /* IBasicVideo fields */
773 IBasicVideo_fnget_AvgTimePerFrame,
774 IBasicVideo_fnget_BitRate,
775 IBasicVideo_fnget_BitErrorRate,
776 IBasicVideo_fnget_VideoWidth,
777 IBasicVideo_fnget_VideoHeight,
778 IBasicVideo_fnput_SourceLeft,
779 IBasicVideo_fnget_SourceLeft,
780 IBasicVideo_fnput_SourceWidth,
781 IBasicVideo_fnget_SourceWidth,
782 IBasicVideo_fnput_SourceTop,
783 IBasicVideo_fnget_SourceTop,
784 IBasicVideo_fnput_SourceHeight,
785 IBasicVideo_fnget_SourceHeight,
786 IBasicVideo_fnput_DestinationLeft,
787 IBasicVideo_fnget_DestinationLeft,
788 IBasicVideo_fnput_DestinationWidth,
789 IBasicVideo_fnget_DestinationWidth,
790 IBasicVideo_fnput_DestinationTop,
791 IBasicVideo_fnget_DestinationTop,
792 IBasicVideo_fnput_DestinationHeight,
793 IBasicVideo_fnget_DestinationHeight,
794 IBasicVideo_fnSetSourcePosition,
795 IBasicVideo_fnGetSourcePosition,
796 IBasicVideo_fnSetDefaultSourcePosition,
797 IBasicVideo_fnSetDestinationPosition,
798 IBasicVideo_fnGetDestinationPosition,
799 IBasicVideo_fnSetDefaultDestinationPosition,
800 IBasicVideo_fnGetVideoSize,
801 IBasicVideo_fnGetVideoPaletteEntries,
802 IBasicVideo_fnGetCurrentImage,
803 IBasicVideo_fnIsUsingDefaultSource,
804 IBasicVideo_fnIsUsingDefaultDestination,
808 HRESULT CFilterGraph_InitIBasicVideo( CFilterGraph* pfg )
811 ICOM_VTBL(&pfg->basvid) = &ibasicvideo;
816 void CFilterGraph_UninitIBasicVideo( CFilterGraph* pfg )
821 #undef QUERYBASICVIDEO
823 /***************************************************************************
825 * CFilterGraph::IVideoWindow
829 #define QUERYVIDEOWINDOW \
830 IVideoWindow* pVidWin = NULL; \
832 hr = CFilterGraph_QueryVideoWindow( This, &pVidWin ); \
833 if ( FAILED(hr) ) return hr;
836 static HRESULT WINAPI
837 IVideoWindow_fnQueryInterface(IVideoWindow* iface,REFIID riid,void** ppobj)
839 CFilterGraph_THIS(iface,vidwin);
841 TRACE("(%p)->()\n",This);
843 return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
847 IVideoWindow_fnAddRef(IVideoWindow* iface)
849 CFilterGraph_THIS(iface,vidwin);
851 TRACE("(%p)->()\n",This);
853 return IUnknown_AddRef(This->unk.punkControl);
857 IVideoWindow_fnRelease(IVideoWindow* iface)
859 CFilterGraph_THIS(iface,vidwin);
861 TRACE("(%p)->()\n",This);
863 return IUnknown_Release(This->unk.punkControl);
866 static HRESULT WINAPI
867 IVideoWindow_fnGetTypeInfoCount(IVideoWindow* iface,UINT* pcTypeInfo)
869 CFilterGraph_THIS(iface,vidwin);
871 FIXME("(%p)->()\n",This);
876 static HRESULT WINAPI
877 IVideoWindow_fnGetTypeInfo(IVideoWindow* iface,UINT iTypeInfo, LCID lcid, ITypeInfo** ppobj)
879 CFilterGraph_THIS(iface,vidwin);
881 FIXME("(%p)->()\n",This);
886 static HRESULT WINAPI
887 IVideoWindow_fnGetIDsOfNames(IVideoWindow* iface,REFIID riid, LPOLESTR* ppwszName, UINT cNames, LCID lcid, DISPID* pDispId)
889 CFilterGraph_THIS(iface,vidwin);
891 FIXME("(%p)->()\n",This);
896 static HRESULT WINAPI
897 IVideoWindow_fnInvoke(IVideoWindow* iface,DISPID DispId, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarRes, EXCEPINFO* pExcepInfo, UINT* puArgErr)
899 CFilterGraph_THIS(iface,vidwin);
901 FIXME("(%p)->()\n",This);
908 static HRESULT WINAPI
909 IVideoWindow_fnput_Caption(IVideoWindow* iface,BSTR strCaption)
911 CFilterGraph_THIS(iface,vidwin);
914 TRACE("(%p)->()\n",This);
916 hr = IVideoWindow_put_Caption(pVidWin,strCaption);
917 IVideoWindow_Release(pVidWin);
921 static HRESULT WINAPI
922 IVideoWindow_fnget_Caption(IVideoWindow* iface,BSTR* pstrCaption)
924 CFilterGraph_THIS(iface,vidwin);
927 TRACE("(%p)->()\n",This);
929 hr = IVideoWindow_get_Caption(pVidWin,pstrCaption);
930 IVideoWindow_Release(pVidWin);
934 static HRESULT WINAPI
935 IVideoWindow_fnput_WindowStyle(IVideoWindow* iface,long lStyle)
937 CFilterGraph_THIS(iface,vidwin);
940 TRACE("(%p)->()\n",This);
942 hr = IVideoWindow_put_WindowStyle(pVidWin,lStyle);
943 IVideoWindow_Release(pVidWin);
947 static HRESULT WINAPI
948 IVideoWindow_fnget_WindowStyle(IVideoWindow* iface,long* plStyle)
950 CFilterGraph_THIS(iface,vidwin);
953 TRACE("(%p)->()\n",This);
955 hr = IVideoWindow_get_WindowStyle(pVidWin,plStyle);
956 IVideoWindow_Release(pVidWin);
960 static HRESULT WINAPI
961 IVideoWindow_fnput_WindowStyleEx(IVideoWindow* iface,long lExStyle)
963 CFilterGraph_THIS(iface,vidwin);
966 TRACE("(%p)->()\n",This);
968 hr = IVideoWindow_put_WindowStyleEx(pVidWin,lExStyle);
969 IVideoWindow_Release(pVidWin);
973 static HRESULT WINAPI
974 IVideoWindow_fnget_WindowStyleEx(IVideoWindow* iface,long* plExStyle)
976 CFilterGraph_THIS(iface,vidwin);
979 TRACE("(%p)->()\n",This);
981 hr = IVideoWindow_get_WindowStyleEx(pVidWin,plExStyle);
982 IVideoWindow_Release(pVidWin);
986 static HRESULT WINAPI
987 IVideoWindow_fnput_AutoShow(IVideoWindow* iface,long lAutoShow)
989 CFilterGraph_THIS(iface,vidwin);
992 TRACE("(%p)->()\n",This);
994 hr = IVideoWindow_put_AutoShow(pVidWin,lAutoShow);
995 IVideoWindow_Release(pVidWin);
999 static HRESULT WINAPI
1000 IVideoWindow_fnget_AutoShow(IVideoWindow* iface,long* plAutoShow)
1002 CFilterGraph_THIS(iface,vidwin);
1005 TRACE("(%p)->()\n",This);
1007 hr = IVideoWindow_get_AutoShow(pVidWin,plAutoShow);
1008 IVideoWindow_Release(pVidWin);
1012 static HRESULT WINAPI
1013 IVideoWindow_fnput_WindowState(IVideoWindow* iface,long lState)
1015 CFilterGraph_THIS(iface,vidwin);
1018 TRACE("(%p)->()\n",This);
1020 hr = IVideoWindow_put_WindowState(pVidWin,lState);
1021 IVideoWindow_Release(pVidWin);
1025 static HRESULT WINAPI
1026 IVideoWindow_fnget_WindowState(IVideoWindow* iface,long* plState)
1028 CFilterGraph_THIS(iface,vidwin);
1031 TRACE("(%p)->()\n",This);
1033 hr = IVideoWindow_get_WindowState(pVidWin,plState);
1034 IVideoWindow_Release(pVidWin);
1038 static HRESULT WINAPI
1039 IVideoWindow_fnput_BackgroundPalette(IVideoWindow* iface,long lBackPal)
1041 CFilterGraph_THIS(iface,vidwin);
1044 TRACE("(%p)->()\n",This);
1046 hr = IVideoWindow_put_BackgroundPalette(pVidWin,lBackPal);
1047 IVideoWindow_Release(pVidWin);
1051 static HRESULT WINAPI
1052 IVideoWindow_fnget_BackgroundPalette(IVideoWindow* iface,long* plBackPal)
1054 CFilterGraph_THIS(iface,vidwin);
1057 TRACE("(%p)->()\n",This);
1059 hr = IVideoWindow_get_BackgroundPalette(pVidWin,plBackPal);
1060 IVideoWindow_Release(pVidWin);
1064 static HRESULT WINAPI
1065 IVideoWindow_fnput_Visible(IVideoWindow* iface,long lVisible)
1067 CFilterGraph_THIS(iface,vidwin);
1070 TRACE("(%p)->()\n",This);
1072 hr = IVideoWindow_put_Visible(pVidWin,lVisible);
1073 IVideoWindow_Release(pVidWin);
1077 static HRESULT WINAPI
1078 IVideoWindow_fnget_Visible(IVideoWindow* iface,long* plVisible)
1080 CFilterGraph_THIS(iface,vidwin);
1083 TRACE("(%p)->()\n",This);
1085 hr = IVideoWindow_get_Visible(pVidWin,plVisible);
1086 IVideoWindow_Release(pVidWin);
1090 static HRESULT WINAPI
1091 IVideoWindow_fnput_Left(IVideoWindow* iface,long lLeft)
1093 CFilterGraph_THIS(iface,vidwin);
1096 TRACE("(%p)->()\n",This);
1098 hr = IVideoWindow_put_Left(pVidWin,lLeft);
1099 IVideoWindow_Release(pVidWin);
1103 static HRESULT WINAPI
1104 IVideoWindow_fnget_Left(IVideoWindow* iface,long* plLeft)
1106 CFilterGraph_THIS(iface,vidwin);
1109 TRACE("(%p)->()\n",This);
1111 hr = IVideoWindow_get_Left(pVidWin,plLeft);
1112 IVideoWindow_Release(pVidWin);
1116 static HRESULT WINAPI
1117 IVideoWindow_fnput_Width(IVideoWindow* iface,long lWidth)
1119 CFilterGraph_THIS(iface,vidwin);
1122 TRACE("(%p)->()\n",This);
1124 hr = IVideoWindow_put_Width(pVidWin,lWidth);
1125 IVideoWindow_Release(pVidWin);
1129 static HRESULT WINAPI
1130 IVideoWindow_fnget_Width(IVideoWindow* iface,long* plWidth)
1132 CFilterGraph_THIS(iface,vidwin);
1135 TRACE("(%p)->()\n",This);
1137 hr =IVideoWindow_get_Width(pVidWin,plWidth);
1138 IVideoWindow_Release(pVidWin);
1142 static HRESULT WINAPI
1143 IVideoWindow_fnput_Top(IVideoWindow* iface,long lTop)
1145 CFilterGraph_THIS(iface,vidwin);
1148 TRACE("(%p)->()\n",This);
1150 hr = IVideoWindow_put_Top(pVidWin,lTop);
1151 IVideoWindow_Release(pVidWin);
1155 static HRESULT WINAPI
1156 IVideoWindow_fnget_Top(IVideoWindow* iface,long* plTop)
1158 CFilterGraph_THIS(iface,vidwin);
1161 TRACE("(%p)->()\n",This);
1163 hr = IVideoWindow_get_Top(pVidWin,plTop);
1164 IVideoWindow_Release(pVidWin);
1168 static HRESULT WINAPI
1169 IVideoWindow_fnput_Height(IVideoWindow* iface,long lHeight)
1171 CFilterGraph_THIS(iface,vidwin);
1174 TRACE("(%p)->()\n",This);
1176 hr = IVideoWindow_put_Height(pVidWin,lHeight);
1177 IVideoWindow_Release(pVidWin);
1181 static HRESULT WINAPI
1182 IVideoWindow_fnget_Height(IVideoWindow* iface,long* plHeight)
1184 CFilterGraph_THIS(iface,vidwin);
1187 TRACE("(%p)->()\n",This);
1189 hr = IVideoWindow_get_Height(pVidWin,plHeight);
1190 IVideoWindow_Release(pVidWin);
1194 static HRESULT WINAPI
1195 IVideoWindow_fnput_Owner(IVideoWindow* iface,OAHWND hwnd)
1197 CFilterGraph_THIS(iface,vidwin);
1200 TRACE("(%p)->()\n",This);
1202 hr = IVideoWindow_put_Owner(pVidWin,hwnd);
1203 IVideoWindow_Release(pVidWin);
1207 static HRESULT WINAPI
1208 IVideoWindow_fnget_Owner(IVideoWindow* iface,OAHWND* phwnd)
1210 CFilterGraph_THIS(iface,vidwin);
1213 TRACE("(%p)->()\n",This);
1215 hr = IVideoWindow_get_Owner(pVidWin,phwnd);
1216 IVideoWindow_Release(pVidWin);
1220 static HRESULT WINAPI
1221 IVideoWindow_fnput_MessageDrain(IVideoWindow* iface,OAHWND hwnd)
1223 CFilterGraph_THIS(iface,vidwin);
1226 TRACE("(%p)->()\n",This);
1228 hr = IVideoWindow_put_MessageDrain(pVidWin,hwnd);
1229 IVideoWindow_Release(pVidWin);
1233 static HRESULT WINAPI
1234 IVideoWindow_fnget_MessageDrain(IVideoWindow* iface,OAHWND* phwnd)
1236 CFilterGraph_THIS(iface,vidwin);
1239 TRACE("(%p)->()\n",This);
1241 hr = IVideoWindow_get_MessageDrain(pVidWin,phwnd);
1242 IVideoWindow_Release(pVidWin);
1246 static HRESULT WINAPI
1247 IVideoWindow_fnget_BorderColor(IVideoWindow* iface,long* plColor)
1249 CFilterGraph_THIS(iface,vidwin);
1252 TRACE("(%p)->()\n",This);
1254 hr = IVideoWindow_get_BorderColor(pVidWin,plColor);
1255 IVideoWindow_Release(pVidWin);
1259 static HRESULT WINAPI
1260 IVideoWindow_fnput_BorderColor(IVideoWindow* iface,long lColor)
1262 CFilterGraph_THIS(iface,vidwin);
1265 TRACE("(%p)->()\n",This);
1267 hr = IVideoWindow_put_BorderColor(pVidWin,lColor);
1268 IVideoWindow_Release(pVidWin);
1272 static HRESULT WINAPI
1273 IVideoWindow_fnget_FullScreenMode(IVideoWindow* iface,long* plMode)
1275 CFilterGraph_THIS(iface,vidwin);
1278 TRACE("(%p)->()\n",This);
1280 hr = IVideoWindow_get_FullScreenMode(pVidWin,plMode);
1281 IVideoWindow_Release(pVidWin);
1285 static HRESULT WINAPI
1286 IVideoWindow_fnput_FullScreenMode(IVideoWindow* iface,long lMode)
1288 CFilterGraph_THIS(iface,vidwin);
1291 TRACE("(%p)->()\n",This);
1293 hr = IVideoWindow_put_FullScreenMode(pVidWin,lMode);
1294 IVideoWindow_Release(pVidWin);
1298 static HRESULT WINAPI
1299 IVideoWindow_fnSetWindowForeground(IVideoWindow* iface,long lFocus)
1301 CFilterGraph_THIS(iface,vidwin);
1304 TRACE("(%p)->()\n",This);
1306 hr = IVideoWindow_SetWindowForeground(pVidWin,lFocus);
1307 IVideoWindow_Release(pVidWin);
1311 static HRESULT WINAPI
1312 IVideoWindow_fnNotifyOwnerMessage(IVideoWindow* iface,OAHWND hwnd,long message,LONG_PTR wParam,LONG_PTR lParam)
1314 CFilterGraph_THIS(iface,vidwin);
1317 TRACE("(%p)->()\n",This);
1319 hr = IVideoWindow_NotifyOwnerMessage(pVidWin,hwnd,message,wParam,lParam);
1320 IVideoWindow_Release(pVidWin);
1324 static HRESULT WINAPI
1325 IVideoWindow_fnSetWindowPosition(IVideoWindow* iface,long lLeft,long lTop,long lWidth,long lHeight)
1327 CFilterGraph_THIS(iface,vidwin);
1330 TRACE("(%p)->()\n",This);
1332 hr = IVideoWindow_SetWindowPosition(pVidWin,lLeft,lTop,lWidth,lHeight);
1333 IVideoWindow_Release(pVidWin);
1337 static HRESULT WINAPI
1338 IVideoWindow_fnGetWindowPosition(IVideoWindow* iface,long* plLeft,long* plTop,long* plWidth,long* plHeight)
1340 CFilterGraph_THIS(iface,vidwin);
1343 TRACE("(%p)->()\n",This);
1345 hr = IVideoWindow_GetWindowPosition(pVidWin,plLeft,plTop,plWidth,plHeight);
1346 IVideoWindow_Release(pVidWin);
1350 static HRESULT WINAPI
1351 IVideoWindow_fnGetMinIdealImageSize(IVideoWindow* iface,long* plWidth,long* plHeight)
1353 CFilterGraph_THIS(iface,vidwin);
1356 TRACE("(%p)->()\n",This);
1358 hr = IVideoWindow_GetMinIdealImageSize(pVidWin,plWidth,plHeight);
1359 IVideoWindow_Release(pVidWin);
1363 static HRESULT WINAPI
1364 IVideoWindow_fnGetMaxIdealImageSize(IVideoWindow* iface,long* plWidth,long* plHeight)
1366 CFilterGraph_THIS(iface,vidwin);
1369 TRACE("(%p)->()\n",This);
1371 hr = IVideoWindow_GetMaxIdealImageSize(pVidWin,plWidth,plHeight);
1372 IVideoWindow_Release(pVidWin);
1376 static HRESULT WINAPI
1377 IVideoWindow_fnGetRestorePosition(IVideoWindow* iface,long* plLeft,long* plTop,long* plWidth,long* plHeight)
1379 CFilterGraph_THIS(iface,vidwin);
1382 TRACE("(%p)->()\n",This);
1384 hr = IVideoWindow_GetRestorePosition(pVidWin,plLeft,plTop,plWidth,plHeight);
1385 IVideoWindow_Release(pVidWin);
1389 static HRESULT WINAPI
1390 IVideoWindow_fnHideCursor(IVideoWindow* iface,long lHide)
1392 CFilterGraph_THIS(iface,vidwin);
1395 TRACE("(%p)->()\n",This);
1397 hr = IVideoWindow_HideCursor(pVidWin,lHide);
1398 IVideoWindow_Release(pVidWin);
1402 static HRESULT WINAPI
1403 IVideoWindow_fnIsCursorHidden(IVideoWindow* iface,long* plHide)
1405 CFilterGraph_THIS(iface,vidwin);
1408 TRACE("(%p)->()\n",This);
1410 hr = IVideoWindow_IsCursorHidden(pVidWin,plHide);
1411 IVideoWindow_Release(pVidWin);
1418 static ICOM_VTABLE(IVideoWindow) ivideowindow =
1420 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
1421 /* IUnknown fields */
1422 IVideoWindow_fnQueryInterface,
1423 IVideoWindow_fnAddRef,
1424 IVideoWindow_fnRelease,
1425 /* IDispatch fields */
1426 IVideoWindow_fnGetTypeInfoCount,
1427 IVideoWindow_fnGetTypeInfo,
1428 IVideoWindow_fnGetIDsOfNames,
1429 IVideoWindow_fnInvoke,
1430 /* IVideoWindow fields */
1431 IVideoWindow_fnput_Caption,
1432 IVideoWindow_fnget_Caption,
1433 IVideoWindow_fnput_WindowStyle,
1434 IVideoWindow_fnget_WindowStyle,
1435 IVideoWindow_fnput_WindowStyleEx,
1436 IVideoWindow_fnget_WindowStyleEx,
1437 IVideoWindow_fnput_AutoShow,
1438 IVideoWindow_fnget_AutoShow,
1439 IVideoWindow_fnput_WindowState,
1440 IVideoWindow_fnget_WindowState,
1441 IVideoWindow_fnput_BackgroundPalette,
1442 IVideoWindow_fnget_BackgroundPalette,
1443 IVideoWindow_fnput_Visible,
1444 IVideoWindow_fnget_Visible,
1445 IVideoWindow_fnput_Left,
1446 IVideoWindow_fnget_Left,
1447 IVideoWindow_fnput_Width,
1448 IVideoWindow_fnget_Width,
1449 IVideoWindow_fnput_Top,
1450 IVideoWindow_fnget_Top,
1451 IVideoWindow_fnput_Height,
1452 IVideoWindow_fnget_Height,
1453 IVideoWindow_fnput_Owner,
1454 IVideoWindow_fnget_Owner,
1455 IVideoWindow_fnput_MessageDrain,
1456 IVideoWindow_fnget_MessageDrain,
1457 IVideoWindow_fnget_BorderColor,
1458 IVideoWindow_fnput_BorderColor,
1459 IVideoWindow_fnget_FullScreenMode,
1460 IVideoWindow_fnput_FullScreenMode,
1461 IVideoWindow_fnSetWindowForeground,
1462 IVideoWindow_fnNotifyOwnerMessage,
1463 IVideoWindow_fnSetWindowPosition,
1464 IVideoWindow_fnGetWindowPosition,
1465 IVideoWindow_fnGetMinIdealImageSize,
1466 IVideoWindow_fnGetMaxIdealImageSize,
1467 IVideoWindow_fnGetRestorePosition,
1468 IVideoWindow_fnHideCursor,
1469 IVideoWindow_fnIsCursorHidden,
1474 HRESULT CFilterGraph_InitIVideoWindow( CFilterGraph* pfg )
1476 TRACE("(%p)\n",pfg);
1477 ICOM_VTBL(&pfg->vidwin) = &ivideowindow;
1482 void CFilterGraph_UninitIVideoWindow( CFilterGraph* pfg )
1484 TRACE("(%p)\n",pfg);
1487 #undef QUERYVIDEOWINDOW