source: trunk/src/quartz/fgpass.c@ 8266

Last change on this file since 8266 was 6952, checked in by sandervl, 24 years ago

Wine 20011004 resync

File size: 28.2 KB
Line 
1/*
2 * Implementation of IBasicAudio, IBasicVideo2, IVideoWindow for FilterGraph.
3 *
4 * FIXME - stub.
5 *
6 * hidenori@a2.ctktv.ne.jp
7 */
8
9#include "config.h"
10
11#include "windef.h"
12#include "winbase.h"
13#include "wingdi.h"
14#include "winuser.h"
15#include "winerror.h"
16#include "wine/obj_base.h"
17#include "wine/obj_oleaut.h"
18#include "strmif.h"
19#include "control.h"
20#include "uuids.h"
21
22#include "debugtools.h"
23DEFAULT_DEBUG_CHANNEL(quartz);
24
25#include "quartz_private.h"
26#include "fgraph.h"
27
28
29
30static HRESULT CFilterGraph_QueryBasicAudio(
31 CFilterGraph* This, IBasicAudio** ppAudio )
32{
33 FIXME("(%p,%p) stub!\n",This,ppAudio);
34 return E_NOTIMPL;
35}
36
37static HRESULT CFilterGraph_QueryBasicVideo(
38 CFilterGraph* This, IBasicVideo** ppVideo )
39{
40 FIXME("(%p,%p) stub!\n",This,ppVideo);
41 return E_NOTIMPL;
42}
43
44static HRESULT CFilterGraph_QueryBasicVideo2(
45 CFilterGraph* This, IBasicVideo2** ppVideo )
46{
47 FIXME("(%p,%p) stub!\n",This,ppVideo);
48 return E_NOTIMPL;
49}
50
51static HRESULT CFilterGraph_QueryVideoWindow(
52 CFilterGraph* This, IVideoWindow** ppVidWin )
53{
54 FIXME("(%p,%p) stub!\n",This,ppVidWin);
55 return E_NOTIMPL;
56}
57
58
59
60/***************************************************************************
61 *
62 * CFilterGraph::IBasicAudio
63 *
64 */
65
66#define QUERYBASICAUDIO \
67 IBasicAudio* pAudio = NULL; \
68 HRESULT hr; \
69 hr = CFilterGraph_QueryBasicAudio( This, &pAudio ); \
70 if ( FAILED(hr) ) return hr;
71
72
73static HRESULT WINAPI
74IBasicAudio_fnQueryInterface(IBasicAudio* iface,REFIID riid,void** ppobj)
75{
76 CFilterGraph_THIS(iface,basaud);
77
78 TRACE("(%p)->()\n",This);
79
80 return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
81}
82
83static ULONG WINAPI
84IBasicAudio_fnAddRef(IBasicAudio* iface)
85{
86 CFilterGraph_THIS(iface,basaud);
87
88 TRACE("(%p)->()\n",This);
89
90 return IUnknown_AddRef(This->unk.punkControl);
91}
92
93static ULONG WINAPI
94IBasicAudio_fnRelease(IBasicAudio* iface)
95{
96 CFilterGraph_THIS(iface,basaud);
97
98 TRACE("(%p)->()\n",This);
99
100 return IUnknown_Release(This->unk.punkControl);
101}
102
103static HRESULT WINAPI
104IBasicAudio_fnGetTypeInfoCount(IBasicAudio* iface,UINT* pcTypeInfo)
105{
106 CFilterGraph_THIS(iface,basaud);
107
108 FIXME("(%p)->()\n",This);
109
110 return E_NOTIMPL;
111}
112
113static HRESULT WINAPI
114IBasicAudio_fnGetTypeInfo(IBasicAudio* iface,UINT iTypeInfo, LCID lcid, ITypeInfo** ppobj)
115{
116 CFilterGraph_THIS(iface,basaud);
117
118 FIXME("(%p)->()\n",This);
119
120 return E_NOTIMPL;
121}
122
123static HRESULT WINAPI
124IBasicAudio_fnGetIDsOfNames(IBasicAudio* iface,REFIID riid, LPOLESTR* ppwszName, UINT cNames, LCID lcid, DISPID* pDispId)
125{
126 CFilterGraph_THIS(iface,basaud);
127
128 FIXME("(%p)->()\n",This);
129
130 return E_NOTIMPL;
131}
132
133static HRESULT WINAPI
134IBasicAudio_fnInvoke(IBasicAudio* iface,DISPID DispId, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarRes, EXCEPINFO* pExcepInfo, UINT* puArgErr)
135{
136 CFilterGraph_THIS(iface,basaud);
137
138 FIXME("(%p)->()\n",This);
139
140 return E_NOTIMPL;
141}
142
143
144static HRESULT WINAPI
145IBasicAudio_fnput_Volume(IBasicAudio* iface,long lVol)
146{
147 CFilterGraph_THIS(iface,basaud);
148 QUERYBASICAUDIO
149
150 TRACE("(%p)->()\n",This);
151
152 return IBasicAudio_put_Volume(pAudio,lVol);
153}
154
155static HRESULT WINAPI
156IBasicAudio_fnget_Volume(IBasicAudio* iface,long* plVol)
157{
158 CFilterGraph_THIS(iface,basaud);
159 QUERYBASICAUDIO
160
161 TRACE("(%p)->()\n",This);
162
163 return IBasicAudio_get_Volume(pAudio,plVol);
164}
165
166static HRESULT WINAPI
167IBasicAudio_fnput_Balance(IBasicAudio* iface,long lBalance)
168{
169 CFilterGraph_THIS(iface,basaud);
170 QUERYBASICAUDIO
171
172 TRACE("(%p)->()\n",This);
173
174 return IBasicAudio_put_Balance(pAudio,lBalance);
175}
176
177static HRESULT WINAPI
178IBasicAudio_fnget_Balance(IBasicAudio* iface,long* plBalance)
179{
180 CFilterGraph_THIS(iface,basaud);
181 QUERYBASICAUDIO
182
183 TRACE("(%p)->()\n",This);
184
185 return IBasicAudio_get_Balance(pAudio,plBalance);
186}
187
188
189static ICOM_VTABLE(IBasicAudio) ibasicaudio =
190{
191 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
192 /* IUnknown fields */
193 IBasicAudio_fnQueryInterface,
194 IBasicAudio_fnAddRef,
195 IBasicAudio_fnRelease,
196 /* IDispatch fields */
197 IBasicAudio_fnGetTypeInfoCount,
198 IBasicAudio_fnGetTypeInfo,
199 IBasicAudio_fnGetIDsOfNames,
200 IBasicAudio_fnInvoke,
201 /* IBasicAudio fields */
202 IBasicAudio_fnput_Volume,
203 IBasicAudio_fnget_Volume,
204 IBasicAudio_fnput_Balance,
205 IBasicAudio_fnget_Balance,
206};
207
208
209HRESULT CFilterGraph_InitIBasicAudio( CFilterGraph* pfg )
210{
211 TRACE("(%p)\n",pfg);
212 ICOM_VTBL(&pfg->basaud) = &ibasicaudio;
213
214 return NOERROR;
215}
216
217void CFilterGraph_UninitIBasicAudio( CFilterGraph* pfg )
218{
219 TRACE("(%p)\n",pfg);
220}
221
222#undef QUERYBASICAUDIO
223
224
225/***************************************************************************
226 *
227 * CFilterGraph::IBasicVideo2
228 *
229 */
230
231
232#define QUERYBASICVIDEO \
233 IBasicVideo* pVideo = NULL; \
234 HRESULT hr; \
235 hr = CFilterGraph_QueryBasicVideo( This, &pVideo ); \
236 if ( FAILED(hr) ) return hr;
237
238#define QUERYBASICVIDEO2 \
239 IBasicVideo2* pVideo = NULL; \
240 HRESULT hr; \
241 hr = CFilterGraph_QueryBasicVideo2( This, &pVideo ); \
242 if ( FAILED(hr) ) return hr;
243
244
245static HRESULT WINAPI
246IBasicVideo2_fnQueryInterface(IBasicVideo2* iface,REFIID riid,void** ppobj)
247{
248 CFilterGraph_THIS(iface,basvid);
249
250 TRACE("(%p)->()\n",This);
251
252 return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
253}
254
255static ULONG WINAPI
256IBasicVideo2_fnAddRef(IBasicVideo2* iface)
257{
258 CFilterGraph_THIS(iface,basvid);
259
260 TRACE("(%p)->()\n",This);
261
262 return IUnknown_AddRef(This->unk.punkControl);
263}
264
265static ULONG WINAPI
266IBasicVideo2_fnRelease(IBasicVideo2* iface)
267{
268 CFilterGraph_THIS(iface,basvid);
269
270 TRACE("(%p)->()\n",This);
271
272 return IUnknown_Release(This->unk.punkControl);
273}
274
275static HRESULT WINAPI
276IBasicVideo2_fnGetTypeInfoCount(IBasicVideo2* iface,UINT* pcTypeInfo)
277{
278 CFilterGraph_THIS(iface,basvid);
279
280 FIXME("(%p)->()\n",This);
281
282 return E_NOTIMPL;
283}
284
285static HRESULT WINAPI
286IBasicVideo2_fnGetTypeInfo(IBasicVideo2* iface,UINT iTypeInfo, LCID lcid, ITypeInfo** ppobj)
287{
288 CFilterGraph_THIS(iface,basvid);
289
290 FIXME("(%p)->()\n",This);
291
292 return E_NOTIMPL;
293}
294
295static HRESULT WINAPI
296IBasicVideo2_fnGetIDsOfNames(IBasicVideo2* iface,REFIID riid, LPOLESTR* ppwszName, UINT cNames, LCID lcid, DISPID* pDispId)
297{
298 CFilterGraph_THIS(iface,basvid);
299
300 FIXME("(%p)->()\n",This);
301
302 return E_NOTIMPL;
303}
304
305static HRESULT WINAPI
306IBasicVideo2_fnInvoke(IBasicVideo2* iface,DISPID DispId, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarRes, EXCEPINFO* pExcepInfo, UINT* puArgErr)
307{
308 CFilterGraph_THIS(iface,basvid);
309
310 FIXME("(%p)->()\n",This);
311
312 return E_NOTIMPL;
313}
314
315
316static HRESULT WINAPI
317IBasicVideo2_fnget_AvgTimePerFrame(IBasicVideo2* iface,REFTIME* prefTime)
318{
319 CFilterGraph_THIS(iface,basvid);
320 QUERYBASICVIDEO
321
322 TRACE("(%p)->()\n",This);
323
324 return IBasicVideo_get_AvgTimePerFrame(pVideo,prefTime);
325}
326
327static HRESULT WINAPI
328IBasicVideo2_fnget_BitRate(IBasicVideo2* iface,long* plRate)
329{
330 CFilterGraph_THIS(iface,basvid);
331 QUERYBASICVIDEO
332
333 TRACE("(%p)->()\n",This);
334
335 return IBasicVideo_get_BitRate(pVideo,plRate);
336}
337
338static HRESULT WINAPI
339IBasicVideo2_fnget_BitErrorRate(IBasicVideo2* iface,long* plRate)
340{
341 CFilterGraph_THIS(iface,basvid);
342 QUERYBASICVIDEO
343
344 TRACE("(%p)->()\n",This);
345
346 return IBasicVideo_get_BitErrorRate(pVideo,plRate);
347}
348
349static HRESULT WINAPI
350IBasicVideo2_fnget_VideoWidth(IBasicVideo2* iface,long* plWidth)
351{
352 CFilterGraph_THIS(iface,basvid);
353 QUERYBASICVIDEO
354
355 TRACE("(%p)->()\n",This);
356
357 return IBasicVideo_get_VideoWidth(pVideo,plWidth);
358}
359
360static HRESULT WINAPI
361IBasicVideo2_fnget_VideoHeight(IBasicVideo2* iface,long* plHeight)
362{
363 CFilterGraph_THIS(iface,basvid);
364 QUERYBASICVIDEO
365
366 TRACE("(%p)->()\n",This);
367
368 return IBasicVideo_get_VideoHeight(pVideo,plHeight);
369}
370
371static HRESULT WINAPI
372IBasicVideo2_fnput_SourceLeft(IBasicVideo2* iface,long lLeft)
373{
374 CFilterGraph_THIS(iface,basvid);
375 QUERYBASICVIDEO
376
377 TRACE("(%p)->()\n",This);
378
379 return IBasicVideo_put_SourceLeft(pVideo,lLeft);
380}
381
382static HRESULT WINAPI
383IBasicVideo2_fnget_SourceLeft(IBasicVideo2* iface,long* plLeft)
384{
385 CFilterGraph_THIS(iface,basvid);
386 QUERYBASICVIDEO
387
388 TRACE("(%p)->()\n",This);
389
390 return IBasicVideo_get_SourceLeft(pVideo,plLeft);
391}
392
393static HRESULT WINAPI
394IBasicVideo2_fnput_SourceWidth(IBasicVideo2* iface,long lWidth)
395{
396 CFilterGraph_THIS(iface,basvid);
397 QUERYBASICVIDEO
398
399 TRACE("(%p)->()\n",This);
400
401 return IBasicVideo_put_SourceWidth(pVideo,lWidth);
402}
403
404static HRESULT WINAPI
405IBasicVideo2_fnget_SourceWidth(IBasicVideo2* iface,long* plWidth)
406{
407 CFilterGraph_THIS(iface,basvid);
408 QUERYBASICVIDEO
409
410 TRACE("(%p)->()\n",This);
411
412 return IBasicVideo_get_SourceWidth(pVideo,plWidth);
413}
414
415static HRESULT WINAPI
416IBasicVideo2_fnput_SourceTop(IBasicVideo2* iface,long lTop)
417{
418 CFilterGraph_THIS(iface,basvid);
419 QUERYBASICVIDEO
420
421 TRACE("(%p)->()\n",This);
422
423 return IBasicVideo_put_SourceTop(pVideo,lTop);
424}
425
426static HRESULT WINAPI
427IBasicVideo2_fnget_SourceTop(IBasicVideo2* iface,long* plTop)
428{
429 CFilterGraph_THIS(iface,basvid);
430 QUERYBASICVIDEO
431
432 TRACE("(%p)->()\n",This);
433
434 return IBasicVideo_get_SourceTop(pVideo,plTop);
435}
436
437static HRESULT WINAPI
438IBasicVideo2_fnput_SourceHeight(IBasicVideo2* iface,long lHeight)
439{
440 CFilterGraph_THIS(iface,basvid);
441 QUERYBASICVIDEO
442
443 TRACE("(%p)->()\n",This);
444
445 return IBasicVideo_put_SourceHeight(pVideo,lHeight);
446}
447
448static HRESULT WINAPI
449IBasicVideo2_fnget_SourceHeight(IBasicVideo2* iface,long* plHeight)
450{
451 CFilterGraph_THIS(iface,basvid);
452 QUERYBASICVIDEO
453
454 TRACE("(%p)->()\n",This);
455
456 return IBasicVideo_get_SourceHeight(pVideo,plHeight);
457}
458
459static HRESULT WINAPI
460IBasicVideo2_fnput_DestinationLeft(IBasicVideo2* iface,long lLeft)
461{
462 CFilterGraph_THIS(iface,basvid);
463 QUERYBASICVIDEO
464
465 TRACE("(%p)->()\n",This);
466
467 return IBasicVideo_put_DestinationLeft(pVideo,lLeft);
468}
469
470static HRESULT WINAPI
471IBasicVideo2_fnget_DestinationLeft(IBasicVideo2* iface,long* plLeft)
472{
473 CFilterGraph_THIS(iface,basvid);
474 QUERYBASICVIDEO
475
476 TRACE("(%p)->()\n",This);
477
478 return IBasicVideo_get_DestinationLeft(pVideo,plLeft);
479}
480
481static HRESULT WINAPI
482IBasicVideo2_fnput_DestinationWidth(IBasicVideo2* iface,long lWidth)
483{
484 CFilterGraph_THIS(iface,basvid);
485 QUERYBASICVIDEO
486
487 TRACE("(%p)->()\n",This);
488
489 return IBasicVideo_put_DestinationWidth(pVideo,lWidth);
490}
491
492static HRESULT WINAPI
493IBasicVideo2_fnget_DestinationWidth(IBasicVideo2* iface,long* plWidth)
494{
495 CFilterGraph_THIS(iface,basvid);
496 QUERYBASICVIDEO
497
498 TRACE("(%p)->()\n",This);
499
500 return IBasicVideo_get_DestinationWidth(pVideo,plWidth);
501}
502
503static HRESULT WINAPI
504IBasicVideo2_fnput_DestinationTop(IBasicVideo2* iface,long lTop)
505{
506 CFilterGraph_THIS(iface,basvid);
507 QUERYBASICVIDEO
508
509 TRACE("(%p)->()\n",This);
510
511 return IBasicVideo_put_DestinationTop(pVideo,lTop);
512}
513
514static HRESULT WINAPI
515IBasicVideo2_fnget_DestinationTop(IBasicVideo2* iface,long* plTop)
516{
517 CFilterGraph_THIS(iface,basvid);
518 QUERYBASICVIDEO
519
520 TRACE("(%p)->()\n",This);
521
522 return IBasicVideo_get_DestinationTop(pVideo,plTop);
523}
524
525static HRESULT WINAPI
526IBasicVideo2_fnput_DestinationHeight(IBasicVideo2* iface,long lHeight)
527{
528 CFilterGraph_THIS(iface,basvid);
529 QUERYBASICVIDEO
530
531 TRACE("(%p)->()\n",This);
532
533 return IBasicVideo_put_DestinationHeight(pVideo,lHeight);
534}
535
536static HRESULT WINAPI
537IBasicVideo2_fnget_DestinationHeight(IBasicVideo2* iface,long* plHeight)
538{
539 CFilterGraph_THIS(iface,basvid);
540 QUERYBASICVIDEO
541
542 TRACE("(%p)->()\n",This);
543
544 return IBasicVideo_get_DestinationHeight(pVideo,plHeight);
545}
546
547static HRESULT WINAPI
548IBasicVideo2_fnSetSourcePosition(IBasicVideo2* iface,long lLeft,long lTop,long lWidth,long lHeight)
549{
550 CFilterGraph_THIS(iface,basvid);
551 QUERYBASICVIDEO
552
553 TRACE("(%p)->()\n",This);
554
555 return IBasicVideo_SetSourcePosition(pVideo,lLeft,lTop,lWidth,lHeight);
556}
557
558static HRESULT WINAPI
559IBasicVideo2_fnGetSourcePosition(IBasicVideo2* iface,long* plLeft,long* plTop,long* plWidth,long* plHeight)
560{
561 CFilterGraph_THIS(iface,basvid);
562 QUERYBASICVIDEO
563
564 TRACE("(%p)->()\n",This);
565
566 return IBasicVideo_GetSourcePosition(pVideo,plLeft,plTop,plWidth,plHeight);
567}
568
569static HRESULT WINAPI
570IBasicVideo2_fnSetDefaultSourcePosition(IBasicVideo2* iface)
571{
572 CFilterGraph_THIS(iface,basvid);
573 QUERYBASICVIDEO
574
575 TRACE("(%p)->()\n",This);
576
577 return IBasicVideo_SetDefaultSourcePosition(pVideo);
578}
579
580static HRESULT WINAPI
581IBasicVideo2_fnSetDestinationPosition(IBasicVideo2* iface,long lLeft,long lTop,long lWidth,long lHeight)
582{
583 CFilterGraph_THIS(iface,basvid);
584 QUERYBASICVIDEO
585
586 TRACE("(%p)->()\n",This);
587
588 return IBasicVideo_SetDestinationPosition(pVideo,lLeft,lTop,lWidth,lHeight);
589}
590
591static HRESULT WINAPI
592IBasicVideo2_fnGetDestinationPosition(IBasicVideo2* iface,long* plLeft,long* plTop,long* plWidth,long* plHeight)
593{
594 CFilterGraph_THIS(iface,basvid);
595 QUERYBASICVIDEO
596
597 TRACE("(%p)->()\n",This);
598
599 return IBasicVideo_GetDestinationPosition(pVideo,plLeft,plTop,plWidth,plHeight);
600}
601
602static HRESULT WINAPI
603IBasicVideo2_fnSetDefaultDestinationPosition(IBasicVideo2* iface)
604{
605 CFilterGraph_THIS(iface,basvid);
606 QUERYBASICVIDEO
607
608 TRACE("(%p)->()\n",This);
609
610 return IBasicVideo_SetDefaultDestinationPosition(pVideo);
611}
612
613static HRESULT WINAPI
614IBasicVideo2_fnGetVideoSize(IBasicVideo2* iface,long* plWidth,long* plHeight)
615{
616 CFilterGraph_THIS(iface,basvid);
617 QUERYBASICVIDEO
618
619 TRACE("(%p)->()\n",This);
620
621 return IBasicVideo_GetVideoSize(pVideo,plWidth,plHeight);
622}
623
624static HRESULT WINAPI
625IBasicVideo2_fnGetVideoPaletteEntries(IBasicVideo2* iface,long lStart,long lCount,long* plRet,long* plPaletteEntry)
626{
627 CFilterGraph_THIS(iface,basvid);
628 QUERYBASICVIDEO
629
630 TRACE("(%p)->()\n",This);
631
632 return IBasicVideo_GetVideoPaletteEntries(pVideo,lStart,lCount,plRet,plPaletteEntry);
633}
634
635static HRESULT WINAPI
636IBasicVideo2_fnGetCurrentImage(IBasicVideo2* iface,long* plBufferSize,long* plDIBBuffer)
637{
638 CFilterGraph_THIS(iface,basvid);
639 QUERYBASICVIDEO
640
641 TRACE("(%p)->()\n",This);
642
643 return IBasicVideo_GetCurrentImage(pVideo,plBufferSize,plDIBBuffer);
644}
645
646static HRESULT WINAPI
647IBasicVideo2_fnIsUsingDefaultSource(IBasicVideo2* iface)
648{
649 CFilterGraph_THIS(iface,basvid);
650 QUERYBASICVIDEO
651
652 TRACE("(%p)->()\n",This);
653
654 return IBasicVideo_IsUsingDefaultSource(pVideo);
655}
656
657static HRESULT WINAPI
658IBasicVideo2_fnIsUsingDefaultDestination(IBasicVideo2* iface)
659{
660 CFilterGraph_THIS(iface,basvid);
661 QUERYBASICVIDEO
662
663 TRACE("(%p)->()\n",This);
664
665 return IBasicVideo_IsUsingDefaultDestination(pVideo);
666}
667
668static HRESULT WINAPI
669IBasicVideo2_fnGetPreferredAspectRatio(IBasicVideo2* iface,long* plRateX,long* plRateY)
670{
671 CFilterGraph_THIS(iface,basvid);
672 QUERYBASICVIDEO2
673
674 TRACE("(%p)->()\n",This);
675
676 return IBasicVideo2_GetPreferredAspectRatio(pVideo,plRateX,plRateY);
677}
678
679
680
681
682static ICOM_VTABLE(IBasicVideo2) ibasicvideo =
683{
684 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
685 /* IUnknown fields */
686 IBasicVideo2_fnQueryInterface,
687 IBasicVideo2_fnAddRef,
688 IBasicVideo2_fnRelease,
689 /* IDispatch fields */
690 IBasicVideo2_fnGetTypeInfoCount,
691 IBasicVideo2_fnGetTypeInfo,
692 IBasicVideo2_fnGetIDsOfNames,
693 IBasicVideo2_fnInvoke,
694 /* IBasicVideo fields */
695 IBasicVideo2_fnget_AvgTimePerFrame,
696 IBasicVideo2_fnget_BitRate,
697 IBasicVideo2_fnget_BitErrorRate,
698 IBasicVideo2_fnget_VideoWidth,
699 IBasicVideo2_fnget_VideoHeight,
700 IBasicVideo2_fnput_SourceLeft,
701 IBasicVideo2_fnget_SourceLeft,
702 IBasicVideo2_fnput_SourceWidth,
703 IBasicVideo2_fnget_SourceWidth,
704 IBasicVideo2_fnput_SourceTop,
705 IBasicVideo2_fnget_SourceTop,
706 IBasicVideo2_fnput_SourceHeight,
707 IBasicVideo2_fnget_SourceHeight,
708 IBasicVideo2_fnput_DestinationLeft,
709 IBasicVideo2_fnget_DestinationLeft,
710 IBasicVideo2_fnput_DestinationWidth,
711 IBasicVideo2_fnget_DestinationWidth,
712 IBasicVideo2_fnput_DestinationTop,
713 IBasicVideo2_fnget_DestinationTop,
714 IBasicVideo2_fnput_DestinationHeight,
715 IBasicVideo2_fnget_DestinationHeight,
716 IBasicVideo2_fnSetSourcePosition,
717 IBasicVideo2_fnGetSourcePosition,
718 IBasicVideo2_fnSetDefaultSourcePosition,
719 IBasicVideo2_fnSetDestinationPosition,
720 IBasicVideo2_fnGetDestinationPosition,
721 IBasicVideo2_fnSetDefaultDestinationPosition,
722 IBasicVideo2_fnGetVideoSize,
723 IBasicVideo2_fnGetVideoPaletteEntries,
724 IBasicVideo2_fnGetCurrentImage,
725 IBasicVideo2_fnIsUsingDefaultSource,
726 IBasicVideo2_fnIsUsingDefaultDestination,
727 /* IBasicVideo2 fields */
728 IBasicVideo2_fnGetPreferredAspectRatio,
729};
730
731
732HRESULT CFilterGraph_InitIBasicVideo2( CFilterGraph* pfg )
733{
734 TRACE("(%p)\n",pfg);
735 ICOM_VTBL(&pfg->basvid) = &ibasicvideo;
736
737 return NOERROR;
738}
739
740void CFilterGraph_UninitIBasicVideo2( CFilterGraph* pfg )
741{
742 TRACE("(%p)\n",pfg);
743}
744
745#undef QUERYBASICVIDEO2
746#undef QUERYBASICVIDEO
747
748/***************************************************************************
749 *
750 * CFilterGraph::IVideoWindow
751 *
752 */
753
754#define QUERYVIDEOWINDOW \
755 IVideoWindow* pVidWin = NULL; \
756 HRESULT hr; \
757 hr = CFilterGraph_QueryVideoWindow( This, &pVidWin ); \
758 if ( FAILED(hr) ) return hr;
759
760
761static HRESULT WINAPI
762IVideoWindow_fnQueryInterface(IVideoWindow* iface,REFIID riid,void** ppobj)
763{
764 CFilterGraph_THIS(iface,vidwin);
765
766 TRACE("(%p)->()\n",This);
767
768 return IUnknown_QueryInterface(This->unk.punkControl,riid,ppobj);
769}
770
771static ULONG WINAPI
772IVideoWindow_fnAddRef(IVideoWindow* iface)
773{
774 CFilterGraph_THIS(iface,vidwin);
775
776 TRACE("(%p)->()\n",This);
777
778 return IUnknown_AddRef(This->unk.punkControl);
779}
780
781static ULONG WINAPI
782IVideoWindow_fnRelease(IVideoWindow* iface)
783{
784 CFilterGraph_THIS(iface,vidwin);
785
786 TRACE("(%p)->()\n",This);
787
788 return IUnknown_Release(This->unk.punkControl);
789}
790
791static HRESULT WINAPI
792IVideoWindow_fnGetTypeInfoCount(IVideoWindow* iface,UINT* pcTypeInfo)
793{
794 CFilterGraph_THIS(iface,vidwin);
795
796 FIXME("(%p)->()\n",This);
797
798 return E_NOTIMPL;
799}
800
801static HRESULT WINAPI
802IVideoWindow_fnGetTypeInfo(IVideoWindow* iface,UINT iTypeInfo, LCID lcid, ITypeInfo** ppobj)
803{
804 CFilterGraph_THIS(iface,vidwin);
805
806 FIXME("(%p)->()\n",This);
807
808 return E_NOTIMPL;
809}
810
811static HRESULT WINAPI
812IVideoWindow_fnGetIDsOfNames(IVideoWindow* iface,REFIID riid, LPOLESTR* ppwszName, UINT cNames, LCID lcid, DISPID* pDispId)
813{
814 CFilterGraph_THIS(iface,vidwin);
815
816 FIXME("(%p)->()\n",This);
817
818 return E_NOTIMPL;
819}
820
821static HRESULT WINAPI
822IVideoWindow_fnInvoke(IVideoWindow* iface,DISPID DispId, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarRes, EXCEPINFO* pExcepInfo, UINT* puArgErr)
823{
824 CFilterGraph_THIS(iface,vidwin);
825
826 FIXME("(%p)->()\n",This);
827
828 return E_NOTIMPL;
829}
830
831
832
833static HRESULT WINAPI
834IVideoWindow_fnput_Caption(IVideoWindow* iface,BSTR strCaption)
835{
836 CFilterGraph_THIS(iface,vidwin);
837 QUERYVIDEOWINDOW
838
839 TRACE("(%p)->()\n",This);
840
841 return IVideoWindow_put_Caption(pVidWin,strCaption);
842}
843
844static HRESULT WINAPI
845IVideoWindow_fnget_Caption(IVideoWindow* iface,BSTR* pstrCaption)
846{
847 CFilterGraph_THIS(iface,vidwin);
848 QUERYVIDEOWINDOW
849
850 TRACE("(%p)->()\n",This);
851
852 return IVideoWindow_get_Caption(pVidWin,pstrCaption);
853}
854
855static HRESULT WINAPI
856IVideoWindow_fnput_WindowStyle(IVideoWindow* iface,long lStyle)
857{
858 CFilterGraph_THIS(iface,vidwin);
859 QUERYVIDEOWINDOW
860
861 TRACE("(%p)->()\n",This);
862
863 return IVideoWindow_put_WindowStyle(pVidWin,lStyle);
864}
865
866static HRESULT WINAPI
867IVideoWindow_fnget_WindowStyle(IVideoWindow* iface,long* plStyle)
868{
869 CFilterGraph_THIS(iface,vidwin);
870 QUERYVIDEOWINDOW
871
872 TRACE("(%p)->()\n",This);
873
874 return IVideoWindow_get_WindowStyle(pVidWin,plStyle);
875}
876
877static HRESULT WINAPI
878IVideoWindow_fnput_WindowStyleEx(IVideoWindow* iface,long lExStyle)
879{
880 CFilterGraph_THIS(iface,vidwin);
881 QUERYVIDEOWINDOW
882
883 TRACE("(%p)->()\n",This);
884
885 return IVideoWindow_put_WindowStyleEx(pVidWin,lExStyle);
886}
887
888static HRESULT WINAPI
889IVideoWindow_fnget_WindowStyleEx(IVideoWindow* iface,long* plExStyle)
890{
891 CFilterGraph_THIS(iface,vidwin);
892 QUERYVIDEOWINDOW
893
894 TRACE("(%p)->()\n",This);
895
896 return IVideoWindow_get_WindowStyleEx(pVidWin,plExStyle);
897}
898
899static HRESULT WINAPI
900IVideoWindow_fnput_AutoShow(IVideoWindow* iface,long lAutoShow)
901{
902 CFilterGraph_THIS(iface,vidwin);
903 QUERYVIDEOWINDOW
904
905 TRACE("(%p)->()\n",This);
906
907 return IVideoWindow_put_AutoShow(pVidWin,lAutoShow);
908}
909
910static HRESULT WINAPI
911IVideoWindow_fnget_AutoShow(IVideoWindow* iface,long* plAutoShow)
912{
913 CFilterGraph_THIS(iface,vidwin);
914 QUERYVIDEOWINDOW
915
916 TRACE("(%p)->()\n",This);
917
918 return IVideoWindow_get_AutoShow(pVidWin,plAutoShow);
919}
920
921static HRESULT WINAPI
922IVideoWindow_fnput_WindowState(IVideoWindow* iface,long lState)
923{
924 CFilterGraph_THIS(iface,vidwin);
925 QUERYVIDEOWINDOW
926
927 TRACE("(%p)->()\n",This);
928
929 return IVideoWindow_put_WindowState(pVidWin,lState);
930}
931
932static HRESULT WINAPI
933IVideoWindow_fnget_WindowState(IVideoWindow* iface,long* plState)
934{
935 CFilterGraph_THIS(iface,vidwin);
936 QUERYVIDEOWINDOW
937
938 TRACE("(%p)->()\n",This);
939
940 return IVideoWindow_get_WindowState(pVidWin,plState);
941}
942
943static HRESULT WINAPI
944IVideoWindow_fnput_BackgroundPalette(IVideoWindow* iface,long lBackPal)
945{
946 CFilterGraph_THIS(iface,vidwin);
947 QUERYVIDEOWINDOW
948
949 TRACE("(%p)->()\n",This);
950
951 return IVideoWindow_put_BackgroundPalette(pVidWin,lBackPal);
952}
953
954static HRESULT WINAPI
955IVideoWindow_fnget_BackgroundPalette(IVideoWindow* iface,long* plBackPal)
956{
957 CFilterGraph_THIS(iface,vidwin);
958 QUERYVIDEOWINDOW
959
960 TRACE("(%p)->()\n",This);
961
962 return IVideoWindow_get_BackgroundPalette(pVidWin,plBackPal);
963}
964
965static HRESULT WINAPI
966IVideoWindow_fnput_Visible(IVideoWindow* iface,long lVisible)
967{
968 CFilterGraph_THIS(iface,vidwin);
969 QUERYVIDEOWINDOW
970
971 TRACE("(%p)->()\n",This);
972
973 return IVideoWindow_put_Visible(pVidWin,lVisible);
974}
975
976static HRESULT WINAPI
977IVideoWindow_fnget_Visible(IVideoWindow* iface,long* plVisible)
978{
979 CFilterGraph_THIS(iface,vidwin);
980 QUERYVIDEOWINDOW
981
982 TRACE("(%p)->()\n",This);
983
984 return IVideoWindow_get_Visible(pVidWin,plVisible);
985}
986
987static HRESULT WINAPI
988IVideoWindow_fnput_Left(IVideoWindow* iface,long lLeft)
989{
990 CFilterGraph_THIS(iface,vidwin);
991 QUERYVIDEOWINDOW
992
993 TRACE("(%p)->()\n",This);
994
995 return IVideoWindow_put_Left(pVidWin,lLeft);
996}
997
998static HRESULT WINAPI
999IVideoWindow_fnget_Left(IVideoWindow* iface,long* plLeft)
1000{
1001 CFilterGraph_THIS(iface,vidwin);
1002 QUERYVIDEOWINDOW
1003
1004 TRACE("(%p)->()\n",This);
1005
1006 return IVideoWindow_get_Left(pVidWin,plLeft);
1007}
1008
1009static HRESULT WINAPI
1010IVideoWindow_fnput_Width(IVideoWindow* iface,long lWidth)
1011{
1012 CFilterGraph_THIS(iface,vidwin);
1013 QUERYVIDEOWINDOW
1014
1015 TRACE("(%p)->()\n",This);
1016
1017 return IVideoWindow_put_Width(pVidWin,lWidth);
1018}
1019
1020static HRESULT WINAPI
1021IVideoWindow_fnget_Width(IVideoWindow* iface,long* plWidth)
1022{
1023 CFilterGraph_THIS(iface,vidwin);
1024 QUERYVIDEOWINDOW
1025
1026 TRACE("(%p)->()\n",This);
1027
1028 return IVideoWindow_get_Width(pVidWin,plWidth);
1029}
1030
1031static HRESULT WINAPI
1032IVideoWindow_fnput_Top(IVideoWindow* iface,long lTop)
1033{
1034 CFilterGraph_THIS(iface,vidwin);
1035 QUERYVIDEOWINDOW
1036
1037 TRACE("(%p)->()\n",This);
1038
1039 return IVideoWindow_put_Top(pVidWin,lTop);
1040}
1041
1042static HRESULT WINAPI
1043IVideoWindow_fnget_Top(IVideoWindow* iface,long* plTop)
1044{
1045 CFilterGraph_THIS(iface,vidwin);
1046 QUERYVIDEOWINDOW
1047
1048 TRACE("(%p)->()\n",This);
1049
1050 return IVideoWindow_get_Top(pVidWin,plTop);
1051}
1052
1053static HRESULT WINAPI
1054IVideoWindow_fnput_Height(IVideoWindow* iface,long lHeight)
1055{
1056 CFilterGraph_THIS(iface,vidwin);
1057 QUERYVIDEOWINDOW
1058
1059 TRACE("(%p)->()\n",This);
1060
1061 return IVideoWindow_put_Height(pVidWin,lHeight);
1062}
1063
1064static HRESULT WINAPI
1065IVideoWindow_fnget_Height(IVideoWindow* iface,long* plHeight)
1066{
1067 CFilterGraph_THIS(iface,vidwin);
1068 QUERYVIDEOWINDOW
1069
1070 TRACE("(%p)->()\n",This);
1071
1072 return IVideoWindow_get_Height(pVidWin,plHeight);
1073}
1074
1075static HRESULT WINAPI
1076IVideoWindow_fnput_Owner(IVideoWindow* iface,OAHWND hwnd)
1077{
1078 CFilterGraph_THIS(iface,vidwin);
1079 QUERYVIDEOWINDOW
1080
1081 TRACE("(%p)->()\n",This);
1082
1083 return IVideoWindow_put_Owner(pVidWin,hwnd);
1084}
1085
1086static HRESULT WINAPI
1087IVideoWindow_fnget_Owner(IVideoWindow* iface,OAHWND* phwnd)
1088{
1089 CFilterGraph_THIS(iface,vidwin);
1090 QUERYVIDEOWINDOW
1091
1092 TRACE("(%p)->()\n",This);
1093
1094 return IVideoWindow_get_Owner(pVidWin,phwnd);
1095}
1096
1097static HRESULT WINAPI
1098IVideoWindow_fnput_MessageDrain(IVideoWindow* iface,OAHWND hwnd)
1099{
1100 CFilterGraph_THIS(iface,vidwin);
1101 QUERYVIDEOWINDOW
1102
1103 TRACE("(%p)->()\n",This);
1104
1105 return IVideoWindow_put_MessageDrain(pVidWin,hwnd);
1106}
1107
1108static HRESULT WINAPI
1109IVideoWindow_fnget_MessageDrain(IVideoWindow* iface,OAHWND* phwnd)
1110{
1111 CFilterGraph_THIS(iface,vidwin);
1112 QUERYVIDEOWINDOW
1113
1114 TRACE("(%p)->()\n",This);
1115
1116 return IVideoWindow_get_MessageDrain(pVidWin,phwnd);
1117}
1118
1119static HRESULT WINAPI
1120IVideoWindow_fnget_BorderColor(IVideoWindow* iface,long* plColor)
1121{
1122 CFilterGraph_THIS(iface,vidwin);
1123 QUERYVIDEOWINDOW
1124
1125 TRACE("(%p)->()\n",This);
1126
1127 return IVideoWindow_get_BorderColor(pVidWin,plColor);
1128}
1129
1130static HRESULT WINAPI
1131IVideoWindow_fnput_BorderColor(IVideoWindow* iface,long lColor)
1132{
1133 CFilterGraph_THIS(iface,vidwin);
1134 QUERYVIDEOWINDOW
1135
1136 TRACE("(%p)->()\n",This);
1137
1138 return IVideoWindow_put_BorderColor(pVidWin,lColor);
1139}
1140
1141static HRESULT WINAPI
1142IVideoWindow_fnget_FullScreenMode(IVideoWindow* iface,long* plMode)
1143{
1144 CFilterGraph_THIS(iface,vidwin);
1145 QUERYVIDEOWINDOW
1146
1147 TRACE("(%p)->()\n",This);
1148
1149 return IVideoWindow_get_FullScreenMode(pVidWin,plMode);
1150}
1151
1152static HRESULT WINAPI
1153IVideoWindow_fnput_FullScreenMode(IVideoWindow* iface,long lMode)
1154{
1155 CFilterGraph_THIS(iface,vidwin);
1156 QUERYVIDEOWINDOW
1157
1158 TRACE("(%p)->()\n",This);
1159
1160 return IVideoWindow_put_FullScreenMode(pVidWin,lMode);
1161}
1162
1163static HRESULT WINAPI
1164IVideoWindow_fnSetWindowForeground(IVideoWindow* iface,long lFocus)
1165{
1166 CFilterGraph_THIS(iface,vidwin);
1167 QUERYVIDEOWINDOW
1168
1169 TRACE("(%p)->()\n",This);
1170
1171 return IVideoWindow_SetWindowForeground(pVidWin,lFocus);
1172}
1173
1174static HRESULT WINAPI
1175IVideoWindow_fnNotifyOwnerMessage(IVideoWindow* iface,OAHWND hwnd,long message,LONG_PTR wParam,LONG_PTR lParam)
1176{
1177 CFilterGraph_THIS(iface,vidwin);
1178 QUERYVIDEOWINDOW
1179
1180 TRACE("(%p)->()\n",This);
1181
1182 return IVideoWindow_NotifyOwnerMessage(pVidWin,hwnd,message,wParam,lParam);
1183}
1184
1185static HRESULT WINAPI
1186IVideoWindow_fnSetWindowPosition(IVideoWindow* iface,long lLeft,long lTop,long lWidth,long lHeight)
1187{
1188 CFilterGraph_THIS(iface,vidwin);
1189 QUERYVIDEOWINDOW
1190
1191 TRACE("(%p)->()\n",This);
1192
1193 return IVideoWindow_SetWindowPosition(pVidWin,lLeft,lTop,lWidth,lHeight);
1194}
1195
1196static HRESULT WINAPI
1197IVideoWindow_fnGetWindowPosition(IVideoWindow* iface,long* plLeft,long* plTop,long* plWidth,long* plHeight)
1198{
1199 CFilterGraph_THIS(iface,vidwin);
1200 QUERYVIDEOWINDOW
1201
1202 TRACE("(%p)->()\n",This);
1203
1204 return IVideoWindow_GetWindowPosition(pVidWin,plLeft,plTop,plWidth,plHeight);
1205}
1206
1207static HRESULT WINAPI
1208IVideoWindow_fnGetMinIdealImageSize(IVideoWindow* iface,long* plWidth,long* plHeight)
1209{
1210 CFilterGraph_THIS(iface,vidwin);
1211 QUERYVIDEOWINDOW
1212
1213 TRACE("(%p)->()\n",This);
1214
1215 return IVideoWindow_GetMinIdealImageSize(pVidWin,plWidth,plHeight);
1216}
1217
1218static HRESULT WINAPI
1219IVideoWindow_fnGetMaxIdealImageSize(IVideoWindow* iface,long* plWidth,long* plHeight)
1220{
1221 CFilterGraph_THIS(iface,vidwin);
1222 QUERYVIDEOWINDOW
1223
1224 TRACE("(%p)->()\n",This);
1225
1226 return IVideoWindow_GetMaxIdealImageSize(pVidWin,plWidth,plHeight);
1227}
1228
1229static HRESULT WINAPI
1230IVideoWindow_fnGetRestorePosition(IVideoWindow* iface,long* plLeft,long* plTop,long* plWidth,long* plHeight)
1231{
1232 CFilterGraph_THIS(iface,vidwin);
1233 QUERYVIDEOWINDOW
1234
1235 TRACE("(%p)->()\n",This);
1236
1237 return IVideoWindow_GetRestorePosition(pVidWin,plLeft,plTop,plWidth,plHeight);
1238}
1239
1240static HRESULT WINAPI
1241IVideoWindow_fnHideCursor(IVideoWindow* iface,long lHide)
1242{
1243 CFilterGraph_THIS(iface,vidwin);
1244 QUERYVIDEOWINDOW
1245
1246 TRACE("(%p)->()\n",This);
1247
1248 return IVideoWindow_HideCursor(pVidWin,lHide);
1249}
1250
1251static HRESULT WINAPI
1252IVideoWindow_fnIsCursorHidden(IVideoWindow* iface,long* plHide)
1253{
1254 CFilterGraph_THIS(iface,vidwin);
1255 QUERYVIDEOWINDOW
1256
1257 TRACE("(%p)->()\n",This);
1258
1259 return IVideoWindow_IsCursorHidden(pVidWin,plHide);
1260}
1261
1262
1263
1264
1265static ICOM_VTABLE(IVideoWindow) ivideowindow =
1266{
1267 ICOM_MSVTABLE_COMPAT_DummyRTTIVALUE
1268 /* IUnknown fields */
1269 IVideoWindow_fnQueryInterface,
1270 IVideoWindow_fnAddRef,
1271 IVideoWindow_fnRelease,
1272 /* IDispatch fields */
1273 IVideoWindow_fnGetTypeInfoCount,
1274 IVideoWindow_fnGetTypeInfo,
1275 IVideoWindow_fnGetIDsOfNames,
1276 IVideoWindow_fnInvoke,
1277 /* IVideoWindow fields */
1278 IVideoWindow_fnput_Caption,
1279 IVideoWindow_fnget_Caption,
1280 IVideoWindow_fnput_WindowStyle,
1281 IVideoWindow_fnget_WindowStyle,
1282 IVideoWindow_fnput_WindowStyleEx,
1283 IVideoWindow_fnget_WindowStyleEx,
1284 IVideoWindow_fnput_AutoShow,
1285 IVideoWindow_fnget_AutoShow,
1286 IVideoWindow_fnput_WindowState,
1287 IVideoWindow_fnget_WindowState,
1288 IVideoWindow_fnput_BackgroundPalette,
1289 IVideoWindow_fnget_BackgroundPalette,
1290 IVideoWindow_fnput_Visible,
1291 IVideoWindow_fnget_Visible,
1292 IVideoWindow_fnput_Left,
1293 IVideoWindow_fnget_Left,
1294 IVideoWindow_fnput_Width,
1295 IVideoWindow_fnget_Width,
1296 IVideoWindow_fnput_Top,
1297 IVideoWindow_fnget_Top,
1298 IVideoWindow_fnput_Height,
1299 IVideoWindow_fnget_Height,
1300 IVideoWindow_fnput_Owner,
1301 IVideoWindow_fnget_Owner,
1302 IVideoWindow_fnput_MessageDrain,
1303 IVideoWindow_fnget_MessageDrain,
1304 IVideoWindow_fnget_BorderColor,
1305 IVideoWindow_fnput_BorderColor,
1306 IVideoWindow_fnget_FullScreenMode,
1307 IVideoWindow_fnput_FullScreenMode,
1308 IVideoWindow_fnSetWindowForeground,
1309 IVideoWindow_fnNotifyOwnerMessage,
1310 IVideoWindow_fnSetWindowPosition,
1311 IVideoWindow_fnGetWindowPosition,
1312 IVideoWindow_fnGetMinIdealImageSize,
1313 IVideoWindow_fnGetMaxIdealImageSize,
1314 IVideoWindow_fnGetRestorePosition,
1315 IVideoWindow_fnHideCursor,
1316 IVideoWindow_fnIsCursorHidden,
1317
1318};
1319
1320
1321HRESULT CFilterGraph_InitIVideoWindow( CFilterGraph* pfg )
1322{
1323 TRACE("(%p)\n",pfg);
1324 ICOM_VTBL(&pfg->vidwin) = &ivideowindow;
1325
1326 return NOERROR;
1327}
1328
1329void CFilterGraph_UninitIVideoWindow( CFilterGraph* pfg )
1330{
1331 TRACE("(%p)\n",pfg);
1332}
1333
1334#undef QUERYVIDEOWINDOW
Note: See TracBrowser for help on using the repository browser.