5 #undef WIN32_LEAN_AND_MEAN
8 #include <win32k/kapi.h>
9 #include <rosrtl/logfont.h>
23 return NtGdiGetObjectType(a0
);
39 return NtGdiDPtoLP(a0
, a1
, a2
);
53 return NtGdiSetBkColor(a0
, a1
);
66 return NtGdiGetGraphicsMode(a0
);
80 return NtGdiSetGraphicsMode(hdc
, iMode
);
93 return NtGdiGetMapMode(a0
);
101 GetCurrentPositionEx(
106 return NtGdiGetCurrentPositionEx(a0
, a1
);
119 return NtGdiGetBkColor(a0
);
132 return NtGdiGetBkMode(a0
);
145 return NtGdiGetBrushOrgEx(a0
, a1
);
158 return NtGdiGetROP2(a0
);
172 return NtGdiGetStretchBltMode(a0
);
187 return NtGdiGetTextAlign(hDc
);
201 return NtGdiGetTextColor(hDc
);
216 return NtGdiGetViewportExtEx(hDc
, lpSize
);
231 return NtGdiGetViewportOrgEx(hDc
, lpPoint
);
246 return NtGdiGetWindowExtEx(hDc
, lpSize
);
260 return NtGdiGetWindowOrgEx(hDc
, lpPoint
);
274 return NtGdiSetBkMode(a0
, a1
);
289 return NtGdiSetROP2(a0
, a1
);
303 return NtGdiSetStretchBltMode(a0
, a1
);
318 return NtGdiGetRelAbs(a0
);
327 GetStockObject(int Index
)
329 return(NtGdiGetStockObject(Index
));
337 GetClipBox(HDC hDc
, LPRECT Rect
)
339 return(NtGdiGetClipBox(hDc
, Rect
));
352 return NtGdiGetPolyFillMode(a0
);
365 CONST DEVMODEA
* lpInitData
368 ANSI_STRING DriverA
, DeviceA
, OutputA
;
369 UNICODE_STRING DriverU
, DeviceU
, OutputU
;
371 DEVMODEW
*lpInitDataW
;
374 * If needed, convert to Unicode
375 * any string parameter.
378 if (NULL
!= lpszDriver
)
380 RtlInitAnsiString(&DriverA
, (LPSTR
)lpszDriver
);
381 RtlAnsiStringToUnicodeString(&DriverU
, &DriverA
, TRUE
);
383 DriverU
.Buffer
= NULL
;
384 if (NULL
!= lpszDevice
)
386 RtlInitAnsiString(&DeviceA
, (LPSTR
)lpszDevice
);
387 RtlAnsiStringToUnicodeString(&DeviceU
, &DeviceA
, TRUE
);
389 DeviceU
.Buffer
= NULL
;
390 if (NULL
!= lpszOutput
)
392 RtlInitAnsiString(&OutputA
, (LPSTR
)lpszOutput
);
393 RtlAnsiStringToUnicodeString(&OutputU
, &OutputA
, TRUE
);
395 OutputU
.Buffer
= NULL
;
397 if (NULL
!= lpInitData
)
399 // lpInitDataW = HeapAllocMem(
404 * Call the Unicode version
415 * Free Unicode parameters.
417 RtlFreeUnicodeString(&DriverU
);
418 RtlFreeUnicodeString(&DeviceU
);
419 RtlFreeUnicodeString(&OutputU
);
422 * Return the possible DC handle.
438 CONST DEVMODEW
* lpInitData
441 UNICODE_STRING Driver
, Device
, Output
;
444 RtlInitUnicodeString(&Driver
, lpwszDriver
);
446 RtlInitUnicodeString(&Driver
, lpwszDevice
);
448 RtlInitUnicodeString(&Driver
, lpwszOutput
);
450 return NtGdiCreateDC((lpwszDriver
? &Driver
: NULL
),
451 (lpwszDevice
? &Device
: NULL
),
452 (lpwszOutput
? &Output
: NULL
),
453 (PDEVMODEW
)lpInitData
);
460 BOOL STDCALL
DeleteDC( HDC hDC
)
462 return NtGdiDeleteDC( hDC
);
475 return NtGdiCreateCompatableDC(hDC
);
489 return NtGdiSelectObject(hDC
, hGDIObj
);
503 return NtGdiSetMapMode( a0
, a1
);
519 return NtGdiSetViewportOrgEx( a0
, a1
, a2
, a3
);
535 return NtGdiOffsetViewportOrgEx(DC
, XOffset
, YOffset
, Point
);
551 return NtGdiSetWindowOrgEx( a0
, a1
, a2
, a3
);
560 DeleteObject(HGDIOBJ Obj
)
562 if (0 != ((DWORD
) Obj
& 0x00800000))
564 DPRINT1("Trying to delete system object 0x%x\n", Obj
);
568 return NtGdiDeleteObject(Obj
);
583 return NtGdiSelectPalette( a0
, a1
,a2
);
596 return NtGdiRealizePalette( a0
);
611 return NtGdiLPtoDP(a0
, a1
, a2
);
625 return NtGdiSetPolyFillMode(a0
, a1
);
639 return NtGdiGetDeviceCaps(DC
, Index
);
651 return NtGdiCreatePalette((CONST PLOGPALETTE
)a0
);
664 return NtGdiGetNearestColor(a0
,a1
);
672 GetNearestPaletteIndex(
677 return NtGdiGetNearestPaletteIndex(a0
,a1
);
692 return NtGdiGetPaletteEntries(a0
,a1
,a2
,a3
);
700 GetSystemPaletteEntries(
707 return NtGdiGetSystemPaletteEntries(a0
,a1
,a2
,a3
);
720 return NtGdiRestoreDC(a0
,a1
);
733 return NtGdiSaveDC(a0
);
745 CONST PALETTEENTRY
*a3
748 return NtGdiSetPaletteEntries(a0
,a1
,a2
,(CONST PPALETTEENTRY
)a3
);
761 return NtGdiGetWorldTransform(hdc
,a1
);
774 return NtGdiSetWorldTransform(a0
,(CONST PXFORM
)a1
);
782 ModifyWorldTransform(
788 return NtGdiModifyWorldTransform(a0
,(CONST PXFORM
)a1
,a2
);
802 return NtGdiCombineTransform(a0
,(CONST PXFORM
)a1
,(CONST PXFORM
)a2
);
817 return NtGdiSetDIBColorTable(hdc
,a1
,a2
,(RGBQUAD
*)a3
);
825 CreateHalftonePalette(
829 return NtGdiCreateHalftonePalette(hdc
);
844 return NtGdiSetViewportExtEx(a0
,a1
,a2
,a3
);
859 return NtGdiSetWindowExtEx(a0
,a1
,a2
,a3
);
874 return NtGdiOffsetWindowOrgEx(a0
,a1
,a2
,a3
);
882 SetBitmapDimensionEx(
889 return NtGdiSetBitmapDimensionEx(a0
,a1
,a2
,a3
);
902 return NtGdiGetDCOrgEx(a0
,a1
);
914 // Officially obsolete by Microsoft
916 if (!NtGdiGetDCOrgEx(a0
,&Pt
))
918 return(MAKELONG(Pt
.x
, Pt
.y
));
931 return NtGdiRectVisible(a0
,(RECT
*)a1
);
948 return NtGdiExtEscape(a0
, a1
, a2
, a3
, a4
, a5
);
957 GetObjectA(HGDIOBJ Handle
, int Size
, LPVOID Buffer
)
963 Type
= GetObjectType(Handle
);
969 if (OBJ_FONT
== Type
)
971 if (Size
< sizeof(LOGFONTA
))
973 SetLastError(ERROR_BUFFER_OVERFLOW
);
976 Result
= NtGdiGetObject(Handle
, sizeof(LOGFONTW
), &LogFontW
);
981 RosRtlLogFontW2A((LPLOGFONTA
) Buffer
, &LogFontW
);
982 Result
= sizeof(LOGFONTA
);
986 Result
= NtGdiGetObject(Handle
, Size
, Buffer
);
998 GetObjectW(HGDIOBJ Handle
, int Size
, LPVOID Buffer
)
1000 return NtGdiGetObject(Handle
, Size
, Buffer
);