VirtualBox

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

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

Devices/vmsvga: header fixes

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

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