include/wmsdkidl.idl: Add more interfaces.

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alistair Leslie-Hughes 2017-05-10 21:51:43 -06:00 committed by Alexandre Julliard
parent d5930db829
commit 3dd254fd6e
1 changed files with 399 additions and 0 deletions

View File

@ -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;
[
@ -253,6 +282,43 @@ interface IWMMutualExclusion : IWMStreamList
HRESULT SetType([in] REFGUID guidType);
}
[
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 *array,
[in, out] WORD *records);
HRESULT SetPriorityRecords(
[in] WM_STREAM_PRIORITY_RECORD *array,
[in] WORD records);
}
[
object,
uuid(96406Bdc-2b2b-11d3-b36b-00c04f6108ff),
@ -351,6 +417,53 @@ interface IWMProfile : IUnknown
[out] IWMMutualExclusion **ppME);
}
[
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),
@ -1174,6 +1287,292 @@ 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] const WCHAR *protocol,
[out] WMT_PROXY_SETTINGS *proxy);
HRESULT SetProxySettings(
[in] LPCWSTR protocol,
[in] WMT_PROXY_SETTINGS proxy);
HRESULT GetProxyHostName(
[in] const WCHAR *protocol,
[out, size_is( *size )] WCHAR *hostname,
[in, out] DWORD *size);
HRESULT SetProxyHostName(
[in] const WCHAR *protocol,
[in] const WCHAR *hostname);
HRESULT GetProxyPort(
[in] const WCHAR *protocol,
[out] DWORD *port);
HRESULT SetProxyPort(
[in] const WCHAR *protocol,
[in] DWORD port);
HRESULT GetProxyExceptionList(
[in] const WCHAR *protocol,
[out, size_is( *count )] WCHAR *exceptions,
[in, out] DWORD *count);
HRESULT SetProxyExceptionList(
[in] const WCHAR *protocol,
[in] const WCHAR *exceptions);
HRESULT GetProxyBypassForLocal(
[in] const WCHAR *protocol,
[out] BOOL *bypass);
HRESULT SetProxyBypassForLocal(
[in] const WCHAR *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] const WCHAR *url);
HRESULT GetLoggingUrl(
[in] DWORD index,
[out, size_is( *size )] WCHAR *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 *level);
HRESULT GetCopyOutputLevels(
[out, size_is( *length )] DRM_COPY_OPL *copy,
[in, out] DWORD *length,
[out] DWORD *level);
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**);")