Jacek Caban : wmsdkidl.idl: Added IWMReaderAdvanced* declarations.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Mar 30 10:12:59 CDT 2015


Module: wine
Branch: master
Commit: 292d7bdf0f1438ad91bb72bf7edc6e70338c03c1
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=292d7bdf0f1438ad91bb72bf7edc6e70338c03c1

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Mar 27 17:57:37 2015 +0100

wmsdkidl.idl: Added IWMReaderAdvanced* declarations.

---

 include/wmsdkidl.idl | 293 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 293 insertions(+)

diff --git a/include/wmsdkidl.idl b/include/wmsdkidl.idl
index 1618f86..dc584fc 100644
--- a/include/wmsdkidl.idl
+++ b/include/wmsdkidl.idl
@@ -60,6 +60,29 @@ typedef struct _WMWriterStatisticsEx
     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,
@@ -143,6 +166,23 @@ typedef enum WMT_VERSION
     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;
 
 [
@@ -441,6 +481,259 @@ interface IWMReader : IUnknown
 
 [
     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




More information about the wine-cvs mailing list