[PATCH v2] dmime: Support more common chunks
Michael Stefaniuc
mstefani at winehq.org
Thu May 7 16:32:02 CDT 2020
From: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
---
v2:
- Use stream_chunk_get_wstr() to read the WCHAR strings
- Now that we have more switch cases lets add some sort order to them
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,
--
2.26.2
More information about the wine-devel
mailing list