[1/2] ole32: Query support also for static storage formats.
Dmitry Timoshkov
dmitry at baikal.ru
Wed May 23 02:50:12 CDT 2012
These patches make WICExplorer a bit more useful.
---
dlls/ole32/ole2impl.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/dlls/ole32/ole2impl.c b/dlls/ole32/ole2impl.c
index e4eccc1..79f2cb5 100644
--- a/dlls/ole32/ole2impl.c
+++ b/dlls/ole32/ole2impl.c
@@ -102,6 +102,8 @@ static inline void init_fmtetc(FORMATETC *fmt, CLIPFORMAT cf, TYMED tymed)
*/
static HRESULT get_storage(IDataObject *data, IStorage *stg, UINT *src_cf)
{
+ static const UINT fmt_id[] = { CF_METAFILEPICT, CF_BITMAP, CF_DIB };
+ UINT i;
HRESULT hr;
FORMATETC fmt;
STGMEDIUM med;
@@ -132,6 +134,17 @@ static HRESULT get_storage(IDataObject *data, IStorage *stg, UINT *src_cf)
return hr;
}
+ for (i = 0; i < sizeof(fmt_id)/sizeof(fmt_id[0]); i++)
+ {
+ init_fmtetc(&fmt, fmt_id[i], TYMED_ISTORAGE);
+ hr = IDataObject_QueryGetData(data, &fmt);
+ if(SUCCEEDED(hr))
+ {
+ *src_cf = fmt_id[i];
+ return hr;
+ }
+ }
+
/* IPersistStorage */
hr = IDataObject_QueryInterface(data, &IID_IPersistStorage, (void**)&persist);
if(FAILED(hr)) return hr;
--
1.7.10.1
More information about the wine-patches
mailing list