From c3fe4b87d6e5f1635241faf8146ee0dddd054177 Mon Sep 17 00:00:00 2001 From: Huw Davies Date: Tue, 31 Oct 2017 13:23:31 +0000 Subject: [PATCH] ole32: TYMED_NULL is not valid. Signed-off-by: Huw Davies Signed-off-by: Alexandre Julliard --- dlls/ole32/datacache.c | 2 +- dlls/ole32/tests/ole2.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/dlls/ole32/datacache.c b/dlls/ole32/datacache.c index 2bb0948c5d3..9f9fdd3c8f4 100644 --- a/dlls/ole32/datacache.c +++ b/dlls/ole32/datacache.c @@ -328,7 +328,7 @@ static HRESULT check_valid_formatetc( const FORMATETC *fmt ) if (fmt->dwAspect == DVASPECT_ICON && fmt->cfFormat != CF_METAFILEPICT) return DV_E_FORMATETC; - if (!fmt->cfFormat || !fmt->tymed || + if (!fmt->cfFormat || (fmt->cfFormat == CF_METAFILEPICT && fmt->tymed == TYMED_MFPICT) || (fmt->cfFormat == CF_BITMAP && fmt->tymed == TYMED_GDI) || (fmt->cfFormat == CF_DIB && fmt->tymed == TYMED_HGLOBAL) || diff --git a/dlls/ole32/tests/ole2.c b/dlls/ole32/tests/ole2.c index 4f72622da16..aaee6773d87 100644 --- a/dlls/ole32/tests/ole2.c +++ b/dlls/ole32/tests/ole2.c @@ -2332,6 +2332,13 @@ static void test_data_cache_cache(void) hr = IOleCache2_Uncache( cache, conn ); ok( hr == S_OK, "got %08x\n", hr ); + /* tymed == 0 */ + fmt.cfFormat = CF_ENHMETAFILE; + fmt.dwAspect = DVASPECT_CONTENT; + fmt.tymed = 0; + hr = IOleCache2_Cache( cache, &fmt, 0, &conn ); + ok( hr == DV_E_TYMED, "got %08x\n", hr ); + IDataObject_Release( data ); IOleCache2_Release( cache ); }