Author: akhaldi Date: Sun Oct 25 10:00:30 2015 New Revision: 69684
URL: http://svn.reactos.org/svn/reactos?rev=69684&view=rev Log: [PSDK] Import wmsbuffer.idl and wmsdkidl.idl from Wine Staging 1.7.47. CORE-10400
Added: trunk/reactos/include/psdk/wmsbuffer.idl (with props) trunk/reactos/include/psdk/wmsdkidl.idl (with props) Modified: trunk/reactos/include/psdk/CMakeLists.txt
Modified: trunk/reactos/include/psdk/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/CMakeLists.txt... ============================================================================== --- trunk/reactos/include/psdk/CMakeLists.txt [iso-8859-1] (original) +++ trunk/reactos/include/psdk/CMakeLists.txt [iso-8859-1] Sun Oct 25 10:00:30 2015 @@ -126,6 +126,8 @@ wincodecsdk.idl winsxs.idl wmiutils.idl + wmsbuffer.idl + wmsdkidl.idl wtypes.idl wuapi.idl xmldom.idl
Added: trunk/reactos/include/psdk/wmsbuffer.idl URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/wmsbuffer.idl?... ============================================================================== --- trunk/reactos/include/psdk/wmsbuffer.idl (added) +++ trunk/reactos/include/psdk/wmsbuffer.idl [iso-8859-1] Sun Oct 25 10:00:30 2015 @@ -0,0 +1,43 @@ +/* + * Copyright 2012 André Hentschel + * + * 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 "objidl.idl"; + +[ + object, + uuid(e1cd3524-03d7-11d2-9eed-006097d2d7cf), + pointer_default(unique), + local +] +interface INSSBuffer : IUnknown +{ + HRESULT GetLength( + [out] DWORD *pdwLength); + HRESULT SetLength( + [in] DWORD dwLength); + + HRESULT GetMaxLength( + [out] DWORD *pdwLength); + + HRESULT GetBuffer( + [out] BYTE **ppdwBuffer); + + HRESULT GetBufferAndLength( + [out] BYTE **ppdwBuffer, + [out] DWORD *pdwLength); +};
Propchange: trunk/reactos/include/psdk/wmsbuffer.idl ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/include/psdk/wmsdkidl.idl URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/wmsdkidl.idl?r... ============================================================================== --- trunk/reactos/include/psdk/wmsdkidl.idl (added) +++ trunk/reactos/include/psdk/wmsdkidl.idl [iso-8859-1] Sun Oct 25 10:00:30 2015 @@ -0,0 +1,1059 @@ +/* + * Copyright 2012 André Hentschel + * + * 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"; +import "wmsbuffer.idl"; +/* import "drmexternals.idl"; */ + +typedef unsigned __int64 QWORD; + +typedef struct _WMMediaType +{ + GUID majortype; + GUID subtype; + BOOL bFixedSizeSamples; + BOOL bTemporalCompression; + ULONG lSampleSize; + GUID formattype; + IUnknown *pUnk; + ULONG cbFormat; + [size_is(cbFormat)] BYTE *pbFormat; +} WM_MEDIA_TYPE; + +typedef struct _WMWriterStatistics +{ + QWORD qwSampleCount; + QWORD qwByteCount; + QWORD qwDroppedSampleCount; + QWORD qwDroppedByteCount; + DWORD dwCurrentBitrate; + DWORD dwAverageBitrate; + DWORD dwExpectedBitrate; + DWORD dwCurrentSampleRate; + DWORD dwAverageSampleRate; + DWORD dwExpectedSampleRate; +} WM_WRITER_STATISTICS; + +typedef struct _WMWriterStatisticsEx +{ + DWORD dwBitratePlusOverhead; + DWORD dwCurrentSampleDropRateInQueue; + DWORD dwCurrentSampleDropRateInCodec; + DWORD dwCurrentSampleDropRateInMultiplexer; + DWORD dwTotalSampleDropsInQueue; + DWORD dwTotalSampleDropsInCodec; + DWORD dwTotalSampleDropsInMultiplexer; +} WM_WRITER_STATISTICS_EX; + +typedef struct _WMReaderStatistics +{ + DWORD cbSize; + DWORD dwBandwidth; + DWORD cPacketsReceived; + DWORD cPacketsRecovered; + DWORD cPacketsLost; + WORD wQuality; +} WM_READER_STATISTICS; + +typedef struct _WMReaderClientInfo +{ + DWORD cbSize; + WCHAR *wszLang; + WCHAR *wszBrowserUserAgent; + WCHAR *wszBrowserWebPage; + QWORD qwReserved; + LPARAM *pReserved; + WCHAR *wszHostExe; + QWORD qwHostVersion; + WCHAR *wszPlayerUserAgent; +} WM_READER_CLIENTINFO; + +typedef enum WMT_ATTR_DATATYPE +{ + WMT_TYPE_DWORD = 0, + WMT_TYPE_STRING = 1, + WMT_TYPE_BINARY = 2, + WMT_TYPE_BOOL = 3, + WMT_TYPE_QWORD = 4, + WMT_TYPE_WORD = 5, + WMT_TYPE_GUID = 6, +} WMT_ATTR_DATATYPE; + +typedef enum WMT_STATUS +{ + WMT_ERROR = 0, + WMT_OPENED = 1, + WMT_BUFFERING_START = 2, + WMT_BUFFERING_STOP = 3, + WMT_EOF = 4, + WMT_END_OF_FILE = 4, + WMT_END_OF_SEGMENT = 5, + WMT_END_OF_STREAMING = 6, + WMT_LOCATING = 7, + WMT_CONNECTING = 8, + WMT_NO_RIGHTS = 9, + WMT_MISSING_CODEC = 10, + WMT_STARTED = 11, + WMT_STOPPED = 12, + WMT_CLOSED = 13, + WMT_STRIDING = 14, + WMT_TIMER = 15, + WMT_INDEX_PROGRESS = 16, + WMT_SAVEAS_START = 17, + WMT_SAVEAS_STOP = 18, + WMT_NEW_SOURCEFLAGS = 19, + WMT_NEW_METADATA = 20, + WMT_BACKUPRESTORE_BEGIN = 21, + WMT_SOURCE_SWITCH = 22, + WMT_ACQUIRE_LICENSE = 23, + WMT_INDIVIDUALIZE = 24, + WMT_NEEDS_INDIVIDUALIZATION = 25, + WMT_NO_RIGHTS_EX = 26, + WMT_BACKUPRESTORE_END = 27, + WMT_BACKUPRESTORE_CONNECTING = 28, + WMT_BACKUPRESTORE_DISCONNECTING = 29, + WMT_ERROR_WITHURL = 30, + WMT_RESTRICTED_LICENSE = 31, + WMT_CLIENT_CONNECT = 32, + WMT_CLIENT_DISCONNECT = 33, + WMT_NATIVE_OUTPUT_PROPS_CHANGED = 34, + WMT_RECONNECT_START = 35, + WMT_RECONNECT_END = 36, + WMT_CLIENT_CONNECT_EX = 37, + WMT_CLIENT_DISCONNECT_EX = 38, + WMT_SET_FEC_SPAN = 39, + WMT_PREROLL_READY = 40, + WMT_PREROLL_COMPLETE = 41, + WMT_CLIENT_PROPERTIES = 42, + WMT_LICENSEURL_SIGNATURE_STATE = 43, + WMT_INIT_PLAYLIST_BURN = 44, + WMT_TRANSCRYPTOR_INIT = 45, + WMT_TRANSCRYPTOR_SEEKED = 46, + WMT_TRANSCRYPTOR_READ = 47, + WMT_TRANSCRYPTOR_CLOSED = 48, + WMT_PROXIMITY_RESULT = 49, + WMT_PROXIMITY_COMPLETED = 50, + WMT_CONTENT_ENABLER = 51 +} WMT_STATUS; + +typedef enum WMT_STREAM_SELECTION +{ + WMT_OFF = 0, + WMT_CLEANPOINT_ONLY = 1, + WMT_ON = 2, +} WMT_STREAM_SELECTION; + +typedef enum WMT_VERSION +{ + WMT_VER_4_0 = 0x00040000, + WMT_VER_7_0 = 0x00070000, + WMT_VER_8_0 = 0x00080000, + WMT_VER_9_0 = 0x00090000 +} WMT_VERSION; + +typedef enum WMT_PLAY_MODE +{ + WMT_PLAY_MODE_AUTOSELECT, + WMT_PLAY_MODE_LOCAL, + WMT_PLAY_MODE_DOWNLOAD, + WMT_PLAY_MODE_STREAMING +} WMT_PLAY_MODE; + +typedef enum tagWMT_OFFSET_FORMAT +{ + WMT_OFFSET_FORMAT_100NS, + WMT_OFFSET_FORMAT_FRAME_NUMBERS, + WMT_OFFSET_FORMAT_PLAYLIST_OFFSET, + WMT_OFFSET_FORMAT_TIMECODE, + WMT_OFFSET_FORMAT_100NS_APPROXIMATE +} WMT_OFFSET_FORMAT; + +typedef LPCWSTR LPCWSTR_WMSDK_TYPE_SAFE; + +[ + object, + uuid(6d7cdc70-9888-11d3-8edc-00c04f6109cf), + pointer_default(unique), + local +] +interface IWMStatusCallback : IUnknown +{ + HRESULT OnStatus( + [in] WMT_STATUS Status, + [in] HRESULT hr, + [in] WMT_ATTR_DATATYPE dwType, + [in] BYTE *pValue, + [in] void *pvContext); +}; + +[ + object, + uuid(96406bd8-2b2b-11d3-b36b-00c04f6108ff), + pointer_default(unique), + local +] +interface IWMReaderCallback : IWMStatusCallback +{ + HRESULT OnSample( + [in] DWORD dwOutputNum, + [in] QWORD cnsSampleTime, + [in] QWORD cnsSampleDuration, + [in] DWORD dwFlags, + [in] INSSBuffer *pSample, + [in] void *pvContext); +}; + +[ + object, + uuid(96406Bdd-2b2b-11d3-b36b-00c04f6108ff), + pointer_default(unique), + local +] +interface IWMStreamList : IUnknown +{ + HRESULT GetStreams( + [out, size_is(*pcStreams)] WORD *pwStreamNumArray, + [in, out] WORD *pcStreams); + + HRESULT AddStream([in] WORD wStreamNum); + HRESULT RemoveStream([in] WORD wStreamNum); +} + +[ + object, + uuid(96406Bde-2b2b-11d3-b36b-00c04f6108ff), + pointer_default(unique), + local +] +interface IWMMutualExclusion : IWMStreamList +{ + HRESULT GetType([out] GUID *pguidType); + HRESULT SetType([in] REFGUID guidType); +} + +[ + object, + uuid(96406Bdc-2b2b-11d3-b36b-00c04f6108ff), + pointer_default(unique), + local +] +interface IWMStreamConfig : IUnknown +{ + HRESULT GetStreamType([out] GUID *pguidStreamType); + HRESULT GetStreamNumber([out] WORD *pwStreamNum); + HRESULT SetStreamNumber([in] WORD wStreamNum); + + HRESULT GetStreamName( + [out, size_is(*pcchStreamName)] WCHAR *pwszStreamName, + [in, out] WORD *pcchStreamName); + + HRESULT SetStreamName([in] LPCWSTR_WMSDK_TYPE_SAFE pwszStreamName); + + HRESULT GetConnectionName( + [out, size_is(*pcchInputName)] WCHAR *pwszInputName, + [in, out] WORD *pcchInputName); + + HRESULT SetConnectionName([in] LPCWSTR_WMSDK_TYPE_SAFE pwszInputName); + HRESULT GetBitrate([out] DWORD *pdwBitrate); + HRESULT SetBitrate([in] DWORD pdwBitrate); + HRESULT GetBufferWindow([out] DWORD *pmsBufferWindow); + HRESULT SetBufferWindow([in] DWORD msBufferWindow); +} + +[ + object, + uuid(96406bdb-2b2b-11d3-b36b-00c04f6108ff), + pointer_default(unique), + local +] +interface IWMProfile : IUnknown +{ + HRESULT GetVersion( + [out] WMT_VERSION *pdwVersion); + + HRESULT GetName( + [out, size_is(*pcchName)] WCHAR *pwszName, + [in, out] DWORD *pcchName); + + HRESULT SetName( + [in] const WCHAR *pwszName); + + HRESULT GetDescription( + [out, size_is(*pcchDescription)] WCHAR *pwszDescription, + [in, out] DWORD *pcchDescription); + + HRESULT SetDescription( + [in] const WCHAR *pwszDescription); + + HRESULT GetStreamCount( + [out] DWORD *pcStreams); + + HRESULT GetStream( + [in] DWORD dwStreamIndex, + [out] IWMStreamConfig **ppConfig); + + HRESULT GetStreamByNumber( + [in] WORD wStreamNum, + [out] IWMStreamConfig **ppConfig); + + HRESULT RemoveStream( + [in] IWMStreamConfig *pConfig); + + HRESULT RemoveStreamByNumber( + [in] WORD wStreamNum); + + HRESULT AddStream( + [in] IWMStreamConfig *pConfig); + + HRESULT ReconfigStream( + [in] IWMStreamConfig *pConfig); + + HRESULT CreateNewStream( + [in] REFGUID guidStreamType, + [out] IWMStreamConfig **ppConfig); + + HRESULT GetMutualExclusionCount( + [out] DWORD *pcME); + + HRESULT GetMutualExclusion( + [in] DWORD dwMEIndex, + [out] IWMMutualExclusion **ppME); + + HRESULT RemoveMutualExclusion( + [in] IWMMutualExclusion *pME); + + HRESULT AddMutualExclusion( + [in] IWMMutualExclusion *pME); + + HRESULT CreateNewMutualExclusion( + [out] IWMMutualExclusion **ppME); +} + +[ + object, + uuid(d16679f2-6ca0-472d-8d31-2f5d55aee155), + pointer_default(unique), + local +] +interface IWMProfileManager : IUnknown +{ + HRESULT CreateEmptyProfile( + [in] WMT_VERSION dwVersion, + [out] IWMProfile **ppProfile); + + HRESULT LoadProfileByID( + [in] REFGUID guidProfile, + [out] IWMProfile **ppProfile); + + HRESULT LoadProfileByData( + [in] const WCHAR *pwszProfile, + [out] IWMProfile **ppProfile); + + HRESULT SaveProfile( + [in] IWMProfile *pIWMProfile, + [in] WCHAR *pwszProfile, + [in, out] DWORD *pdwLength); + + HRESULT GetSystemProfileCount( + [out] DWORD *pcProfiles); + + HRESULT LoadSystemProfile( + [in] DWORD dwProfileIndex, + [out] IWMProfile **ppProfile); +} + +cpp_quote("HRESULT WINAPI WMCreateProfileManager(IWMProfileManager**);") + +[ + object, + uuid(96406bce-2b2b-11d3-b36b-00c04f6108ff), + pointer_default(unique), + local +] +interface IWMMediaProps : IUnknown +{ + HRESULT GetType( + [out] GUID *pguidType); + + HRESULT GetMediaType( + [out] WM_MEDIA_TYPE *pType, + [in, out] DWORD *pcbType); + + HRESULT SetMediaType( + [in] WM_MEDIA_TYPE *pType); +}; + +[ + object, + uuid(96406bd7-2b2b-11d3-b36b-00c04f6108ff), + pointer_default(unique), + local +] +interface IWMOutputMediaProps : IWMMediaProps +{ + HRESULT GetStreamGroupName( + [out, size_is(*pcchName)] WCHAR *pwszName, + [in, out] WORD *pcchName); + + HRESULT GetConnectionName( + [out, size_is(*pcchName)] WCHAR *pwszName, + [in, out] WORD *pcchName); +}; + +[ + object, + uuid(96406bd9-2b2b-11d3-b36b-00c04f6108ff), + pointer_default(unique), + local +] +interface IWMMetadataEditor : IUnknown +{ + HRESULT Open( + [in] const WCHAR *pwszFilename); + + HRESULT Close(); + + HRESULT Flush(); +}; + +[ + object, + uuid(96406bd6-2b2b-11d3-b36b-00c04f6108ff), + pointer_default(unique), + local +] +interface IWMReader : IUnknown +{ + HRESULT Open( + [in] const WCHAR *pwszURL, + [in] IWMReaderCallback *pCallback, + [in] void *pvContext); + + HRESULT Close(); + + HRESULT GetOutputCount( + [out] DWORD *pcOutputs); + + HRESULT GetOutputProps( + [in] DWORD dwOutputNum, + [out] IWMOutputMediaProps **ppOutput); + + HRESULT SetOutputProps( + [in] DWORD dwOutputNum, + [in] IWMOutputMediaProps *pOutput); + + HRESULT GetOutputFormatCount( + [in] DWORD dwOutputNumber, + [out] DWORD *pcFormats); + + HRESULT GetOutputFormat( + [in] DWORD dwOutputNumber, + [in] DWORD dwFormatNumber, + [out] IWMOutputMediaProps** ppProps); + + HRESULT Start( + [in] QWORD cnsStart, + [in] QWORD cnsDuration, + [in] float fRate, + [in] void *pvContext); + + HRESULT Stop(); + + HRESULT Pause(); + + HRESULT Resume(); +}; + +[ + object, + uuid(e5b7ca9a-0f1c-4f66-9002-74ec50d8b304), + pointer_default(unique), + local +] +interface IWMPlayerHook : IUnknown +{ + HRESULT PreDecode(); +} + +[ + object, + uuid(96406bea-2b2b-11d3-b36b-00c04f6108ff), + pointer_default(unique), + local +] +interface IWMReaderAdvanced : IUnknown +{ + HRESULT SetUserProvidedClock( + [in] BOOL fUserClock); + + HRESULT GetUserProvidedClock( + [out] BOOL *pfUserClock); + + HRESULT DeliverTime( + [in] QWORD cnsTime); + + HRESULT SetManualStreamSelection( + [in] BOOL fSelection); + + HRESULT GetManualStreamSelection( + [out] BOOL *pfSelection); + + HRESULT SetStreamsSelected( + [in] WORD cStreamCount, + [in] WORD *pwStreamNumbers, + [in] WMT_STREAM_SELECTION *pSelections); + + HRESULT GetStreamSelected( + [in] WORD wStreamNum, + [out] WMT_STREAM_SELECTION *pSelection); + + HRESULT SetReceiveSelectionCallbacks( + [in] BOOL fGetCallbacks); + + HRESULT GetReceiveSelectionCallbacks( + [out] BOOL *pfGetCallbacks); + + HRESULT SetReceiveStreamSamples( + [in] WORD wStreamNum, + [in] BOOL fReceiveStreamSamples); + + HRESULT GetReceiveStreamSamples( + [in] WORD wStreamNum, + [out] BOOL *pfReceiveStreamSamples); + + HRESULT SetAllocateForOutput( + [in] DWORD dwOutputNum, + [in] BOOL fAllocate); + + HRESULT GetAllocateForOutput( + [in] DWORD dwOutputNum, + [out] BOOL *pfAllocate); + + HRESULT SetAllocateForStream( + [in] WORD wStreamNum, + [in] BOOL fAllocate); + + HRESULT GetAllocateForStream( + [in] WORD dwSreamNum, + [out] BOOL *pfAllocate); + + HRESULT GetStatistics( + [in, out] WM_READER_STATISTICS *pStatistics); + + HRESULT SetClientInfo( + [in] WM_READER_CLIENTINFO *pClientInfo); + + HRESULT GetMaxOutputSampleSize( + [in] DWORD dwOutput, + [out] DWORD *pcbMax); + + HRESULT GetMaxStreamSampleSize( + [in] WORD wStream, + [out] DWORD *pcbMax); + + HRESULT NotifyLateDelivery( + QWORD cnsLateness); +} + +[ + object, + uuid(ae14a945-b90c-4d0d-9127-80d665f7d73e), + pointer_default(unique), + local +] +interface IWMReaderAdvanced2 : IWMReaderAdvanced +{ + HRESULT SetPlayMode( + [in] WMT_PLAY_MODE Mode); + + HRESULT GetPlayMode( + [out] WMT_PLAY_MODE *pMode); + + HRESULT GetBufferProgress( + [out] DWORD *pdwPercent, + [out] QWORD *pcnsBuffering); + + HRESULT GetDownloadProgress( + [out] DWORD *pdwPercent, + [out] QWORD *pqwBytesDownloaded, + [out] QWORD *pcnsDownload); + + HRESULT GetSaveAsProgress( + [out] DWORD *pdwPercent); + + HRESULT SaveFileAs( + [in] const WCHAR *pwszFilename); + + HRESULT GetProtocolName( + [out, size_is(*pcchProtocol)] WCHAR *pwszProtocol, + [in, out] DWORD *pcchProtocol); + + HRESULT StartAtMarker( + [in] WORD wMarkerIndex, + [in] QWORD cnsDuration, + [in] float fRate, + [in] void *pvContext); + + HRESULT GetOutputSetting( + [in] DWORD dwOutputNum, + [in] LPCWSTR pszName, + [out] WMT_ATTR_DATATYPE *pType, + [out, size_is(*pcbLength)] BYTE *pValue, + [in, out] WORD *pcbLength); + + HRESULT SetOutputSetting( + [in] DWORD dwOutputNum, + [in] LPCWSTR pszName, + [in] WMT_ATTR_DATATYPE Type, + [in, size_is(cbLength)] const BYTE *pValue, + [in] WORD cbLength); + + HRESULT Preroll( + [in] QWORD cnsStart, + [in] QWORD cnsDuration, + [in] float fRate); + + HRESULT SetLogClientID( + [in] BOOL fLogClientID); + + HRESULT GetLogClientID( + [out] BOOL *pfLogClientID); + + HRESULT StopBuffering(); + + HRESULT OpenStream( + [in] IStream *pStream, + [in] IWMReaderCallback *pCallback, + [in] void *pvContext); +} + +[ + object, + uuid(5dc0674b-f04B-4a4e-9f2a-b1afde2c8100), + pointer_default(unique), + local +] +interface IWMReaderAdvanced3 : IWMReaderAdvanced2 +{ + HRESULT StopNetStreaming(); + + HRESULT StartAtPosition( + [in] WORD wStreamNum, + [in] void *pvOffsetStart, + [in] void *pvDuration, + [in] WMT_OFFSET_FORMAT dwOffsetFormat, + [in] float fRate, + [in] void *pvContext); +} + +[ + object, + uuid(945a76a2-12ae-4d48-bd3c-cd1d90399b85), + pointer_default(unique), + local +] +interface IWMReaderAdvanced4 : IWMReaderAdvanced3 +{ + HRESULT GetLanguageCount( + [in] DWORD dwOutputNum, + [out] WORD *pwLanguageCount); + + HRESULT GetLanguage( + [in] DWORD dwOutputNum, + [in] WORD wLanguage, + [out, size_is(*pcchLanguageStringLength)] WCHAR *pwszLanguageString, + [in, out] WORD *pcchLanguageStringLength); + + HRESULT GetMaxSpeedFactor( + [out] double *pdblFactor); + + HRESULT IsUsingFastCache( + [out] BOOL *pfUsingFastCache); + + HRESULT AddLogParam( + [in] LPCWSTR wszNameSpace, + [in] LPCWSTR wszName, + [in] LPCWSTR wszValue); + + HRESULT SendLogParams(); + + HRESULT CanSaveFileAs( + [out] BOOL *pfCanSave); + + HRESULT CancelSaveFileAs(); + + HRESULT GetURL( + [out, size_is(*pcchURL)] WCHAR *pwszURL, + [in, out] DWORD *pcchURL); +} + +[ + object, + uuid(24c44db0-55d1-49ae-a5cc-f13815e36363), + pointer_default(unique), + local +] +interface IWMReaderAdvanced5 : IWMReaderAdvanced4 +{ + HRESULT SetPlayerHook( + [in] DWORD dwOutputNum, + [in] IWMPlayerHook *pHook); +} + +[ + object, + uuid(18a2e7f8-428f-4acd-8a00-e64639bc93de), + pointer_default(unique), + local +] +interface IWMReaderAdvanced6 : IWMReaderAdvanced5 +{ + HRESULT SetProtectStreamSamples( + [in, size_is(cbCertificate)] BYTE *pbCertificate, + [in] DWORD cbCertificate, + [in] DWORD dwCertificateType, + [in] DWORD dwFlags, + [out, size_is(*pcbInitializationVector)] BYTE *pbInitializationVector, + [in, out] DWORD *pcbInitializationVector); +} + +[ + object, + uuid(9397f121-7705-4dc9-b049-98b698188414), + pointer_default( unique ), + local +] +interface IWMSyncReader : IUnknown +{ + HRESULT Open( + [in] const WCHAR *pwszFilename); + + HRESULT Close(); + + HRESULT SetRange( + [in] QWORD cnsStartTime, + [in] LONGLONG cnsDuration); + + HRESULT SetRangeByFrame( + [in] WORD wStreamNum, + [in] QWORD qwFrameNumber, + [in] LONGLONG cFramesToRead); + + HRESULT GetNextSample( + [in] WORD wStreamNum, + [out] INSSBuffer **ppSample, + [out] QWORD *pcnsSampleTime, + [out] QWORD *pcnsDuration, + [out] DWORD *pdwFlags, + [out] DWORD *pdwOutputNum, + [out] WORD *pwStreamNum); + + HRESULT SetStreamsSelected( + [in] WORD cStreamCount, + [in] WORD *pwStreamNumbers, + [in] WMT_STREAM_SELECTION *pSelections); + + HRESULT GetStreamSelected( + [in] WORD wStreamNum, + [out] WMT_STREAM_SELECTION *pSelection); + + HRESULT SetReadStreamSamples( + [in] WORD wStreamNum, + [in] BOOL fCompressed); + + HRESULT GetReadStreamSamples( + [in] WORD wStreamNum, + [out] BOOL *pfCompressed); + + HRESULT GetOutputSetting( + [in] DWORD dwOutputNum, + [in] LPCWSTR pszName, + [out] WMT_ATTR_DATATYPE *pType, + [out, size_is(*pcbLength)] BYTE *pValue, + [in, out] WORD *pcbLength); + + HRESULT SetOutputSetting( + [in] DWORD dwOutputNum, + [in] LPCWSTR pszName, + [in] WMT_ATTR_DATATYPE Type, + [in, size_is(cbLength)] const BYTE *pValue, + [in] WORD cbLength); + + HRESULT GetOutputCount( + [out] DWORD *pcOutputs); + + HRESULT GetOutputProps( + [in] DWORD dwOutputNum, + [out] IWMOutputMediaProps **ppOutput); + + HRESULT SetOutputProps( + [in] DWORD dwOutputNum, + [in] IWMOutputMediaProps *pOutput); + + HRESULT GetOutputFormatCount( + [in] DWORD dwOutputNum, + [out] DWORD *pcFormats); + + HRESULT GetOutputFormat( + [in] DWORD dwOutputNum, + [in] DWORD dwFormatNum, + [out] IWMOutputMediaProps **ppProps); + + HRESULT GetOutputNumberForStream( + [in] WORD wStreamNum, + [out] DWORD *pdwOutputNum); + + HRESULT GetStreamNumberForOutput( + [in] DWORD dwOutputNum, + [out] WORD *pwStreamNum); + + HRESULT GetMaxOutputSampleSize( + [in] DWORD dwOutput, + [out] DWORD *pcbMax); + + HRESULT GetMaxStreamSampleSize( + [in] WORD wStream, + [out] DWORD *pcbMax); + + HRESULT OpenStream( + [in] IStream *pStream); +}; + +[ + object, + uuid(96406bd5-2b2b-11d3-b36b-00c04f6108ff), + pointer_default(unique), + local +] +interface IWMInputMediaProps : IWMMediaProps +{ + HRESULT GetConnectionName( + [out, size_is(*pcchName)] WCHAR *pwszName, + [in, out] WORD *pcchName); + + HRESULT GetGroupName( + [out, size_is(*pcchName)] WCHAR *pwszName, + [in, out] WORD *pcchName); +} + +[ + object, + uuid(96406be4-2b2b-11d3-b36b-00c04f6108ff), + pointer_default(unique), + local +] +interface IWMWriterSink : IUnknown +{ + HRESULT OnHeader( + [in] INSSBuffer *pHeader); + + HRESULT IsRealTime( + [out] BOOL *pfRealTime); + + HRESULT AllocateDataUnit( + [in] DWORD cbDataUnit, + [out] INSSBuffer **ppDataUnit); + + HRESULT OnDataUnit( + [in] INSSBuffer *pDataUnit); + + HRESULT OnEndWriting(); +} + +[ + object, + uuid(96406bd4-2b2b-11d3-b36b-00c04f6108ff), + pointer_default(unique), + local +] +interface IWMWriter : IUnknown +{ + HRESULT SetProfileByID( + [in] REFGUID guidProfile); + + HRESULT SetProfile( + [in] IWMProfile *pProfile); + + HRESULT SetOutputFilename( + [in] const WCHAR *pwszFilename); + + HRESULT GetInputCount( + [out] DWORD *pcInputs); + + HRESULT GetInputProps( + [in] DWORD dwInputNum, + [out] IWMInputMediaProps **ppInput); + + HRESULT SetInputProps( + [in] DWORD dwInputNum, + [in] IWMInputMediaProps *pInput); + + HRESULT GetInputFormatCount( + [in] DWORD dwInputNumber, + [out] DWORD *pcFormats); + + HRESULT GetInputFormat( + [in] DWORD dwInputNumber, + [in] DWORD dwFormatNumber, + [out] IWMInputMediaProps **pProps); + + HRESULT BeginWriting(); + + HRESULT EndWriting(); + + HRESULT AllocateSample( + [in] DWORD dwSampleSize, + [out] INSSBuffer **ppSample); + + HRESULT WriteSample( + [in] DWORD dwInputNum, + [in] QWORD cnsSampleTime, + [in] DWORD dwFlags, + [in] INSSBuffer *pSample); + + HRESULT Flush(); +} + +[ + object, + uuid(96406be3-2b2b-11d3-b36b-00C04f6108ff), + pointer_default(unique), + local +] +interface IWMWriterAdvanced : IUnknown +{ + HRESULT GetSinkCount( + [out] DWORD *pcSinks); + + HRESULT GetSink( + [in] DWORD dwSinkNum, + [out] IWMWriterSink **ppSink); + + HRESULT AddSink( + [in] IWMWriterSink *pSink); + + HRESULT RemoveSink( + [in] IWMWriterSink *pSink); + + HRESULT WriteStreamSample( + [in] WORD wStreamNum, + [in] QWORD cnsSampleTime, + [in] DWORD msSampleSendTime, + [in] QWORD cnsSampleDuration, + [in] DWORD dwFlags, + [in] INSSBuffer *pSample); + + HRESULT SetLiveSource( + BOOL fIsLiveSource); + + HRESULT IsRealTime( + [out] BOOL *pfRealTime); + + HRESULT GetWriterTime( + [out] QWORD *pCurrentTime); + + HRESULT GetStatistics( + [in] WORD wStreamNum, + [out] WM_WRITER_STATISTICS *pStats); + + HRESULT SetSyncTolerance( + [in] DWORD msWindow); + + HRESULT GetSyncTolerance( + [out] DWORD *pmsWindow); +} + +[ + object, + uuid(962dc1ec-c046-4db8-9cc7-26ceae500817), + pointer_default(unique), + local +] +interface IWMWriterAdvanced2 : IWMWriterAdvanced +{ + HRESULT GetInputSetting( + [in] DWORD dwInputNum, + [in] LPCWSTR pszName, + [out] WMT_ATTR_DATATYPE *pType, + [out, size_is(*pcbLength)] BYTE *pValue, + [in, out] WORD *pcbLength); + + HRESULT SetInputSetting( + [in] DWORD dwInputNum, + [in] LPCWSTR pszName, + [in] WMT_ATTR_DATATYPE Type, + [in, size_is(cbLength)] const BYTE *pValue, + [in] WORD cbLength); +} + +[ + object, + uuid(2cd6492d-7c37-4e76-9d3b-59261183a22e), + pointer_default(unique), + local +] +interface IWMWriterAdvanced3 : IWMWriterAdvanced2 +{ + HRESULT GetStatisticsEx( + [in] WORD wStreamNum, + [out] WM_WRITER_STATISTICS_EX *pStats); + + HRESULT SetNonBlocking(); +} + +cpp_quote("HRESULT WINAPI WMCreateWriter(IUnknown*,IWMWriter**);") +cpp_quote("HRESULT WINAPI WMCreateReader(IUnknown*,DWORD,IWMReader**);") + +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_Base, 0x00000000,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIATYPE_Video, 0x73646976,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB1, 0xe436eb78,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB4, 0xe436eb79,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB8, 0xe436eb7a,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB565, 0xe436eb7b,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB555, 0xe436eb7c,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB24, 0xe436eb7d,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_RGB32, 0xe436eb7e,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_I420, 0x30323449,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_IYUV, 0x56555949,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_YV12, 0x32315659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_YUY2, 0x32595559,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_P422, 0x32323450,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_UYVY, 0x59565955,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_YVYU, 0x55595659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_YVU9, 0x39555659,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_VIDEOIMAGE, 0x1d4a45f2,0xe5f6,0x4b44,0x83,0x88,0xf0,0xae,0x5c,0x0e,0x0c,0x37);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MP43, 0x3334504d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MP4S, 0x5334504d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_M4S2, 0x3253344d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMV1, 0x31564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMV2, 0x32564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MSS1, 0x3153534d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MPEG2_VIDEO, 0xe06d8026,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea);") +cpp_quote("EXTERN_GUID(WMMEDIATYPE_Audio, 0x73647561,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_PCM, 0x00000001,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_DRM, 0x00000009,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMAudioV9, 0x00000162,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMAudio_Lossless, 0x00000163,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_MSS2, 0x3253534d,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMSP1, 0x0000000a,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMSP2, 0x0000000b,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMV3, 0x33564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMVP, 0x50564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WVP2, 0x32505657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WMVA, 0x41564d57,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);") +cpp_quote("EXTERN_GUID(WMMEDIASUBTYPE_WVC1, 0x31435657,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71);")
Propchange: trunk/reactos/include/psdk/wmsdkidl.idl ------------------------------------------------------------------------------ svn:eol-style = native