ReactOS  0.4.12-dev-90-g2e2e63e
axextend.idl
Go to the documentation of this file.
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 interface IAMAnalogVideoDecoder;
20 interface IAMAnalogVideoEncoder;
21 interface IAMAudioInputMixer;
22 interface IAMAudioRendererStats;
23 interface IAMBufferNegotiation;
24 interface IAMCameraControl;
27 interface IAMCrossbar;
28 interface IAMDevMemoryAllocator;
29 interface IAMDevMemoryControl;
30 interface IAMDroppedFrames;
31 interface IAMExtDevice;
32 interface IAMExtTransport;
33 interface IAMGraphStreams;
34 interface IAMLatency;
35 interface IAMOpenProgress;
36 interface IAMOverlayFX;
37 interface IAMPhysicalPinInfo;
38 interface IAMPushSource;
39 interface IAMStreamConfig;
40 interface IAMTimecodeDisplay;
41 interface IAMTimecodeGenerator;
42 interface IAMTimecodeReader;
43 interface IAMTVTuner;
44 interface IAMVfwCaptureDialogs;
45 interface IAMVfwCompressDialogs;
46 interface IAMVideoCompression;
47 interface IAMVideoDecimationProperties;
48 interface IAMVideoProcAmp;
49 interface IAMGraphBuilderCallback;
50 interface ICaptureGraphBuilder;
51 interface ICaptureGraphBuilder2;
52 interface IConfigAviMux;
53 interface IConfigInterleaving;
54 interface IDecimateVideoImage;
55 interface IDrawVideoImage;
56 interface IEnumRegFilters;
57 interface IEnumStreamIdMap;
58 interface IFileSourceFilter;
59 interface IFileSinkFilter;
60 interface IFileSinkFilter2;
61 interface IFilterMapper;
62 interface IFilterMapper2;
63 interface IGraphBuilder;
64 interface IKsPropertySet;
65 interface IMediaEventSink;
66 interface IMpeg2Demultiplexer;
67 interface IMPEG2StreamIdMap;
68 interface IOverlay;
69 interface IOverlayNotify;
70 interface IOverlayNotify2;
71 interface IQualityControl;
72 interface ISeekingPassThru;
73 
74 typedef struct
75 {
78 } REGFILTER;
79 
80 [
81 object,
82 uuid(56a868a4-0ad4-11ce-b03a-0020af0ba770),
84 ]
86 {
88  ( [in] ULONG cFilters,
89  [out] REGFILTER ** apRegFilter,
90  [out] ULONG * pcFetched
91  );
92 
93  HRESULT Skip(
94  [in] ULONG cFilters
95  );
96 
97  HRESULT Reset(void);
98 
99  HRESULT Clone(
100  [out] IEnumRegFilters **ppEnum
101  );
102 }
103 
104 
105 typedef IEnumRegFilters *PENUMREGFILTERS;
106 
107 [
108 object,
109 uuid(56a868a3-0ad4-11ce-b03a-0020af0ba770),
111 ]
112 interface IFilterMapper : IUnknown
113 {
114  enum { MERIT_PREFERRED = 0x800000,
115  MERIT_NORMAL = 0x600000,
116  MERIT_UNLIKELY = 0x400000,
117  MERIT_DO_NOT_USE = 0x200000,
118  MERIT_SW_COMPRESSOR = 0x100000,
119  MERIT_HW_COMPRESSOR = 0x100050
120  };
121 
122  HRESULT RegisterFilter
123  ( [in] CLSID clsid,
124  [in] LPCWSTR Name,
125  [in] DWORD dwMerit
126  );
127 
128  HRESULT RegisterFilterInstance
129  ( [in] CLSID clsid,
130  [in] LPCWSTR Name,
131  [out] CLSID *MRId
132  );
133 
134 
135  HRESULT RegisterPin
136  ( [in] CLSID Filter,
137  [in] LPCWSTR Name,
138  [in] BOOL bRendered,
139  [in] BOOL bOutput,
140  [in] BOOL bZero,
141  [in] BOOL bMany,
142  [in] CLSID ConnectsToFilter,
143  [in] LPCWSTR ConnectsToPin
144  );
145 
146  HRESULT RegisterPinType
147  ( [in] CLSID clsFilter,
148  [in] LPCWSTR strName,
149  [in] CLSID clsMajorType,
150  [in] CLSID clsSubType
151  );
152 
153 
154  HRESULT UnregisterFilter
155  ( [in] CLSID Filter
156  );
157 
158 
159  HRESULT UnregisterFilterInstance
160  ( [in] CLSID MRId
161  );
162 
163 
164  HRESULT UnregisterPin
165  ( [in] CLSID Filter,
166  [in] LPCWSTR Name
167  );
168 
169  HRESULT EnumMatchingFilters
170  ( [out] IEnumRegFilters **ppEnum,
171  [in] DWORD dwMerit,
172  [in] BOOL bInputNeeded,
173  [in] CLSID clsInMaj,
174  [in] CLSID clsInSub,
175  [in] BOOL bRender,
176  [in] BOOL bOututNeeded,
177  [in] CLSID clsOutMaj,
178  [in] CLSID clsOutSub
179  );
180 
181 }
182 
183 typedef struct
184 {
185  const CLSID * clsMajorType;
188 
189 typedef struct
190 {
200 } REGFILTERPINS;
201 
202 typedef struct
203 {
207 } REGPINMEDIUM;
208 
209 enum
210 {
215 };
216 
217 
218 typedef struct
219 {
223  [size_is(nMediaTypes)] const REGPINTYPES * lpMediaType;
225  [size_is(nMediums)] const REGPINMEDIUM *lpMedium;
228 
229 typedef struct
230 {
233  [switch_is(dwVersion)] [switch_type(DWORD)] union
234  {
235  [case(1)]
236  struct
237  {
239  [size_is(cPins)] const REGFILTERPINS *rgPins;
241 
242  [case(2)]
243  struct
244  {
246  [size_is(cPins2)] const REGFILTERPINS2 *rgPins2;
248 
249  [default]
250  ;
251  } DUMMYUNIONNAME;
252 
253 } REGFILTER2;
254 
255 
256 [
257 object,
258 uuid(b79bb0b0-33c1-11d1-abe1-00a0c905f375),
260 ]
262 {
263  HRESULT CreateCategory
264  ( [in] REFCLSID clsidCategory,
265  [in] DWORD dwCategoryMerit,
267  );
268 
269  HRESULT UnregisterFilter
270  ( [in] const CLSID *pclsidCategory,
271  [in] LPCOLESTR szInstance,
272  [in] REFCLSID Filter
273  );
274 
275  HRESULT RegisterFilter
276  ( [in] REFCLSID clsidFilter,
277  [in] LPCWSTR Name,
278  [in, out] IMoniker **ppMoniker,
279  [in] const CLSID *pclsidCategory,
280  [in] LPCOLESTR szInstance,
281  [in] const REGFILTER2 *prf2
282  );
283 
284  HRESULT EnumMatchingFilters
285  ( [out] IEnumMoniker **ppEnum,
286  [in] DWORD dwFlags,
287  [in] BOOL bExactMatch,
288  [in] DWORD dwMerit,
289  [in] BOOL bInputNeeded,
290  [in] DWORD cInputTypes,
291  [size_is(cInputTypes*2)] const GUID *pInputTypes,
292  [in] const REGPINMEDIUM *pMedIn,
293  [in] const CLSID *pPinCategoryIn,
294  [in] BOOL bRender,
295  [in] BOOL bOutputNeeded,
296  [in] DWORD cOutputTypes,
297  [size_is(cOutputTypes*2)] const GUID *pOutputTypes,
298  [in] const REGPINMEDIUM *pMedOut,
299  [in] const CLSID *pPinCategoryOut
300  );
301 }
302 
303 [
304 object,
305 uuid(b79bb0b1-33c1-11d1-abe1-00a0c905f375),
307 ]
308 interface IFilterMapper3 : IFilterMapper2
309 {
310  HRESULT GetICreateDevEnum( [out] ICreateDevEnum **ppEnum );
311 }
312 
313 typedef enum tagQualityMessageType
314 {
315  Famine,
316  Flood
318 
319 typedef struct tagQuality
320 {
321  QualityMessageType Type;
325 } Quality;
326 
328 
329 [
330 object,
331 uuid(56a868a5-0ad4-11ce-b03a-0020af0ba770),
333 ]
335 {
337  ( [in] IBaseFilter * pSelf,
338  [in] Quality q
339  );
340 
341  HRESULT SetSink
342  ( [in] IQualityControl * piqc
343  );
344 }
345 
346 enum
347 {
349  CK_INDEX = 0x1,
350  CK_RGB = 0x2
351 };
352 
353 typedef struct tagCOLORKEY
354 {
359 } COLORKEY;
360 
361 enum
362 {
363  ADVISE_NONE = 0x0,
369 };
370 
375 
376 const DWORD ADVISE_ALL2 = ADVISE_ALL |
378 
379 cpp_quote("#ifndef _WINGDI_")
380 
381 /* already defined in wingdi.h, but needed for WIDL */
382 
384 {
390 } RGNDATAHEADER;
391 
392 typedef struct _RGNDATA
393 {
395  char Buffer[1];
396 } RGNDATA;
397 
398 cpp_quote("#endif /* _WINGDI_ */")
399 
400 [
401 object,
402 local,
403 uuid(56a868a0-0ad4-11ce-b03a-0020af0ba770),
405 ]
407 {
408  HRESULT OnPaletteChange(
409  [in] DWORD dwColors,
410  [in] const PALETTEENTRY *pPalette);
411 
412  HRESULT OnClipChange(
413  [in] const RECT *pSourceRect,
414  [in] const RECT *pDestinationRect,
415  [in] const RGNDATA *pRgnData);
416 
417  HRESULT OnColorKeyChange([in] const COLORKEY *pColorKey);
418 
419  HRESULT OnPositionChange([in] const RECT *pSourceRect,
420  [in] const RECT *pDestinationRect);
421 }
422 
423 typedef IOverlayNotify *POVERLAYNOTIFY;
424 
425 cpp_quote("#if 0")
426 typedef HANDLE HMONITOR;
427 cpp_quote("#endif /* 0 */")
428 
429 [
430 object,
431 local,
432 uuid(680EFA10-D535-11D1-87C8-00A0C9223196),
434 ]
436 {
437  HRESULT OnDisplayChange(
438  HMONITOR hMonitor);
439 }
440 
441 typedef IOverlayNotify2 *POVERLAYNOTIFY2;
442 
443 [
444 object,
445 local,
446 uuid(56a868a1-0ad4-11ce-b03a-0020af0ba770),
448 ]
449 interface IOverlay : IUnknown
450 {
451  HRESULT GetPalette(
452  [out] DWORD *pdwColors,
453  [out] PALETTEENTRY **ppPalette);
454 
455  HRESULT SetPalette(
456  [in] DWORD dwColors,
457  [in] PALETTEENTRY *pPalette);
458 
459  HRESULT GetDefaultColorKey([out] COLORKEY *pColorKey);
460 
461  HRESULT GetColorKey([out] COLORKEY *pColorKey);
462 
463  HRESULT SetColorKey([in,out] COLORKEY *pColorKey);
464 
465  HRESULT GetWindowHandle([out] HWND *pHwnd);
466 
467  HRESULT GetClipList([out] RECT *pSourceRect,
468  [out] RECT *pDestinationRect,
469  [out] RGNDATA **ppRgnData);
470 
471  HRESULT GetVideoPosition([out] RECT *pSourceRect,
472  [out] RECT *pDestinationRect);
473 
474  HRESULT Advise(
475  [in] IOverlayNotify *pOverlayNotify,
476  [in] DWORD dwInterests);
477 
478  HRESULT Unadvise();
479 }
480 
481 typedef IOverlay *POVERLAY;
482 
483 [
484 object,
485 uuid(56a868a2-0ad4-11ce-b03a-0020af0ba770),
487 ]
489 {
490  HRESULT Notify(
491  [in] LONG EventCode,
492  [in] LONG_PTR EventParam1,
493  [in] LONG_PTR EventParam2
494  );
495 }
496 
497 typedef IMediaEventSink *PMEDIAEVENTSINK;
498 
499 [
500 object,
501 uuid(56a868a6-0ad4-11ce-b03a-0020af0ba770),
503 ]
505 {
506  HRESULT Load(
507  [in] LPCOLESTR pszFileName,
508  [in, unique] const AM_MEDIA_TYPE *pmt
509  );
510 
511  HRESULT GetCurFile(
512  [out] LPOLESTR *ppszFileName,
513  [out] AM_MEDIA_TYPE *pmt
514  );
515 }
516 
517 typedef IFileSourceFilter *PFILTERFILESOURCE;
518 
519 [
520 object,
521 uuid(a2104830-7c70-11cf-8bce-00aa00a3f1a6),
523 ]
525 {
527  [in] LPCOLESTR pszFileName,
528  [in, unique] const AM_MEDIA_TYPE *pmt
529  );
530 
531  HRESULT GetCurFile(
532  [out] LPOLESTR *ppszFileName,
533  [out] AM_MEDIA_TYPE *pmt
534  );
535 }
536 
537 typedef IFileSinkFilter *PFILTERFILESINK;
538 
539 [
540  object,
541  uuid(00855B90-CE1B-11d0-BD4F-00A0C911CE86),
543 ]
545 {
546  HRESULT SetMode(
547  [in] DWORD dwFlags
548  );
549 
550  HRESULT GetMode(
551  [out] DWORD *pdwFlags
552  );
553 }
554 
555 typedef IFileSinkFilter2 *PFILESINKFILTER2;
556 
557 [
558  object,
559  uuid(f90a6130-b658-11d2-ae49-0000f8754b99),
561 ]
562 interface IAMDeviceRemoval : IUnknown
563 {
565  [out] CLSID *pclsidInterfaceClass,
566  [out] LPWSTR *pwszSymbolicLink);
567  HRESULT Reassociate();
568  HRESULT Disassociate();
569 }
570 
571 
572 typedef enum
573 {
574  AM_FILE_OVERWRITE = 0x00000001,
576 
577 [
578 object,
579 uuid(56a868a9-0ad4-11ce-b03a-0020af0ba770),
581 ]
583 {
585  ( [in] IPin * ppinOut,
586  [in] IPin * ppinIn
587  );
588 
589  HRESULT Render
590  ( [in] IPin * ppinOut
591  );
592 
593  HRESULT RenderFile
594  ( [in] LPCWSTR lpcwstrFile,
595  [in, unique] LPCWSTR lpcwstrPlayList
596  );
597 
598  HRESULT AddSourceFilter
599  ( [in] LPCWSTR lpcwstrFileName,
600  [in, unique] LPCWSTR lpcwstrFilterName,
601  [out] IBaseFilter* *ppFilter
602  );
603 
604  HRESULT SetLogFile
605  ( [in] DWORD_PTR hFile
606  );
607 
608  HRESULT Abort();
609 
610  HRESULT ShouldOperationContinue();
611 }
612 
613 
614 [
615  object,
616  uuid(bf87b6e0-8c27-11d0-b3f0-00aa003761c5),
618 ]
620 
621  HRESULT SetFiltergraph(
622  [in] IGraphBuilder *pfg);
623 
624  HRESULT GetFiltergraph(
625  [out] IGraphBuilder **ppfg);
626 
627  HRESULT SetOutputFileName(
628  [in] const GUID *pType,
629  [in] LPCOLESTR lpstrFile,
630  [out] IBaseFilter **ppf,
631  [out] IFileSinkFilter **ppSink);
632 
634  [in, unique] const GUID *pCategory,
635  [in] IBaseFilter *pf,
636  [in] REFIID riid,
637  [out] void **ppint);
638 
639  [call_as(FindInterface)] HRESULT RemoteFindInterface(
640  [in, unique] const GUID *pCategory,
641  [in] IBaseFilter *pf,
642  [in] REFIID riid,
643  [out] IUnknown **ppint);
644 
645  HRESULT RenderStream(
646  [in] const GUID *pCategory,
647  [in] IUnknown *pSource,
648  [in] IBaseFilter *pfCompressor,
649  [in] IBaseFilter *pfRenderer);
650 
651  HRESULT ControlStream(
652  [in] const GUID *pCategory,
653  [in] IBaseFilter *pFilter,
654  [in] REFERENCE_TIME *pstart,
655  [in] REFERENCE_TIME *pstop,
656  [in] WORD wStartCookie,
657  [in] WORD wStopCookie);
658 
659  HRESULT AllocCapFile(
660  [in] LPCOLESTR lpstr,
661  [in] DWORDLONG dwlSize);
662 
663  HRESULT CopyCaptureFile(
664  [in] LPOLESTR lpwstrOld,
665  [in] LPOLESTR lpwstrNew,
666  [in] int fAllowEscAbort,
667  [in] IAMCopyCaptureFileProgress *pCallback);
668 }
669 
670 [
671 object,
672 uuid(670d1d20-a068-11d0-b3f0-00aa003761c5),
674 ]
676 {
677  HRESULT Progress(
678  [in] int iProgress);
679 }
680 
681 [
682  object,
683  uuid(93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D),
685 ]
687 {
688  HRESULT SetFiltergraph(
689  [in] IGraphBuilder *pfg);
690 
691  HRESULT GetFiltergraph(
692  [out] IGraphBuilder **ppfg);
693 
694  HRESULT SetOutputFileName(
695  [in] const GUID *pType,
696  [in] LPCOLESTR lpstrFile,
697  [out] IBaseFilter **ppf,
698  [out] IFileSinkFilter **ppSink);
699 
701  [in] const GUID *pCategory,
702  [in] const GUID *pType,
703  [in] IBaseFilter *pf,
704  [in] REFIID riid,
705  [out] void **ppint);
706 
707  [call_as(FindInterface)] HRESULT RemoteFindInterface(
708  [in] const GUID *pCategory,
709  [in] const GUID *pType,
710  [in] IBaseFilter *pf,
711  [in] REFIID riid,
712  [out] IUnknown **ppint);
713 
714  HRESULT RenderStream(
715  [in] const GUID *pCategory,
716  [in] const GUID *pType,
717  [in] IUnknown *pSource,
718  [in] IBaseFilter *pfCompressor,
719  [in] IBaseFilter *pfRenderer);
720 
721  HRESULT ControlStream(
722  [in] const GUID *pCategory,
723  [in] const GUID *pType,
724  [in] IBaseFilter *pFilter,
725  [in] REFERENCE_TIME *pstart,
726  [in] REFERENCE_TIME *pstop,
727  [in] WORD wStartCookie,
728  [in] WORD wStopCookie);
729 
730  HRESULT AllocCapFile(
731  [in] LPCOLESTR lpstr,
732  [in] DWORDLONG dwlSize);
733 
734  HRESULT CopyCaptureFile(
735  [in] LPOLESTR lpwstrOld,
736  [in] LPOLESTR lpwstrNew,
737  [in] int fAllowEscAbort,
738  [in] IAMCopyCaptureFileProgress *pCallback);
739 
740  HRESULT FindPin(
741  [in] IUnknown *pSource,
742  [in] PIN_DIRECTION pindir,
743  [in] const GUID *pCategory,
744  [in] const GUID *pType,
745  [in] BOOL fUnconnected,
746  [in] int num,
747  [out] IPin **ppPin);
748 }
749 
750 [
751  local,
752  object,
753  uuid(5acd6aa0-f482-11ce-8b67-00aa00a3f1a6),
755 ]
757 {
758  HRESULT SetMasterStream(
759  [in] LONG iStream);
760 
761  HRESULT GetMasterStream(
762  [out] LONG *pStream);
763 
764  HRESULT SetOutputCompatibilityIndex(
765  [in] BOOL fOldIndex);
766 
767  HRESULT GetOutputCompatibilityIndex(
768  [out] BOOL *pfOldIndex);
769 }
770 
771 [
772  local,
773  object,
774  uuid(bee3d220-157b-11d0-bd23-00a0c911ce86),
776 ]
778 {
779  typedef enum InterleavingMode {
783  INTERLEAVE_NONE_BUFFERED
785 
786  HRESULT put_Mode(
787  [in] InterleavingMode mode);
788 
789  HRESULT get_Mode(
790  [out] InterleavingMode *pMode);
791 
792  HRESULT put_Interleaving(
793  [in] const REFERENCE_TIME *prtInterleave,
794  [in] const REFERENCE_TIME *prtPreroll);
795 
796  HRESULT get_Interleaving(
797  [out] REFERENCE_TIME *prtInterleave,
798  [out] REFERENCE_TIME *prtPreroll);
799 }
800 
801 [
802  local,
803  object,
804  uuid(9fd52741-176d-4b36-8f51-ca8f933223be),
806 ]
807 interface IAMClockSlave : IUnknown
808 {
809  HRESULT SetErrorTolerance(
810  [in] DWORD dwTolerance);
811 
812  HRESULT GetErrorTolerance(
813  [out] DWORD *pdwTolerance);
814 }
815 
816 typedef struct _AMCOPPSignature {
817  BYTE Signature[256];
819 
820 typedef struct _AMCOPPCommand {
825  BYTE CommandData[4056];
827 
828 typedef struct _AMCOPPStatusInput {
833  BYTE StatusData[4056];
835 
836 typedef struct _AMCOPPStatusOutput {
839  BYTE COPPStatus[4076];
841 
842 [
843  local,
844  object,
845  uuid(6feded3e-0ff1-4901-a2f1-43f7012c8515),
847 ]
849 {
850  HRESULT KeyExchange (
851  [out] GUID* pRandom,
852  [out] BYTE** VarLenCertGH,
853  [out] DWORD* pdwLengthCertGH);
854 
855  HRESULT SessionSequenceStart(
856  [in] AMCOPPSignature* pSig);
857 
858  HRESULT ProtectionCommand(
859  [in] const AMCOPPCommand* cmd);
860 
861  HRESULT ProtectionStatus(
862  [in] const AMCOPPStatusInput* pStatusInput,
863  [out] AMCOPPStatusOutput* pStatusOutput);
864 };
865 
867 {
869 };
870 
871 [
872  object,
873  uuid(36b73882-c2c8-11cf-8b46-00805f6cef60),
875 ]
877 {
878  HRESULT AddSourceFilterForMoniker(
879  [in] IMoniker *pMoniker,
880  [in] IBindCtx *pCtx,
881  [in, unique] LPCWSTR lpcwstrFilterName,
882  [out] IBaseFilter **ppFilter
883  );
884 
885  HRESULT ReconnectEx
886  ( [in] IPin * ppin,
887  [in, unique] const AM_MEDIA_TYPE *pmt
888  );
889 
890  HRESULT RenderEx( [in] IPin *pPinOut,
891  [in] DWORD dwFlags,
892  [in, out] DWORD *pvContext
893  );
894 }
895 
896 [
897  object,
898  local,
899  uuid(56a868bf-0ad4-11ce-b03a-0020af0ba770),
901 ]
903 {
904  HRESULT Render
905  ( [in] IPin * ppinOut,
906  [in] IGraphBuilder * pGraph
907  );
908 
909  HRESULT Backout
910  ( [in] IPin * ppinOut,
911  [in] IGraphBuilder * pGraph
912  );
913 }
914 
915 [
916  object,
917  uuid(56a868af-0ad4-11ce-b03a-0020af0ba770),
919 ]
920 interface IDistributorNotify : IUnknown
921 {
922  HRESULT Stop(void);
923  HRESULT Pause(void);
924  HRESULT Run(REFERENCE_TIME tStart);
925  HRESULT SetSyncSource([in] IReferenceClock * pClock);
926  HRESULT NotifyGraphChange(void);
927 }
928 
929 typedef enum
930 {
931  AM_STREAM_INFO_START_DEFINED = 0x01,
935 } AM_STREAM_INFO_FLAGS;
936 
937 typedef struct
938 {
945 
946 
947 /*****************************************************************************
948  * IAMStreamConfig interface
949  */
950 [
951  object,
952  uuid(c6e13340-30ac-11d0-a18c-00a0c9118956),
954 ]
955 interface IAMStreamConfig : IUnknown
956 {
957  HRESULT SetFormat( [in] AM_MEDIA_TYPE *pmt);
958  HRESULT GetFormat( [in] AM_MEDIA_TYPE **pmt);
959  HRESULT GetNumberOfCapabilities( [out] int *piCount, [out] int *piSize);
960  HRESULT GetStreamCaps( [in] int iIndex, [out] AM_MEDIA_TYPE **pmt,
961  [out] BYTE *pSCC);
962 }
963 
964 
965 typedef enum tagVideoProcAmpProperty
966 {
967  VideoProcAmp_Brightness,
976  VideoProcAmp_Gain
978 
980 {
984 
985 /*****************************************************************************
986  * IAMVideoProcAmp interface
987  */
988 [
989  object,
990  uuid(c6e13360-30ac-11d0-a18c-00a0c9118956),
992 ]
994 {
995  HRESULT GetRange( [in] LONG Property, [out] LONG *pMin, [out] LONG *pMax,
996  [out] LONG *pSteppingDelta, [out] LONG *pDefault,
997  [out] LONG *pCapsFlags);
998  HRESULT Set( [in] LONG Property, [in] LONG lValue, [in] LONG Flags);
999  HRESULT Get( [in] LONG Property, [out] LONG *lValue, [out] LONG *Flags);
1000 }
1001 
1002 
1003 [
1004  object,
1005  uuid(56a868aa-0ad4-11ce-b03a-0020af0ba770),
1007 ]
1009 {
1010  HRESULT RequestAllocator(
1011  [in] IMemAllocator* pPreferred,
1012  [in] ALLOCATOR_PROPERTIES* pProps,
1013  [out] IMemAllocator ** ppActual);
1014 
1015  HRESULT Request(
1016  [in] IMediaSample* pSample,
1017  [in] DWORD_PTR dwUser);
1018 
1019  HRESULT WaitForNext(
1020  [in] DWORD dwTimeout,
1021  [out] IMediaSample** ppSample,
1022  [out] DWORD_PTR * pdwUser);
1023 
1024  HRESULT SyncReadAligned(
1025  [in] IMediaSample* pSample);
1026 
1027  HRESULT SyncRead(
1028  [in] LONGLONG llPosition,
1029  [in] LONG lLength,
1030  [out, size_is(lLength)]
1031  BYTE* pBuffer);
1032 
1033  HRESULT Length(
1034  [out] LONGLONG* pTotal,
1035  [out] LONGLONG* pAvailable);
1036 
1037  HRESULT BeginFlush(void);
1038 
1039  HRESULT EndFlush(void);
1040 }
1041 
1042 
1043 [
1044  object,
1045  uuid(56a868ab-0ad4-11ce-b03a-0020af0ba770),
1047 ]
1049 {
1050  HRESULT QueryVersion(LONG* pVersion);
1051 }
1052 
1053 [
1054  object,
1055  uuid(56a868ad-0ad4-11ce-b03a-0020af0ba770),
1057 ]
1059 {
1060  HRESULT AcquireResource(
1061  [in] LONG idResource);
1062 
1063  HRESULT ReleaseResource(
1064  [in] LONG idResource);
1065 }
1066 
1067 
1068 [
1069  object,
1070  uuid(56a868ac-0ad4-11ce-b03a-0020af0ba770),
1072 ]
1074 {
1075  HRESULT Register(
1076  [in] LPCWSTR pName,
1077  [in] LONG cResource,
1078  [out] LONG* plToken
1079  );
1080 
1081  HRESULT RegisterGroup(
1082  [in] LPCWSTR pName,
1083  [in] LONG cResource,
1084  [in, size_is(cResource)]
1085  LONG* palTokens,
1086  [out] LONG* plToken
1087  );
1088 
1089  HRESULT RequestResource(
1090  [in] LONG idResource,
1091  [in] IUnknown* pFocusObject,
1092  [in] IResourceConsumer* pConsumer
1093  );
1094 
1095  HRESULT NotifyAcquire(
1096  [in] LONG idResource,
1097  [in] IResourceConsumer* pConsumer,
1098  [in] HRESULT hr);
1099 
1100  HRESULT NotifyRelease(
1101  [in] LONG idResource,
1102  [in] IResourceConsumer* pConsumer,
1103  [in] BOOL bStillWant);
1104 
1105  HRESULT CancelRequest(
1106  [in] LONG idResource,
1107  [in] IResourceConsumer* pConsumer);
1108 
1109  HRESULT SetFocus(
1110  [in] IUnknown* pFocusObject);
1111 
1112  HRESULT ReleaseFocus(
1113  [in] IUnknown* pFocusObject);
1114 
1115 }
1116 
1117 cpp_quote("#ifndef _IKsPropertySet_")
1118 cpp_quote("#define _IKsPropertySet_")
1119 cpp_quote("#define KSPROPERTY_SUPPORT_GET 1")
1120 cpp_quote("#define KSPROPERTY_SUPPORT_SET 2")
1121 
1122 [
1123  object,
1124  uuid(31efac30-515c-11d0-a9aa-00aa0061be93),
1126  local
1127 ]
1129 {
1130  HRESULT Set( [in] REFGUID guidPropSet,
1131  [in] DWORD dwPropID,
1132  [in, size_is(cbInstanceData)] LPVOID pInstanceData,
1133  [in] DWORD cbInstanceData,
1134  [in, size_is(cbPropData)] LPVOID pPropData,
1135  [in] DWORD cbPropData );
1136 
1137  HRESULT Get( [in] REFGUID guidPropSet,
1138  [in] DWORD dwPropID,
1139  [in, size_is(cbInstanceData)] LPVOID pInstanceData,
1140  [in] DWORD cbInstanceData,
1141  [out, size_is(cbPropData)] LPVOID pPropData,
1142  [in] DWORD cbPropData,
1143  [out] DWORD *pcbReturned );
1144 
1145  HRESULT QuerySupported( [in] REFGUID guidPropSet,
1146  [in] DWORD dwPropID,
1147  [out] DWORD *pTypeSupport);
1148 }
1149 cpp_quote("#endif /* _IKsPropertySet_ */")
1150 
1151 [
1152  object,
1153  uuid(36b73883-c2c8-11cf-8b46-00805f6cef60),
1155 ]
1157 {
1158  HRESULT Init( [in] BOOL bSupportRendering, [in] IPin *pPin);
1159 }
1160 
1161 [
1162  local,
1163  object,
1164  uuid(4d5466b0-a49c-11d1-abe8-00a0c905f375),
1166 
1167 ]
1169 {
1170  HRESULT SetClockDelta([in] REFERENCE_TIME rtDelta);
1171 };
1172 
1173 
1175 {
1178 };
1179 
1180 [
1181  local,
1182  object,
1183  uuid(2dd74950-a890-11d1-abe8-00a0c905f375),
1185 ]
1187 {
1188  ULONG GetMiscFlags();
1189 };
1190 
1191 [
1192  local,
1193  object,
1194  uuid(4995f511-9ddb-4f12-bd3b-f04611807b79),
1196 ]
1198 {
1199  HRESULT SelectedFilter(
1200  [in] IMoniker *pMon);
1201 
1202  HRESULT CreatedFilter(
1203  [in] IBaseFilter *pFil);
1204 };
1205 
1206 [
1207  local,
1208  object,
1209  uuid(56ED71A0-AF5F-11D0-B3F0-00AA003761C5),
1211 ]
1213 {
1214  HRESULT SuggestAllocatorProperties (
1215  [in] const ALLOCATOR_PROPERTIES *pprop);
1216 
1217  HRESULT GetAllocatorProperties (
1218  [out] ALLOCATOR_PROPERTIES *pprop);
1219 
1220 }
1221 
1222 #include <axextendenums.h>
1223 
1224 [
1225  object,
1226  uuid(36b73881-c2c8-11cf-8b46-00805f6cef60),
1228 ]
1229 interface IAMStreamControl : IUnknown
1230 {
1231  HRESULT StartAt( [in] REFERENCE_TIME * ptStart,
1232  [in] DWORD dwCookie );
1233  HRESULT StopAt( [in] REFERENCE_TIME * ptStop,
1234  [in] BOOL bSendExtra,
1235  [in] DWORD dwCookie );
1236  HRESULT GetInfo( [out] AM_STREAM_INFO *pInfo);
1237 }
1238 
1239 typedef enum tagTVAudioMode
1240 {
1241  AMTVAUDIO_MODE_MONO = 0x0001,
1242  AMTVAUDIO_MODE_STEREO = 0x0002,
1243  AMTVAUDIO_MODE_LANG_A = 0x0010,
1244  AMTVAUDIO_MODE_LANG_B = 0x0020,
1245  AMTVAUDIO_MODE_LANG_C = 0x0040,
1246  AMTVAUDIO_PRESET_STEREO = 0x0200,
1247  AMTVAUDIO_PRESET_LANG_A = 0x1000,
1248  AMTVAUDIO_PRESET_LANG_B = 0x2000,
1249  AMTVAUDIO_PRESET_LANG_C = 0x4000,
1250 }TVAudioMode;
struct _RGNDATA RGNDATA
BOOL WINAPI SHIM_OBJ_NAME() Notify(DWORD fdwReason, PVOID ptr)
enum VideoProcAmp_Contrast
HRESULT Reset(void)
struct _RGNDATAHEADER RGNDATAHEADER
DWORD dwStopCookie
Definition: axextend.idl:942
#define REFIID
Definition: guiddef.h:113
POINT ptStart
Definition: appswitch.c:60
enum VideoProcAmp_BacklightCompensation
_In_ PKSPIN_CONNECT Connect
Definition: ks.h:4565
_In_ NDIS_STATUS EventCode
Definition: ndis.h:4733
Definition: scsiwmi.h:51
Definition: ftp_var.h:139
__wchar_t WCHAR
Definition: xmlstorage.h:180
REFIID riid
Definition: precomp.h:44
#define DUMMYSTRUCTNAME1
Definition: ntbasedef.h:59
#define REFCLSID
Definition: guiddef.h:112
const GLfloat * pMax
Definition: s_aatritemp.h:248
const REGFILTERPINS2 * rgPins2
Definition: axextend.idl:246
const REGPINTYPES * lpMediaType
Definition: axextend.idl:199
enum VideoProcAmp_Hue
enum TVAudioMode
enum VideoProcAmp_ColorEnable
LPWSTR strName
Definition: axextend.idl:191
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
const CLSID * clsConnectsToFilter
Definition: axextend.idl:196
HWND WINAPI SetFocus(_In_opt_ HWND)
const DWORD ADVISE_ALL2
Definition: axextend.idl:376
struct tagQuality Quality
CLSID clsMedium
Definition: axextend.idl:204
CLSID Clsid
Definition: axextend.idl:76
static const WCHAR Description[]
Definition: oid.c:1103
BOOL Init(PUSERCONNECT UserCon)
Definition: dllmain.c:367
const DWORD ADVISE_ALL
Definition: axextend.idl:371
COLORREF LowColorValue
Definition: axextend.idl:357
tagVideoProcAmpFlags
Definition: axextend.idl:979
static LPOLESTR
Definition: stg_prop.c:33
#define DUMMYUNIONNAME
Definition: ntbasedef.h:32
static LRESULT GetInfo(const CodecInfo *pi, ICINFO *icinfo, DWORD dwSize)
Definition: msrle32.c:1168
coclass AMMultiMediaStream cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") cpp_quote("DEFINE_GUID(CLSID_AMAudioStream
static BOOL Set
Definition: pageheap.c:10
_In_ PVOID _Out_ BOOLEAN * Stop
Definition: ldrtypes.h:239
STDMETHOD() QuerySupported(THIS_ IN REFGUID PropSet, IN ULONG Id, OUT ULONG *TypeSupport) PURE
REGPINTYPES
Definition: axextend.idl:187
DWORD dwMerit
Definition: axextend.idl:232
_In_ NDIS_HANDLE _In_ PNDIS_REQUEST Request
Definition: ndis.h:5155
DWORD PaletteIndex
Definition: axextend.idl:356
#define MERIT_DO_NOT_USE
Definition: precomp.h:18
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
long LONG
Definition: pedump.c:60
const CLSID * clsMinorType
Definition: axextend.idl:186
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
Definition: fltkernel.h:1802
WORD WORD PSZ PSZ pszFileName
Definition: vdmdbg.h:41
#define DUMMYSTRUCTNAME2
Definition: ntbasedef.h:60
enum VideoProcAmpProperty
PVOID pBuffer
struct _AMCOPPStatusInput AMCOPPStatusInput
HRESULT Clone([out] IEnumRegFilters **ppEnum)
struct tagRun Run
const CLSID * clsPinCategory
Definition: axextend.idl:226
const REGFILTERPINS * rgPins
Definition: axextend.idl:239
Definition: bufpool.h:45
_AM_FILTER_MISC_FLAGS
Definition: axextend.idl:1174
HRESULT Next([in] ULONG cFilters, [out] REGFILTER **apRegFilter, [out] ULONG *pcFetched)
static VOID SetFileName(PCONSOLE_CHILDFRM_WND Info, PWSTR pFileName)
Definition: console.c:177
DWORD dwStartCookie
Definition: axextend.idl:941
LONG Proportion
Definition: axextend.idl:322
int64_t LONGLONG
Definition: typedefs.h:66
static PCKNOWN_INTERFACE FindInterface(_In_ const IID *iid)
Definition: com_apitest.c:496
ULONG cPins2
Definition: axextend.idl:245
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
static LPSTR pName
Definition: security.c:75
unsigned int BOOL
Definition: ntddk_ex.h:94
struct _AMCOPPStatusOutput AMCOPPStatusOutput
#define d
Definition: ke_i.h:81
DWORD KeyType
Definition: axextend.idl:355
LONGLONG REFERENCE_TIME
Definition: dmusicks.h:9
LONG HRESULT
Definition: typedefs.h:77
enum VideoProcAmp_WhiteBalance
const GLubyte * c
Definition: glext.h:8905
unsigned int UINT
Definition: ndis.h:50
const WCHAR * strConnectsToPin
Definition: axextend.idl:197
struct _DeviceInfo DeviceInfo
unsigned short WORD
Definition: ntddk_ex.h:93
static FILE * out
Definition: regtests2xml.c:44
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint GLuint num
Definition: glext.h:9618
GLdouble GLdouble GLdouble GLdouble q
Definition: gl.h:2063
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
IQualityControl * PQUALITYCONTROL
Definition: axextend.idl:327
OS_LOADING_METHOD Load
Definition: bootmgr.c:36
enum tagVideoProcAmpFlags VideoProcAmpFlags
struct tagCOLORKEY COLORKEY
REFCLSID clsid
Definition: msctf.c:84
REFERENCE_TIME Late
Definition: axextend.idl:323
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1175
enum QualityMessageType
unsigned char BYTE
Definition: mem.h:68
ULONG cPins
Definition: axextend.idl:238
uint32_t DWORD_PTR
Definition: typedefs.h:63
_In_ HANDLE hFile
Definition: mswsock.h:90
UINT nMediaTypes
Definition: axextend.idl:198
GLfloat CONST GLvector4f * in
Definition: m_xform.h:122
#define local
Definition: zutil.h:30
enum AM_FILESINK_FLAGS
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD dwTimeout
Definition: wincrypt.h:6079
static unsigned char pointer_default
Definition: parser.tab.c:114
struct _AMCOPPCommand * LPAMCOPPCommand
enum VideoProcAmp_Saturation
LPWSTR Name
Definition: axextend.idl:77
Definition: axcore.idl:91
DWORD dwVersion
Definition: axextend.idl:231
struct _AMCOPPCommand AMCOPPCommand
struct _AMCOPPStatusOutput * LPAMCOPPStatusOutput
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
REFERENCE_TIME tStart
Definition: axextend.idl:939
const REGPINTYPES * lpMediaType
Definition: axextend.idl:223
RGNDATAHEADER rdh
Definition: axextend.idl:394
const REGPINMEDIUM * lpMedium
Definition: axextend.idl:225
enum _PinDirection PIN_DIRECTION
unsigned long long DWORDLONG
Definition: intsafe.h:99
GUID guidCommandID
Definition: axextend.idl:822
QualityMessageType Type
Definition: axextend.idl:321
unsigned int ULONG
Definition: retypes.h:1
STDMETHOD() Get(THIS_ IN REFGUID PropSet, IN ULONG Id, IN LPVOID InstanceData, IN ULONG InstanceLength, OUT LPVOID PropertyData, IN ULONG DataLength, OUT ULONG *BytesReturned) PURE
enum VideoProcAmp_Sharpness
AMCOPPSignature
Definition: axextend.idl:818
HRESULT Skip([in] ULONG cFilters)
static LPCSTR lpstr
Definition: font.c:51
REFERENCE_TIME TimeStamp
Definition: axextend.idl:324
WCHAR * LPWSTR
Definition: xmlstorage.h:184
_AM_RENSDEREXFLAGS
Definition: axextend.idl:866
DWORD dwSequence
Definition: axextend.idl:823
REFERENCE_TIME tStop
Definition: axextend.idl:940
static const WCHAR Signature[]
Definition: parser.c:141
DWORD COLORREF
Definition: windef.h:290
struct _AMCOPPStatusInput * LPAMCOPPStatusInput
COLORREF HighColorValue
Definition: axextend.idl:358
void * object
Definition: jmemsys.h:48
enum VideoProcAmp_Gamma