[v2 PATCH 1/2] include: Add interfaces IWMHeaderInfo/2/3

Andrew Eikum aeikum at codeweavers.com
Tue Apr 11 08:56:59 CDT 2017


Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>

On Thu, Mar 30, 2017 at 10:06:53PM +0000, Alistair Leslie-Hughes wrote:
> v2 - Fixed [out] paramter - Thanks Andrew.
> 
> Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
> ---
>  include/wmsdkidl.idl | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 158 insertions(+)
> 
> diff --git a/include/wmsdkidl.idl b/include/wmsdkidl.idl
> index 0606be1..5ce849f 100644
> --- a/include/wmsdkidl.idl
> +++ b/include/wmsdkidl.idl
> @@ -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**);")
>  
> -- 
> 1.9.1
> 
> 
> 



More information about the wine-patches mailing list