diff --git a/reactos/dll/win32/gdi32/include/gdi32p.h b/reactos/dll/win32/gdi32/include/gdi32p.h index 3db5e493a98..e82c9693fc7 100644 --- a/reactos/dll/win32/gdi32/include/gdi32p.h +++ b/reactos/dll/win32/gdi32/include/gdi32p.h @@ -42,32 +42,42 @@ typedef INT /* TYPES *********************************************************************/ // Based on wmfapi.h and Wine. -typedef struct tagMETAFILEDC { - PVOID pvMetaBuffer; - HANDLE hFile; - DWORD Size; - METAHEADER mh; - UINT handles_size, cur_handles; - HGDIOBJ *handles; - - // more DC object stuff. - HGDIOBJ Pen; - HGDIOBJ Brush; - HGDIOBJ Palette; - HGDIOBJ Font; - - WCHAR Filename[MAX_PATH+2]; - // Add more later. +typedef struct tagMETAFILEDC +{ + PVOID pvMetaBuffer; + HANDLE hFile; + DWORD Size; + DWORD dwWritten; + METAHEADER mh; + WORD reserved; + HLOCAL MFObjList; + HPEN hPen; + HBRUSH hBrush; + HDC hDc; + HGDIOBJ hMetaDc; + HPALETTE hPalette; + HFONT hFont; + HBITMAP hBitmap; + HRGN hRegion; + HGDIOBJ hMetafile; + HGDIOBJ hMemDc; + HPEN hExtPen; + HGDIOBJ hEnhMetaDc; + HGDIOBJ hEnhMetaFile; + HCOLORSPACE hColorSpace; + WCHAR Filename[MAX_PATH+2]; } METAFILEDC,*PMETAFILEDC; // Metafile Entry handle -typedef struct tagMF_ENTRY { +typedef struct tagMF_ENTRY +{ LIST_ENTRY List; HGDIOBJ hmDC; // Handle return from NtGdiCreateClientObj. PMETAFILEDC pmfDC; } MF_ENTRY, *PMF_ENTRY; -typedef struct tagENHMETAFILE { +typedef struct tagENHMETAFILE +{ PVOID pvMetaBuffer; HANDLE hFile; /* Handle for disk based MetaFile */ DWORD Size; diff --git a/reactos/dll/win32/gdi32/objects/font.c b/reactos/dll/win32/gdi32/objects/font.c index 2387f1424cd..2cb6f2c0f38 100644 --- a/reactos/dll/win32/gdi32/objects/font.c +++ b/reactos/dll/win32/gdi32/objects/font.c @@ -1,5 +1,4 @@ -/* $Id$ - * +/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS system libraries * FILE: lib/gdi32/object/font.c diff --git a/reactos/dll/win32/gdi32/objects/metafile.c b/reactos/dll/win32/gdi32/objects/metafile.c index 8d7c89bb878..61ded65dd7e 100644 --- a/reactos/dll/win32/gdi32/objects/metafile.c +++ b/reactos/dll/win32/gdi32/objects/metafile.c @@ -143,7 +143,6 @@ CreateMetaFileW( { HANDLE hFile; HDC hmDC; - DWORD dwWritten; PMETAFILEDC pmfDC = LocalAlloc(LMEM_ZEROINIT, sizeof(METAFILEDC)); if (!pmfDC) return NULL; @@ -151,6 +150,12 @@ CreateMetaFileW( pmfDC->mh.mtVersion = 0x0300; pmfDC->mh.mtSize = pmfDC->mh.mtHeaderSize; + pmfDC->hPen = GetStockObject(BLACK_PEN); + pmfDC->hBrush = GetStockObject(WHITE_BRUSH); + pmfDC->hFont = GetStockObject(DEVICE_DEFAULT_FONT); + pmfDC->hBitmap = GetStockObject(DEFAULT_BITMAP); + pmfDC->hPalette = GetStockObject(DEFAULT_PALETTE); + if (lpszFile) /* disk based metafile */ { pmfDC->mh.mtType = METAFILE_DISK; @@ -160,7 +165,6 @@ CreateMetaFileW( (LPTSTR) &pmfDC->Filename, (LPTSTR*) &lpszFile)) { -// MFDRV_DeleteDC( dc->physDev ); LocalFree(pmfDC); return NULL; } @@ -168,14 +172,12 @@ CreateMetaFileW( if ((hFile = CreateFileW(pmfDC->Filename, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0)) == INVALID_HANDLE_VALUE) { -// MFDRV_DeleteDC( dc->physDev ); LocalFree(pmfDC); return NULL; } - if (!WriteFile( hFile, &pmfDC->mh, sizeof(pmfDC->mh), &dwWritten, NULL )) + if (!WriteFile( hFile, &pmfDC->mh, sizeof(pmfDC->mh), &pmfDC->dwWritten, NULL )) { -// MFDRV_DeleteDC( dc->physDev ); LocalFree(pmfDC); return NULL; }