Fixed some dll separation issues.
diff --git a/objects/metafile.c b/objects/metafile.c
index 2e1c2ca..cd80d3e 100644
--- a/objects/metafile.c
+++ b/objects/metafile.c
@@ -93,15 +93,16 @@
HMETAFILE16 MF_Create_HMETAFILE16(METAHEADER *mh)
{
HMETAFILE16 hmf;
- DWORD size;
+ DWORD size = mh->mtSize * sizeof(WORD);
- if(mh->mtType == METAFILE_MEMORY)
- size = mh->mtSize * sizeof(WORD);
- else
- size = sizeof(METAHEADER) + sizeof(METAHEADERDISK);
-
- hmf = GLOBAL_CreateBlock( GMEM_MOVEABLE, mh, mh->mtSize * sizeof(WORD),
- GetCurrentPDB16(), WINE_LDT_FLAGS_DATA );
+ hmf = GlobalAlloc16(GMEM_MOVEABLE, size);
+ if(hmf)
+ {
+ METAHEADER *mh_dest = GlobalLock16(hmf);
+ memcpy(mh_dest, mh, size);
+ GlobalUnlock16(hmf);
+ }
+ HeapFree(GetProcessHeap(), 0, mh);
return hmf;
}