From: Nikolay Sivov nsivov@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/windowscodecs/metadatahandler.c | 12 ++++++------ dlls/windowscodecs/wincodecs_private.h | 7 ++++++- 2 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/dlls/windowscodecs/metadatahandler.c b/dlls/windowscodecs/metadatahandler.c index 1fd2730390f..b68b6656980 100644 --- a/dlls/windowscodecs/metadatahandler.c +++ b/dlls/windowscodecs/metadatahandler.c @@ -93,7 +93,7 @@ static HRESULT WINAPI MetadataHandler_QueryInterface(IWICMetadataWriter *iface,
if (IsEqualIID(&IID_IUnknown, iid) || IsEqualIID(&IID_IWICMetadataReader, iid) || - (IsEqualIID(&IID_IWICMetadataWriter, iid) && This->vtable->is_writer)) + (IsEqualIID(&IID_IWICMetadataWriter, iid) && This->vtable->flags & METADATAHANDLER_IS_WRITER)) { *ppv = &This->IWICMetadataWriter_iface; } @@ -882,7 +882,7 @@ HRESULT UnknownMetadataReader_CreateInstance(REFIID iid, void** ppv)
static const MetadataHandlerVtbl UnknownMetadataWriter_Vtbl = { - .is_writer = true, + .flags = METADATAHANDLER_IS_WRITER, .clsid = &CLSID_WICUnknownMetadataWriter, .fnLoad = LoadUnknownMetadata }; @@ -1583,7 +1583,7 @@ HRESULT IfdMetadataReader_CreateInstance(REFIID iid, void **ppv)
static const MetadataHandlerVtbl IfdMetadataWriter_Vtbl = { - .is_writer = true, + .flags = METADATAHANDLER_IS_WRITER, &CLSID_WICIfdMetadataWriter, LoadIfdMetadataWriter }; @@ -1607,7 +1607,7 @@ HRESULT GpsMetadataReader_CreateInstance(REFIID iid, void **ppv)
static const MetadataHandlerVtbl GpsMetadataWriter_Vtbl = { - .is_writer = true, + .flags = METADATAHANDLER_IS_WRITER, &CLSID_WICGpsMetadataWriter, LoadGpsMetadataWriter }; @@ -1631,7 +1631,7 @@ HRESULT ExifMetadataReader_CreateInstance(REFIID iid, void **ppv)
static const MetadataHandlerVtbl ExifMetadataWriter_Vtbl = { - .is_writer = true, + .flags = METADATAHANDLER_IS_WRITER, &CLSID_WICExifMetadataWriter, LoadExifMetadataWriter }; @@ -1655,7 +1655,7 @@ HRESULT App1MetadataReader_CreateInstance(REFIID iid, void **ppv)
static const MetadataHandlerVtbl App1MetadataWriter_Vtbl = { - .is_writer = true, + .flags = METADATAHANDLER_IS_WRITER, &CLSID_WICApp1MetadataWriter, LoadApp1MetadataWriter }; diff --git a/dlls/windowscodecs/wincodecs_private.h b/dlls/windowscodecs/wincodecs_private.h index 5b193bb1b26..fb3ef312851 100644 --- a/dlls/windowscodecs/wincodecs_private.h +++ b/dlls/windowscodecs/wincodecs_private.h @@ -205,9 +205,14 @@ typedef struct _MetadataItem PROPVARIANT value; } MetadataItem;
+enum metadatahandler_flags +{ + METADATAHANDLER_IS_WRITER = 0x1, +}; + typedef struct _MetadataHandlerVtbl { - bool is_writer; + DWORD flags; const CLSID *clsid; HRESULT (*fnLoad)(IStream *stream, const GUID *preferred_vendor, DWORD persist_options, MetadataItem **items, DWORD *item_count);