[v3 PATCH 2/3] include/wmsdkidl.idl: Add more interfaces
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Wed May 10 01:32:28 CDT 2017
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
include/wmsdkidl.idl | 400 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 400 insertions(+)
diff --git a/include/wmsdkidl.idl b/include/wmsdkidl.idl
index 433ec464b1..2de2b4300f 100644
--- a/include/wmsdkidl.idl
+++ b/include/wmsdkidl.idl
@@ -190,6 +190,35 @@ typedef enum WMT_CODEC_INFO_TYPE
WMT_CODECINFO_UNKNOWN = 0xFFFFFFFF,
} WMT_CODEC_INFO_TYPE;
+typedef enum WMT_PROXY_SETTINGS
+{
+ WMT_PROXY_SETTING_NONE = 0,
+ WMT_PROXY_SETTING_MANUAL = 1,
+ WMT_PROXY_SETTING_AUTO = 2,
+ WMT_PROXY_SETTING_BROWSER = 3,
+ WMT_PROXY_SETTING_MAX
+} WMT_PROXY_SETTINGS;
+
+typedef enum tagWMT_STORAGE_FORMAT
+{
+ WMT_Storage_Format_MP3 = 0,
+ WMT_Storage_Format_V1 = 1
+} WMT_STORAGE_FORMAT;
+
+#include <pshpack2.h>
+typedef struct _WMStreamPrioritizationRecord
+{
+ WORD wStreamNumber;
+ BOOL fMandatory;
+} WM_STREAM_PRIORITY_RECORD;
+#include <poppack.h>
+
+typedef struct _WM_PORT_NUMBER_RANGE
+{
+ WORD wPortBegin;
+ WORD wPortEnd;
+} WM_PORT_NUMBER_RANGE;
+
typedef LPCWSTR LPCWSTR_WMSDK_TYPE_SAFE;
[
@@ -255,6 +284,43 @@ interface IWMMutualExclusion : IWMStreamList
[
object,
+ uuid(ad694af1-f8d9-42f8-bc47-70311b0c4f9e),
+ pointer_default(unique),
+ local
+]
+interface IWMBandwidthSharing : IWMStreamList
+{
+ HRESULT GetType([out] GUID *guid);
+ HRESULT SetType([in] REFGUID guid);
+
+ HRESULT GetBandwidth(
+ [out] DWORD *bitrate,
+ [out] DWORD *buffer);
+
+ HRESULT SetBandwidth(
+ [in] DWORD bitrate,
+ [in] DWORD buffer);
+};
+
+[
+ object,
+ uuid(8c1c6090-f9a8-4748-8ec3-dd1108ba1e77),
+ pointer_default(unique),
+ local
+]
+interface IWMStreamPrioritization : IUnknown
+{
+ HRESULT GetPriorityRecords(
+ [out] WM_STREAM_PRIORITY_RECORD *arrray,
+ [in, out] WORD *records);
+
+ HRESULT SetPriorityRecords(
+ [in] WM_STREAM_PRIORITY_RECORD *arrray,
+ [in] WORD records);
+}
+
+[
+ object,
uuid(96406Bdc-2b2b-11d3-b36b-00c04f6108ff),
pointer_default(unique),
local
@@ -353,6 +419,53 @@ interface IWMProfile : IUnknown
[
object,
+ uuid(07e72d33-d94e-4be7-8843-60ae5ff7e5f5),
+ pointer_default(unique),
+ local
+]
+interface IWMProfile2 : IWMProfile
+{
+ HRESULT GetProfileID([out] GUID *guid);
+}
+
+[
+ object,
+ uuid(00ef96cc-a461-4546-8bcd-c9a28f0e06f5),
+ pointer_default(unique),
+ local
+]
+interface IWMProfile3 : IWMProfile2
+{
+ HRESULT GetStorageFormat([out] WMT_STORAGE_FORMAT *storage);
+ HRESULT SetStorageFormat([in] WMT_STORAGE_FORMAT storage);
+
+ HRESULT GetBandwidthSharingCount([out] DWORD *count);
+
+ HRESULT GetBandwidthSharing(
+ [in] DWORD index,
+ [out] IWMBandwidthSharing **bandwidth);
+
+ HRESULT RemoveBandwidthSharing([in] IWMBandwidthSharing *bandwidth);
+
+ HRESULT AddBandwidthSharing([in] IWMBandwidthSharing *bandwidth);
+
+ HRESULT CreateNewBandwidthSharing([out] IWMBandwidthSharing **bandwidth);
+
+ HRESULT GetStreamPrioritization([out] IWMStreamPrioritization **stream);
+
+ HRESULT SetStreamPrioritization([in] IWMStreamPrioritization *stream);
+
+ HRESULT RemoveStreamPrioritization();
+
+ HRESULT CreateNewStreamPrioritization([out] IWMStreamPrioritization **stream);
+
+ HRESULT GetExpectedPacketCount(
+ [in] QWORD duration,
+ [out] QWORD *packets);
+};
+
+[
+ object,
uuid(d16679f2-6ca0-472d-8d31-2f5d55aee155),
pointer_default(unique),
local
@@ -1174,6 +1287,293 @@ interface IWMHeaderInfo3 : IWMHeaderInfo2
[in, size_is( codec_info_cnt )] BYTE *codec_info );
};
+[
+ object,
+ uuid(96406bec-2b2b-11d3-b36b-00c04f6108ff),
+ pointer_default(unique),
+ local
+]
+interface IWMReaderNetworkConfig : IUnknown
+{
+ HRESULT GetBufferingTime([out] QWORD *buffering_time);
+ HRESULT SetBufferingTime([in] QWORD buffering_time);
+ HRESULT GetUDPPortRanges(
+ [out, size_is( *ranges )] WM_PORT_NUMBER_RANGE *array,
+ [in, out] DWORD *ranges);
+
+ HRESULT SetUDPPortRanges(
+ [in, size_is( ranges )] WM_PORT_NUMBER_RANGE *array,
+ [in] DWORD ranges);
+
+ HRESULT GetProxySettings(
+ [in] LPCWSTR protocol,
+ [out] WMT_PROXY_SETTINGS *proxy);
+
+ HRESULT SetProxySettings(
+ [in] LPCWSTR protocol,
+ [in] WMT_PROXY_SETTINGS proxy);
+
+ HRESULT GetProxyHostName(
+ [in] LPCWSTR protocol,
+ [out, size_is( *size )] WCHAR *hostname,
+ [in, out] DWORD *size);
+
+ HRESULT SetProxyHostName(
+ [in] LPCWSTR protocol,
+ [in] LPCWSTR hostname);
+
+ HRESULT GetProxyPort(
+ [in] LPCWSTR protocol,
+ [out] DWORD *port);
+
+ HRESULT SetProxyPort(
+ [in] LPCWSTR protocol,
+ [in] DWORD port);
+
+ HRESULT GetProxyExceptionList(
+ [in] LPCWSTR protocol,
+ [out, size_is( *count )] WCHAR *exceptions,
+ [in, out] DWORD *count);
+
+ HRESULT SetProxyExceptionList(
+ [in] LPCWSTR protocol,
+ [in] LPCWSTR exceptions);
+
+ HRESULT GetProxyBypassForLocal(
+ [in] LPCWSTR protocol,
+ [out] BOOL *bypass);
+
+ HRESULT SetProxyBypassForLocal(
+ [in] LPCWSTR protocol,
+ [in] BOOL bypass);
+
+ HRESULT GetForceRerunAutoProxyDetection([out] BOOL *detection);
+
+ HRESULT SetForceRerunAutoProxyDetection([in] BOOL detection);
+
+ HRESULT GetEnableMulticast([out] BOOL *multicast);
+ HRESULT SetEnableMulticast([in] BOOL multicast);
+
+ HRESULT GetEnableHTTP([out] BOOL *enable);
+ HRESULT SetEnableHTTP([in] BOOL enable);
+
+ HRESULT GetEnableUDP([out] BOOL *enable);
+ HRESULT SetEnableUDP([in] BOOL enable);
+
+ HRESULT GetEnableTCP([out] BOOL *enable);
+ HRESULT SetEnableTCP([in] BOOL enable);
+
+ HRESULT ResetProtocolRollover();
+
+ HRESULT GetConnectionBandwidth([out] DWORD *bandwidth);
+ HRESULT SetConnectionBandwidth([in] DWORD bandwidth);
+
+ HRESULT GetNumProtocolsSupported([out] DWORD *protocols);
+
+ HRESULT GetSupportedProtocolName(
+ [in] DWORD protocol_num,
+ [out, size_is( *size )] WCHAR *protocol,
+ [in, out] DWORD *size);
+
+ HRESULT AddLoggingUrl([in] LPCWSTR url);
+
+ HRESULT GetLoggingUrl(
+ [in] DWORD index,
+ [out, size_is( *size )] LPWSTR url,
+ [in, out] DWORD *size);
+
+ HRESULT GetLoggingUrlCount([out] DWORD *count);
+
+ HRESULT ResetLoggingUrlList( );
+}
+
+[
+ object,
+ uuid(d979a853-042b-4050-8387-c939db22013f),
+ pointer_default(unique),
+ local
+]
+
+interface IWMReaderNetworkConfig2 : IWMReaderNetworkConfig
+{
+ HRESULT GetEnableContentCaching([out] BOOL *enable);
+ HRESULT SetEnableContentCaching([in] BOOL enable);
+
+ HRESULT GetEnableFastCache([out] BOOL *enable);
+ HRESULT SetEnableFastCache([in] BOOL enable);
+
+ HRESULT GetAcceleratedStreamingDuration([out] QWORD *duration);
+ HRESULT SetAcceleratedStreamingDuration([in] QWORD duration);
+
+ HRESULT GetAutoReconnectLimit([out] DWORD *limit);
+ HRESULT SetAutoReconnectLimit([in] DWORD limit);
+
+ HRESULT GetEnableResends([out] BOOL *enable);
+ HRESULT SetEnableResends([in] BOOL enable);
+
+ HRESULT GetEnableThinning([out] BOOL *enable);
+ HRESULT SetEnableThinning([in] BOOL enable);
+
+ HRESULT GetMaxNetPacketSize([out] DWORD *packet_size);
+}
+
+[
+ object,
+ uuid(96406bed-2b2b-11d3-b36b-00c04f6108ff),
+ pointer_default(unique),
+ local
+]
+
+interface IWMReaderStreamClock : IUnknown
+{
+ HRESULT GetTime([in] QWORD *now);
+
+ HRESULT SetTimer([in] QWORD when,
+ [in] void *param,
+ [out] DWORD *id);
+
+ HRESULT KillTimer([in] DWORD id);
+}
+
+[
+ object,
+ uuid(cdfb97ab-188f-40b3-b643-5b7903975c59),
+ pointer_default(unique),
+ local
+]
+interface IWMPacketSize : IUnknown
+{
+ HRESULT GetMaxPacketSize([out] DWORD *size);
+ HRESULT SetMaxPacketSize([in] DWORD size);
+};
+
+[
+ object,
+ uuid(8bfc2b9e-b646-4233-a877-1c6a079669dc),
+ pointer_default(unique),
+ local
+]
+interface IWMPacketSize2 : IWMPacketSize
+{
+ HRESULT GetMinPacketSize([out] DWORD *size);
+ HRESULT SetMinPacketSize([in] DWORD size);
+};
+
+[
+ object,
+ uuid(d2827540-3ee7-432c-b14c-dc17f085d3b3),
+ pointer_default(unique),
+ local
+]
+interface IWMDRMReader : IUnknown
+{
+ HRESULT AcquireLicense([in] DWORD flags);
+ HRESULT CancelLicenseAcquisition();
+
+ HRESULT Individualize([in] DWORD flags);
+ HRESULT CancelIndividualization();
+
+ HRESULT MonitorLicenseAcquisition();
+ HRESULT CancelMonitorLicenseAcquisition();
+
+ HRESULT SetDRMProperty(
+ [in] const WCHAR *name,
+ [in] WMT_ATTR_DATATYPE type,
+ [in, size_is( length )] const BYTE *value,
+ [in] WORD length);
+
+ HRESULT GetDRMProperty(
+ [in] const WCHAR *name,
+ [out] WMT_ATTR_DATATYPE* type,
+ [out, size_is( *length )] BYTE *value,
+ [in, out] WORD *length);
+};
+
+[
+ object,
+ uuid(befe7a75-9f1d-4075-b9d9-a3c37bda49a0),
+ pointer_default(unique),
+ local
+]
+interface IWMDRMReader2 : IWMDRMReader
+{
+ HRESULT SetEvaluateOutputLevelLicenses([in] BOOL evaluate);
+ HRESULT GetPlayOutputLevels(
+ [out, size_is( *length )] DRM_PLAY_OPL *play,
+ [in, out] DWORD *length,
+ [out] DWORD *pdwMinAppComplianceLevel);
+
+ HRESULT GetCopyOutputLevels(
+ [out, size_is( *length )] DRM_COPY_OPL *copy,
+ [in, out] DWORD *length,
+ [out] DWORD *compliance);
+
+ HRESULT TryNextLicense();
+};
+
+[
+ object,
+ uuid(e08672de-f1e7-4ff4-a0a3-fc4b08e4caf8),
+ pointer_default(unique),
+ local
+]
+interface IWMDRMReader3 : IWMDRMReader2
+{
+ HRESULT GetInclusionList(
+ [out] GUID **guids,
+ [out] DWORD *count);
+};
+
+[
+ object,
+ uuid(bddc4d08-944d-4d52-a612-46c3fda07dd4),
+ pointer_default( unique ),
+ local
+]
+interface IWMReaderAccelerator : IUnknown
+{
+ HRESULT GetCodecInterface(
+ [in] DWORD output,
+ [in] REFIID riid,
+ [out] void **codec);
+
+ HRESULT Notify(
+ [in] DWORD output,
+ [in] WM_MEDIA_TYPE *subtype);
+};
+
+[
+ object,
+ uuid(f369e2f0-e081-4fe6-8450-b810b2f410d1),
+ pointer_default(unique),
+ local
+]
+interface IWMReaderTimecode : IUnknown
+{
+ HRESULT GetTimecodeRangeCount(
+ [in] WORD num,
+ [out] WORD *count);
+
+ HRESULT GetTimecodeRangeBounds(
+ [in] WORD stream,
+ [in] WORD Range,
+ [out] DWORD *start_timecode,
+ [out] DWORD *end_timecode);
+};
+
+[
+ object,
+ uuid(fdbe5592-81a1-41ea-93bd-735cad1adc05),
+ pointer_default(unique),
+ local
+]
+interface IWMReaderTypeNegotiation : IUnknown
+{
+ HRESULT TryOutputProps(
+ [in] DWORD output,
+ [in] IWMOutputMediaProps *props);
+};
+
cpp_quote("HRESULT WINAPI WMCreateWriter(IUnknown*,IWMWriter**);")
cpp_quote("HRESULT WINAPI WMCreateReader(IUnknown*,DWORD,IWMReader**);")
--
2.11.0
More information about the wine-patches
mailing list