VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/shaderlib/wine/include/axextend.idl@ 53201

最後變更 在這個檔案從53201是 53201,由 vboxsync 提交於 10 年 前

Devices/Main: vmsvga updates

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

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