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.tx…
==============================================================================
--- 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?…
==============================================================================
--- 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