diff --git a/reactos/include/dxsdk/Videoacc.idl b/reactos/include/dxsdk/Videoacc.idl index faefa96d0a3..930a0ffc15c 100644 --- a/reactos/include/dxsdk/Videoacc.idl +++ b/reactos/include/dxsdk/Videoacc.idl @@ -2,8 +2,6 @@ import "unknwn.idl"; cpp_quote("#if 0") -typedef void* LPVOID; -typedef void* LPGUID; typedef void* LPDIRECTDRAWSURFACE; typedef void* LPDDPIXELFORMAT; typedef void* LPAMVAInternalMemInfo; diff --git a/reactos/include/dxsdk/amstream.idl b/reactos/include/dxsdk/amstream.idl index 2519669bc52..1433f7a5102 100644 --- a/reactos/include/dxsdk/amstream.idl +++ b/reactos/include/dxsdk/amstream.idl @@ -1,3 +1,20 @@ +/* + * Copyright 2004 Christian Costa + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ import "unknwn.idl"; import "mmstream.idl"; @@ -9,61 +26,62 @@ cpp_quote("#include ") cpp_quote("#include ") cpp_quote("#include ") +cpp_quote("#if 0") +interface IDirectDraw; +interface IDirectDrawSurface; +cpp_quote("#endif") + interface IAMMultiMediaStream; interface IAMMediaStream; interface IMediaStreamFilter; -interface IDirectDraw; -interface IDirectDrawSurface; interface IAMMediaTypeStream; interface IAMMediaTypeSample; -enum -{ - AMMSF_NOGRAPHTHREAD = 0x00000001 +enum { + AMMSF_NOGRAPHTHREAD = 0x00000001 }; -enum -{ - AMMSF_ADDDEFAULTRENDERER = 0x00000001, - AMMSF_CREATEPEER = 0x00000002, - AMMSF_STOPIFNOSAMPLES = 0x00000004, - AMMSF_NOSTALL = 0x00000008 +enum { + AMMSF_ADDDEFAULTRENDERER = 0x00000001, + AMMSF_CREATEPEER = 0x00000002, + AMMSF_STOPIFNOSAMPLES = 0x00000004, + AMMSF_NOSTALL = 0x00000008 }; -enum -{ - AMMSF_RENDERTYPEMASK = 0x00000003, - AMMSF_RENDERTOEXISTING = 0x00000000, - AMMSF_RENDERALLSTREAMS = 0x00000001, - AMMSF_NORENDER = 0x00000002, - - AMMSF_NOCLOCK = 0x00000004, - AMMSF_RUN = 0x00000008 +enum { + AMMSF_RENDERTYPEMASK = 0x00000003, + AMMSF_RENDERTOEXISTING = 0x00000000, + AMMSF_RENDERALLSTREAMS = 0x00000001, + AMMSF_NORENDER = 0x00000002, + AMMSF_NOCLOCK = 0x00000004, + AMMSF_RUN = 0x00000008 }; -typedef [v1_enum] enum -{ - Disabled = 0, - ReadData = 1, - RenderData = 2 + +typedef [v1_enum] enum { + Disabled = 0, + ReadData = 1, + RenderData = 2 } OUTPUT_STATE; - +/* [ object, uuid(7DB01C96-C0C3-11d0-8FF1-00C04FD9189D), dual, +helpstring("IDirectShowStream Interface"), pointer_default(unique) ] interface IDirectShowStream : IDispatch { - [propget, id(1)] HRESULT FileName([out, retval] BSTR *pVal); - [propput, id(1)] HRESULT FileName([in] BSTR newVal); - [propget, id(2)] HRESULT Video([out, retval] OUTPUT_STATE *pVal); - [propput, id(2)] HRESULT Video([in] OUTPUT_STATE newVal); - [propget, id(3)] HRESULT Audio([out, retval] OUTPUT_STATE *pVal); - [propput, id(3)] HRESULT Audio([in] OUTPUT_STATE newVal); + [propget, id(1), helpstring("property FileName")] HRESULT FileName([out, retval] BSTR *pVal); + [propput, id(1), helpstring("property FileName")] HRESULT FileName([in] BSTR newVal); + [propget, id(2), helpstring("property Video")] HRESULT Video([out, retval] OUTPUT_STATE *pVal); + [propput, id(2), helpstring("propetry Video")] HRESULT Video([in] OUTPUT_STATE newVal); + [propget, id(3), helpstring("property Audio")] HRESULT Audio([out, retval] OUTPUT_STATE *pVal); + [propput, id(3), helpstring("propetry Audio")] HRESULT Audio([in] OUTPUT_STATE newVal); }; +*/ [ object, @@ -72,15 +90,37 @@ pointer_default(unique) ] interface IAMMultiMediaStream : IMultiMediaStream { - HRESULT Initialize([in] STREAM_TYPE StreamType, [in] DWORD dwFlags, [in] IGraphBuilder *pFilterGraph); - HRESULT GetFilterGraph([out] IGraphBuilder **ppGraphBuilder); - HRESULT GetFilter([out] IMediaStreamFilter **ppFilter); - HRESULT AddMediaStream([in] IUnknown *pStreamObject, [in] const MSPID *PurposeId, [in] DWORD dwFlags, [out] IMediaStream **ppNewStream); - HRESULT OpenFile([in] LPCWSTR pszFileName, [in] DWORD dwFlags); - HRESULT OpenMoniker([in] IBindCtx *pCtx, [in] IMoniker *pMoniker, [in] DWORD dwFlags); - HRESULT Render([in] DWORD dwFlags); + HRESULT Initialize( + [in] STREAM_TYPE StreamType, + [in] DWORD dwFlags, + [in, optional] IGraphBuilder *pFilterGraph); + + HRESULT GetFilterGraph( + [out] IGraphBuilder **ppGraphBuilder); + + HRESULT GetFilter( + [out] IMediaStreamFilter **ppFilter); + + HRESULT AddMediaStream( + [in, optional] IUnknown *pStreamObject, + [in, optional] const MSPID *PurposeId, + [in] DWORD dwFlags, + [out, optional] IMediaStream **ppNewStream); + + HRESULT OpenFile( + [in] LPCWSTR pszFileName, + [in] DWORD dwFlags); + + HRESULT OpenMoniker( + [in] IBindCtx *pCtx, + [in] IMoniker *pMoniker, + [in] DWORD dwFlags); + + HRESULT Render( + [in] DWORD dwFlags); } + [ object, uuid(BEBE595D-9A6F-11d0-8FDE-00C04FD9189D), @@ -88,12 +128,25 @@ pointer_default(unique) ] interface IAMMediaStream : IMediaStream { - HRESULT Initialize([in] IUnknown *pSourceObject, [in] DWORD dwFlags, [in] REFMSPID PurposeId, [in] const STREAM_TYPE StreamType); - HRESULT SetState([in] FILTER_STATE State); - HRESULT JoinAMMultiMediaStream([in] IAMMultiMediaStream *pAMMultiMediaStream); - HRESULT JoinFilter([in] IMediaStreamFilter *pMediaStreamFilter); - HRESULT JoinFilterGraph([in] IFilterGraph *pFilterGraph); -}; + HRESULT Initialize( + [in, optional] IUnknown *pSourceObject, + [in] DWORD dwFlags, + [in] REFMSPID PurposeId, + [in] const STREAM_TYPE StreamType); + + HRESULT SetState( + [in] FILTER_STATE State); + + HRESULT JoinAMMultiMediaStream( + [in] IAMMultiMediaStream *pAMMultiMediaStream); + + HRESULT JoinFilter( + [in] IMediaStreamFilter *pMediaStreamFilter); + + HRESULT JoinFilterGraph( + [in] IFilterGraph *pFilterGraph); +} + [ object, @@ -103,16 +156,35 @@ pointer_default(unique) ] interface IMediaStreamFilter : IBaseFilter { - HRESULT AddMediaStream([in] IAMMediaStream *pAMMediaStream); - HRESULT GetMediaStream([in] REFMSPID idPurpose, [out] IMediaStream **ppMediaStream); - HRESULT EnumMediaStreams([in] long Index, [out] IMediaStream **ppMediaStream); - HRESULT SupportSeeking([in] BOOL bRenderer); - HRESULT ReferenceTimeToStreamTime([in] [out] REFERENCE_TIME *pTime); - HRESULT GetCurrentStreamTime([out] REFERENCE_TIME *pCurrentStreamTime); - HRESULT WaitUntil([in] REFERENCE_TIME WaitStreamTime); - HRESULT Flush([in] BOOL bCancelEOS); - HRESULT EndOfStream(); -}; + HRESULT AddMediaStream( + [in] IAMMediaStream *pAMMediaStream); + + HRESULT GetMediaStream( + [in] REFMSPID idPurpose, + [out] IMediaStream **ppMediaStream); + + HRESULT EnumMediaStreams( + [in] long Index, + [out] IMediaStream **ppMediaStream); + + HRESULT SupportSeeking( + [in] BOOL bRenderer); + + HRESULT ReferenceTimeToStreamTime( + [in] [out] REFERENCE_TIME *pTime); + + HRESULT GetCurrentStreamTime( + [out] REFERENCE_TIME *pCurrentStreamTime); + + HRESULT WaitUntil( + [in] REFERENCE_TIME WaitStreamTime); + + HRESULT Flush( + [in] BOOL bCancelEOS); + + HRESULT EndOfStream(); +} + [ object, @@ -122,8 +194,9 @@ pointer_default(unique) ] interface IDirectDrawMediaSampleAllocator : IUnknown { - HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw); -}; + HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw); +} + [ object, @@ -133,9 +206,13 @@ pointer_default(unique) ] interface IDirectDrawMediaSample : IUnknown { - HRESULT GetSurfaceAndReleaseLock([out] IDirectDrawSurface **ppDirectDrawSurface, [out] RECT * pRect); - HRESULT LockMediaSamplePointer(void); -}; + HRESULT GetSurfaceAndReleaseLock( + [out] IDirectDrawSurface **ppDirectDrawSurface, + [out] RECT * pRect); + + HRESULT LockMediaSamplePointer(void); +} + [ object, @@ -146,19 +223,30 @@ pointer_default(unique) interface IAMMediaTypeStream : IMediaStream { - HRESULT GetFormat([out] AM_MEDIA_TYPE * pMediaType, [in] DWORD dwFlags); - HRESULT SetFormat([in] AM_MEDIA_TYPE * pMediaType, [in] DWORD dwFlags); - HRESULT CreateSample([in] long lSampleSize, [in] BYTE * pbBuffer, [in] DWORD dwFlags, [in] IUnknown *pUnkOuter, [out] IAMMediaTypeSample ** ppAMMediaTypeSample); - HRESULT GetStreamAllocatorRequirements([out] ALLOCATOR_PROPERTIES *pProps); - HRESULT SetStreamAllocatorRequirements([in] ALLOCATOR_PROPERTIES *pProps); -}; + HRESULT GetFormat( + [out] AM_MEDIA_TYPE * pMediaType, + [in] DWORD dwFlags); + + HRESULT SetFormat( + [in] AM_MEDIA_TYPE * pMediaType, + [in] DWORD dwFlags); + + HRESULT CreateSample( + [in] long lSampleSize, + [in, optional] BYTE * pbBuffer, + [in] DWORD dwFlags, + [in, optional] IUnknown *pUnkOuter, + [out] IAMMediaTypeSample ** ppAMMediaTypeSample); + + HRESULT GetStreamAllocatorRequirements( + [out] ALLOCATOR_PROPERTIES *pProps); + + HRESULT SetStreamAllocatorRequirements( + [in] ALLOCATOR_PROPERTIES *pProps); +} - - - - - [ +[ object, local, uuid(AB6B4AFB-F6E4-11d0-900D-00C04FD9189D), @@ -166,47 +254,66 @@ pointer_default(unique) ] interface IAMMediaTypeSample : IStreamSample { - HRESULT SetPointer([in] BYTE *pBuffer, [in] long lSize); - HRESULT GetPointer([out] BYTE ** ppBuffer); - long GetSize(void); - HRESULT GetTime([out] REFERENCE_TIME * pTimeStart, [out] REFERENCE_TIME * pTimeEnd); - HRESULT SetTime([in] REFERENCE_TIME * pTimeStart, [in] REFERENCE_TIME * pTimeEnd); - HRESULT IsSyncPoint(void); - HRESULT SetSyncPoint(BOOL bIsSyncPoint); - HRESULT IsPreroll(void); - HRESULT SetPreroll(BOOL bIsPreroll); - long GetActualDataLength(void); - HRESULT SetActualDataLength(long Len); - HRESULT GetMediaType(AM_MEDIA_TYPE **ppMediaType); - HRESULT SetMediaType(AM_MEDIA_TYPE *pMediaType); - HRESULT IsDiscontinuity(void); - HRESULT SetDiscontinuity(BOOL bDiscontinuity); - HRESULT GetMediaTime([out] LONGLONG * pTimeStart, [out] LONGLONG * pTimeEnd); - HRESULT SetMediaTime([in] LONGLONG * pTimeStart, [in] LONGLONG * pTimeEnd); -}; + HRESULT SetPointer( + [in] BYTE *pBuffer, + [in] long lSize); + + HRESULT GetPointer( + [out] BYTE ** ppBuffer); + + long GetSize(void); + + HRESULT GetTime( + [out] REFERENCE_TIME * pTimeStart, + [out] REFERENCE_TIME * pTimeEnd); + + HRESULT SetTime( + [in] REFERENCE_TIME * pTimeStart, + [in] REFERENCE_TIME * pTimeEnd); + + HRESULT IsSyncPoint(void); + + HRESULT SetSyncPoint( + BOOL bIsSyncPoint); + + HRESULT IsPreroll(void); + + HRESULT SetPreroll( + BOOL bIsPreroll); + + long GetActualDataLength(void); + + HRESULT SetActualDataLength(long Len); + + HRESULT GetMediaType( + AM_MEDIA_TYPE **ppMediaType); + + HRESULT SetMediaType( + AM_MEDIA_TYPE *pMediaType); + + HRESULT IsDiscontinuity(void); + + HRESULT SetDiscontinuity( + BOOL bDiscontinuity); + + HRESULT GetMediaTime( + [out] LONGLONG * pTimeStart, + [out] LONGLONG * pTimeEnd); + + HRESULT SetMediaTime( + [in] LONGLONG * pTimeStart, + [in] LONGLONG * pTimeEnd); +} [ - uuid(4E6CDE29-C0C4-11d0-8FF1-00C04FD9189D) + uuid(49C47CE5-9BA4-11d0-8212-00C04FC32C45) ] - -library DirectShowStreamLib +coclass AMMultiMediaStream { - importlib("stdole2.tlb"); - [ - uuid(49c47ce5-9ba4-11d0-8212-00c04fc32c45) - ] - coclass AMMultiMediaStream - { - [default] dispinterface IDirectShowStream; - }; -}; - -cpp_quote("#ifndef __cplusplus") -cpp_quote("EXTERN_C const CLSID CLSID_AMMultiMediaStream;") -cpp_quote("#endif") - -cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") -cpp_quote("DEFINE_GUID(CLSID_AMAudioStream, 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") -cpp_quote("DEFINE_GUID(CLSID_AMAudioData, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") -cpp_quote("DEFINE_GUID(CLSID_AMMediaTypeStream, 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0xd, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);") + [default] dispinterface IDirectShowStream; +} +cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") +cpp_quote("DEFINE_GUID(CLSID_AMAudioStream, 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") +cpp_quote("DEFINE_GUID(CLSID_AMAudioData, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);") +cpp_quote("DEFINE_GUID(CLSID_AMMediaTypeStream, 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);") diff --git a/reactos/include/dxsdk/austream.idl b/reactos/include/dxsdk/austream.idl index 873df7debc4..bdfd11f7b44 100644 --- a/reactos/include/dxsdk/austream.idl +++ b/reactos/include/dxsdk/austream.idl @@ -1,8 +1,24 @@ +/* + * Copyright 2004 Christian Costa + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ import "unknwn.idl"; import "mmstream.idl"; -// hack cpp_quote("#if 0") typedef struct tWAVEFORMATEX WAVEFORMATEX; cpp_quote ("#endif") @@ -18,39 +34,22 @@ local, uuid(f7537560-a3be-11d0-8212-00c04fc32c45), pointer_default(unique) ] - interface IAudioMediaStream : IMediaStream { - HRESULT GetFormat([out] WAVEFORMATEX *pWaveFormatCurrent); - HRESULT SetFormat([in] const WAVEFORMATEX *lpWaveFormat); - HRESULT CreateSample([in] IAudioData *pAudioData, [in] DWORD dwFlags, [out] IAudioStreamSample **ppSample); + HRESULT GetFormat( + [out] /*[optional]*/ WAVEFORMATEX *pWaveFormatCurrent + ); + + HRESULT SetFormat( + [in] const WAVEFORMATEX *lpWaveFormat); + + HRESULT CreateSample( + [in] IAudioData *pAudioData, + [in] DWORD dwFlags, + [out] IAudioStreamSample **ppSample + ); } -[ -object, -local, -uuid(54c719c0-af60-11d0-8212-00c04fc32c45), -pointer_default(unique) -] - -interface IAudioData : IMemoryData -{ - HRESULT GetFormat([out] WAVEFORMATEX *pWaveFormatCurrent); - HRESULT SetFormat([in] const WAVEFORMATEX *lpWaveFormat); -} - -[ -object, -local, -uuid(327fc560-af60-11d0-8212-00c04fc32c45), -pointer_default(unique) -] -interface IMemoryData : IUnknown -{ - HRESULT SetBuffer([in] DWORD cbSize, [in] BYTE *pbData, [in] DWORD dwFlags); - HRESULT GetInfo([out] DWORD *pdwLength, [out] BYTE **ppbData, [out] DWORD *pcbActualData); - HRESULT SetActual([in] DWORD cbDataValid); -} [ object, @@ -60,5 +59,50 @@ pointer_default(unique) ] interface IAudioStreamSample : IStreamSample { - HRESULT GetAudioData([out] IAudioData **ppAudio); + HRESULT GetAudioData( + [out] IAudioData **ppAudio + ); +} + + +[ +object, +local, +uuid(327fc560-af60-11d0-8212-00c04fc32c45), +pointer_default(unique) +] +interface IMemoryData : IUnknown +{ + HRESULT SetBuffer( + [in] DWORD cbSize, + [in] BYTE *pbData, + [in] DWORD dwFlags + ); + + HRESULT GetInfo( + [out] DWORD *pdwLength, + [out] BYTE **ppbData, + [out] DWORD *pcbActualData + ); + HRESULT SetActual( + [in] DWORD cbDataValid + ); +} + + +[ +object, +local, +uuid(54c719c0-af60-11d0-8212-00c04fc32c45), +pointer_default(unique) +] +interface IAudioData : IMemoryData +{ + HRESULT GetFormat( + [out] /*[optional]*/ WAVEFORMATEX *pWaveFormatCurrent + ); + + HRESULT SetFormat( + [in] const WAVEFORMATEX *lpWaveFormat + ); } diff --git a/reactos/include/dxsdk/ddstream.idl b/reactos/include/dxsdk/ddstream.idl index 3b02dcf926c..644401559ac 100644 --- a/reactos/include/dxsdk/ddstream.idl +++ b/reactos/include/dxsdk/ddstream.idl @@ -1,36 +1,40 @@ +/* + * Copyright 2004 Christian Costa + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ import "unknwn.idl"; import "mmstream.idl"; -cpp_quote("#if 0") +cpp_quote("#ifndef __WINE_DDRAW_H") typedef void * LPDDSURFACEDESC; typedef struct tDDSURFACEDESC DDSURFACEDESC; -cpp_quote("#endif") -cpp_quote("#include ") - -enum -{ - DDSFF_PROGRESSIVERENDER = 0x00000001 -}; - interface IDirectDraw; interface IDirectDrawSurface; interface IDirectDrawPalette; +cpp_quote("#endif") +cpp_quote("#include ") + +enum { + DDSFF_PROGRESSIVERENDER = 0x00000001 +}; + interface IDirectDrawMediaStream; interface IDirectDrawStreamSample; - [ -object, -local, -uuid(F4104FCF-9A70-11d0-8FDE-00C04FD9189D), -pointer_default(unique) -] -interface IDirectDrawStreamSample : IStreamSample -{ - HRESULT GetSurface([out] IDirectDrawSurface ** ppDirectDrawSurface, [out] RECT * pRect); - HRESULT SetRect([in] const RECT * pRect); -}; - [ object, local, @@ -39,12 +43,46 @@ pointer_default(unique) ] interface IDirectDrawMediaStream : IMediaStream { - HRESULT GetFormat([out] DDSURFACEDESC *pDDSDCurrent, [out] IDirectDrawPalette **ppDirectDrawPalette, [out] DDSURFACEDESC *pDDSDDesired, [out] DWORD *pdwFlags); - HRESULT SetFormat([in] const DDSURFACEDESC *pDDSurfaceDesc, [in] IDirectDrawPalette *pDirectDrawPalette); - HRESULT GetDirectDraw([out] IDirectDraw **ppDirectDraw); - HRESULT SetDirectDraw([in] IDirectDraw *pDirectDraw); - HRESULT CreateSample([in] IDirectDrawSurface *pSurface, [in] const RECT *pRect, [in] DWORD dwFlags, [out]IDirectDrawStreamSample **ppSample); - HRESULT GetTimePerFrame([out] STREAM_TIME *pFrameTime); -}; + HRESULT GetFormat( + [out, optional] DDSURFACEDESC *pDDSDCurrent, + [out, optional] IDirectDrawPalette **ppDirectDrawPalette, + [out, optional] DDSURFACEDESC *pDDSDDesired, + [out, optional] DWORD *pdwFlags); + + HRESULT SetFormat( + [in] const DDSURFACEDESC *pDDSurfaceDesc, + [in, optional] IDirectDrawPalette *pDirectDrawPalette); + + HRESULT GetDirectDraw( + [out] IDirectDraw **ppDirectDraw); + + HRESULT SetDirectDraw( + [in] IDirectDraw *pDirectDraw); + + HRESULT CreateSample( + [in, optional] IDirectDrawSurface *pSurface, + [in, optional] const RECT *pRect, + [in] DWORD dwFlags, + [out] IDirectDrawStreamSample **ppSample); + + HRESULT GetTimePerFrame( + [out] STREAM_TIME *pFrameTime); +} +[ +object, +local, +uuid(F4104FCF-9A70-11d0-8FDE-00C04FD9189D), +pointer_default(unique) +] +interface IDirectDrawStreamSample : IStreamSample +{ + HRESULT GetSurface( + [out, optional] IDirectDrawSurface ** ppDirectDrawSurface, + [out, optional] RECT * pRect); + + HRESULT SetRect( + [in] const RECT * pRect); + +} diff --git a/reactos/include/dxsdk/devenum.idl b/reactos/include/dxsdk/devenum.idl index 2ba403fe62e..046d2b50f18 100644 --- a/reactos/include/dxsdk/devenum.idl +++ b/reactos/include/dxsdk/devenum.idl @@ -1,3 +1,22 @@ +/* + * Copyright (C) 2002 Robert Shearman + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +import "oaidl.idl"; cpp_quote("#define CDEF_CLASS_DEFAULT 0x0001") cpp_quote("#define CDEF_BYPASS_CLASS_MANAGER 0x0002") @@ -11,9 +30,8 @@ cpp_quote("#define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008") ] interface ICreateDevEnum : IUnknown { - import "oaidl.idl"; - - HRESULT CreateClassEnumerator( [in] REFCLSID clsidDeviceClass, - [out] IEnumMoniker ** ppEnumMoniker, - [in] DWORD dwFlags); + HRESULT CreateClassEnumerator( + [in] REFCLSID clsidDeviceClass, + [out] IEnumMoniker ** ppEnumMoniker, + [in] DWORD dwFlags); } diff --git a/reactos/include/dxsdk/dvdif.idl b/reactos/include/dxsdk/dvdif.idl deleted file mode 100644 index 56a39c85a4f..00000000000 --- a/reactos/include/dxsdk/dvdif.idl +++ /dev/null @@ -1,6 +0,0 @@ -import "unknwn.idl"; -import "objidl.idl"; - -cpp_quote("#include ") - -// fixme it is not completed \ No newline at end of file diff --git a/reactos/include/dxsdk/dxsdk.rbuild b/reactos/include/dxsdk/dxsdk.rbuild index 410a7cf46fd..f106e57dea2 100644 --- a/reactos/include/dxsdk/dxsdk.rbuild +++ b/reactos/include/dxsdk/dxsdk.rbuild @@ -5,7 +5,6 @@ austream.idl ddstream.idl dmodshow.idl - dyngraph.idl mixerocx.idl mediaobj.idl medparam.idl @@ -14,8 +13,6 @@ tvratings.idl vidcap.idl Videoacc.idl - Vmrender.idl strmif.idl - dvdif.idl devenum.idl diff --git a/reactos/include/dxsdk/dyngraph.idl b/reactos/include/dxsdk/dyngraph.idl index 15a43081dc0..7330cb914bc 100644 --- a/reactos/include/dxsdk/dyngraph.idl +++ b/reactos/include/dxsdk/dyngraph.idl @@ -1,25 +1,59 @@ - - - cpp_quote("#if 0") -import "unknwn.idl"; -typedef int IBaseFilter ; -typedef int IEnumFilters; -typedef int IPin; -typedef int REFERENCE_TIME; -typedef int AM_MEDIA_TYPE; -cpp_quote("#endif") +/* + * Copyright (C) 2002 Robert Shearman + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ interface IPinConnection; interface IPinFlowControl; interface IGraphConfig; interface IGraphConfigCallback; +[ + local, + object, + uuid(4a9a62d3-27d4-403d-91e9-89f540e55534), + pointer_default(unique) +] +interface IPinConnection : IUnknown +{ + HRESULT DynamicQueryAccept([in] const AM_MEDIA_TYPE *pmt); + + HRESULT NotifyEndOfStream([in] HANDLE hNotifyEvent); + + HRESULT IsEndPin(); + + HRESULT DynamicDisconnect(); +} + +[ + local, + object, + uuid(c56e9858-dbf3-4f6b-8119-384af2060deb), + pointer_default(unique) +] +interface IPinFlowControl : IUnknown +{ + HRESULT Block([in] DWORD dwBlockFlags, [in] HANDLE hEvent); +} + enum _AM_PIN_FLOW_CONTROL_BLOCK_FLAGS { AM_PIN_FLOW_CONTROL_BLOCK = 0x00000001, }; - typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS { AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x00000001, @@ -27,7 +61,6 @@ typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x00000004 } AM_GRAPH_CONFIG_RECONNECT_FLAGS; - enum _REM_FILTER_FLAGS { REMFILTERF_LEAVECONNECTED = 0x00000001 @@ -36,61 +69,55 @@ enum _REM_FILTER_FLAGS typedef enum _AM_FILTER_FLAGS { AM_FILTER_FLAGS_REMOVABLE = 0x00000001 - } AM_FILTER_FLAGS; - +} AM_FILTER_FLAGS; [ - local, - object, - uuid(4a9a62d3-27d4-403d-91e9-89f540e55534), - pointer_default(unique) -] -interface IPinConnection : IUnknown -{ - HRESULT DynamicQueryAccept([in] const AM_MEDIA_TYPE *pmt); - HRESULT NotifyEndOfStream([in] HANDLE hNotifyEvent); - HRESULT IsEndPin(); - HRESULT DynamicDisconnect(); -}; - -[ - local, - object, - uuid(c56e9858-dbf3-4f6b-8119-384af2060deb), - pointer_default(unique) -] -interface IPinFlowControl : IUnknown -{ - HRESULT Block([in] DWORD dwBlockFlags, [in] HANDLE hEvent); -} - - - -[ - local, - object, - uuid(03A1EB8E-32BF-4245-8502-114D08A9CB88), - pointer_default(unique) + local, + object, + uuid(03A1EB8E-32BF-4245-8502-114D08A9CB88), + pointer_default(unique) ] interface IGraphConfig : IUnknown { - HRESULT Reconnect([in] IPin *pOutputPin, [in] IPin *pInputPin, [in] const AM_MEDIA_TYPE *pmtFirstConnection, IBaseFilter *pUsingFilter, [in] HANDLE hAbortEvent, [in] DWORD dwFlags); - HRESULT Reconfigure([in] IGraphConfigCallback *pCallback, [in] PVOID pvContext, [in] DWORD dwFlags, [in] HANDLE hAbortEvent); + HRESULT Reconnect( + [in] IPin *pOutputPin, + [in] IPin *pInputPin, + [in] const AM_MEDIA_TYPE *pmtFirstConnection, + [in] IBaseFilter *pUsingFilter, + [in] HANDLE hAbortEvent, + [in] DWORD dwFlags); + + HRESULT Reconfigure( + [in] IGraphConfigCallback *pCallback, + [in] PVOID pvContext, + [in] DWORD dwFlags, + [in] HANDLE hAbortEvent); + HRESULT AddFilterToCache([in] IBaseFilter *pFilter); + HRESULT EnumCacheFilter([out] IEnumFilters **pEnum); + HRESULT RemoveFilterFromCache([in]IBaseFilter *pFilter); + HRESULT GetStartTime([out] REFERENCE_TIME *prtStart); - HRESULT PushThroughData([in] IPin *pOutputPin, [in] IPinConnection *pConnection, [in] HANDLE hEventAbort); + + HRESULT PushThroughData( + [in] IPin *pOutputPin, + [in] IPinConnection *pConnection, + [in] HANDLE hEventAbort); + HRESULT SetFilterFlags([in] IBaseFilter *pFilter, [in] DWORD dwFlags); + HRESULT GetFilterFlags([in] IBaseFilter *pFilter, [out] DWORD *pdwFlags); - HRESULT RemoveFilterEx( [in] IBaseFilter *pFilter, DWORD Flags ); + + HRESULT RemoveFilterEx([in] IBaseFilter *pFilter, DWORD Flags); } [ - local, - object, - uuid(ade0fd60-d19d-11d2-abf6-00a0c905f375), - pointer_default(unique) + local, + object, + uuid(ade0fd60-d19d-11d2-abf6-00a0c905f375), + pointer_default(unique) ] interface IGraphConfigCallback : IUnknown { @@ -105,12 +132,19 @@ interface IGraphConfigCallback : IUnknown ] interface IFilterChain : IUnknown { - HRESULT StartChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter ); - HRESULT PauseChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter ); - HRESULT StopChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter ); - HRESULT RemoveChain( [in] IBaseFilter *pStartFilter, [in] IBaseFilter *pEndFilter ); + HRESULT StartChain( + [in] IBaseFilter *pStartFilter, + [in] IBaseFilter *pEndFilter); + + HRESULT PauseChain( + [in] IBaseFilter *pStartFilter, + [in] IBaseFilter *pEndFilter); + + HRESULT StopChain( + [in] IBaseFilter *pStartFilter, + [in] IBaseFilter *pEndFilter); + + HRESULT RemoveChain( + [in] IBaseFilter *pStartFilter, + [in] IBaseFilter *pEndFilter); } - - - - diff --git a/reactos/include/dxsdk/mediaobj.idl b/reactos/include/dxsdk/mediaobj.idl index 76a06ac68c7..a8700dbae91 100644 --- a/reactos/include/dxsdk/mediaobj.idl +++ b/reactos/include/dxsdk/mediaobj.idl @@ -1,189 +1,74 @@ +/* + * Copyright (C) 2002 Alexandre Julliard + * Copyright (C) 2004 Vincent Béron + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +cpp_quote("#if !defined(COM_NO_WINDOWS_H) && !defined(__WINESRC__)") +cpp_quote("#include ") +cpp_quote("#include ") +cpp_quote("#endif") import "unknwn.idl"; import "objidl.idl"; +interface IDMOQualityControl; +interface IDMOVideoOutputOptimizations; +interface IMediaBuffer; +interface IMediaObject; +interface IMediaObjectInPlace; -cpp_quote("#ifdef __strmif_h__") -cpp_quote("typedef AM_MEDIA_TYPE DMO_MEDIA_TYPE;") -cpp_quote("#else") typedef struct _DMOMediaType { - GUID majortype; - GUID subtype; - BOOL bFixedSizeSamples; - BOOL bTemporalCompression; - ULONG lSampleSize; - GUID formattype; + GUID majortype; + GUID subtype; + BOOL bFixedSizeSamples; + BOOL bTemporalCompression; + ULONG lSampleSize; + GUID formattype; IUnknown *pUnk; - ULONG cbFormat; - [size_is(cbFormat)] BYTE * pbFormat; + ULONG cbFormat; + BYTE *pbFormat; } DMO_MEDIA_TYPE; -typedef LONGLONG REFERENCE_TIME; -cpp_quote("#endif") - - - -enum _DMO_INPUT_DATA_BUFFER_FLAGS -{ - DMO_INPUT_DATA_BUFFERF_SYNCPOINT = 0x00000001, - DMO_INPUT_DATA_BUFFERF_TIME = 0x00000002, - DMO_INPUT_DATA_BUFFERF_TIMELENGTH = 0x00000004 -}; - -enum _DMO_OUTPUT_DATA_BUFFER_FLAGS -{ - DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT = 0x00000001, - DMO_OUTPUT_DATA_BUFFERF_TIME = 0x00000002, - DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH = 0x00000004, - DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE = 0x01000000 -}; - -enum _DMO_INPUT_STATUS_FLAGS -{ - DMO_INPUT_STATUSF_ACCEPT_DATA = 0x00000001 -}; - -enum _DMO_INPUT_STREAM_INFO_FLAGS -{ - DMO_INPUT_STREAMF_WHOLE_SAMPLES = 0x00000001, - DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x00000002, - DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x00000004, - DMO_INPUT_STREAMF_HOLDS_BUFFERS = 0x00000008 -}; - -enum _DMO_OUTPUT_STREAM_INFO_FLAGS -{ - DMO_OUTPUT_STREAMF_WHOLE_SAMPLES = 0x00000001, - DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER = 0x00000002, - DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE = 0x00000004, - DMO_OUTPUT_STREAMF_DISCARDABLE = 0x00000008, - DMO_OUTPUT_STREAMF_OPTIONAL = 0x00000010 -}; - -enum _DMO_SET_TYPE_FLAGS -{ - DMO_SET_TYPEF_TEST_ONLY = 0x00000001, - DMO_SET_TYPEF_CLEAR = 0x00000002 -}; - -enum _DMO_PROCESS_OUTPUT_FLAGS -{ - DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x00000001 -}; - -enum _DMO_INPLACE_PROCESS_FLAGS -{ - DMO_INPLACE_NORMAL = 0x00000000, - DMO_INPLACE_ZERO = 0x00000001 -}; - -enum _DMO_QUALITY_STATUS_FLAGS -{ - DMO_QUALITY_STATUS_ENABLED = 0x00000001 -}; - -enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS -{ - DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x00000001 -}; - +/***************************************************************************** + * IEnumDMO interface + */ [ object, - uuid(59eff8b9-938c-4a26-82f2-95cb84cdc837) -] -interface IMediaBuffer : IUnknown -{ - HRESULT SetLength(DWORD cbLength); - HRESULT GetMaxLength([out] DWORD *pcbMaxLength); - HRESULT GetBufferAndLength([out] BYTE **ppBuffer, [out] DWORD *pcbLength); -} - - -typedef struct _DMO_OUTPUT_DATA_BUFFER -{ - IMediaBuffer *pBuffer; - DWORD dwStatus; - REFERENCE_TIME rtTimestamp; - REFERENCE_TIME rtTimelength; -} DMO_OUTPUT_DATA_BUFFER, *PDMO_OUTPUT_DATA_BUFFER; - - -[ - object, - uuid(d8ad0f58-5494-4102-97c5-ec798e59bcf4) -] -interface IMediaObject : IUnknown -{ - HRESULT GetStreamCount([out] DWORD *pcInputStreams, [out] DWORD *pcOutputStreams); - HRESULT GetInputStreamInfo(DWORD dwInputStreamIndex, [out] DWORD *pdwFlags); - HRESULT GetOutputStreamInfo(DWORD dwOutputStreamIndex, [out] DWORD *pdwFlags); - HRESULT GetInputType(DWORD dwInputStreamIndex, DWORD dwTypeIndex, [out] DMO_MEDIA_TYPE *pmt); - HRESULT GetOutputType(DWORD dwOutputStreamIndex, DWORD dwTypeIndex, [out] DMO_MEDIA_TYPE *pmt); - HRESULT SetInputType(DWORD dwInputStreamIndex, [in] const DMO_MEDIA_TYPE *pmt, DWORD dwFlags); - HRESULT SetOutputType(DWORD dwOutputStreamIndex, [in] const DMO_MEDIA_TYPE *pmt, DWORD dwFlags); - HRESULT GetInputCurrentType(DWORD dwInputStreamIndex, [out] DMO_MEDIA_TYPE *pmt); - HRESULT GetOutputCurrentType(DWORD dwOutputStreamIndex, [out] DMO_MEDIA_TYPE *pmt); - HRESULT GetInputSizeInfo(DWORD dwInputStreamIndex, [out] DWORD *pcbSize, [out] DWORD *pcbMaxLookahead, [out] DWORD *pcbAlignment); - HRESULT GetOutputSizeInfo(DWORD dwOutputStreamIndex, [out] DWORD *pcbSize, [out] DWORD *pcbAlignment); - HRESULT GetInputMaxLatency(DWORD dwInputStreamIndex, [out] REFERENCE_TIME *prtMaxLatency); - HRESULT SetInputMaxLatency(DWORD dwInputStreamIndex, REFERENCE_TIME rtMaxLatency); - HRESULT Flush(); - HRESULT Discontinuity(DWORD dwInputStreamIndex); - HRESULT AllocateStreamingResources(); - HRESULT FreeStreamingResources(); - HRESULT GetInputStatus(DWORD dwInputStreamIndex, [out] DWORD *dwFlags); - HRESULT ProcessInput(DWORD dwInputStreamIndex, IMediaBuffer *pBuffer, DWORD dwFlags, REFERENCE_TIME rtTimestamp, REFERENCE_TIME rtTimelength); - HRESULT ProcessOutput(DWORD dwFlags,DWORD cOutputBufferCount, [in,out,size_is(cOutputBufferCount)] - DMO_OUTPUT_DATA_BUFFER *pOutputBuffers, [out] DWORD *pdwStatus); - HRESULT Lock(LONG bLock); -}; - - -[ -object, -uuid(2c3cd98a-2bfa-4a53-9c27-5249ba64ba0f) + uuid(2C3CD98A-2BFA-4A53-9C27-5249BA64BA0F), + pointer_default(unique) ] interface IEnumDMO : IUnknown { - HRESULT Next(DWORD cItemsToFetch, [out, size_is(cItemsToFetch), length_is(*pcItemsFetched)] CLSID *pCLSID, [out, size_is(cItemsToFetch), length_is(*pcItemsFetched), string] WCHAR **Names, [out] DWORD *pcItemsFetched); - HRESULT Skip(DWORD cItemsToSkip); - HRESULT Reset(void); - HRESULT Clone([out] IEnumDMO **ppEnum); -} + [local] + HRESULT Next( + [in] DWORD cItemsToFetch, + [out] CLSID *pCLSID, + [out] WCHAR **Names, + [out] DWORD *pcItemsFetched + ); -[ -object, -uuid(651b9ad0-0fc7-4aa9-9538-d89931010741) -] -interface IMediaObjectInPlace : IUnknown -{ - HRESULT Process([in] ULONG ulSize, [in,out,size_is(ulSize)] BYTE* pData, [in] REFERENCE_TIME refTimeStart, [in] DWORD dwFlags); - HRESULT Clone([out] IMediaObjectInPlace **ppMediaObject); - HRESULT GetLatency([out] REFERENCE_TIME *pLatencyTime); -} + HRESULT Skip( + [in] DWORD cItemsToSkip + ); -[ -object, -uuid(65abea96-cf36-453f-af8a-705e98f16260) -] -interface IDMOQualityControl : IUnknown -{ - HRESULT SetNow([in] REFERENCE_TIME rtNow); - HRESULT SetStatus([in] DWORD dwFlags); - HRESULT GetStatus([out] DWORD *pdwFlags); -} + HRESULT Reset(); -[ -object, -uuid(be8f4f4e-5b16-4d29-b350-7f6b5d9298ac) -] -interface IDMOVideoOutputOptimizations : IUnknown -{ - HRESULT QueryOperationModePreferences (ULONG ulOutputStreamIndex, DWORD *pdwRequestedCapabilities); - HRESULT SetOperationMode (ULONG ulOutputStreamIndex, DWORD dwEnabledFeatures); - HRESULT GetCurrentOperationMode (ULONG ulOutputStreamIndex, DWORD *pdwEnabledFeatures); - HRESULT GetCurrentSampleRequirements (ULONG ulOutputStreamIndex, DWORD *pdwRequestedFeatures + HRESULT Clone( + [out] IEnumDMO **ppEnum ); } - diff --git a/reactos/include/dxsdk/medparam.idl b/reactos/include/dxsdk/medparam.idl index b73aa4eb55e..333e974720d 100644 --- a/reactos/include/dxsdk/medparam.idl +++ b/reactos/include/dxsdk/medparam.idl @@ -48,7 +48,6 @@ typedef struct _MP_PARAMINFO WCHAR szLabel[32]; } MP_PARAMINFO; -typedef DWORD DWORD; const DWORD DWORD_ALLPARAMS = -1; typedef DWORD MP_TIMEDATA; diff --git a/reactos/include/dxsdk/mmstream.idl b/reactos/include/dxsdk/mmstream.idl index 7c6cb450ec3..9730ee2bf84 100644 --- a/reactos/include/dxsdk/mmstream.idl +++ b/reactos/include/dxsdk/mmstream.idl @@ -1,35 +1,45 @@ - +/* + * Copyright 2004 Christian Costa + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ import "unknwn.idl"; -cpp_quote("DEFINE_GUID(MSPID_PrimaryVideo, 0xA35FF56A, 0x9FDA, 0x11D0, 0x8F, 0xDF, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D);") -cpp_quote("DEFINE_GUID(MSPID_PrimaryAudio, 0xA35FF56B, 0x9FDA, 0x11D0, 0x8F, 0xDF, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0x9D);") +cpp_quote("#define MS_ERROR_CODE(x) MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)") +cpp_quote("#define MS_SUCCESS_CODE(x) MAKE_HRESULT(0, FACILITY_ITF, x)") +cpp_quote("#define MS_S_PENDING MS_SUCCESS_CODE(1)") +cpp_quote("#define MS_S_NOUPDATE MS_SUCCESS_CODE(2)") +cpp_quote("#define MS_S_ENDOFSTREAM MS_SUCCESS_CODE(3)") -cpp_quote("#define MS_ERROR_CODE(x) MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)") -cpp_quote("#define MS_SUCCESS_CODE(x) MAKE_HRESULT(0, FACILITY_ITF, x)") -cpp_quote("#define MS_S_PENDING MS_SUCCESS_CODE(1)") -cpp_quote("#define MS_S_NOUPDATE MS_SUCCESS_CODE(2)") -cpp_quote("#define MS_S_ENDOFSTREAM MS_SUCCESS_CODE(3)") -cpp_quote("#define MS_E_SAMPLEALLOC MS_ERROR_CODE(1)") -cpp_quote("#define MS_E_PURPOSEID MS_ERROR_CODE(2)") -cpp_quote("#define MS_E_NOSTREAM MS_ERROR_CODE(3)") -cpp_quote("#define MS_E_NOSEEKING MS_ERROR_CODE(4)") -cpp_quote("#define MS_E_INCOMPATIBLE MS_ERROR_CODE(5)") -cpp_quote("#define MS_E_BUSY MS_ERROR_CODE(6)") -cpp_quote("#define MS_E_NOTINIT MS_ERROR_CODE(7)") -cpp_quote("#define MS_E_SOURCEALREADYDEFINED MS_ERROR_CODE(8)") -cpp_quote("#define MS_E_INVALIDSTREAMTYPE MS_ERROR_CODE(9)") -cpp_quote("#define MS_E_NOTRUNNING MS_ERROR_CODE(10)") +cpp_quote("#define MS_E_SAMPLEALLOC MS_ERROR_CODE(1)") +cpp_quote("#define MS_E_PURPOSEID MS_ERROR_CODE(2)") +cpp_quote("#define MS_E_NOSTREAM MS_ERROR_CODE(3)") +cpp_quote("#define MS_E_NOSEEKING MS_ERROR_CODE(4)") +cpp_quote("#define MS_E_INCOMPATIBLE MS_ERROR_CODE(5)") +cpp_quote("#define MS_E_BUSY MS_ERROR_CODE(6)") +cpp_quote("#define MS_E_NOTINIT MS_ERROR_CODE(7)") +cpp_quote("#define MS_E_SOURCEALREADYDEFINED MS_ERROR_CODE(8)") +cpp_quote("#define MS_E_INVALIDSTREAMTYPE MS_ERROR_CODE(9)") +cpp_quote("#define MS_E_NOTRUNNING MS_ERROR_CODE(10)") +cpp_quote("DEFINE_GUID(MSPID_PrimaryVideo, 0xa35ff56a, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);") +cpp_quote("DEFINE_GUID(MSPID_PrimaryAudio, 0xa35ff56b, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);") - -// FIXME HACK remove the // for two cpp_quote -cpp_quote("#if 0"); - typedef LPVOID PAPCFUNC; -cpp_quote("#endif"); - -cpp_quote("#if(_WIN32_WINNT < 0x0400)") -cpp_quote("typedef void (__stdcall * PAPCFUNC)(DWORD_PTR dwParam);") +cpp_quote("#if 0") +typedef void* PAPCFUNC; cpp_quote("#endif") typedef LONGLONG STREAM_TIME; @@ -37,62 +47,78 @@ typedef LONGLONG STREAM_TIME; typedef GUID MSPID; typedef REFGUID REFMSPID; -enum -{ - MMSSF_HASCLOCK = 0x00000001, - MMSSF_SUPPORTSEEK = 0x00000002, - MMSSF_ASYNCHRONOUS = 0x00000004 -}; - -typedef enum -{ - STREAMTYPE_READ = 0, - STREAMTYPE_WRITE = 1, - STREAMTYPE_TRANSFORM= 2 +typedef enum { + STREAMTYPE_READ = 0, + STREAMTYPE_WRITE = 1, + STREAMTYPE_TRANSFORM = 2 } STREAM_TYPE; -enum -{ - SSUPDATE_ASYNC = 0x00000001, - SSUPDATE_CONTINUOUS = 0x00000002 -}; +typedef enum { + STREAMSTATE_STOP = 0, + STREAMSTATE_RUN = 1 +} STREAM_STATE; -typedef enum -{ - COMPSTAT_NOUPDATEOK = 0x00000001, - COMPSTAT_WAIT = 0x00000002, - COMPSTAT_ABORT = 0x00000004 + +typedef enum { + COMPSTAT_NOUPDATEOK = 0x00000001, + COMPSTAT_WAIT = 0x00000002, + COMPSTAT_ABORT = 0x00000004 } COMPLETION_STATUS_FLAGS; +enum { + MMSSF_HASCLOCK = 0x00000001, + MMSSF_SUPPORTSEEK = 0x00000002, + MMSSF_ASYNCHRONOUS = 0x00000004 +}; -typedef enum -{ - STREAMSTATE_STOP = 0, - STREAMSTATE_RUN = 1 -} STREAM_STATE; +enum { + SSUPDATE_ASYNC = 0x00000001, + SSUPDATE_CONTINUOUS = 0x00000002 +}; interface IMultiMediaStream; interface IMediaStream; interface IStreamSample; + [ object, local, uuid(B502D1BC-9A57-11d0-8FDE-00C04FD9189D), pointer_default(unique) ] -interface IMultiMediaStream : IUnknown -{ - HRESULT GetInformation([out] DWORD *pdwFlags, [out] STREAM_TYPE *pStreamType); - HRESULT GetMediaStream([in] REFMSPID idPurpose, [out] IMediaStream **ppMediaStream); - HRESULT EnumMediaStreams([in] long Index, [out] IMediaStream **ppMediaStream); - HRESULT GetState([out] STREAM_STATE *pCurrentState); - HRESULT SetState([in] STREAM_STATE NewState); - HRESULT GetTime([out] STREAM_TIME *pCurrentTime); - HRESULT GetDuration([out] STREAM_TIME *pDuration); - HRESULT Seek([in] STREAM_TIME SeekTime); - HRESULT GetEndOfStreamEventHandle([out] HANDLE *phEOS); -}; +interface IMultiMediaStream : IUnknown { + + HRESULT GetInformation( + [out, optional] DWORD *pdwFlags, + [out, optional] STREAM_TYPE *pStreamType); + + HRESULT GetMediaStream( + [in] REFMSPID idPurpose, + [out] IMediaStream **ppMediaStream); + + HRESULT EnumMediaStreams( + [in] long Index, + [out] IMediaStream **ppMediaStream); + + HRESULT GetState( + [out] STREAM_STATE *pCurrentState); + + HRESULT SetState( + [in] STREAM_STATE NewState); + + HRESULT GetTime( + [out] STREAM_TIME *pCurrentTime); + + HRESULT GetDuration( + [out] STREAM_TIME *pDuration); + + HRESULT Seek( + [in] STREAM_TIME SeekTime); + + HRESULT GetEndOfStreamEventHandle( + [out] HANDLE *phEOS); +} [ @@ -100,15 +126,31 @@ object, uuid(B502D1BD-9A57-11d0-8FDE-00C04FD9189D), pointer_default(unique) ] -interface IMediaStream : IUnknown -{ - HRESULT GetMultiMediaStream([out] IMultiMediaStream **ppMultiMediaStream); - HRESULT GetInformation([out] MSPID *pPurposeId, [out] STREAM_TYPE *pType); - HRESULT SetSameFormat([in] IMediaStream *pStreamThatHasDesiredFormat, [in] DWORD dwFlags); - HRESULT AllocateSample([in] DWORD dwFlags, [out] IStreamSample **ppSample); - HRESULT CreateSharedSample([in] IStreamSample *pExistingSample, [in] DWORD dwFlags, [out] IStreamSample **ppNewSample); - HRESULT SendEndOfStream(DWORD dwFlags); -}; +interface IMediaStream : IUnknown { + + HRESULT GetMultiMediaStream( + [out] IMultiMediaStream **ppMultiMediaStream); + + HRESULT GetInformation( + [out, optional] MSPID *pPurposeId, + [out, optional] STREAM_TYPE *pType); + + HRESULT SetSameFormat( + [in] IMediaStream *pStreamThatHasDesiredFormat, + [in] DWORD dwFlags); + + HRESULT AllocateSample( + [in] DWORD dwFlags, + [out] IStreamSample **ppSample); + + HRESULT CreateSharedSample( + [in] IStreamSample *pExistingSample, + [in] DWORD dwFlags, + [out] IStreamSample **ppNewSample); + + HRESULT SendEndOfStream(DWORD dwFlags); +} + [ object, @@ -116,13 +158,27 @@ local, uuid(B502D1BE-9A57-11d0-8FDE-00C04FD9189D), pointer_default(unique) ] +interface IStreamSample : IUnknown { + + HRESULT GetMediaStream( + [in] IMediaStream **ppMediaStream); -interface IStreamSample : IUnknown -{ - HRESULT GetMediaStream([in] IMediaStream **ppMediaStream); - HRESULT GetSampleTimes([out] STREAM_TIME * pStartTime, [out] STREAM_TIME * pEndTime, [out] STREAM_TIME * pCurrentTime); - HRESULT SetSampleTimes([in] const STREAM_TIME *pStartTime, [in] const STREAM_TIME *pEndTime); - HRESULT Update([in] DWORD dwFlags, [in] HANDLE hEvent, [in] PAPCFUNC pfnAPC, [in] DWORD_PTR dwAPCData); - HRESULT CompletionStatus( [in] DWORD dwFlags, [in] DWORD dwMilliseconds); -}; + HRESULT GetSampleTimes( + [out, optional] STREAM_TIME * pStartTime, + [out, optional] STREAM_TIME * pEndTime, + [out, optional] STREAM_TIME * pCurrentTime); + HRESULT SetSampleTimes( + [in, optional] const STREAM_TIME *pStartTime, + [in, optional] const STREAM_TIME *pEndTime); + + HRESULT Update( + [in] DWORD dwFlags, + [in, optional] HANDLE hEvent, + [in, optional] PAPCFUNC pfnAPC, + [in, optional] DWORD dwAPCData); + + HRESULT CompletionStatus( + [in] DWORD dwFlags, + [in, optional] DWORD dwMilliseconds); +} diff --git a/reactos/include/dxsdk/strmif.idl b/reactos/include/dxsdk/strmif.idl index 4c802d0dcb1..a1cad6ba00e 100644 --- a/reactos/include/dxsdk/strmif.idl +++ b/reactos/include/dxsdk/strmif.idl @@ -1,9 +1,30 @@ +/* + * Copyright (C) 2002 Robert Shearman + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ -import "unknwn.idl"; import "objidl.idl"; + #include + #include + #include -#include + #include -#include "Vmrender.idl" + +/* TODO: #include */ +#include