Patch by Stefan100 stefan__100__ at hotmail.com. Remove EnhMeta calls from win32k and ntgdibad.h.

svn path=/trunk/; revision=31609
This commit is contained in:
James Tabor 2008-01-05 17:35:23 +00:00
parent 2134c50b74
commit 569862a321
6 changed files with 314 additions and 382 deletions

View file

@ -1,20 +1,261 @@
#include "precomp.h"
#define NDEBUG
#include <debug.h>
/*
* @unimplemented
* @unimplemented
*/
HENHMETAFILE
STDCALL
WINAPI
CloseEnhMetaFile(
HDC hdc)
{
return NtGdiCloseEnhMetaFile(hdc);
UNIMPLEMENTED;
return 0;
}
#if 0
/* Previous implementation in win32k */
HENHMETAFILE
STDCALL
NtGdiCloseEnhMetaFile(HDC hDC)
{
LPENHMETAHEADER emh;
HANDLE hmf = 0;
PDD_ENHMETAFILEOBJ phmf;
HANDLE hMapping = 0;
EMREOF emr;
PDC Dc;
IO_STATUS_BLOCK Iosb;
NTSTATUS Status;
Dc = DC_LockDc(hDC);
if (Dc == NULL)
{
SetLastWin32Error(ERROR_INVALID_HANDLE);
return NULL;
}
emr.emr.iType = EMR_EOF;
emr.emr.nSize = sizeof(EMREOF);
emr.nPalEntries = 0;
emr.offPalEntries = 0;
emr.nSizeLast = emr.emr.nSize;
if(Dc->hFile)
{
Status = NtWriteFile(Dc->hFile, NULL, NULL, NULL, &Iosb, (PVOID)&emr, emr.emr.nSize, NULL, NULL);
if (Status == STATUS_PENDING)
{
Status = NtWaitForSingleObject(Dc->hFile,FALSE,NULL);
if (NT_SUCCESS(Status))
{
Status = Iosb.Status;
}
}
if (NT_SUCCESS(Status))
{
DWORD len = Dc->emh->nBytes + emr.emr.nSize;
/* always resize the buffer */
emh = EngAllocMem(FL_ZERO_MEMORY, len, 0);
if (emh != NULL)
{
memcpy(emh,Dc->emh,Dc->emh->nBytes);
EngFreeMem(Dc->emh);
Dc->emh = emh;
memcpy(Dc->emh + Dc->emh->nBytes, &emr, emr.emr.nSize);
}
else
{
EngFreeMem(Dc->emh);
Dc->emh=NULL;
}
}
else
{
Dc->hFile = NULL;
DPRINT1("Write to EnhMetaFile fail\n");
}
}
Dc->emh->nBytes += emr.emr.nSize;
Dc->emh->nRecords++;
if(Dc->emh->rclFrame.left > Dc->emh->rclFrame.right)
{
Dc->emh->rclFrame.left = Dc->emh->rclBounds.left * Dc->emh->szlMillimeters.cx * 100 / Dc->emh->szlDevice.cx;
Dc->emh->rclFrame.top = Dc->emh->rclBounds.top * Dc->emh->szlMillimeters.cy * 100 / Dc->emh->szlDevice.cy;
Dc->emh->rclFrame.right = Dc->emh->rclBounds.right * Dc->emh->szlMillimeters.cx * 100 / Dc->emh->szlDevice.cx;
Dc->emh->rclFrame.bottom = Dc->emh->rclBounds.bottom * Dc->emh->szlMillimeters.cy * 100 / Dc->emh->szlDevice.cy;
}
if (Dc->hFile) /* disk based metafile */
{
FILE_POSITION_INFORMATION FilePosition;
LARGE_INTEGER Distance ;
IO_STATUS_BLOCK IoStatusBlock;
POBJECT_ATTRIBUTES ObjectAttributes = NULL;
ACCESS_MASK DesiredAccess;
PLARGE_INTEGER SectionSize = NULL;
DWORD flProtect;
ULONG Attributes;
LARGE_INTEGER SectionOffset;
ULONG ViewSize;
ULONG Protect;
LPVOID ViewBase;
Distance.u.LowPart = 0;
Distance.u.HighPart = 0;
FilePosition.CurrentByteOffset.QuadPart = Distance.QuadPart;
DPRINT1("Trying write to metafile and map it\n");
Status = NtSetInformationFile(Dc->hFile, &IoStatusBlock, &FilePosition,
sizeof(FILE_POSITION_INFORMATION), FilePositionInformation);
if (!NT_SUCCESS(Status))
{
// SetLastErrorByStatus(Status);
SetLastWin32Error(ERROR_INVALID_HANDLE);
NtClose( Dc->hFile );
DC_UnlockDc(Dc);
NtGdiDeleteObjectApp(hDC);
DPRINT1("NtSetInformationFile fail\n");
return hmf;
}
if (FilePosition.CurrentByteOffset.u.LowPart != 0)
{
// SetLastErrorByStatus(Status);
SetLastWin32Error(ERROR_INVALID_HANDLE);
NtClose( Dc->hFile );
DC_UnlockDc(Dc);
NtGdiDeleteObjectApp(hDC);
DPRINT1("FilePosition.CurrentByteOffset.u.LowPart is not 0\n");
return hmf;
}
Status = NtWriteFile(Dc->hFile, NULL, NULL, NULL, &Iosb, (PVOID)&Dc->emh, sizeof(*Dc->emh), NULL, NULL);
if (Status == STATUS_PENDING)
{
Status = NtWaitForSingleObject(Dc->hFile,FALSE,NULL);
if (NT_SUCCESS(Status))
{
Status = Iosb.Status;
}
}
if (!NT_SUCCESS(Status))
{
NtClose( Dc->hFile );
DC_UnlockDc(Dc);
NtGdiDeleteObjectApp(hDC);
DPRINT1("fail to write 0\n");
return hmf;
}
EngFreeMem(Dc->emh);
/* create maping */
DesiredAccess = STANDARD_RIGHTS_REQUIRED | SECTION_QUERY | SECTION_MAP_READ;
Attributes = (PAGE_READONLY & (SEC_FILE | SEC_IMAGE | SEC_RESERVE | SEC_NOCACHE | SEC_COMMIT));
flProtect = PAGE_READONLY ^ (PAGE_READONLY & (SEC_FILE | SEC_IMAGE | SEC_RESERVE | SEC_NOCACHE | SEC_COMMIT));
if (!Attributes) Attributes = SEC_COMMIT;
if (Dc->hFile == INVALID_HANDLE_VALUE)
{
Dc->hFile = NULL;
if (!SectionSize)
{
SetLastWin32Error(ERROR_INVALID_PARAMETER);
hMapping = NULL;
DPRINT1("fail !SectionSize \n");
}
}
else
{
Status = NtCreateSection(&hMapping, DesiredAccess, ObjectAttributes, SectionSize, flProtect, Attributes, Dc->hFile);
if (!NT_SUCCESS(Status))
{
//SetLastErrorByStatus(Status);
SetLastWin32Error(ERROR_INVALID_HANDLE);
hMapping = NULL;
DPRINT1("fail NtCreateSection \n");
}
}
/* MapViewOfFile */
SectionOffset.LowPart = 0;
SectionOffset.HighPart = 0;
ViewBase = NULL;
ViewSize = 0;
Protect = PAGE_READONLY;
Status = ZwMapViewOfSection(&hMapping, NtCurrentProcess(), &ViewBase, 0,
0, &SectionOffset, &ViewSize, ViewShare, 0, Protect);
if (!NT_SUCCESS(Status))
{
//SetLastErrorByStatus(Status);
SetLastWin32Error(ERROR_INVALID_HANDLE);
Dc->emh = NULL;
DPRINT1("fail ZwMapViewOfSection \n");
}
else
{
Dc->emh = ViewBase;
}
/* Close */
if (hMapping != NULL)
NtClose( hMapping );
if (Dc->hFile != NULL)
NtClose( Dc->hFile );
}
hmf = GDIOBJ_AllocObj(GdiHandleTable, GDI_OBJECT_TYPE_ENHMETAFILE);
if (hmf != NULL)
{
phmf = GDIOBJ_LockObj(GdiHandleTable, hmf, GDI_OBJECT_TYPE_ENHMETAFILE);
if (phmf != NULL)
{
if (Dc->hFile != NULL)
{
phmf->on_disk = TRUE;
}
else
{
phmf->on_disk = FALSE;
}
GDIOBJ_UnlockObjByPtr(GdiHandleTable, phmf);
phmf->emh = Dc->emh;
}
}
Dc->emh = NULL; /* So it won't be deleted */
DC_UnlockDc(Dc);
NtGdiDeleteObjectApp(hDC);
return hmf;
}
#endif
#if 0 // Remove once new EnhMetaFile support is implemented.
HDC WINAPI CreateEnhMetaFileW(
HDC
WINAPI
CreateEnhMetaFileW(
HDC hDC, /* [in] optional reference DC */
LPCWSTR filename, /* [in] optional filename for disk metafiles */
const RECT* rect, /* [in] optional bounding rectangle */
@ -144,29 +385,15 @@ HDC WINAPI CreateEnhMetaFileW(
}
#endif
/*
* @implemented
*/
HENHMETAFILE
STDCALL
CopyEnhMetaFileW(
HENHMETAFILE hemfSrc,
LPCWSTR lpszFile
)
{
return NtGdiCopyEnhMetaFile ( hemfSrc, lpszFile );
}
/*
* @implemented
* @unimplemented
*/
HENHMETAFILE
STDCALL
WINAPI
CopyEnhMetaFileA(
HENHMETAFILE hemfSrc,
LPCSTR lpszFile
)
LPCSTR lpszFile)
{
NTSTATUS Status;
LPWSTR lpszFileW;
@ -177,7 +404,7 @@ CopyEnhMetaFileA(
SetLastError (RtlNtStatusToDosError(Status));
else
{
rc = NtGdiCopyEnhMetaFile ( hemfSrc, lpszFileW );
rc = NULL;
HEAP_free ( lpszFileW );
}
@ -186,32 +413,15 @@ CopyEnhMetaFileA(
/*
* @implemented
* @unimplemented
*/
HDC
STDCALL
CreateEnhMetaFileW(
HDC hdcRef,
LPCWSTR lpFileName,
CONST RECT *lpRect,
LPCWSTR lpDescription
)
{
return NtGdiCreateEnhMetaFile ( hdcRef, lpFileName, (CONST LPRECT)lpRect, lpDescription );
}
/*
* @implemented
*/
HDC
STDCALL
WINAPI
CreateEnhMetaFileA(
HDC hdcRef,
LPCSTR lpFileName,
CONST RECT *lpRect,
LPCSTR lpDescription
)
LPCSTR lpDescription)
{
NTSTATUS Status;
LPWSTR lpFileNameW, lpDescriptionW;
@ -237,7 +447,7 @@ CreateEnhMetaFileA(
return rc;
}
rc = NtGdiCreateEnhMetaFile (hdcRef, lpFileNameW, (CONST LPRECT)lpRect, lpDescriptionW );
rc = NULL;
if (lpDescriptionW != NULL)
HEAP_free ( lpDescriptionW );
@ -248,27 +458,16 @@ CreateEnhMetaFileA(
return rc;
}
/*
* @implemented
*/
HENHMETAFILE
STDCALL
GetEnhMetaFileW(
LPCWSTR lpszMetaFile
)
{
return NtGdiGetEnhMetaFile ( lpszMetaFile );
}
/*
* @implemented
* @unimplemented
*/
HENHMETAFILE
STDCALL
WINAPI
GetEnhMetaFileA(
LPCSTR lpszMetaFile
)
LPCSTR lpszMetaFile)
{
NTSTATUS Status;
LPWSTR lpszMetaFileW;
@ -279,7 +478,7 @@ GetEnhMetaFileA(
SetLastError (RtlNtStatusToDosError(Status));
else
{
rc = NtGdiGetEnhMetaFile ( lpszMetaFileW );
rc = NULL;
HEAP_free ( lpszMetaFileW );
}
@ -289,34 +488,17 @@ GetEnhMetaFileA(
/*
* @implemented
* @unimplemented
*/
UINT
STDCALL
GetEnhMetaFileDescriptionW(
HENHMETAFILE hemf,
UINT cchBuffer,
LPWSTR lpszDescription
)
{
return NtGdiGetEnhMetaFileDescription ( hemf, cchBuffer, lpszDescription );
}
/*
* @implemented
*/
UINT
STDCALL
WINAPI
GetEnhMetaFileDescriptionA(
HENHMETAFILE hemf,
UINT cchBuffer,
LPSTR lpszDescription
)
LPSTR lpszDescription)
{
NTSTATUS Status;
LPWSTR lpszDescriptionW;
UINT rc;
if ( lpszDescription && cchBuffer )
{
@ -330,8 +512,6 @@ GetEnhMetaFileDescriptionA(
else
lpszDescriptionW = NULL;
rc = NtGdiGetEnhMetaFileDescription ( hemf, cchBuffer, lpszDescriptionW );
if ( lpszDescription && cchBuffer )
{
Status = RtlUnicodeToMultiByteN ( lpszDescription,
@ -347,6 +527,54 @@ GetEnhMetaFileDescriptionA(
}
}
return rc;
return 0;
}
/* Unimplemented functions */
HENHMETAFILE
WINAPI
CopyEnhMetaFileW(
HENHMETAFILE hemfSrc,
LPCWSTR lpszFile)
{
UNIMPLEMENTED;
return 0;
}
HENHMETAFILE
WINAPI
GetEnhMetaFileW(
LPCWSTR lpszMetaFile)
{
UNIMPLEMENTED;
return 0;
}
UINT
WINAPI
GetEnhMetaFileDescriptionW(
HENHMETAFILE hemf,
UINT cchBuffer,
LPWSTR lpszDescription)
{
UNIMPLEMENTED;
return 0;
}
HDC
WINAPI
CreateEnhMetaFileW(
HDC hdcRef,
LPCWSTR lpFileName,
LPCRECT lpRect,
LPCWSTR lpDescription)
{
UNIMPLEMENTED;
return 0;
}

View file

@ -85,27 +85,6 @@ STDCALL
NtGdiAddFontResource(PUNICODE_STRING Filename,
DWORD fl);
/* Metafiles are user mode */
HENHMETAFILE
STDCALL
NtGdiCloseEnhMetaFile (
HDC hDC
);
/* Does not exist */
BOOL
STDCALL
NtGdiColorMatchToTarget(HDC hDC,
HDC hDCTarget,
DWORD Action);
/* Metafiles are user mode */
HENHMETAFILE
STDCALL
NtGdiCopyEnhMetaFile (
HENHMETAFILE Src,
LPCWSTR File
);
/* Use NtGdiCreateDIBitmapInternal */
HBITMAP
@ -119,36 +98,8 @@ NtGdiCreateDIBitmap (
UINT Usage
);
/* Metafiles are user mode */
HDC
STDCALL
NtGdiCreateEnhMetaFile (
HDC hDCRef,
LPCWSTR File,
CONST LPRECT Rect,
LPCWSTR Description
);
/* Meta are user-mode. */
BOOL
STDCALL
NtGdiDeleteEnhMetaFile (
HENHMETAFILE emf
);
/* Meta are user-mode. */
BOOL
STDCALL
NtGdiEnumEnhMetaFile (
HDC hDC,
HENHMETAFILE emf,
ENHMFENUMPROC EnhMetaFunc,
LPVOID Data,
CONST LPRECT Rect
);
/* Should be done in user-mode. */
int
STDCALL
@ -157,13 +108,6 @@ NtGdiEnumFonts(HDC hDC,
FONTENUMPROCW FontFunc,
LPARAM lParam);
/* Should be done in user-mode. */
INT
STDCALL
NtGdiEnumICMProfiles(HDC hDC,
LPWSTR lpstrBuffer,
UINT cch );
/* Use NtGdiExtTextOutW with 0, 0 at the end. */
BOOL
STDCALL
@ -176,102 +120,17 @@ NtGdiExtTextOut(HDC hdc,
UINT cbCount,
CONST INT *lpDx);
/* Should be done in user-mode. */
BOOL
STDCALL
NtGdiGdiComment (
HDC hDC,
UINT Size,
CONST LPBYTE Data
);
/* Should be done in user-mode. */
BOOL
STDCALL
NtGdiGetAspectRatioFilterEx(HDC hDC,
LPSIZE AspectRatio);
/* Use NtGdiGetColorSpaceforBitmap. */
HCOLORSPACE
STDCALL
NtGdiGetColorSpace(HDC hDC);
/* Meta are user-mode. */
HENHMETAFILE
STDCALL
NtGdiGetEnhMetaFile (
LPCWSTR MetaFile
);
/* Meta are user-mode. */
UINT
STDCALL
NtGdiGetEnhMetaFileBits (
HENHMETAFILE hemf,
UINT BufSize,
LPBYTE Buffer
);
/* Meta are user-mode. */
UINT
STDCALL
NtGdiGetEnhMetaFileDescription (
HENHMETAFILE hemf,
UINT BufSize,
LPWSTR Description
);
/* Meta are user-mode. */
UINT
STDCALL
NtGdiGetEnhMetaFileHeader (
HENHMETAFILE hemf,
UINT BufSize,
LPENHMETAHEADER emh
);
/* Meta are user-mode. */
UINT
STDCALL
NtGdiGetEnhMetaFilePaletteEntries (
HENHMETAFILE hemf,
UINT Entries,
LPPALETTEENTRY pe
);
/* Meta are user-mode. */
UINT
STDCALL
NtGdiGetEnhMetaFilePixelFormat(HENHMETAFILE hEMF,
DWORD BufSize,
CONST PPIXELFORMATDESCRIPTOR pfd);
/* Should be done in user-mode. */
DWORD
STDCALL
NtGdiGetFontLanguageInfo(HDC hDC);
/* Should be done in user-mode. */
BOOL
STDCALL
NtGdiGetICMProfile(HDC hDC,
LPDWORD NameSize,
LPWSTR Filename);
/* Should be done in user-mode. */
BOOL
STDCALL
NtGdiGetLogColorSpace(HCOLORSPACE hColorSpace,
LPLOGCOLORSPACEW Buffer,
DWORD Size);
/* Should be done in user-mode using shared GDI Objects. */
INT
STDCALL
NtGdiGetPixelFormat(HDC hDC);
/* Use NtGdiGetDCPoint with GdiGetViewPortExt */
BOOL STDCALL NtGdiGetViewportExtEx(HDC hDC, LPSIZE viewportExt);
@ -304,25 +163,6 @@ NtGdiOffsetWindowOrgEx (
LPPOINT Point
);
/* Metafiles are user-mode. */
BOOL
STDCALL
NtGdiPlayEnhMetaFile (
HDC hDC,
HENHMETAFILE hemf,
CONST PRECT Rect
);
/* Metafiles are user-mode. */
BOOL
STDCALL
NtGdiPlayEnhMetaFileRecord (
HDC hDC,
LPHANDLETABLE Handletable,
CONST ENHMETARECORD * EnhMetaRecord,
UINT Handles
);
/* Use NtGdiPolyTextOutW with 0 at the end. */
BOOL
STDCALL
@ -355,20 +195,6 @@ NtGdiSetDIBits (
UINT ColorUse
);
/* Metafiles are user-mode. */
HENHMETAFILE
STDCALL
NtGdiSetEnhMetaFileBits (
UINT BufSize,
CONST PBYTE Data
);
/* Should be done in user-mode. */
BOOL
STDCALL
NtGdiSetICMProfile(HDC hDC,
LPWSTR Filename);
/* Needs to be done in user-mode, using shared GDI Object Attributes. */
DWORD
STDCALL
@ -434,14 +260,6 @@ NtGdiStretchDIBits (
DWORD ROP
);
/* Needs to be done in user-mode. */
BOOL
STDCALL
NtGdiUpdateICMRegKey(DWORD Reserved,
LPWSTR CMID,
LPWSTR Filename,
UINT Command);
#endif /* WIN32K_NTGDI_BAD_INCLUDED */

View file

@ -23,16 +23,6 @@
#define NDEBUG
#include <debug.h>
BOOL
STDCALL
NtGdiColorMatchToTarget(HDC hDC,
HDC hDCTarget,
DWORD Action)
{
UNIMPLEMENTED;
return FALSE;
}
HANDLE
APIENTRY
NtGdiCreateColorSpace(
@ -51,29 +41,6 @@ NtGdiDeleteColorSpace(
return FALSE;
}
INT
STDCALL
NtGdiEnumICMProfiles(HDC hDC,
LPWSTR lpstrBuffer,
UINT cch )
{
/*
* FIXME - build list of file names into lpstrBuffer.
* (MULTI-SZ would probably be best format)
* return (needed) length of buffer in bytes
*/
UNIMPLEMENTED;
return 0;
}
HCOLORSPACE
STDCALL
NtGdiGetColorSpace(HDC hDC)
{
/* FIXME: Need to to whatever GetColorSpace actually does */
return 0;
}
BOOL
FASTCALL
IntGetDeviceGammaRamp(HDEV hPDev, PGAMMARAMP Ramp)
@ -164,26 +131,6 @@ NtGdiGetDeviceGammaRamp(HDC hDC,
return Ret;
}
BOOL
STDCALL
NtGdiGetICMProfile(HDC hDC,
LPDWORD NameSize,
LPWSTR Filename)
{
UNIMPLEMENTED;
return FALSE;
}
BOOL
STDCALL
NtGdiGetLogColorSpace(HCOLORSPACE hColorSpace,
LPLOGCOLORSPACEW Buffer,
DWORD Size)
{
UNIMPLEMENTED;
return FALSE;
}
BOOL
STDCALL
NtGdiSetColorSpace(IN HDC hdc,
@ -401,24 +348,4 @@ NtGdiSetIcmMode(HDC hDC,
return 0;
}
BOOL
STDCALL
NtGdiSetICMProfile(HDC hDC,
LPWSTR Filename)
{
UNIMPLEMENTED;
return FALSE;
}
BOOL
STDCALL
NtGdiUpdateICMRegKey(DWORD Reserved,
LPWSTR CMID,
LPWSTR Filename,
UINT Command)
{
UNIMPLEMENTED;
return FALSE;
}
/* EOF */

View file

@ -44,23 +44,6 @@ NtGdiDescribePixelFormat(HDC hDC,
return 0;
}
UINT
STDCALL
NtGdiGetEnhMetaFilePixelFormat(HENHMETAFILE hEMF,
DWORD BufSize,
CONST PPIXELFORMATDESCRIPTOR pfd)
{
UNIMPLEMENTED;
return 0;
}
INT
STDCALL
NtGdiGetPixelFormat(HDC hDC)
{
UNIMPLEMENTED;
return 0;
}
BOOL
APIENTRY

View file

@ -677,20 +677,17 @@ NtGdiUMPDEngFreeUserMem 1
NtGdiDrawStream 3
#
#
#ReactOS specify syscall
#ReactOS specific syscalls
NtGdiSetDIBits 7
NtGdiSetEnhMetaFileBits 2
NtGdiSetICMProfile 2
NtGdiSetMapperFlags 2
NtGdiSetViewportExtEx 4
NtGdiSetViewportOrgEx 4
NtGdiSetWindowExtEx 4
NtGdiSetWindowOrgEx 4
NtGdiStretchDIBits 13
NtGdiUpdateICMRegKey 4
NtUserBuildMenuItemList 4
NtUserCreateCursorIconHandle 2
NtUserEnumClipboardFormats 1
NtUserEnumClipboardFormats 1
NtUserGetActiveWindow 0
NtUserGetCapture 0
NtUserGetClassLong 3
@ -713,7 +710,7 @@ NtUserMonitorFromPoint 3
NtUserMonitorFromRect 2
NtUserMonitorFromWindow 2
NtUserRegisterClassEx 6
NtUserRegisterClipboardFormat 1
NtUserRegisterClipboardFormat 1
NtUserSendMessage 5
NtUserSendMessageCallback 6
NtUserSendMessageTimeout 8
@ -721,36 +718,16 @@ NtUserSendNotifyMessage 4
NtUserSetScrollBarInfo 3
NtUserGetDesktopWindow 0
NtGdiAddFontResource 2
NtGdiCloseEnhMetaFile 1
NtGdiColorMatchToTarget 3
NtGdiCopyEnhMetaFile 2
NtGdiCreateDIBitmap 6
NtGdiCreateEnhMetaFile 4
NtGdiCreateScalableFontResource 4
NtGdiDeleteEnhMetaFile 1
NtGdiEnumEnhMetaFile 5
NtGdiEnumFonts 4
NtGdiEnumICMProfiles 3
NtGdiExtTextOut 8
NtGdiGdiComment 3
NtGdiGetAspectRatioFilterEx 2
NtGdiGetColorSpace 1
NtGdiGetEnhMetaFile 1
NtGdiGetEnhMetaFileBits 3
NtGdiGetEnhMetaFileDescription 3
NtGdiGetEnhMetaFileHeader 3
NtGdiGetEnhMetaFilePaletteEntries 3
NtGdiGetEnhMetaFilePixelFormat 3
NtGdiGetFontFamilyInfo 4
NtGdiGetFontLanguageInfo 1
NtGdiGetICMProfile 3
NtGdiGetLogColorSpace 3
NtGdiGetPixelFormat 1
NtGdiGetTextExtentPoint32 4
NtGdiOffsetViewportOrgEx 4
NtGdiOffsetWindowOrgEx 4
NtGdiPlayEnhMetaFile 3
NtGdiPlayEnhMetaFileRecord 4
NtGdiPolyTextOut 3
NtGdiRealizePalette 1
NtGdiRemoveFontResource 1

View file

@ -157,7 +157,6 @@
<file>gdiobj.c</file>
<file>icm.c</file>
<file>line.c</file>
<file>metafile.c</file>
<file>palobj.c</file>
<file>path.c</file>
<file>pen.c</file>