include: Add interfaces IWMHeaderInfo/2/3.

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alistair Leslie-Hughes 2017-03-30 22:06:53 +00:00 committed by Alexandre Julliard
parent e352b29d12
commit fbe53db498
1 changed files with 158 additions and 0 deletions

View File

@ -183,6 +183,13 @@ typedef enum tagWMT_OFFSET_FORMAT
WMT_OFFSET_FORMAT_100NS_APPROXIMATE
} WMT_OFFSET_FORMAT;
typedef enum WMT_CODEC_INFO_TYPE
{
WMT_CODECINFO_AUDIO = 0,
WMT_CODECINFO_VIDEO = 1,
WMT_CODECINFO_UNKNOWN = 0xFFFFFFFF,
} WMT_CODEC_INFO_TYPE;
typedef LPCWSTR LPCWSTR_WMSDK_TYPE_SAFE;
[
@ -1016,6 +1023,157 @@ interface IWMWriterAdvanced3 : IWMWriterAdvanced2
HRESULT SetNonBlocking();
}
[
object,
uuid(96406bda-2b2b-11d3-b36b-00c04f6108ff),
pointer_default(unique),
local
]
interface IWMHeaderInfo : IUnknown
{
HRESULT GetAttributeCount(
[in] WORD stream_num,
[out] WORD *attributes );
HRESULT GetAttributeByIndex(
[in] WORD index,
[in, out] WORD *stream_num,
[out, size_is( *name_len )] WCHAR *name,
[in, out] WORD *name_len,
[out] WMT_ATTR_DATATYPE *type,
[out, size_is( *length )] BYTE *value,
[in, out] WORD *length );
HRESULT GetAttributeByName(
[in, out] WORD *stream_num,
[in] LPCWSTR name,
[out] WMT_ATTR_DATATYPE *type,
[out, size_is( *length )] BYTE *value,
[in, out] WORD *length );
HRESULT SetAttribute(
[in] WORD stream_num,
[in] LPCWSTR name,
[in] WMT_ATTR_DATATYPE type,
[in, size_is( length )] const BYTE *value,
[in] WORD length );
HRESULT GetMarkerCount(
[out] WORD *markers );
HRESULT GetMarker(
[in] WORD index,
[out, size_is( *marker_len )] WCHAR *marker_name,
[in, out] WORD *marker_len,
[out] QWORD *marker_time );
HRESULT AddMarker(
[in] LPCWSTR_WMSDK_TYPE_SAFE marker_name,
[in] QWORD marker_time );
HRESULT RemoveMarker(
[in] WORD index );
HRESULT GetScriptCount(
[out] WORD *scripts );
HRESULT GetScript(
[in] WORD index,
[out, size_is( *type_len )] WCHAR *type,
[in, out] WORD *type_len,
[out, size_is( *command_len )] WCHAR *command,
[in, out] WORD *command_len,
[out] QWORD *script_time );
HRESULT AddScript(
[in] LPCWSTR_WMSDK_TYPE_SAFE type,
[in] LPCWSTR_WMSDK_TYPE_SAFE command,
[in] QWORD script_time );
HRESULT RemoveScript(
[in] WORD index );
};
[
object,
uuid(15cf9781-454e-482e-b393-85fae487a810),
pointer_default(unique),
local
]
interface IWMHeaderInfo2 : IWMHeaderInfo
{
HRESULT GetCodecInfoCount(
[out] DWORD *codec_infos );
HRESULT GetCodecInfo(
[in] DWORD index,
[in, out] WORD *name_len,
[out, size_is( *name_len )] WCHAR *name,
[in, out] WORD *description_len,
[out, size_is( *description_len )] WCHAR *description,
[out] WMT_CODEC_INFO_TYPE *codec_type,
[in, out] WORD *codec_info_cnt,
[out, size_is( *codec_info_cnt )] BYTE *codec_info );
};
[
object,
uuid(15cc68e3-27cc-4ecd-b222-3f5d02d80bd5),
pointer_default(unique),
local
]
interface IWMHeaderInfo3 : IWMHeaderInfo2
{
HRESULT GetAttributeCountEx(
[in] WORD stream_num,
[out] WORD *attributes );
HRESULT GetAttributeIndices(
[in] WORD stream_num,
[in] LPCWSTR name,
[in] WORD *lang_index,
[out, size_is( *count )] WORD *indices,
[in, out] WORD *count );
HRESULT GetAttributeByIndexEx(
[in] WORD stream_num,
[in] WORD index,
[out, size_is( *name_len )] LPWSTR name,
[in, out] WORD *name_len,
[out] WMT_ATTR_DATATYPE *type,
[out] WORD *lang_index,
[out, size_is( *data_len )] BYTE *value,
[in, out] DWORD *data_len );
HRESULT ModifyAttribute(
[in] WORD stream_num,
[in] WORD index,
[in] WMT_ATTR_DATATYPE type,
[in] WORD lang_index,
[in, size_is( length )] const BYTE *value,
[in] DWORD length );
HRESULT AddAttribute(
[in] WORD stream_num,
[in] LPCWSTR name,
[out] WORD *index,
[in] WMT_ATTR_DATATYPE type,
[in] WORD lang_index,
[in, size_is( length )] const BYTE *value,
[in] DWORD length );
HRESULT DeleteAttribute(
[in] WORD stream_num,
[in] WORD index );
HRESULT AddCodecInfo(
[in] LPCWSTR_WMSDK_TYPE_SAFE name,
[in] LPCWSTR_WMSDK_TYPE_SAFE description,
[in] WMT_CODEC_INFO_TYPE codec_type,
[in] WORD codec_info_cnt,
[in, size_is( codec_info_cnt )] BYTE *codec_info );
};
cpp_quote("HRESULT WINAPI WMCreateWriter(IUnknown*,IWMWriter**);")
cpp_quote("HRESULT WINAPI WMCreateReader(IUnknown*,DWORD,IWMReader**);")