From 520cdec84e439b87355b9526d950e2c5ab2448c5 Mon Sep 17 00:00:00 2001 From: cxl Date: Tue, 25 Jan 2011 12:20:22 +0000 Subject: [PATCH] .CtrlCore: MetaFile patch (thanks mr_ped) git-svn-id: svn://ultimatepp.org/upp/trunk@3090 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/CtrlCore/DrawWin32.h | 2 +- uppsrc/CtrlCore/MetaFile.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/uppsrc/CtrlCore/DrawWin32.h b/uppsrc/CtrlCore/DrawWin32.h index 7dfd3f3a7..5b8064bc1 100644 --- a/uppsrc/CtrlCore/DrawWin32.h +++ b/uppsrc/CtrlCore/DrawWin32.h @@ -151,7 +151,7 @@ public: void Attach(HENHMETAFILE emf); HENHMETAFILE *Detach(); - void Set(const void *data, int len); + void Set(const void *data, dword len); void Set(const String& data) { Set(~data, data.GetCount()); } String Get() const; diff --git a/uppsrc/CtrlCore/MetaFile.cpp b/uppsrc/CtrlCore/MetaFile.cpp index bdc98f55e..e1188d5e9 100644 --- a/uppsrc/CtrlCore/MetaFile.cpp +++ b/uppsrc/CtrlCore/MetaFile.cpp @@ -93,7 +93,7 @@ struct PLACEABLE_METAFILEHEADER }; #pragma pack(pop) -void WinMetaFile::Set(const void *data, int len) +void WinMetaFile::Set(const void *data, dword len) { Clear(); @@ -106,7 +106,8 @@ void WinMetaFile::Set(const void *data, int len) if((hemf = ::SetEnhMetaFileBits(len, (const BYTE *)data)) != NULL) Attach(hemf); else - if(first == 0x9AC6CDD7) { + if(first == (int)0x9AC6CDD7) { + if ( len <= 22 ) return; const PLACEABLE_METAFILEHEADER *mfh = (const PLACEABLE_METAFILEHEADER *)data; Attach(::SetWinMetaFileBits(len - 22, (const BYTE *)data + 22, NULL, NULL)); size = 600 * Size(mfh->right - mfh->left, mfh->bottom - mfh->top) / 2540;