B1;2cOn Fri, Oct 23, 2015 at 06:32:17PM +0800, Dmitry Timoshkov wrote:
> diff --git a/dlls/ole32/datacache.c b/dlls/ole32/datacache.c
> index caabd10..3db0edf 100644
> --- a/dlls/ole32/datacache.c
> +++ b/dlls/ole32/datacache.c
> @@ -285,7 +285,7 @@ static DataCacheEntry *DataCache_GetEntryForFormatEtc(DataCache *This, const FOR
> static HRESULT check_valid_clipformat_and_tymed(CLIPFORMAT cfFormat, DWORD tymed)
> {
> if (!cfFormat || !tymed ||
> - (cfFormat == CF_METAFILEPICT && tymed == TYMED_MFPICT) ||
> + (cfFormat == CF_METAFILEPICT && (tymed == TYMED_MFPICT || tymed == TYMED_FILE)) ||
> (cfFormat == CF_BITMAP && tymed == TYMED_GDI) ||
> (cfFormat == CF_DIB && tymed == TYMED_HGLOBAL) ||
> (cfFormat == CF_ENHMETAFILE && tymed == TYMED_ENHMF))
This should be easy enough to test. Create a stand-alone data cache
( using CreateDataCache() ), then call IOleCache_Cache with the
relevant fmtetc.
Huw.