mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 07:53:07 +00:00
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:
parent
2134c50b74
commit
569862a321
6 changed files with 314 additions and 382 deletions
|
@ -1,20 +1,261 @@
|
||||||
#include "precomp.h"
|
#include "precomp.h"
|
||||||
|
|
||||||
|
#define NDEBUG
|
||||||
|
#include <debug.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
HENHMETAFILE
|
HENHMETAFILE
|
||||||
STDCALL
|
WINAPI
|
||||||
CloseEnhMetaFile(
|
CloseEnhMetaFile(
|
||||||
HDC hdc)
|
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.
|
#if 0 // Remove once new EnhMetaFile support is implemented.
|
||||||
|
HDC
|
||||||
HDC WINAPI CreateEnhMetaFileW(
|
WINAPI
|
||||||
|
CreateEnhMetaFileW(
|
||||||
HDC hDC, /* [in] optional reference DC */
|
HDC hDC, /* [in] optional reference DC */
|
||||||
LPCWSTR filename, /* [in] optional filename for disk metafiles */
|
LPCWSTR filename, /* [in] optional filename for disk metafiles */
|
||||||
const RECT* rect, /* [in] optional bounding rectangle */
|
const RECT* rect, /* [in] optional bounding rectangle */
|
||||||
|
@ -144,29 +385,15 @@ HDC WINAPI CreateEnhMetaFileW(
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
HENHMETAFILE
|
|
||||||
STDCALL
|
|
||||||
CopyEnhMetaFileW(
|
|
||||||
HENHMETAFILE hemfSrc,
|
|
||||||
LPCWSTR lpszFile
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return NtGdiCopyEnhMetaFile ( hemfSrc, lpszFile );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
HENHMETAFILE
|
HENHMETAFILE
|
||||||
STDCALL
|
WINAPI
|
||||||
CopyEnhMetaFileA(
|
CopyEnhMetaFileA(
|
||||||
HENHMETAFILE hemfSrc,
|
HENHMETAFILE hemfSrc,
|
||||||
LPCSTR lpszFile
|
LPCSTR lpszFile)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
LPWSTR lpszFileW;
|
LPWSTR lpszFileW;
|
||||||
|
@ -177,7 +404,7 @@ CopyEnhMetaFileA(
|
||||||
SetLastError (RtlNtStatusToDosError(Status));
|
SetLastError (RtlNtStatusToDosError(Status));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rc = NtGdiCopyEnhMetaFile ( hemfSrc, lpszFileW );
|
rc = NULL;
|
||||||
|
|
||||||
HEAP_free ( lpszFileW );
|
HEAP_free ( lpszFileW );
|
||||||
}
|
}
|
||||||
|
@ -186,32 +413,15 @@ CopyEnhMetaFileA(
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
HDC
|
HDC
|
||||||
STDCALL
|
WINAPI
|
||||||
CreateEnhMetaFileW(
|
|
||||||
HDC hdcRef,
|
|
||||||
LPCWSTR lpFileName,
|
|
||||||
CONST RECT *lpRect,
|
|
||||||
LPCWSTR lpDescription
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return NtGdiCreateEnhMetaFile ( hdcRef, lpFileName, (CONST LPRECT)lpRect, lpDescription );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
HDC
|
|
||||||
STDCALL
|
|
||||||
CreateEnhMetaFileA(
|
CreateEnhMetaFileA(
|
||||||
HDC hdcRef,
|
HDC hdcRef,
|
||||||
LPCSTR lpFileName,
|
LPCSTR lpFileName,
|
||||||
CONST RECT *lpRect,
|
CONST RECT *lpRect,
|
||||||
LPCSTR lpDescription
|
LPCSTR lpDescription)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
LPWSTR lpFileNameW, lpDescriptionW;
|
LPWSTR lpFileNameW, lpDescriptionW;
|
||||||
|
@ -237,7 +447,7 @@ CreateEnhMetaFileA(
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
rc = NtGdiCreateEnhMetaFile (hdcRef, lpFileNameW, (CONST LPRECT)lpRect, lpDescriptionW );
|
rc = NULL;
|
||||||
|
|
||||||
if (lpDescriptionW != NULL)
|
if (lpDescriptionW != NULL)
|
||||||
HEAP_free ( lpDescriptionW );
|
HEAP_free ( lpDescriptionW );
|
||||||
|
@ -248,27 +458,16 @@ CreateEnhMetaFileA(
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
HENHMETAFILE
|
|
||||||
STDCALL
|
|
||||||
GetEnhMetaFileW(
|
|
||||||
LPCWSTR lpszMetaFile
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return NtGdiGetEnhMetaFile ( lpszMetaFile );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
HENHMETAFILE
|
HENHMETAFILE
|
||||||
STDCALL
|
WINAPI
|
||||||
GetEnhMetaFileA(
|
GetEnhMetaFileA(
|
||||||
LPCSTR lpszMetaFile
|
LPCSTR lpszMetaFile)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
LPWSTR lpszMetaFileW;
|
LPWSTR lpszMetaFileW;
|
||||||
|
@ -279,7 +478,7 @@ GetEnhMetaFileA(
|
||||||
SetLastError (RtlNtStatusToDosError(Status));
|
SetLastError (RtlNtStatusToDosError(Status));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rc = NtGdiGetEnhMetaFile ( lpszMetaFileW );
|
rc = NULL;
|
||||||
|
|
||||||
HEAP_free ( lpszMetaFileW );
|
HEAP_free ( lpszMetaFileW );
|
||||||
}
|
}
|
||||||
|
@ -289,34 +488,17 @@ GetEnhMetaFileA(
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @implemented
|
* @unimplemented
|
||||||
*/
|
*/
|
||||||
UINT
|
UINT
|
||||||
STDCALL
|
WINAPI
|
||||||
GetEnhMetaFileDescriptionW(
|
|
||||||
HENHMETAFILE hemf,
|
|
||||||
UINT cchBuffer,
|
|
||||||
LPWSTR lpszDescription
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return NtGdiGetEnhMetaFileDescription ( hemf, cchBuffer, lpszDescription );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* @implemented
|
|
||||||
*/
|
|
||||||
UINT
|
|
||||||
STDCALL
|
|
||||||
GetEnhMetaFileDescriptionA(
|
GetEnhMetaFileDescriptionA(
|
||||||
HENHMETAFILE hemf,
|
HENHMETAFILE hemf,
|
||||||
UINT cchBuffer,
|
UINT cchBuffer,
|
||||||
LPSTR lpszDescription
|
LPSTR lpszDescription)
|
||||||
)
|
|
||||||
{
|
{
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
LPWSTR lpszDescriptionW;
|
LPWSTR lpszDescriptionW;
|
||||||
UINT rc;
|
|
||||||
|
|
||||||
if ( lpszDescription && cchBuffer )
|
if ( lpszDescription && cchBuffer )
|
||||||
{
|
{
|
||||||
|
@ -330,8 +512,6 @@ GetEnhMetaFileDescriptionA(
|
||||||
else
|
else
|
||||||
lpszDescriptionW = NULL;
|
lpszDescriptionW = NULL;
|
||||||
|
|
||||||
rc = NtGdiGetEnhMetaFileDescription ( hemf, cchBuffer, lpszDescriptionW );
|
|
||||||
|
|
||||||
if ( lpszDescription && cchBuffer )
|
if ( lpszDescription && cchBuffer )
|
||||||
{
|
{
|
||||||
Status = RtlUnicodeToMultiByteN ( lpszDescription,
|
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;
|
||||||
|
}
|
||||||
|
|
|
@ -85,27 +85,6 @@ STDCALL
|
||||||
NtGdiAddFontResource(PUNICODE_STRING Filename,
|
NtGdiAddFontResource(PUNICODE_STRING Filename,
|
||||||
DWORD fl);
|
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 */
|
/* Use NtGdiCreateDIBitmapInternal */
|
||||||
HBITMAP
|
HBITMAP
|
||||||
|
@ -119,36 +98,8 @@ NtGdiCreateDIBitmap (
|
||||||
UINT Usage
|
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. */
|
/* Should be done in user-mode. */
|
||||||
int
|
int
|
||||||
STDCALL
|
STDCALL
|
||||||
|
@ -157,13 +108,6 @@ NtGdiEnumFonts(HDC hDC,
|
||||||
FONTENUMPROCW FontFunc,
|
FONTENUMPROCW FontFunc,
|
||||||
LPARAM lParam);
|
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. */
|
/* Use NtGdiExtTextOutW with 0, 0 at the end. */
|
||||||
BOOL
|
BOOL
|
||||||
STDCALL
|
STDCALL
|
||||||
|
@ -176,102 +120,17 @@ NtGdiExtTextOut(HDC hdc,
|
||||||
UINT cbCount,
|
UINT cbCount,
|
||||||
CONST INT *lpDx);
|
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. */
|
/* Should be done in user-mode. */
|
||||||
BOOL
|
BOOL
|
||||||
STDCALL
|
STDCALL
|
||||||
NtGdiGetAspectRatioFilterEx(HDC hDC,
|
NtGdiGetAspectRatioFilterEx(HDC hDC,
|
||||||
LPSIZE AspectRatio);
|
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. */
|
/* Should be done in user-mode. */
|
||||||
DWORD
|
DWORD
|
||||||
STDCALL
|
STDCALL
|
||||||
NtGdiGetFontLanguageInfo(HDC hDC);
|
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 */
|
/* Use NtGdiGetDCPoint with GdiGetViewPortExt */
|
||||||
BOOL STDCALL NtGdiGetViewportExtEx(HDC hDC, LPSIZE viewportExt);
|
BOOL STDCALL NtGdiGetViewportExtEx(HDC hDC, LPSIZE viewportExt);
|
||||||
|
|
||||||
|
@ -304,25 +163,6 @@ NtGdiOffsetWindowOrgEx (
|
||||||
LPPOINT Point
|
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. */
|
/* Use NtGdiPolyTextOutW with 0 at the end. */
|
||||||
BOOL
|
BOOL
|
||||||
STDCALL
|
STDCALL
|
||||||
|
@ -355,20 +195,6 @@ NtGdiSetDIBits (
|
||||||
UINT ColorUse
|
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. */
|
/* Needs to be done in user-mode, using shared GDI Object Attributes. */
|
||||||
DWORD
|
DWORD
|
||||||
STDCALL
|
STDCALL
|
||||||
|
@ -434,14 +260,6 @@ NtGdiStretchDIBits (
|
||||||
DWORD ROP
|
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 */
|
#endif /* WIN32K_NTGDI_BAD_INCLUDED */
|
||||||
|
|
||||||
|
|
|
@ -23,16 +23,6 @@
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
BOOL
|
|
||||||
STDCALL
|
|
||||||
NtGdiColorMatchToTarget(HDC hDC,
|
|
||||||
HDC hDCTarget,
|
|
||||||
DWORD Action)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
HANDLE
|
HANDLE
|
||||||
APIENTRY
|
APIENTRY
|
||||||
NtGdiCreateColorSpace(
|
NtGdiCreateColorSpace(
|
||||||
|
@ -51,29 +41,6 @@ NtGdiDeleteColorSpace(
|
||||||
return FALSE;
|
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
|
BOOL
|
||||||
FASTCALL
|
FASTCALL
|
||||||
IntGetDeviceGammaRamp(HDEV hPDev, PGAMMARAMP Ramp)
|
IntGetDeviceGammaRamp(HDEV hPDev, PGAMMARAMP Ramp)
|
||||||
|
@ -164,26 +131,6 @@ NtGdiGetDeviceGammaRamp(HDC hDC,
|
||||||
return Ret;
|
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
|
BOOL
|
||||||
STDCALL
|
STDCALL
|
||||||
NtGdiSetColorSpace(IN HDC hdc,
|
NtGdiSetColorSpace(IN HDC hdc,
|
||||||
|
@ -401,24 +348,4 @@ NtGdiSetIcmMode(HDC hDC,
|
||||||
return 0;
|
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 */
|
/* EOF */
|
||||||
|
|
|
@ -44,23 +44,6 @@ NtGdiDescribePixelFormat(HDC hDC,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
UINT
|
|
||||||
STDCALL
|
|
||||||
NtGdiGetEnhMetaFilePixelFormat(HENHMETAFILE hEMF,
|
|
||||||
DWORD BufSize,
|
|
||||||
CONST PPIXELFORMATDESCRIPTOR pfd)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
INT
|
|
||||||
STDCALL
|
|
||||||
NtGdiGetPixelFormat(HDC hDC)
|
|
||||||
{
|
|
||||||
UNIMPLEMENTED;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
APIENTRY
|
APIENTRY
|
||||||
|
|
|
@ -677,17 +677,14 @@ NtGdiUMPDEngFreeUserMem 1
|
||||||
NtGdiDrawStream 3
|
NtGdiDrawStream 3
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
#ReactOS specify syscall
|
#ReactOS specific syscalls
|
||||||
NtGdiSetDIBits 7
|
NtGdiSetDIBits 7
|
||||||
NtGdiSetEnhMetaFileBits 2
|
|
||||||
NtGdiSetICMProfile 2
|
|
||||||
NtGdiSetMapperFlags 2
|
NtGdiSetMapperFlags 2
|
||||||
NtGdiSetViewportExtEx 4
|
NtGdiSetViewportExtEx 4
|
||||||
NtGdiSetViewportOrgEx 4
|
NtGdiSetViewportOrgEx 4
|
||||||
NtGdiSetWindowExtEx 4
|
NtGdiSetWindowExtEx 4
|
||||||
NtGdiSetWindowOrgEx 4
|
NtGdiSetWindowOrgEx 4
|
||||||
NtGdiStretchDIBits 13
|
NtGdiStretchDIBits 13
|
||||||
NtGdiUpdateICMRegKey 4
|
|
||||||
NtUserBuildMenuItemList 4
|
NtUserBuildMenuItemList 4
|
||||||
NtUserCreateCursorIconHandle 2
|
NtUserCreateCursorIconHandle 2
|
||||||
NtUserEnumClipboardFormats 1
|
NtUserEnumClipboardFormats 1
|
||||||
|
@ -721,36 +718,16 @@ NtUserSendNotifyMessage 4
|
||||||
NtUserSetScrollBarInfo 3
|
NtUserSetScrollBarInfo 3
|
||||||
NtUserGetDesktopWindow 0
|
NtUserGetDesktopWindow 0
|
||||||
NtGdiAddFontResource 2
|
NtGdiAddFontResource 2
|
||||||
NtGdiCloseEnhMetaFile 1
|
|
||||||
NtGdiColorMatchToTarget 3
|
|
||||||
NtGdiCopyEnhMetaFile 2
|
|
||||||
NtGdiCreateDIBitmap 6
|
NtGdiCreateDIBitmap 6
|
||||||
NtGdiCreateEnhMetaFile 4
|
|
||||||
NtGdiCreateScalableFontResource 4
|
NtGdiCreateScalableFontResource 4
|
||||||
NtGdiDeleteEnhMetaFile 1
|
|
||||||
NtGdiEnumEnhMetaFile 5
|
|
||||||
NtGdiEnumFonts 4
|
NtGdiEnumFonts 4
|
||||||
NtGdiEnumICMProfiles 3
|
|
||||||
NtGdiExtTextOut 8
|
NtGdiExtTextOut 8
|
||||||
NtGdiGdiComment 3
|
|
||||||
NtGdiGetAspectRatioFilterEx 2
|
NtGdiGetAspectRatioFilterEx 2
|
||||||
NtGdiGetColorSpace 1
|
|
||||||
NtGdiGetEnhMetaFile 1
|
|
||||||
NtGdiGetEnhMetaFileBits 3
|
|
||||||
NtGdiGetEnhMetaFileDescription 3
|
|
||||||
NtGdiGetEnhMetaFileHeader 3
|
|
||||||
NtGdiGetEnhMetaFilePaletteEntries 3
|
|
||||||
NtGdiGetEnhMetaFilePixelFormat 3
|
|
||||||
NtGdiGetFontFamilyInfo 4
|
NtGdiGetFontFamilyInfo 4
|
||||||
NtGdiGetFontLanguageInfo 1
|
NtGdiGetFontLanguageInfo 1
|
||||||
NtGdiGetICMProfile 3
|
|
||||||
NtGdiGetLogColorSpace 3
|
|
||||||
NtGdiGetPixelFormat 1
|
|
||||||
NtGdiGetTextExtentPoint32 4
|
NtGdiGetTextExtentPoint32 4
|
||||||
NtGdiOffsetViewportOrgEx 4
|
NtGdiOffsetViewportOrgEx 4
|
||||||
NtGdiOffsetWindowOrgEx 4
|
NtGdiOffsetWindowOrgEx 4
|
||||||
NtGdiPlayEnhMetaFile 3
|
|
||||||
NtGdiPlayEnhMetaFileRecord 4
|
|
||||||
NtGdiPolyTextOut 3
|
NtGdiPolyTextOut 3
|
||||||
NtGdiRealizePalette 1
|
NtGdiRealizePalette 1
|
||||||
NtGdiRemoveFontResource 1
|
NtGdiRemoveFontResource 1
|
||||||
|
|
|
@ -157,7 +157,6 @@
|
||||||
<file>gdiobj.c</file>
|
<file>gdiobj.c</file>
|
||||||
<file>icm.c</file>
|
<file>icm.c</file>
|
||||||
<file>line.c</file>
|
<file>line.c</file>
|
||||||
<file>metafile.c</file>
|
|
||||||
<file>palobj.c</file>
|
<file>palobj.c</file>
|
||||||
<file>path.c</file>
|
<file>path.c</file>
|
||||||
<file>pen.c</file>
|
<file>pen.c</file>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue