[PATCH 2/3] include/wmsdkidl.idl: Add more interfaces

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Tue May 2 00:06:40 CDT 2017


Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
 include/wmsdkidl.idl | 371 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 370 insertions(+), 1 deletion(-)

diff --git a/include/wmsdkidl.idl b/include/wmsdkidl.idl
index 433ec46..3c70ab4 100644
--- a/include/wmsdkidl.idl
+++ b/include/wmsdkidl.idl
@@ -187,9 +187,38 @@ typedef enum WMT_CODEC_INFO_TYPE
 {
     WMT_CODECINFO_AUDIO   = 0,
     WMT_CODECINFO_VIDEO   = 1,
-    WMT_CODECINFO_UNKNOWN = 0xFFFFFFFF,
+    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,41 @@ 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 +417,51 @@ 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 +1283,266 @@ 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**);")
 
-- 
1.9.1




More information about the wine-patches mailing list