#include <precomp.h>
#include "gdi_private.h"
#include <debug.h>
Go to the source code of this file.
|
static GDILOOBJTYPE | ConvertObjectType (WORD wType) |
|
HGDIOBJ | alloc_gdi_handle (PVOID pvObject, WORD wType, const struct gdi_obj_funcs *funcs) |
|
PVOID | free_gdi_handle (HGDIOBJ hobj) |
|
PVOID | GDI_GetObjPtr (HGDIOBJ hobj, WORD wType) |
|
VOID | GDI_ReleaseObj (HGDIOBJ hobj) |
|
WINEDC * | alloc_dc_ptr (WORD magic) |
|
WINEDC * | get_dc_ptr (HDC hdc) |
|
VOID | GDI_hdc_using_object (HGDIOBJ hobj, HDC hdc) |
|
VOID | GDI_hdc_not_using_object (HGDIOBJ hobj, HDC hdc) |
|
int | bitmap_info_size (const BITMAPINFO *info, WORD coloruse) |
|
BOOL | get_brush_bitmap_info (HBRUSH hbr, PBITMAPINFO pbmi, PVOID pvBits, PUINT puUsage) |
|
BOOL WINAPI | SetVirtualResolution (HDC hdc, DWORD cxVirtualDevicePixel, DWORD cyVirtualDevicePixel, DWORD cxVirtualDeviceMm, DWORD cyVirtualDeviceMm) |
|
BOOL WINAPI | DeleteColorSpace (HCOLORSPACE hcs) |
|
void __cdecl | _assert (const char *exp, const char *file, unsigned line) |
|
BOOL WINAPI | METADC_SetD (_In_ HDC hdc, _In_ DWORD dwIn, _In_ USHORT usMF16Id) |
|
BOOL WINAPI | EMFDC_SetD (_In_ PLDC pldc, _In_ DWORD dwIn, _In_ ULONG ulMFId) |
|
void | METADC_DeleteObject (HDC hdc, HGDIOBJ obj) |
|
void | emfdc_delete_object (HDC hdc, HGDIOBJ obj) |
|
VOID WINAPI | METADC_RosGlueDeleteObject (HGDIOBJ hobj) |
|
BOOL WINAPI | METADC_RosGlueDeleteDC (_In_ HDC hdc) |
|
◆ NDEBUG
◆ _assert()
Definition at line 301 of file rosglue.c.
305{
307}
#define DbgRaiseAssertionFailure
◆ alloc_dc_ptr()
Definition at line 106 of file rosglue.c.
107{
109
110
113 {
115 }
116
120
122 {
123
124
127 {
130 }
131
133
134
136 }
137 else
138 {
139
141 }
142
143 return pWineDc;
144}
#define HeapFree(x, y, z)
BOOL FASTCALL GdiSetLDC(HDC hdc, PVOID pvLDC)
__kernel_entry W32KAPI HDC APIENTRY NtGdiCreateMetafileDC(_In_ HDC hdc)
HGDIOBJ WINAPI GetStockObject(_In_ int)
Referenced by CreateEnhMetaFileW(), and MFDRV_AllocMetaFile().
◆ alloc_gdi_handle()
Definition at line 36 of file rosglue.c.
40{
42
43
48 {
49
52 }
53
54
56}
HGDIOBJ WINAPI GdiCreateClientObj(_In_ PVOID pvObject, _In_ GDILOOBJTYPE eObjType)
static GDILOOBJTYPE ConvertObjectType(WORD wType)
@ GDILoObjType_LO_METAFILE_TYPE
@ GDILoObjType_LO_METADC16_TYPE
@ GDILoObjType_LO_METAFILE16_TYPE
enum GDILoObjType GDILOOBJTYPE
◆ bitmap_info_size()
Definition at line 199 of file rosglue.c.
202{
204
206 {
211 }
212 else
213 {
214 if (
info->bmiHeader.biClrUsed) colors =
min(
info->bmiHeader.biClrUsed, 256 );
215 else colors =
info->bmiHeader.biBitCount > 8 ? 0 : 1 <<
info->bmiHeader.biBitCount;
219 }
220}
static const BYTE masks[8]
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
◆ ConvertObjectType()
Definition at line 11 of file rosglue.c.
13{
14
15 switch (wType)
16 {
31 default: return 0;
32 }
33}
@ GDILoObjType_LO_FONT_TYPE
@ GDILoObjType_LO_PALETTE_TYPE
@ GDILoObjType_LO_BRUSH_TYPE
@ GDILoObjType_LO_BITMAP_TYPE
@ GDILoObjType_LO_REGION_TYPE
@ GDILoObjType_LO_EXTPEN_TYPE
@ GDILoObjType_LO_ICMLCS_TYPE
@ GDILoObjType_LO_DC_TYPE
@ GDILoObjType_LO_PEN_TYPE
@ GDILoObjType_LO_ALTDC_TYPE
Referenced by alloc_gdi_handle(), and GDI_GetObjPtr().
◆ DeleteColorSpace()
Definition at line 294 of file rosglue.c.
296{
298}
__kernel_entry W32KAPI BOOL APIENTRY NtGdiDeleteColorSpace(_In_ HANDLE hColorSpace)
◆ emfdc_delete_object()
Definition at line 232 of file emfdc.c.
233{
238
240
244
246
249}
static UINT emfdc_find_object(struct emf *emf, HGDIOBJ obj)
static BOOL emfdc_record(struct emf *emf, EMR *emr)
DC * get_dc_ptr(HDC hdc) DECLSPEC_HIDDEN
Referenced by METADC_RosGlueDeleteObject().
◆ EMFDC_SetD()
Definition at line 331 of file rosglue.c.
335{
336 switch(ulMFId)
337 {
342 default:
344 }
345}
BOOL EMFDC_SetMapMode(LDC *dc_attr, INT mode) DECLSPEC_HIDDEN
BOOL EMFDC_SetArcDirection(LDC *dc_attr, INT dir) DECLSPEC_HIDDEN
_In_ UINT _In_ DWORD dwIn
#define EMR_SETARCDIRECTION
Referenced by GetAndSetDCDWord().
◆ free_gdi_handle()
◆ GDI_GetObjPtr()
◆ GDI_hdc_not_using_object()
◆ GDI_hdc_using_object()
Definition at line 166 of file rosglue.c.
169{
170
171
172
174 {
175
176 DPRINT1(
"Failed to create link for selected METADC object.\n");
177 return;
178 }
179}
BOOL WINAPI GdiCreateClientObjLink(_In_ HGDIOBJ hobj, _In_ PVOID pvObject)
Referenced by emfdc_select_brush(), emfdc_select_font(), emfdc_select_pen(), EMFDC_SelectPalette(), EMFDC_SetDCBrushColor(), EMFDC_SetDCPenColor(), EMFDRV_SelectBrush(), EMFDRV_SelectFont(), EMFDRV_SelectPalette(), EMFDRV_SelectPen(), EMFDRV_SetDCBrushColor(), EMFDRV_SetDCPenColor(), METADC_SelectBrush(), METADC_SelectFont(), METADC_SelectPen(), MFDRV_SelectBrush(), MFDRV_SelectFont(), and MFDRV_SelectPen().
◆ GDI_ReleaseObj()
◆ get_brush_bitmap_info()
Definition at line 223 of file rosglue.c.
228{
232
233
237
241
242
245
246
249
250 if (pvBits)
251 {
252
256
257
259 {
262 }
263
265
266 }
267
268
270 {
272 }
274}
__kernel_entry W32KAPI HBITMAP APIENTRY NtGdiGetObjectBitmapHandle(_In_ HBRUSH hbr, _Out_ UINT *piUsage)
_In_ HBITMAP _In_ UINT _In_ UINT _Inout_ LPBITMAPINFO pbmi
BITMAPINFOHEADER bmiHeader
int WINAPI GetDIBits(_In_ HDC hdc, _In_ HBITMAP hbm, _In_ UINT start, _In_ UINT cLines, _Out_opt_ LPVOID lpvBits, _At_((LPBITMAPINFOHEADER) lpbmi, _Inout_) LPBITMAPINFO lpbmi, _In_ UINT usage)
HDC WINAPI GetDC(_In_opt_ HWND)
◆ get_dc_ptr()
◆ METADC_DeleteObject()
◆ METADC_RosGlueDeleteDC()
Definition at line 392 of file rosglue.c.
394{
396
398 {
400 }
401
403 {
405
406 if ( pWineDc )
407 {
408
410 {
411
412 }
413
415
416
419
420
422 }
423 }
424
426}
BOOL EMFDC_DeleteDC(LDC *dc_attr) DECLSPEC_HIDDEN
BOOL METADC_DeleteDC(HDC hdc)
__kernel_entry W32KAPI BOOL APIENTRY NtGdiDeleteObjectApp(_In_ HANDLE hobj)
Referenced by DeleteDC().
◆ METADC_RosGlueDeleteObject()
Definition at line 352 of file rosglue.c.
353{
356
357
364 {
365 return;
366 }
367
368
369
372 {
373 DPRINT1(
"the link was not found\n");
374
375 return;
376 }
377
379
381 {
383 if ( pWineDc )
384 {
386 }
387 }
388}
void METADC_DeleteObject(HDC hdc, HGDIOBJ obj)
void emfdc_delete_object(HDC hdc, HGDIOBJ obj)
Referenced by DeleteObject().
◆ METADC_SetD()
Definition at line 312 of file rosglue.c.
317{
318 switch(usMF16Id)
319 {
324 default:
326 }
327}
BOOL METADC_SetMapMode(HDC hdc, INT mode) DECLSPEC_HIDDEN
BOOL METADC_SetRelAbs(HDC hdc, INT mode) DECLSPEC_HIDDEN
Referenced by GetAndSetDCDWord().
◆ SetVirtualResolution()
Definition at line 278 of file rosglue.c.
284{
286 cxVirtualDevicePixel,
287 cyVirtualDevicePixel,
288 cxVirtualDeviceMm,
289 cyVirtualDeviceMm);
290}
__kernel_entry W32KAPI BOOL APIENTRY NtGdiSetVirtualResolution(_In_ HDC hdc, _In_ INT cxVirtualDevicePixel, _In_ INT cyVirtualDevicePixel, _In_ INT cxVirtualDeviceMm, _In_ INT cyVirtualDeviceMm)
Referenced by CreateEnhMetaFileW(), CreateMetaFileW(), and MFDRV_AllocMetaFile().