ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

axextend.idl
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2002 Robert Shearman
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
00017  */
00018 
00019 interface IAMAnalogVideoDecoder;
00020 interface IAMAnalogVideoEncoder;
00021 interface IAMAudioInputMixer;
00022 interface IAMAudioRendererStats;
00023 interface IAMBufferNegotiation;
00024 interface IAMCameraControl;
00025 interface IAMCopyCaptureFileProgress;
00026 interface IAMCrossbar;
00027 interface IAMDevMemoryAllocator;
00028 interface IAMDevMemoryControl;
00029 interface IAMDroppedFrames;
00030 interface IAMExtDevice;
00031 interface IAMExtTransport;
00032 interface IAMGraphStreams;
00033 interface IAMLatency;
00034 interface IAMOpenProgress;
00035 interface IAMOverlayFX;
00036 interface IAMPhysicalPinInfo;
00037 interface IAMPushSource;
00038 interface IAMStreamConfig;
00039 interface IAMTimecodeDisplay;
00040 interface IAMTimecodeGenerator;
00041 interface IAMTimecodeReader;
00042 interface IAMTVTuner;
00043 interface IAMVfwCaptureDialogs;
00044 interface IAMVfwCompressDialogs;
00045 interface IAMVideoCompression;
00046 interface IAMVideoDecimationProperties;
00047 interface IAMVideoProcAmp;
00048 interface ICaptureGraphBuilder;
00049 interface ICaptureGraphBuilder2;
00050 interface IConfigAviMux;
00051 interface IConfigInterleaving;
00052 interface IDecimateVideoImage;
00053 interface IDrawVideoImage;
00054 interface IEnumRegFilters;
00055 interface IEnumStreamIdMap;
00056 interface IFileSourceFilter;
00057 interface IFileSinkFilter;
00058 interface IFileSinkFilter2;
00059 interface IFilterMapper;
00060 interface IFilterMapper2;
00061 interface IGraphBuilder;
00062 interface IKsPropertySet;
00063 interface IMediaEventSink;
00064 interface IMpeg2Demultiplexer;
00065 interface IMPEG2StreamIdMap;
00066 interface IOverlay;
00067 interface IOverlayNotify;
00068 interface IOverlayNotify2;
00069 interface IQualityControl;
00070 interface ISeekingPassThru;
00071 
00072 typedef struct
00073 {
00074     CLSID Clsid;
00075     LPWSTR Name;
00076 } REGFILTER;
00077 
00078 [
00079 object,
00080 uuid(56a868a4-0ad4-11ce-b03a-0020af0ba770),
00081 pointer_default(unique)
00082 ]
00083 interface IEnumRegFilters : IUnknown
00084 {
00085     HRESULT Next
00086         ( [in]  ULONG cFilters,
00087           [out] REGFILTER ** apRegFilter,
00088           [out] ULONG * pcFetched
00089         );
00090 
00091     HRESULT Skip(
00092         [in] ULONG cFilters
00093     );
00094 
00095     HRESULT Reset(void);
00096 
00097     HRESULT Clone(
00098         [out] IEnumRegFilters **ppEnum
00099     );
00100 }
00101 
00102 
00103 typedef IEnumRegFilters *PENUMREGFILTERS;
00104 
00105 [
00106 object,
00107 uuid(56a868a3-0ad4-11ce-b03a-0020af0ba770),
00108 pointer_default(unique)
00109 ]
00110 interface IFilterMapper : IUnknown
00111 {
00112     enum { MERIT_PREFERRED     = 0x800000,
00113            MERIT_NORMAL        = 0x600000,
00114            MERIT_UNLIKELY      = 0x400000,
00115            MERIT_DO_NOT_USE    = 0x200000,
00116            MERIT_SW_COMPRESSOR = 0x100000,
00117            MERIT_HW_COMPRESSOR = 0x100050
00118          };
00119 
00120     HRESULT RegisterFilter
00121         ( [in] CLSID   clsid,
00122           [in] LPCWSTR Name,
00123           [in] DWORD   dwMerit
00124         );
00125 
00126     HRESULT RegisterFilterInstance
00127         ( [in]  CLSID  clsid,
00128           [in]  LPCWSTR Name,
00129           [out] CLSID *MRId
00130         );
00131 
00132 
00133     HRESULT RegisterPin
00134         ( [in] CLSID   Filter,
00135           [in] LPCWSTR Name,
00136           [in] BOOL    bRendered,
00137           [in] BOOL    bOutput,
00138           [in] BOOL    bZero,
00139           [in] BOOL    bMany,
00140           [in] CLSID   ConnectsToFilter,
00141           [in] LPCWSTR ConnectsToPin
00142         );
00143 
00144     HRESULT RegisterPinType
00145         ( [in] CLSID   clsFilter,
00146           [in] LPCWSTR strName,
00147           [in] CLSID   clsMajorType,
00148           [in] CLSID   clsSubType
00149         );
00150 
00151 
00152     HRESULT UnregisterFilter
00153         ( [in] CLSID  Filter
00154         );
00155 
00156 
00157     HRESULT UnregisterFilterInstance
00158         ( [in] CLSID  MRId
00159         );
00160 
00161 
00162     HRESULT UnregisterPin
00163         ( [in] CLSID   Filter,
00164           [in] LPCWSTR Name
00165         );
00166 
00167     HRESULT EnumMatchingFilters
00168        ( [out] IEnumRegFilters **ppEnum,
00169          [in]  DWORD dwMerit,
00170          [in]  BOOL  bInputNeeded,
00171          [in]  CLSID clsInMaj,
00172          [in]  CLSID clsInSub,
00173          [in]  BOOL  bRender,
00174          [in]  BOOL  bOututNeeded,
00175          [in]  CLSID clsOutMaj,
00176          [in]  CLSID clsOutSub
00177        );
00178 
00179 }
00180 
00181 typedef struct
00182 {
00183     const CLSID * clsMajorType;
00184     const CLSID * clsMinorType;
00185 } REGPINTYPES;
00186 
00187 typedef struct
00188 {
00189     LPWSTR           strName;
00190     BOOL             bRendered;
00191     BOOL             bOutput;
00192     BOOL             bZero;
00193     BOOL             bMany;
00194     const CLSID *    clsConnectsToFilter;
00195     const WCHAR *    strConnectsToPin;
00196     UINT             nMediaTypes;
00197     const REGPINTYPES * lpMediaType;
00198 } REGFILTERPINS;
00199 
00200 typedef struct
00201 {
00202     CLSID clsMedium;
00203     DWORD dw1;
00204     DWORD dw2;
00205 } REGPINMEDIUM;
00206 
00207 enum
00208 {
00209     REG_PINFLAG_B_ZERO = 0x1,
00210     REG_PINFLAG_B_RENDERER = 0x2,
00211     REG_PINFLAG_B_MANY = 0x4,
00212     REG_PINFLAG_B_OUTPUT = 0x8
00213 };
00214 
00215 
00216 typedef struct
00217 {
00218     DWORD dwFlags;
00219     UINT             cInstances;
00220     UINT             nMediaTypes;
00221     [size_is(nMediaTypes)] const REGPINTYPES * lpMediaType;
00222     UINT             nMediums;
00223     [size_is(nMediums)] const REGPINMEDIUM *lpMedium;
00224     const CLSID      *clsPinCategory;
00225 } REGFILTERPINS2;
00226 
00227 typedef struct
00228 {
00229     DWORD dwVersion;
00230     DWORD dwMerit;
00231     [switch_is(dwVersion)] [switch_type(DWORD)] union
00232     {
00233         [case(1)]
00234             struct
00235             {
00236                 ULONG cPins;
00237                 [size_is(cPins)] const REGFILTERPINS *rgPins;
00238             } DUMMYSTRUCTNAME;
00239 
00240         [case(2)]
00241             struct
00242             {
00243                 ULONG cPins2;
00244                 [size_is(cPins2)] const REGFILTERPINS2 *rgPins2;
00245             } DUMMYSTRUCTNAME1;
00246 
00247         [default]
00248             ;
00249     } DUMMYUNIONNAME;
00250 
00251 } REGFILTER2;
00252 
00253 
00254 [
00255 object,
00256 uuid(b79bb0b0-33c1-11d1-abe1-00a0c905f375),
00257 pointer_default(unique)
00258 ]
00259 interface IFilterMapper2 : IUnknown
00260 {
00261     HRESULT CreateCategory
00262         ( [in] REFCLSID clsidCategory,
00263           [in] DWORD dwCategoryMerit,
00264           [in] LPCWSTR Description
00265           );
00266 
00267     HRESULT UnregisterFilter
00268         ( [in] const CLSID *pclsidCategory,
00269           [in] LPCOLESTR szInstance,
00270           [in] REFCLSID Filter
00271         );
00272 
00273     HRESULT RegisterFilter
00274         ( [in] REFCLSID clsidFilter,
00275           [in] LPCWSTR Name,
00276           [in, out] IMoniker **ppMoniker,
00277           [in] const CLSID *pclsidCategory,
00278           [in] LPCOLESTR szInstance,
00279           [in] const REGFILTER2 *prf2
00280         );
00281 
00282     HRESULT EnumMatchingFilters
00283        ( [out] IEnumMoniker **ppEnum,
00284          [in]  DWORD dwFlags,
00285          [in]  BOOL bExactMatch,
00286          [in]  DWORD dwMerit,
00287          [in]  BOOL  bInputNeeded,
00288          [in]  DWORD cInputTypes,
00289          [size_is(cInputTypes*2)]  const GUID *pInputTypes,
00290          [in]  const REGPINMEDIUM *pMedIn,
00291          [in]  const CLSID *pPinCategoryIn,
00292          [in]  BOOL  bRender,
00293          [in]  BOOL  bOutputNeeded,
00294          [in]  DWORD cOutputTypes,
00295          [size_is(cOutputTypes*2)]  const GUID *pOutputTypes,
00296          [in]  const REGPINMEDIUM *pMedOut,
00297          [in]  const CLSID *pPinCategoryOut
00298        );
00299 }
00300 
00301 [
00302 object,
00303 uuid(b79bb0b1-33c1-11d1-abe1-00a0c905f375),
00304 pointer_default(unique)
00305 ]
00306 interface IFilterMapper3 : IFilterMapper2
00307 {
00308     HRESULT GetICreateDevEnum( [out] ICreateDevEnum **ppEnum );
00309 }
00310 
00311 typedef enum tagQualityMessageType
00312 {
00313     Famine,
00314     Flood
00315 } QualityMessageType;
00316 
00317 typedef struct tagQuality
00318 {
00319     QualityMessageType Type;
00320     LONG               Proportion;
00321     REFERENCE_TIME       Late;
00322     REFERENCE_TIME       TimeStamp;
00323 } Quality;
00324 
00325 typedef IQualityControl *PQUALITYCONTROL;
00326 
00327 [
00328 object,
00329 uuid(56a868a5-0ad4-11ce-b03a-0020af0ba770),
00330 pointer_default(unique)
00331 ]
00332 interface IQualityControl : IUnknown
00333 {
00334     HRESULT Notify
00335         ( [in] IBaseFilter * pSelf,
00336           [in] Quality q
00337         );
00338 
00339     HRESULT SetSink
00340         ( [in] IQualityControl * piqc
00341         );
00342 }
00343 
00344 enum
00345 {
00346     CK_NOCOLORKEY  = 0x0,
00347     CK_INDEX       = 0x1,
00348     CK_RGB         = 0x2
00349 };
00350 
00351 typedef struct tagCOLORKEY
00352 {
00353     DWORD    KeyType;
00354     DWORD    PaletteIndex;
00355     COLORREF LowColorValue;
00356     COLORREF HighColorValue;
00357 } COLORKEY;
00358 
00359 enum
00360 {
00361     ADVISE_NONE = 0x0,
00362     ADVISE_CLIPPING = 0x1,
00363     ADVISE_PALETTE = 0x2,
00364     ADVISE_COLORKEY = 0x4,
00365     ADVISE_POSITION = 0x8,
00366     ADVISE_DISPLAY_CHANGE = 0x10
00367 };
00368 
00369 const DWORD ADVISE_ALL = ADVISE_CLIPPING |
00370                          ADVISE_PALETTE  |
00371                          ADVISE_COLORKEY |
00372                          ADVISE_POSITION;
00373 
00374 const DWORD ADVISE_ALL2 = ADVISE_ALL |
00375                           ADVISE_DISPLAY_CHANGE;
00376 
00377 cpp_quote("#ifndef _WINGDI_")
00378 
00379 /* already defined in wingdi.h, but needed for WIDL */
00380 
00381 typedef struct _RGNDATAHEADER
00382 {
00383     DWORD dwSize;
00384     DWORD iType;
00385     DWORD nCount;
00386     DWORD nRgnSize;
00387     RECT  rcBound;
00388 } RGNDATAHEADER;
00389 
00390 typedef struct _RGNDATA
00391 {
00392     RGNDATAHEADER rdh;
00393     char Buffer[1];
00394 } RGNDATA;
00395 
00396 cpp_quote("#endif /* _WINGDI_ */")
00397 
00398 [
00399 object,
00400 local,
00401 uuid(56a868a0-0ad4-11ce-b03a-0020af0ba770),
00402 pointer_default(unique)
00403 ]
00404 interface IOverlayNotify : IUnknown
00405 {
00406     HRESULT OnPaletteChange(
00407         [in] DWORD dwColors,
00408         [in] const PALETTEENTRY *pPalette);
00409 
00410     HRESULT OnClipChange(
00411         [in] const RECT *pSourceRect,
00412         [in] const RECT *pDestinationRect,
00413         [in] const RGNDATA *pRgnData);
00414 
00415     HRESULT OnColorKeyChange([in] const COLORKEY *pColorKey);
00416 
00417     HRESULT OnPositionChange([in] const RECT *pSourceRect,
00418                              [in] const RECT *pDestinationRect);
00419 }
00420 
00421 typedef IOverlayNotify *POVERLAYNOTIFY;
00422 
00423 cpp_quote("#if 0")
00424 typedef HANDLE HMONITOR;
00425 cpp_quote("#endif /* 0 */")
00426 
00427 [
00428 object,
00429 local,
00430 uuid(680EFA10-D535-11D1-87C8-00A0C9223196),
00431 pointer_default(unique)
00432 ]
00433 interface IOverlayNotify2 : IOverlayNotify
00434 {
00435     HRESULT OnDisplayChange(
00436         HMONITOR hMonitor);
00437 }
00438 
00439 typedef IOverlayNotify2 *POVERLAYNOTIFY2;
00440 
00441 [
00442 object,
00443 local,
00444 uuid(56a868a1-0ad4-11ce-b03a-0020af0ba770),
00445 pointer_default(unique)
00446 ]
00447 interface IOverlay : IUnknown
00448 {
00449     HRESULT GetPalette(
00450         [out] DWORD *pdwColors,
00451         [out] PALETTEENTRY **ppPalette);
00452 
00453     HRESULT SetPalette(
00454         [in] DWORD dwColors,
00455         [in] PALETTEENTRY *pPalette);
00456 
00457     HRESULT GetDefaultColorKey([out] COLORKEY *pColorKey);
00458 
00459     HRESULT GetColorKey([out] COLORKEY *pColorKey);
00460 
00461     HRESULT SetColorKey([in,out] COLORKEY *pColorKey);
00462 
00463     HRESULT GetWindowHandle([out] HWND *pHwnd);
00464 
00465     HRESULT GetClipList([out] RECT *pSourceRect,
00466                         [out] RECT *pDestinationRect,
00467                         [out] RGNDATA **ppRgnData);
00468 
00469     HRESULT GetVideoPosition([out] RECT *pSourceRect,
00470                              [out] RECT *pDestinationRect);
00471 
00472     HRESULT Advise(
00473         [in] IOverlayNotify *pOverlayNotify,
00474         [in] DWORD dwInterests);
00475 
00476     HRESULT Unadvise();
00477 }
00478 
00479 typedef IOverlay *POVERLAY;
00480 
00481 [
00482 object,
00483 uuid(56a868a2-0ad4-11ce-b03a-0020af0ba770),
00484 pointer_default(unique)
00485 ]
00486 interface IMediaEventSink : IUnknown
00487 {
00488     HRESULT Notify(
00489         [in] LONG EventCode,
00490         [in] LONG_PTR EventParam1,
00491         [in] LONG_PTR EventParam2
00492     );
00493 }
00494 
00495 typedef IMediaEventSink *PMEDIAEVENTSINK;
00496 
00497 [
00498 object,
00499 uuid(56a868a6-0ad4-11ce-b03a-0020af0ba770),
00500 pointer_default(unique)
00501 ]
00502 interface IFileSourceFilter : IUnknown
00503 {
00504     HRESULT Load(
00505         [in] LPCOLESTR pszFileName,
00506         [in, unique] const AM_MEDIA_TYPE *pmt
00507     );
00508 
00509     HRESULT GetCurFile(
00510         [out] LPOLESTR *ppszFileName,
00511         [out] AM_MEDIA_TYPE *pmt
00512     );
00513 }
00514 
00515 typedef IFileSourceFilter *PFILTERFILESOURCE;
00516 
00517 [
00518 object,
00519 uuid(a2104830-7c70-11cf-8bce-00aa00a3f1a6),
00520 pointer_default(unique)
00521 ]
00522 interface IFileSinkFilter : IUnknown
00523 {
00524     HRESULT SetFileName(
00525         [in] LPCOLESTR pszFileName,
00526         [in, unique] const AM_MEDIA_TYPE *pmt
00527     );
00528 
00529     HRESULT GetCurFile(
00530         [out] LPOLESTR *ppszFileName,
00531         [out] AM_MEDIA_TYPE *pmt
00532     );
00533 }
00534 
00535 typedef IFileSinkFilter *PFILTERFILESINK;
00536 
00537 [
00538         object,
00539         uuid(00855B90-CE1B-11d0-BD4F-00A0C911CE86),
00540         pointer_default(unique)
00541 ]
00542 interface IFileSinkFilter2 : IFileSinkFilter
00543 {
00544     HRESULT SetMode(
00545         [in] DWORD dwFlags
00546     );
00547 
00548     HRESULT GetMode(
00549         [out] DWORD *pdwFlags
00550     );
00551 }
00552 
00553 typedef IFileSinkFilter2 *PFILESINKFILTER2;
00554 
00555 [
00556         object,
00557         uuid(f90a6130-b658-11d2-ae49-0000f8754b99),
00558         pointer_default(unique)
00559 ]
00560 interface IAMDeviceRemoval : IUnknown
00561 {
00562     HRESULT DeviceInfo(
00563         [out] CLSID *pclsidInterfaceClass,
00564         [out] LPWSTR *pwszSymbolicLink);
00565     HRESULT Reassociate();
00566     HRESULT Disassociate();
00567 }
00568 
00569 
00570 typedef enum
00571 {
00572     AM_FILE_OVERWRITE = 0x00000001,
00573 } AM_FILESINK_FLAGS;
00574 
00575 [
00576 object,
00577 uuid(56a868a9-0ad4-11ce-b03a-0020af0ba770),
00578 pointer_default(unique)
00579 ]
00580 interface IGraphBuilder : IFilterGraph
00581 {
00582     HRESULT Connect
00583         ( [in] IPin * ppinOut,
00584           [in] IPin * ppinIn
00585         );
00586 
00587     HRESULT Render
00588         ( [in] IPin * ppinOut
00589         );
00590 
00591     HRESULT RenderFile
00592         ( [in] LPCWSTR lpcwstrFile,
00593           [in, unique] LPCWSTR lpcwstrPlayList
00594         );
00595 
00596     HRESULT AddSourceFilter
00597         ( [in]      LPCWSTR lpcwstrFileName,
00598           [in, unique]      LPCWSTR lpcwstrFilterName,
00599           [out]     IBaseFilter* *ppFilter
00600         );
00601 
00602     HRESULT SetLogFile
00603         ( [in]      DWORD_PTR hFile
00604         );
00605 
00606     HRESULT Abort();
00607 
00608     HRESULT ShouldOperationContinue();
00609 }
00610 
00611 
00612 [
00613     object,
00614     uuid(bf87b6e0-8c27-11d0-b3f0-00aa003761c5),
00615     pointer_default(unique)
00616 ]
00617 interface ICaptureGraphBuilder : IUnknown {
00618 
00619     HRESULT SetFiltergraph(
00620         [in] IGraphBuilder *pfg);
00621 
00622     HRESULT GetFiltergraph(
00623         [out] IGraphBuilder **ppfg);
00624 
00625     HRESULT SetOutputFileName(
00626         [in] const GUID *pType,
00627         [in] LPCOLESTR lpstrFile,
00628         [out] IBaseFilter **ppf,
00629         [out] IFileSinkFilter **ppSink);
00630 
00631     [local] HRESULT FindInterface(
00632         [in, unique] const GUID *pCategory,
00633         [in] IBaseFilter *pf,
00634         [in] REFIID riid,
00635         [out] void **ppint);
00636 
00637     [call_as(FindInterface)] HRESULT RemoteFindInterface(
00638         [in, unique] const GUID *pCategory,
00639         [in] IBaseFilter *pf,
00640         [in] REFIID riid,
00641         [out] IUnknown **ppint);
00642 
00643     HRESULT RenderStream(
00644         [in] const GUID *pCategory,
00645         [in] IUnknown *pSource,
00646         [in] IBaseFilter *pfCompressor,
00647         [in] IBaseFilter *pfRenderer);
00648 
00649     HRESULT ControlStream(
00650         [in] const GUID *pCategory,
00651         [in] IBaseFilter *pFilter,
00652         [in] REFERENCE_TIME *pstart,
00653         [in] REFERENCE_TIME *pstop,
00654         [in] WORD wStartCookie,
00655         [in] WORD wStopCookie);
00656 
00657     HRESULT AllocCapFile(
00658         [in] LPCOLESTR lpstr,
00659         [in] DWORDLONG dwlSize);
00660 
00661     HRESULT CopyCaptureFile(
00662         [in] LPOLESTR lpwstrOld,
00663         [in] LPOLESTR lpwstrNew,
00664         [in] int fAllowEscAbort,
00665         [in] IAMCopyCaptureFileProgress *pCallback);
00666 }
00667 
00668 [
00669 object,
00670 uuid(670d1d20-a068-11d0-b3f0-00aa003761c5),
00671 pointer_default(unique)
00672 ]
00673 interface IAMCopyCaptureFileProgress : IUnknown
00674 {
00675     HRESULT Progress(
00676         [in] int iProgress);
00677 }
00678 
00679 [
00680     object,
00681     uuid(93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D),
00682     pointer_default(unique)
00683 ]
00684 interface ICaptureGraphBuilder2 : IUnknown
00685 {
00686     HRESULT SetFiltergraph(
00687         [in] IGraphBuilder *pfg);
00688 
00689     HRESULT GetFiltergraph(
00690         [out] IGraphBuilder **ppfg);
00691 
00692     HRESULT SetOutputFileName(
00693         [in] const GUID *pType,
00694         [in] LPCOLESTR lpstrFile,
00695         [out] IBaseFilter **ppf,
00696         [out] IFileSinkFilter **ppSink);
00697 
00698     [local] HRESULT FindInterface(
00699         [in] const GUID *pCategory,
00700         [in] const GUID *pType,
00701         [in] IBaseFilter *pf,
00702         [in] REFIID riid,
00703         [out] void **ppint);
00704 
00705     [call_as(FindInterface)] HRESULT RemoteFindInterface(
00706         [in] const GUID *pCategory,
00707         [in] const GUID *pType,
00708         [in] IBaseFilter *pf,
00709         [in] REFIID riid,
00710         [out] IUnknown **ppint);
00711 
00712     HRESULT RenderStream(
00713         [in] const GUID *pCategory,
00714         [in] const GUID *pType,
00715         [in] IUnknown *pSource,
00716         [in] IBaseFilter *pfCompressor,
00717         [in] IBaseFilter *pfRenderer);
00718 
00719     HRESULT ControlStream(
00720         [in] const GUID *pCategory,
00721         [in] const GUID *pType,
00722         [in] IBaseFilter *pFilter,
00723         [in] REFERENCE_TIME *pstart,
00724         [in] REFERENCE_TIME *pstop,
00725         [in] WORD wStartCookie,
00726         [in] WORD wStopCookie);
00727 
00728     HRESULT AllocCapFile(
00729         [in] LPCOLESTR lpstr,
00730         [in] DWORDLONG dwlSize);
00731 
00732     HRESULT CopyCaptureFile(
00733         [in] LPOLESTR lpwstrOld,
00734         [in] LPOLESTR lpwstrNew,
00735         [in] int fAllowEscAbort,
00736         [in] IAMCopyCaptureFileProgress *pCallback);
00737 
00738     HRESULT FindPin(
00739         [in] IUnknown *pSource,
00740         [in] PIN_DIRECTION pindir,
00741         [in] const GUID *pCategory,
00742         [in] const GUID *pType,
00743         [in] BOOL fUnconnected,
00744         [in] int num,
00745         [out] IPin **ppPin);
00746 }
00747 
00748 enum _AM_RENSDEREXFLAGS
00749 {
00750     AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x01
00751 };
00752 
00753 [
00754     object,
00755     uuid(36b73882-c2c8-11cf-8b46-00805f6cef60),
00756     pointer_default(unique)
00757 ]
00758 interface IFilterGraph2: IGraphBuilder
00759 {
00760     HRESULT AddSourceFilterForMoniker(
00761           [in] IMoniker *pMoniker,
00762           [in] IBindCtx *pCtx,
00763           [in, unique] LPCWSTR lpcwstrFilterName,
00764           [out] IBaseFilter **ppFilter
00765     );
00766 
00767     HRESULT ReconnectEx
00768         ( [in] IPin * ppin,
00769           [in, unique] const AM_MEDIA_TYPE *pmt
00770         );
00771 
00772     HRESULT RenderEx( [in] IPin *pPinOut,
00773                       [in] DWORD dwFlags,
00774                       [in, out] DWORD *pvContext
00775                     );
00776 }
00777 
00778 [
00779     object,
00780     local,
00781     uuid(56a868bf-0ad4-11ce-b03a-0020af0ba770),
00782     pointer_default(unique)
00783 ]
00784 interface IStreamBuilder : IUnknown
00785 {
00786     HRESULT Render
00787         ( [in] IPin * ppinOut,
00788           [in] IGraphBuilder * pGraph
00789         );
00790 
00791     HRESULT Backout
00792         ( [in] IPin * ppinOut,
00793           [in] IGraphBuilder * pGraph
00794         );
00795 }
00796 
00797 [
00798     object,
00799     uuid(56a868af-0ad4-11ce-b03a-0020af0ba770),
00800     pointer_default(unique)
00801 ]
00802 interface IDistributorNotify : IUnknown
00803 {
00804     HRESULT Stop(void);
00805     HRESULT Pause(void);
00806     HRESULT Run(REFERENCE_TIME tStart);
00807     HRESULT SetSyncSource([in] IReferenceClock * pClock);
00808     HRESULT NotifyGraphChange(void);
00809 }
00810 
00811 typedef enum
00812 {
00813     AM_STREAM_INFO_START_DEFINED   = 0x01,
00814     AM_STREAM_INFO_STOP_DEFINED    = 0x02,
00815     AM_STREAM_INFO_DISCARDING      = 0x04,
00816     AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10
00817 } AM_STREAM_INFO_FLAGS;
00818 
00819 typedef struct
00820 {
00821     REFERENCE_TIME tStart;
00822     REFERENCE_TIME tStop;
00823     DWORD dwStartCookie;
00824     DWORD dwStopCookie;
00825     DWORD dwFlags;
00826 }AM_STREAM_INFO;
00827 
00828 
00829 /*****************************************************************************
00830  * IAMStreamConfig interface
00831  */
00832 [
00833     object,
00834     uuid(c6e13340-30ac-11d0-a18c-00a0c9118956),
00835     pointer_default(unique)
00836 ]
00837 interface IAMStreamConfig : IUnknown
00838 {
00839     HRESULT SetFormat( [in] AM_MEDIA_TYPE *pmt);
00840     HRESULT GetFormat( [in] AM_MEDIA_TYPE **pmt);
00841     HRESULT GetNumberOfCapabilities( [out] int *piCount, [out] int *piSize);
00842     HRESULT GetStreamCaps( [in] int iIndex, [out] AM_MEDIA_TYPE **pmt,
00843                           [out] BYTE *pSCC);
00844 }
00845 
00846 
00847 typedef enum tagVideoProcAmpProperty
00848 {
00849     VideoProcAmp_Brightness,
00850     VideoProcAmp_Contrast,
00851     VideoProcAmp_Hue,
00852     VideoProcAmp_Saturation,
00853     VideoProcAmp_Sharpness,
00854     VideoProcAmp_Gamma,
00855     VideoProcAmp_ColorEnable,
00856     VideoProcAmp_WhiteBalance,
00857     VideoProcAmp_BacklightCompensation,
00858     VideoProcAmp_Gain
00859 } VideoProcAmpProperty;
00860 
00861 typedef enum tagVideoProcAmpFlags
00862 {
00863     VideoProcAmp_Flags_Auto   = 0x0001,
00864     VideoProcAmp_Flags_Manual = 0x0002,
00865 } VideoProcAmpFlags;
00866 
00867 /*****************************************************************************
00868  * IAMVideoProcAmp interface
00869  */
00870 [
00871     object,
00872     uuid(c6e13360-30ac-11d0-a18c-00a0c9118956),
00873     pointer_default(unique)
00874 ]
00875 interface IAMVideoProcAmp : IUnknown
00876 {
00877     HRESULT GetRange( [in] LONG Property, [out] LONG *pMin, [out] LONG *pMax,
00878                      [out] LONG *pSteppingDelta, [out] LONG *pDefault,
00879                      [out] LONG *pCapsFlags);
00880     HRESULT Set( [in] LONG Property, [in] LONG lValue, [in] LONG Flags);
00881     HRESULT Get( [in] LONG Property, [out] LONG *lValue, [out] LONG *Flags);
00882 }
00883 
00884 
00885 [
00886         object,
00887         uuid(56a868aa-0ad4-11ce-b03a-0020af0ba770),
00888         pointer_default(unique)
00889 ]
00890 interface IAsyncReader : IUnknown
00891 {
00892     HRESULT RequestAllocator(
00893                 [in]  IMemAllocator* pPreferred,
00894                 [in]  ALLOCATOR_PROPERTIES* pProps,
00895                 [out] IMemAllocator ** ppActual);
00896 
00897     HRESULT Request(
00898                 [in] IMediaSample* pSample,
00899                 [in] DWORD_PTR dwUser);
00900 
00901     HRESULT WaitForNext(
00902                 [in]  DWORD dwTimeout,
00903                 [out] IMediaSample** ppSample,
00904                 [out] DWORD_PTR * pdwUser);
00905 
00906     HRESULT SyncReadAligned(
00907                 [in] IMediaSample* pSample);
00908 
00909     HRESULT SyncRead(
00910                 [in]  LONGLONG llPosition,
00911                 [in]  LONG lLength,
00912                 [out, size_is(lLength)]
00913                       BYTE* pBuffer);
00914 
00915     HRESULT Length(
00916                 [out] LONGLONG* pTotal,
00917                 [out] LONGLONG* pAvailable);
00918 
00919     HRESULT BeginFlush(void);
00920 
00921     HRESULT EndFlush(void);
00922 }
00923 
00924 
00925 [
00926     object,
00927     uuid(56a868ab-0ad4-11ce-b03a-0020af0ba770),
00928     pointer_default(unique)
00929 ]
00930 interface IGraphVersion : IUnknown
00931 {
00932     HRESULT QueryVersion(LONG* pVersion);
00933 }
00934 
00935 [
00936     object,
00937     uuid(56a868ad-0ad4-11ce-b03a-0020af0ba770),
00938     pointer_default(unique)
00939 ]
00940 interface IResourceConsumer : IUnknown
00941 {
00942     HRESULT AcquireResource(
00943         [in] LONG idResource);
00944 
00945     HRESULT ReleaseResource(
00946         [in] LONG idResource);
00947 }
00948 
00949 
00950 [
00951     object,
00952     uuid(56a868ac-0ad4-11ce-b03a-0020af0ba770),
00953     pointer_default(unique)
00954 ]
00955 interface IResourceManager : IUnknown
00956 {
00957     HRESULT Register(
00958         [in] LPCWSTR pName,
00959         [in] LONG   cResource,
00960         [out] LONG* plToken
00961         );
00962 
00963     HRESULT RegisterGroup(
00964         [in] LPCWSTR pName,
00965         [in] LONG cResource,
00966         [in, size_is(cResource)]
00967              LONG* palTokens,
00968         [out] LONG* plToken
00969         );
00970 
00971     HRESULT RequestResource(
00972         [in] LONG idResource,
00973         [in] IUnknown* pFocusObject,
00974         [in] IResourceConsumer* pConsumer
00975         );
00976 
00977     HRESULT NotifyAcquire(
00978         [in] LONG idResource,
00979         [in] IResourceConsumer* pConsumer,
00980         [in] HRESULT hr);
00981 
00982     HRESULT NotifyRelease(
00983         [in] LONG idResource,
00984         [in] IResourceConsumer* pConsumer,
00985         [in] BOOL bStillWant);
00986 
00987     HRESULT CancelRequest(
00988         [in] LONG idResource,
00989         [in] IResourceConsumer* pConsumer);
00990 
00991     HRESULT SetFocus(
00992         [in] IUnknown* pFocusObject);
00993 
00994     HRESULT ReleaseFocus(
00995         [in] IUnknown* pFocusObject);
00996 
00997 }
00998 
00999 cpp_quote("#ifndef _IKsPropertySet_")
01000 cpp_quote("#define _IKsPropertySet_")
01001 cpp_quote("#define KSPROPERTY_SUPPORT_GET  1")
01002 cpp_quote("#define KSPROPERTY_SUPPORT_SET  2")
01003 
01004 [
01005     object,
01006     uuid(31efac30-515c-11d0-a9aa-00aa0061be93),
01007     pointer_default(unique),
01008     local
01009 ]
01010 interface IKsPropertySet : IUnknown
01011 {
01012     HRESULT Set( [in] REFGUID guidPropSet,
01013                  [in] DWORD dwPropID,
01014                  [in, size_is(cbInstanceData)] LPVOID pInstanceData,
01015                  [in] DWORD cbInstanceData,
01016                  [in, size_is(cbPropData)] LPVOID pPropData,
01017                  [in] DWORD cbPropData );
01018 
01019     HRESULT Get( [in] REFGUID guidPropSet,
01020                  [in] DWORD dwPropID,
01021                  [in, size_is(cbInstanceData)] LPVOID pInstanceData,
01022                  [in] DWORD cbInstanceData,
01023                  [out, size_is(cbPropData)] LPVOID pPropData,
01024                  [in] DWORD cbPropData,
01025                  [out] DWORD *pcbReturned );
01026 
01027     HRESULT QuerySupported( [in] REFGUID guidPropSet,
01028                             [in] DWORD dwPropID,
01029                             [out] DWORD *pTypeSupport);
01030 }
01031 cpp_quote("#endif /* _IKsPropertySet_ */")
01032 
01033 [
01034     object,
01035     uuid(36b73883-c2c8-11cf-8b46-00805f6cef60),
01036     pointer_default(unique)
01037 ]
01038 interface ISeekingPassThru : IUnknown
01039 {
01040     HRESULT Init( [in] BOOL bSupportRendering, [in] IPin *pPin);
01041 }
01042 
01043 [
01044     local,
01045     object,
01046     uuid(4d5466b0-a49c-11d1-abe8-00a0c905f375),
01047     pointer_default(unique)
01048 
01049 ]
01050 interface IAMClockAdjust : IUnknown
01051 {
01052     HRESULT SetClockDelta([in] REFERENCE_TIME rtDelta);
01053 };
01054 
01055 
01056 enum _AM_FILTER_MISC_FLAGS
01057 {
01058     AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x1,
01059     AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x2
01060 };
01061 
01062 [
01063     local,
01064     object,
01065     uuid(2dd74950-a890-11d1-abe8-00a0c905f375),
01066     pointer_default(unique)
01067 ]
01068 interface IAMFilterMiscFlags : IUnknown
01069 {
01070     ULONG GetMiscFlags();
01071 };
01072 
01073 [
01074     local,
01075     object,
01076     uuid(56ED71A0-AF5F-11D0-B3F0-00AA003761C5),
01077     pointer_default(unique)
01078 ]
01079 interface IAMBufferNegotiation : IUnknown
01080 {
01081      HRESULT SuggestAllocatorProperties (
01082         [in] const ALLOCATOR_PROPERTIES *pprop);
01083 
01084      HRESULT GetAllocatorProperties (
01085         [out] ALLOCATOR_PROPERTIES *pprop);
01086 
01087 }
01088 
01089 #include <axextendenums.h>
01090 
01091 [
01092     object,
01093     uuid(36b73881-c2c8-11cf-8b46-00805f6cef60),
01094     pointer_default(unique)
01095 ]
01096 interface IAMStreamControl : IUnknown
01097 {
01098     HRESULT StartAt( [in] REFERENCE_TIME * ptStart,
01099                      [in] DWORD dwCookie );
01100     HRESULT StopAt(  [in] REFERENCE_TIME * ptStop,
01101                      [in] BOOL bSendExtra,
01102                      [in] DWORD dwCookie );
01103     HRESULT GetInfo( [out] AM_STREAM_INFO *pInfo);
01104 }
01105 
01106 typedef enum tagTVAudioMode
01107 {
01108     AMTVAUDIO_MODE_MONO     = 0x0001,
01109     AMTVAUDIO_MODE_STEREO   = 0x0002,
01110     AMTVAUDIO_MODE_LANG_A   = 0x0010,
01111     AMTVAUDIO_MODE_LANG_B   = 0x0020,
01112     AMTVAUDIO_MODE_LANG_C   = 0x0040,
01113     AMTVAUDIO_PRESET_STEREO = 0x0200,
01114     AMTVAUDIO_PRESET_LANG_A = 0x1000,
01115     AMTVAUDIO_PRESET_LANG_B = 0x2000,
01116     AMTVAUDIO_PRESET_LANG_C = 0x4000,
01117 }TVAudioMode;

Generated on Sat May 26 2012 04:29:14 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.