Don't return overflow if no class buffer was specified.
[wine/dcerpc.git] / dlls / ttydrv / objects.c
blob0165b54d4e68c0534c180562d9b78609d84aaf1d
1 /*
2 * TTY DC objects
4 * Copyright 1999 Patrik Stridvall
5 */
7 #include "config.h"
9 #include "bitmap.h"
10 #include "gdi.h"
11 #include "ttydrv.h"
12 #include "debugtools.h"
14 DEFAULT_DEBUG_CHANNEL(ttydrv);
16 /**********************************************************************/
18 extern HBITMAP TTYDRV_DC_BITMAP_SelectObject(DC *dc, HBITMAP hbitmap, BITMAPOBJ *bitmap);
19 extern BOOL TTYDRV_DC_BITMAP_DeleteObject(HBITMAP hbitmap, BITMAPOBJ *bitmap);
22 /***********************************************************************
23 * TTYDRV_DC_BRUSH_SelectObject
25 static HBRUSH TTYDRV_DC_BRUSH_SelectObject(DC *dc, HBRUSH hbrush)
27 HBRUSH hPreviousBrush;
29 TRACE("(%p, 0x%04x)\n", dc, hbrush);
31 hPreviousBrush = dc->hBrush;
32 dc->hBrush = hbrush;
34 return hPreviousBrush;
37 /***********************************************************************
38 * TTYDRV_DC_FONT_SelectObject
40 static HFONT TTYDRV_DC_FONT_SelectObject(DC* dc, HFONT hfont)
42 TRACE("(%p, 0x%04x)\n", dc, hfont);
44 return TRUE; /* Use device font */
47 /***********************************************************************
48 * TTYDRV_DC_PEN_SelectObject
50 static HPEN TTYDRV_DC_PEN_SelectObject(DC *dc, HBRUSH hpen)
52 HPEN hPreviousPen;
54 TRACE("(%p, 0x%04x)\n", dc, hpen);
56 hPreviousPen = dc->hPen;
57 dc->hPen = hpen;
59 return hPreviousPen;
62 /***********************************************************************
63 * TTYDRV_DC_SelectObject
65 HGDIOBJ TTYDRV_DC_SelectObject(DC *dc, HGDIOBJ handle)
67 GDIOBJHDR *ptr = GDI_GetObjPtr(handle, MAGIC_DONTCARE);
68 HGDIOBJ result = 0;
70 if(!ptr) return 0;
72 switch(GDIMAGIC(ptr->wMagic))
74 case BITMAP_MAGIC:
75 result = TTYDRV_DC_BITMAP_SelectObject(dc, handle, (BITMAPOBJ *) ptr);
76 break;
77 case BRUSH_MAGIC:
78 result = TTYDRV_DC_BRUSH_SelectObject(dc, handle);
79 break;
80 case FONT_MAGIC:
81 result = TTYDRV_DC_FONT_SelectObject(dc, handle);
82 break;
83 case PEN_MAGIC:
84 result = TTYDRV_DC_PEN_SelectObject(dc, handle);
85 break;
86 case REGION_MAGIC:
87 /* FIXME: Shouldn't be handled here */
88 result = (HGDIOBJ) SelectClipRgn(dc->hSelf, handle);
89 break;
90 default:
91 ERR("handle (0x%04x) has unknown magic (0x%04x)\n",
92 handle, GDIMAGIC(ptr->wMagic));
95 GDI_ReleaseObj(handle);
97 return result;
100 /***********************************************************************
101 * TTYDRV_DC_DeleteObject
103 BOOL TTYDRV_DC_DeleteObject(HGDIOBJ handle)
105 GDIOBJHDR *ptr = GDI_GetObjPtr(handle, MAGIC_DONTCARE);
106 BOOL result;
108 if(!ptr) return FALSE;
110 switch(GDIMAGIC(ptr->wMagic))
112 case BITMAP_MAGIC:
113 result = TTYDRV_DC_BITMAP_DeleteObject(handle, (BITMAPOBJ *) ptr);
114 break;
115 case BRUSH_MAGIC:
116 case FONT_MAGIC:
117 case PEN_MAGIC:
118 case REGION_MAGIC:
119 result = TRUE;
120 break;
121 default:
122 ERR("handle (0x%04x) has unknown magic (0x%04x)\n",
123 handle, GDIMAGIC(ptr->wMagic));
124 result = FALSE;
127 GDI_ReleaseObj(handle);
129 return result;