Alistair Leslie-Hughes : dmime: Support more common chunks.
Module: wine Branch: master Commit: a897d858e4671e10e64ebf0bc3c0df6cb35944fd URL: https://source.winehq.org/git/wine.git/?a=commit;h=a897d858e4671e10e64ebf0bc... Author: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Date: Thu May 7 23:32:02 2020 +0200 dmime: Support more common chunks. Signed-off-by: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/dmime/dmobject.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/dlls/dmime/dmobject.c b/dlls/dmime/dmobject.c index 9ea31ab32a..1c9c1020ba 100644 --- a/dlls/dmime/dmobject.c +++ b/dlls/dmime/dmobject.c @@ -529,15 +529,30 @@ HRESULT dmobj_parsedescriptor(IStream *stream, const struct chunk_entry *riff, while ((hr = stream_next_chunk(stream, &chunk)) == S_OK) { switch (chunk.id) { + case DMUS_FOURCC_CATEGORY_CHUNK: + if ((supported & DMUS_OBJ_CATEGORY) && stream_chunk_get_wstr(stream, &chunk, + desc->wszCategory, sizeof(desc->wszCategory)) == S_OK) + desc->dwValidData |= DMUS_OBJ_CATEGORY; + break; + case DMUS_FOURCC_DATE_CHUNK: + if ((supported & DMUS_OBJ_DATE) && stream_chunk_get_data(stream, &chunk, + &desc->ftDate, sizeof(desc->ftDate)) == S_OK) + desc->dwValidData |= DMUS_OBJ_DATE; + break; + case DMUS_FOURCC_FILE_CHUNK: + if ((supported & DMUS_OBJ_FILENAME) && stream_chunk_get_wstr(stream, &chunk, + desc->wszFileName, sizeof(desc->wszFileName)) == S_OK) + desc->dwValidData |= DMUS_OBJ_FILENAME; + break; case DMUS_FOURCC_GUID_CHUNK: if ((supported & DMUS_OBJ_OBJECT) && stream_chunk_get_data(stream, &chunk, &desc->guidObject, sizeof(desc->guidObject)) == S_OK) desc->dwValidData |= DMUS_OBJ_OBJECT; break; - case DMUS_FOURCC_CATEGORY_CHUNK: - if ((supported & DMUS_OBJ_CATEGORY) && stream_chunk_get_wstr(stream, &chunk, - desc->wszCategory, sizeof(desc->wszCategory)) == S_OK) - desc->dwValidData |= DMUS_OBJ_CATEGORY; + case DMUS_FOURCC_NAME_CHUNK: + if ((supported & DMUS_OBJ_NAME) && stream_chunk_get_wstr(stream, &chunk, + desc->wszName, sizeof(desc->wszName)) == S_OK) + desc->dwValidData |= DMUS_OBJ_NAME; break; case DMUS_FOURCC_VERSION_CHUNK: if ((supported & DMUS_OBJ_VERSION) && stream_chunk_get_data(stream, &chunk,
participants (1)
-
Alexandre Julliard