VirtualBox

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

Last change on this file since 30705 was 19678, checked in by vboxsync, 16 years ago

opengl: update wine to 1.1.21, add d3d9.dll to build list

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