| /* | 
 |  * GDI objects | 
 |  * | 
 |  * Copyright 1993 Alexandre Julliard | 
 |  */ | 
 |  | 
 | #include <stdlib.h> | 
 | #include <stdio.h> | 
 | #include "bitmap.h" | 
 | #include "brush.h" | 
 | #include "font.h" | 
 | #include "pen.h" | 
 | #include "debugtools.h" | 
 |  | 
 | DEFAULT_DEBUG_CHANNEL(gdi); | 
 |  | 
 |  | 
 | extern HBITMAP WIN16DRV_BITMAP_SelectObject( DC * dc, HBITMAP hbitmap, | 
 |                                              BITMAPOBJ * bmp ); | 
 | extern HBRUSH WIN16DRV_BRUSH_SelectObject( DC * dc, HBRUSH hbrush, | 
 |                                            BRUSHOBJ * brush ); | 
 | extern HFONT WIN16DRV_FONT_SelectObject( DC * dc, HFONT hfont, | 
 |                                          FONTOBJ * font ); | 
 | extern HPEN WIN16DRV_PEN_SelectObject( DC * dc, HPEN hpen, PENOBJ * pen ); | 
 |  | 
 |  | 
 | /*********************************************************************** | 
 |  *           WIN16DRV_SelectObject | 
 |  */ | 
 | HGDIOBJ WIN16DRV_SelectObject( DC *dc, HGDIOBJ handle ) | 
 | { | 
 |     GDIOBJHDR *ptr = GDI_GetObjPtr( handle, MAGIC_DONTCARE ); | 
 |     HGDIOBJ ret = 0; | 
 |  | 
 |     if (!ptr) return 0; | 
 |     TRACE("hdc=%04x %04x\n", dc->hSelf, handle ); | 
 |      | 
 |     switch(GDIMAGIC(ptr->wMagic)) | 
 |     { | 
 |     case PEN_MAGIC: | 
 |         ret = WIN16DRV_PEN_SelectObject( dc, handle, (PENOBJ *)ptr );	   | 
 |         break; | 
 |     case BRUSH_MAGIC: | 
 |         ret = WIN16DRV_BRUSH_SelectObject( dc, handle, (BRUSHOBJ *)ptr );	   | 
 |         break; | 
 |     case BITMAP_MAGIC: | 
 |         FIXME("WIN16DRV_SelectObject for BITMAP not implemented\n"); | 
 |         ret = 1; | 
 |         break; | 
 |     case FONT_MAGIC: | 
 |         ret = WIN16DRV_FONT_SelectObject( dc, handle, (FONTOBJ *)ptr );	   | 
 | 	break; | 
 |     case REGION_MAGIC: | 
 | 	ret = (HGDIOBJ16)SelectClipRgn16( dc->hSelf, handle ); | 
 | 	break; | 
 |     } | 
 |     GDI_ReleaseObj( handle ); | 
 |     return ret; | 
 | } |