VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/Wine/include/axextend.idl@ 16477

Last change on this file since 16477 was 16410, checked in by vboxsync, 16 years ago

export the Wine stuff to OSE

  • Property svn:eol-style set to native
File size: 22.9 KB
Line 
1/*
2 * Copyright (C) 2002 Robert Shearman
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19interface IAMAnalogVideoDecoder;
20interface IAMAnalogVideoEncoder;
21interface IAMAudioInputMixer;
22interface IAMAudioRendererStats;
23interface IAMBufferNegotiation;
24interface IAMCameraControl;
25interface IAMCopyCaptureFileProgress;
26interface IAMCrossbar;
27interface IAMDevMemoryAllocator;
28interface IAMDevMemoryControl;
29interface IAMDroppedFrames;
30interface IAMExtDevice;
31interface IAMExtTransport;
32interface IAMGraphStreams;
33interface IAMLatency;
34interface IAMOpenProgress;
35interface IAMOverlayFX;
36interface IAMPhysicalPinInfo;
37interface IAMPushSource;
38interface IAMStreamConfig;
39interface IAMTimecodeDisplay;
40interface IAMTimecodeGenerator;
41interface IAMTimecodeReader;
42interface IAMTVTuner;
43interface IAMVfwCaptureDialogs;
44interface IAMVfwCompressDialogs;
45interface IAMVideoCompression;
46interface IAMVideoDecimationProperties;
47interface IAMVideoProcAmp;
48interface ICaptureGraphBuilder;
49interface ICaptureGraphBuilder2;
50interface IConfigAviMux;
51interface IConfigInterleaving;
52interface IDecimateVideoImage;
53interface IDrawVideoImage;
54interface IEnumRegFilters;
55interface IEnumStreamIdMap;
56interface IFileSourceFilter;
57interface IFileSinkFilter;
58interface IFileSinkFilter2;
59interface IFilterMapper;
60interface IFilterMapper2;
61interface IGraphBuilder;
62interface IKsPropertySet;
63interface IMediaEventSink;
64interface IMpeg2Demultiplexer;
65interface IMPEG2StreamIdMap;
66interface IOverlay;
67interface IOverlayNotify;
68interface IOverlayNotify2;
69interface IQualityControl;
70interface ISeekingPassThru;
71
72typedef struct
73{
74 CLSID Clsid;
75 LPWSTR Name;
76} REGFILTER;
77
78[
79object,
80uuid(56a868a4-0ad4-11ce-b03a-0020af0ba770),
81pointer_default(unique)
82]
83interface IEnumRegFilters : IUnknown
84{
85 HRESULT Next
86 ( [in] ULONG cFilters,
87 [out] REGFILTER ** apRegFilter,
88 [out] ULONG * pcFetched
89 );
90
91 HRESULT Skip(
92 [in] ULONG cFilters
93 );
94
95 HRESULT Reset(void);
96
97 HRESULT Clone(
98 [out] IEnumRegFilters **ppEnum
99 );
100}
101
102
103typedef IEnumRegFilters *PENUMREGFILTERS;
104
105[
106object,
107uuid(56a868a3-0ad4-11ce-b03a-0020af0ba770),
108pointer_default(unique)
109]
110interface IFilterMapper : IUnknown
111{
112 enum { MERIT_PREFERRED = 0x800000,
113 MERIT_NORMAL = 0x600000,
114 MERIT_UNLIKELY = 0x400000,
115 MERIT_DO_NOT_USE = 0x200000,
116 MERIT_SW_COMPRESSOR = 0x100000,
117 MERIT_HW_COMPRESSOR = 0x100050
118 };
119
120 HRESULT RegisterFilter
121 ( [in] CLSID clsid,
122 [in] LPCWSTR Name,
123 [in] DWORD dwMerit
124 );
125
126 HRESULT RegisterFilterInstance
127 ( [in] CLSID clsid,
128 [in] LPCWSTR Name,
129 [out] CLSID *MRId
130 );
131
132
133 HRESULT RegisterPin
134 ( [in] CLSID Filter,
135 [in] LPCWSTR Name,
136 [in] BOOL bRendered,
137 [in] BOOL bOutput,
138 [in] BOOL bZero,
139 [in] BOOL bMany,
140 [in] CLSID ConnectsToFilter,
141 [in] LPCWSTR ConnectsToPin
142 );
143
144 HRESULT RegisterPinType
145 ( [in] CLSID clsFilter,
146 [in] LPCWSTR strName,
147 [in] CLSID clsMajorType,
148 [in] CLSID clsSubType
149 );
150
151
152 HRESULT UnregisterFilter
153 ( [in] CLSID Filter
154 );
155
156
157 HRESULT UnregisterFilterInstance
158 ( [in] CLSID MRId
159 );
160
161
162 HRESULT UnregisterPin
163 ( [in] CLSID Filter,
164 [in] LPCWSTR Name
165 );
166
167 HRESULT EnumMatchingFilters
168 ( [out] IEnumRegFilters **ppEnum,
169 [in] DWORD dwMerit,
170 [in] BOOL bInputNeeded,
171 [in] CLSID clsInMaj,
172 [in] CLSID clsInSub,
173 [in] BOOL bRender,
174 [in] BOOL bOututNeeded,
175 [in] CLSID clsOutMaj,
176 [in] CLSID clsOutSub
177 );
178
179}
180
181typedef struct
182{
183 const CLSID * clsMajorType;
184 const CLSID * clsMinorType;
185} REGPINTYPES;
186
187typedef struct
188{
189 LPWSTR strName;
190 BOOL bRendered;
191 BOOL bOutput;
192 BOOL bZero;
193 BOOL bMany;
194 const CLSID * clsConnectsToFilter;
195 const WCHAR * strConnectsToPin;
196 UINT nMediaTypes;
197 const REGPINTYPES * lpMediaType;
198} REGFILTERPINS;
199
200typedef struct
201{
202 CLSID clsMedium;
203 DWORD dw1;
204 DWORD dw2;
205} REGPINMEDIUM;
206
207enum
208{
209 REG_PINFLAG_B_ZERO = 0x1,
210 REG_PINFLAG_B_RENDERER = 0x2,
211 REG_PINFLAG_B_MANY = 0x4,
212 REG_PINFLAG_B_OUTPUT = 0x8
213};
214
215
216typedef struct
217{
218 DWORD dwFlags;
219 UINT cInstances;
220 UINT nMediaTypes;
221 [size_is(nMediaTypes)] const REGPINTYPES * lpMediaType;
222 UINT nMediums;
223 [size_is(nMediums)] const REGPINMEDIUM *lpMedium;
224 const CLSID *clsPinCategory;
225} REGFILTERPINS2;
226
227typedef struct
228{
229 DWORD dwVersion;
230 DWORD dwMerit;
231 [switch_is(dwVersion)] [switch_type(DWORD)] union
232 {
233 [case(1)]
234 struct
235 {
236 ULONG cPins;
237 [size_is(cPins)] const REGFILTERPINS *rgPins;
238 } DUMMYSTRUCTNAME;
239
240 [case(2)]
241 struct
242 {
243 ULONG cPins2;
244 [size_is(cPins2)] const REGFILTERPINS2 *rgPins2;
245 } DUMMYSTRUCTNAME1;
246
247 [default]
248 ;
249 } DUMMYUNIONNAME;
250
251} REGFILTER2;
252
253
254[
255object,
256uuid(b79bb0b0-33c1-11d1-abe1-00a0c905f375),
257pointer_default(unique)
258]
259interface IFilterMapper2 : IUnknown
260{
261 HRESULT CreateCategory
262 ( [in] REFCLSID clsidCategory,
263 [in] DWORD dwCategoryMerit,
264 [in] LPCWSTR Description
265 );
266
267 HRESULT UnregisterFilter
268 ( [in] const CLSID *pclsidCategory,
269 [in] const OLECHAR *szInstance,
270 [in] REFCLSID Filter
271 );
272
273 HRESULT RegisterFilter
274 ( [in] REFCLSID clsidFilter,
275 [in] LPCWSTR Name,
276 [in, out] IMoniker **ppMoniker,
277 [in] const CLSID *pclsidCategory,
278 [in] const OLECHAR *szInstance,
279 [in] const REGFILTER2 *prf2
280 );
281
282 HRESULT EnumMatchingFilters
283 ( [out] IEnumMoniker **ppEnum,
284 [in] DWORD dwFlags,
285 [in] BOOL bExactMatch,
286 [in] DWORD dwMerit,
287 [in] BOOL bInputNeeded,
288 [in] DWORD cInputTypes,
289 [size_is(cInputTypes*2)] const GUID *pInputTypes,
290 [in] const REGPINMEDIUM *pMedIn,
291 [in] const CLSID *pPinCategoryIn,
292 [in] BOOL bRender,
293 [in] BOOL bOutputNeeded,
294 [in] DWORD cOutputTypes,
295 [size_is(cOutputTypes*2)] const GUID *pOutputTypes,
296 [in] const REGPINMEDIUM *pMedOut,
297 [in] const CLSID *pPinCategoryOut
298 );
299}
300
301[
302object,
303uuid(b79bb0b1-33c1-11d1-abe1-00a0c905f375),
304pointer_default(unique)
305]
306interface IFilterMapper3 : IFilterMapper2
307{
308 HRESULT GetICreateDevEnum( [out] ICreateDevEnum **ppEnum );
309}
310
311typedef enum tagQualityMessageType
312{
313 Famine,
314 Flood
315} QualityMessageType;
316
317typedef struct tagQuality
318{
319 QualityMessageType Type;
320 long Proportion;
321 REFERENCE_TIME Late;
322 REFERENCE_TIME TimeStamp;
323} Quality;
324
325typedef IQualityControl *PQUALITYCONTROL;
326
327[
328object,
329uuid(56a868a5-0ad4-11ce-b03a-0020af0ba770),
330pointer_default(unique)
331]
332interface IQualityControl : IUnknown
333{
334 HRESULT Notify
335 ( [in] IBaseFilter * pSelf,
336 [in] Quality q
337 );
338
339 HRESULT SetSink
340 ( [in] IQualityControl * piqc
341 );
342}
343
344enum
345{
346 CK_NOCOLORKEY = 0x0,
347 CK_INDEX = 0x1,
348 CK_RGB = 0x2
349};
350
351typedef struct tagCOLORKEY
352{
353 DWORD KeyType;
354 DWORD PaletteIndex;
355 COLORREF LowColorValue;
356 COLORREF HighColorValue;
357} COLORKEY;
358
359enum
360{
361 ADVISE_NONE = 0x0,
362 ADVISE_CLIPPING = 0x1,
363 ADVISE_PALETTE = 0x2,
364 ADVISE_COLORKEY = 0x4,
365 ADVISE_POSITION = 0x8,
366 ADVISE_DISPLAY_CHANGE = 0x10
367};
368
369const DWORD ADVISE_ALL = ADVISE_CLIPPING |
370 ADVISE_PALETTE |
371 ADVISE_COLORKEY |
372 ADVISE_POSITION;
373
374const DWORD ADVISE_ALL2 = ADVISE_ALL |
375 ADVISE_DISPLAY_CHANGE;
376
377cpp_quote("#ifndef _WINGDI_")
378
379/* already defined in wingdi.h, but needed for WIDL */
380
381typedef struct _RGNDATAHEADER
382{
383 DWORD dwSize;
384 DWORD iType;
385 DWORD nCount;
386 DWORD nRgnSize;
387 RECT rcBound;
388} RGNDATAHEADER;
389
390typedef struct _RGNDATA
391{
392 RGNDATAHEADER rdh;
393 char Buffer[1];
394} RGNDATA;
395
396cpp_quote("#endif /* _WINGDI_ */")
397
398[
399object,
400local,
401uuid(56a868a0-0ad4-11ce-b03a-0020af0ba770),
402pointer_default(unique)
403]
404interface IOverlayNotify : IUnknown
405{
406 HRESULT OnPaletteChange(
407 [in] DWORD dwColors,
408 [in] const PALETTEENTRY *pPalette);
409
410 HRESULT OnClipChange(
411 [in] const RECT *pSourceRect,
412 [in] const RECT *pDestinationRect,
413 [in] const RGNDATA *pRgnData);
414
415 HRESULT OnColorKeyChange([in] const COLORKEY *pColorKey);
416
417 HRESULT OnPositionChange([in] const RECT *pSourceRect,
418 [in] const RECT *pDestinationRect);
419}
420
421typedef IOverlayNotify *POVERLAYNOTIFY;
422
423cpp_quote("#if 0")
424typedef HANDLE HMONITOR;
425cpp_quote("#endif /* 0 */")
426
427[
428object,
429local,
430uuid(680EFA10-D535-11D1-87C8-00A0C9223196),
431pointer_default(unique)
432]
433interface IOverlayNotify2 : IOverlayNotify
434{
435 HRESULT OnDisplayChange(
436 HMONITOR hMonitor);
437}
438
439typedef IOverlayNotify2 *POVERLAYNOTIFY2;
440
441[
442object,
443local,
444uuid(56a868a1-0ad4-11ce-b03a-0020af0ba770),
445pointer_default(unique)
446]
447interface IOverlay : IUnknown
448{
449 HRESULT GetPalette(
450 [out] DWORD *pdwColors,
451 [out] PALETTEENTRY **ppPalette);
452
453 HRESULT SetPalette(
454 [in] DWORD dwColors,
455 [in] PALETTEENTRY *pPalette);
456
457 HRESULT GetDefaultColorKey([out] COLORKEY *pColorKey);
458
459 HRESULT GetColorKey([out] COLORKEY *pColorKey);
460
461 HRESULT SetColorKey([in,out] COLORKEY *pColorKey);
462
463 HRESULT GetWindowHandle([out] HWND *pHwnd);
464
465 HRESULT GetClipList([out] RECT *pSourceRect,
466 [out] RECT *pDestinationRect,
467 [out] RGNDATA **ppRgnData);
468
469 HRESULT GetVideoPosition([out] RECT *pSourceRect,
470 [out] RECT *pDestinationRect);
471
472 HRESULT Advise(
473 [in] IOverlayNotify *pOverlayNotify,
474 [in] DWORD dwInterests);
475
476 HRESULT Unadvise();
477}
478
479typedef IOverlay *POVERLAY;
480
481[
482object,
483uuid(56a868a2-0ad4-11ce-b03a-0020af0ba770),
484pointer_default(unique)
485]
486interface IMediaEventSink : IUnknown
487{
488 HRESULT Notify(
489 [in] long EventCode,
490 [in] LONG_PTR EventParam1,
491 [in] LONG_PTR EventParam2
492 );
493}
494
495typedef IMediaEventSink *PMEDIAEVENTSINK;
496
497[
498object,
499uuid(56a868a6-0ad4-11ce-b03a-0020af0ba770),
500pointer_default(unique)
501]
502interface IFileSourceFilter : IUnknown
503{
504 HRESULT Load(
505 [in] LPCOLESTR pszFileName,
506 [in, unique] const AM_MEDIA_TYPE *pmt
507 );
508
509 HRESULT GetCurFile(
510 [out] LPOLESTR *ppszFileName,
511 [out] AM_MEDIA_TYPE *pmt
512 );
513}
514
515typedef IFileSourceFilter *PFILTERFILESOURCE;
516
517[
518object,
519uuid(a2104830-7c70-11cf-8bce-00aa00a3f1a6),
520pointer_default(unique)
521]
522interface IFileSinkFilter : IUnknown
523{
524 HRESULT SetFileName(
525 [in] LPCOLESTR pszFileName,
526 [in, unique] const AM_MEDIA_TYPE *pmt
527 );
528
529 HRESULT GetCurFile(
530 [out] LPOLESTR *ppszFileName,
531 [out] AM_MEDIA_TYPE *pmt
532 );
533}
534
535typedef IFileSinkFilter *PFILTERFILESINK;
536
537[
538 object,
539 uuid(00855B90-CE1B-11d0-BD4F-00A0C911CE86),
540 pointer_default(unique)
541]
542interface IFileSinkFilter2 : IFileSinkFilter
543{
544 HRESULT SetMode(
545 [in] DWORD dwFlags
546 );
547
548 HRESULT GetMode(
549 [out] DWORD *pdwFlags
550 );
551}
552
553typedef IFileSinkFilter2 *PFILESINKFILTER2;
554
555typedef enum
556{
557 AM_FILE_OVERWRITE = 0x00000001,
558} AM_FILESINK_FLAGS;
559
560[
561object,
562uuid(56a868a9-0ad4-11ce-b03a-0020af0ba770),
563pointer_default(unique)
564]
565interface IGraphBuilder : IFilterGraph
566{
567 HRESULT Connect
568 ( [in] IPin * ppinOut,
569 [in] IPin * ppinIn
570 );
571
572 HRESULT Render
573 ( [in] IPin * ppinOut
574 );
575
576 HRESULT RenderFile
577 ( [in] LPCWSTR lpcwstrFile,
578 [in, unique] LPCWSTR lpcwstrPlayList
579 );
580
581 HRESULT AddSourceFilter
582 ( [in] LPCWSTR lpcwstrFileName,
583 [in, unique] LPCWSTR lpcwstrFilterName,
584 [out] IBaseFilter* *ppFilter
585 );
586
587 HRESULT SetLogFile
588 ( [in] DWORD_PTR hFile
589 );
590
591 HRESULT Abort();
592
593 HRESULT ShouldOperationContinue();
594}
595
596
597[
598 object,
599 uuid(bf87b6e0-8c27-11d0-b3f0-00aa003761c5),
600 pointer_default(unique)
601]
602interface ICaptureGraphBuilder : IUnknown {
603
604 HRESULT SetFiltergraph(
605 [in] IGraphBuilder *pfg);
606
607 HRESULT GetFiltergraph(
608 [out] IGraphBuilder **ppfg);
609
610 HRESULT SetOutputFileName(
611 [in] const GUID *pType,
612 [in] LPCOLESTR lpstrFile,
613 [out] IBaseFilter **ppf,
614 [out] IFileSinkFilter **ppSink);
615
616 [local] HRESULT FindInterface(
617 [in, unique] const GUID *pCategory,
618 [in] IBaseFilter *pf,
619 [in] REFIID riid,
620 [out] void **ppint);
621
622 [call_as(FindInterface)] HRESULT RemoteFindInterface(
623 [in, unique] const GUID *pCategory,
624 [in] IBaseFilter *pf,
625 [in] REFIID riid,
626 [out] IUnknown **ppint);
627
628 HRESULT RenderStream(
629 [in] const GUID *pCategory,
630 [in] IUnknown *pSource,
631 [in] IBaseFilter *pfCompressor,
632 [in] IBaseFilter *pfRenderer);
633
634 HRESULT ControlStream(
635 [in] const GUID *pCategory,
636 [in] IBaseFilter *pFilter,
637 [in] REFERENCE_TIME *pstart,
638 [in] REFERENCE_TIME *pstop,
639 [in] WORD wStartCookie,
640 [in] WORD wStopCookie);
641
642 HRESULT AllocCapFile(
643 [in] LPCOLESTR lpstr,
644 [in] DWORDLONG dwlSize);
645
646 HRESULT CopyCaptureFile(
647 [in] LPOLESTR lpwstrOld,
648 [in] LPOLESTR lpwstrNew,
649 [in] int fAllowEscAbort,
650 [in] IAMCopyCaptureFileProgress *pCallback);
651}
652
653[
654object,
655uuid(670d1d20-a068-11d0-b3f0-00aa003761c5),
656pointer_default(unique)
657]
658interface IAMCopyCaptureFileProgress : IUnknown
659{
660 HRESULT Progress(
661 [in] int iProgress);
662}
663
664[
665 object,
666 uuid(93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D),
667 pointer_default(unique)
668]
669interface ICaptureGraphBuilder2 : IUnknown
670{
671 HRESULT SetFiltergraph(
672 [in] IGraphBuilder *pfg);
673
674 HRESULT GetFiltergraph(
675 [out] IGraphBuilder **ppfg);
676
677 HRESULT SetOutputFileName(
678 [in] const GUID *pType,
679 [in] LPCOLESTR lpstrFile,
680 [out] IBaseFilter **ppf,
681 [out] IFileSinkFilter **ppSink);
682
683 [local] HRESULT FindInterface(
684 [in] const GUID *pCategory,
685 [in] const GUID *pType,
686 [in] IBaseFilter *pf,
687 [in] REFIID riid,
688 [out] void **ppint);
689
690 [call_as(FindInterface)] HRESULT RemoteFindInterface(
691 [in] const GUID *pCategory,
692 [in] const GUID *pType,
693 [in] IBaseFilter *pf,
694 [in] REFIID riid,
695 [out] IUnknown **ppint);
696
697 HRESULT RenderStream(
698 [in] const GUID *pCategory,
699 [in] const GUID *pType,
700 [in] IUnknown *pSource,
701 [in] IBaseFilter *pfCompressor,
702 [in] IBaseFilter *pfRenderer);
703
704 HRESULT ControlStream(
705 [in] const GUID *pCategory,
706 [in] const GUID *pType,
707 [in] IBaseFilter *pFilter,
708 [in] REFERENCE_TIME *pstart,
709 [in] REFERENCE_TIME *pstop,
710 [in] WORD wStartCookie,
711 [in] WORD wStopCookie);
712
713 HRESULT AllocCapFile(
714 [in] LPCOLESTR lpstr,
715 [in] DWORDLONG dwlSize);
716
717 HRESULT CopyCaptureFile(
718 [in] LPOLESTR lpwstrOld,
719 [in] LPOLESTR lpwstrNew,
720 [in] int fAllowEscAbort,
721 [in] IAMCopyCaptureFileProgress *pCallback);
722
723 HRESULT FindPin(
724 [in] IUnknown *pSource,
725 [in] PIN_DIRECTION pindir,
726 [in] const GUID *pCategory,
727 [in] const GUID *pType,
728 [in] BOOL fUnconnected,
729 [in] int num,
730 [out] IPin **ppPin);
731}
732
733enum _AM_RENSDEREXFLAGS
734{
735 AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x01
736};
737
738[
739 object,
740 uuid(36b73882-c2c8-11cf-8b46-00805f6cef60),
741 pointer_default(unique)
742]
743interface IFilterGraph2: IGraphBuilder
744{
745 HRESULT AddSourceFilterForMoniker(
746 [in] IMoniker *pMoniker,
747 [in] IBindCtx *pCtx,
748 [in, unique] LPCWSTR lpcwstrFilterName,
749 [out] IBaseFilter **ppFilter
750 );
751
752 HRESULT ReconnectEx
753 ( [in] IPin * ppin,
754 [in, unique] const AM_MEDIA_TYPE *pmt
755 );
756
757 HRESULT RenderEx( [in] IPin *pPinOut,
758 [in] DWORD dwFlags,
759 [in, out] DWORD *pvContext
760 );
761}
762
763[
764 object,
765 local,
766 uuid(56a868bf-0ad4-11ce-b03a-0020af0ba770),
767 pointer_default(unique)
768]
769interface IStreamBuilder : IUnknown
770{
771 HRESULT Render
772 ( [in] IPin * ppinOut,
773 [in] IGraphBuilder * pGraph
774 );
775
776 HRESULT Backout
777 ( [in] IPin * ppinOut,
778 [in] IGraphBuilder * pGraph
779 );
780}
781
782
783/*****************************************************************************
784 * IAMStreamConfig interface
785 */
786[
787 object,
788 uuid(c6e13340-30ac-11d0-a18c-00a0c9118956),
789 pointer_default(unique)
790]
791interface IAMStreamConfig : IUnknown
792{
793 HRESULT SetFormat( [in] AM_MEDIA_TYPE *pmt);
794 HRESULT GetFormat( [in] AM_MEDIA_TYPE **pmt);
795 HRESULT GetNumberOfCapabilities( [out] int *piCount, [out] int *piSize);
796 HRESULT GetStreamCaps( [in] int iIndex, [out] AM_MEDIA_TYPE **pmt,
797 [out] BYTE *pSCC);
798}
799
800
801typedef enum tagVideoProcAmpProperty
802{
803 VideoProcAmp_Brightness,
804 VideoProcAmp_Contrast,
805 VideoProcAmp_Hue,
806 VideoProcAmp_Saturation,
807 VideoProcAmp_Sharpness,
808 VideoProcAmp_Gamma,
809 VideoProcAmp_ColorEnable,
810 VideoProcAmp_WhiteBalance,
811 VideoProcAmp_BacklightCompensation,
812 VideoProcAmp_Gain
813} VideoProcAmpProperty;
814
815typedef enum tagVideoProcAmpFlags
816{
817 VideoProcAmp_Flags_Auto = 0x0001,
818 VideoProcAmp_Flags_Manual = 0x0002,
819} VideoProcAmpFlags;
820
821/*****************************************************************************
822 * IAMVideoProcAmp interface
823 */
824[
825 object,
826 uuid(c6e13360-30ac-11d0-a18c-00a0c9118956),
827 pointer_default(unique)
828]
829interface IAMVideoProcAmp : IUnknown
830{
831 HRESULT GetRange( [in] long Property, [out] long *pMin, [out] long *pMax,
832 [out] long *pSteppingDelta, [out] long *pDefault,
833 [out] long *pCapsFlags);
834 HRESULT Set( [in] long Property, [in] long lValue, [in] long Flags);
835 HRESULT Get( [in] long Property, [out] long *lValue, [out] long *Flags);
836}
837
838
839[
840 object,
841 uuid(56a868aa-0ad4-11ce-b03a-0020af0ba770),
842 pointer_default(unique)
843]
844interface IAsyncReader : IUnknown
845{
846 HRESULT RequestAllocator(
847 [in] IMemAllocator* pPreferred,
848 [in] ALLOCATOR_PROPERTIES* pProps,
849 [out] IMemAllocator ** ppActual);
850
851 HRESULT Request(
852 [in] IMediaSample* pSample,
853 [in] DWORD_PTR dwUser);
854
855 HRESULT WaitForNext(
856 [in] DWORD dwTimeout,
857 [out] IMediaSample** ppSample,
858 [out] DWORD_PTR * pdwUser);
859
860 HRESULT SyncReadAligned(
861 [in] IMediaSample* pSample);
862
863 HRESULT SyncRead(
864 [in] LONGLONG llPosition,
865 [in] LONG lLength,
866 [out, size_is(lLength)]
867 BYTE* pBuffer);
868
869 HRESULT Length(
870 [out] LONGLONG* pTotal,
871 [out] LONGLONG* pAvailable);
872
873 HRESULT BeginFlush(void);
874
875 HRESULT EndFlush(void);
876}
877
878
879[
880 object,
881 uuid(56a868ab-0ad4-11ce-b03a-0020af0ba770),
882 pointer_default(unique)
883]
884interface IGraphVersion : IUnknown
885{
886 HRESULT QueryVersion(LONG* pVersion);
887}
888
889[
890 object,
891 uuid(56a868ad-0ad4-11ce-b03a-0020af0ba770),
892 pointer_default(unique)
893]
894interface IResourceConsumer : IUnknown
895{
896 HRESULT AcquireResource(
897 [in] LONG idResource);
898
899 HRESULT ReleaseResource(
900 [in] LONG idResource);
901}
902
903
904[
905 object,
906 uuid(56a868ac-0ad4-11ce-b03a-0020af0ba770),
907 pointer_default(unique)
908]
909interface IResourceManager : IUnknown
910{
911 HRESULT Register(
912 [in] LPCWSTR pName,
913 [in] LONG cResource,
914 [out] LONG* plToken
915 );
916
917 HRESULT RegisterGroup(
918 [in] LPCWSTR pName,
919 [in] LONG cResource,
920 [in, size_is(cResource)]
921 LONG* palTokens,
922 [out] LONG* plToken
923 );
924
925 HRESULT RequestResource(
926 [in] LONG idResource,
927 [in] IUnknown* pFocusObject,
928 [in] IResourceConsumer* pConsumer
929 );
930
931 HRESULT NotifyAcquire(
932 [in] LONG idResource,
933 [in] IResourceConsumer* pConsumer,
934 [in] HRESULT hr);
935
936 HRESULT NotifyRelease(
937 [in] LONG idResource,
938 [in] IResourceConsumer* pConsumer,
939 [in] BOOL bStillWant);
940
941 HRESULT CancelRequest(
942 [in] LONG idResource,
943 [in] IResourceConsumer* pConsumer);
944
945 HRESULT SetFocus(
946 [in] IUnknown* pFocusObject);
947
948 HRESULT ReleaseFocus(
949 [in] IUnknown* pFocusObject);
950
951}
952
953cpp_quote("#ifndef _IKsPropertySet_")
954cpp_quote("#define _IKsPropertySet_")
955cpp_quote("#define KSPROPERTY_SUPPORT_GET 1")
956cpp_quote("#define KSPROPERTY_SUPPORT_SET 2")
957
958[
959 object,
960 uuid(31efac30-515c-11d0-a9aa-00aa0061be93),
961 pointer_default(unique),
962 local
963]
964interface IKsPropertySet : IUnknown
965{
966 HRESULT Set( [in] REFGUID guidPropSet,
967 [in] DWORD dwPropID,
968 [in, size_is(cbInstanceData)] LPVOID pInstanceData,
969 [in] DWORD cbInstanceData,
970 [in, size_is(cbPropData)] LPVOID pPropData,
971 [in] DWORD cbPropData );
972
973 HRESULT Get( [in] REFGUID guidPropSet,
974 [in] DWORD dwPropID,
975 [in, size_is(cbInstanceData)] LPVOID pInstanceData,
976 [in] DWORD cbInstanceData,
977 [out, size_is(cbPropData)] LPVOID pPropData,
978 [in] DWORD cbPropData,
979 [out] DWORD *pcbReturned );
980
981 HRESULT QuerySupported( [in] REFGUID guidPropSet,
982 [in] DWORD dwPropID,
983 [out] DWORD *pTypeSupport);
984}
985cpp_quote("#endif /* _IKsPropertySet_ */")
986
987[
988 object,
989 uuid(36b73883-c2c8-11cf-8b46-00805f6cef60),
990 pointer_default(unique)
991]
992interface ISeekingPassThru : IUnknown
993{
994 HRESULT Init( [in] BOOL bSupportRendering, [in] IPin *pPin);
995}
996
997enum _AM_FILTER_MISC_FLAGS
998{
999 AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1,
1000 AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2
1001};
1002
1003[
1004 local,
1005 object,
1006 uuid(2dd74950-a890-11d1-abe8-00a0c905f375),
1007 pointer_default(unique)
1008]
1009interface IAMFilterMiscFlags : IUnknown
1010{
1011 ULONG GetMiscFlags();
1012};
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette