gdi32: Fix text baseline calculation in compatible mode.
[wine/multimedia.git] / dlls / wing32 / wing32.c
blobac749867e9fbf08b1adbb736451a749b928fb0bc
1 /*
2 * WinG support
4 * Copyright 2007 Dmitry Timoshkov
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #include <stdarg.h>
23 #include "windef.h"
24 #include "winbase.h"
25 #include "wingdi.h"
26 #include "winuser.h"
28 /***********************************************************************
29 * WinGCreateDC (WING32.@)
31 HDC WINAPI WinGCreateDC( void )
33 return CreateCompatibleDC( 0 );
36 /***********************************************************************
37 * WinGRecommendDIBFormat (WING32.@)
39 BOOL WINAPI WinGRecommendDIBFormat( BITMAPINFO *bmi )
41 if (!bmi) return FALSE;
43 bmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
44 bmi->bmiHeader.biWidth = 320;
45 bmi->bmiHeader.biHeight = -1;
46 bmi->bmiHeader.biPlanes = 1;
47 bmi->bmiHeader.biBitCount = 8;
48 bmi->bmiHeader.biCompression = BI_RGB;
49 bmi->bmiHeader.biSizeImage = 0;
50 bmi->bmiHeader.biXPelsPerMeter = 0;
51 bmi->bmiHeader.biYPelsPerMeter = 0;
52 bmi->bmiHeader.biClrUsed = 0;
53 bmi->bmiHeader.biClrImportant = 0;
55 return TRUE;
58 /***********************************************************************
59 * WinGCreateBitmap (WING32.@)
61 HBITMAP WINAPI WinGCreateBitmap( HDC hdc, BITMAPINFO *bmi, void **bits )
63 return CreateDIBSection( hdc, bmi, 0, bits, 0, 0 );
66 /***********************************************************************
67 * WinGGetDIBPointer (WING32.@)
69 void * WINAPI WinGGetDIBPointer( HBITMAP hbmp, BITMAPINFO *bmi )
71 DIBSECTION ds;
73 if (GetObjectW( hbmp, sizeof(ds), &ds ) == sizeof(ds))
75 memcpy( &bmi->bmiHeader, &ds.dsBmih, sizeof(*bmi) );
76 return ds.dsBm.bmBits;
78 return NULL;
81 /***********************************************************************
82 * WinGSetDIBColorTable (WING32.@)
84 UINT WINAPI WinGSetDIBColorTable( HDC hdc, UINT start, UINT end, RGBQUAD *colors )
86 return SetDIBColorTable( hdc, start, end, colors );
89 /***********************************************************************
90 * WinGGetDIBColorTable (WING32.@)
92 UINT WINAPI WinGGetDIBColorTable( HDC hdc, UINT start, UINT end, RGBQUAD *colors )
94 return GetDIBColorTable( hdc, start, end, colors );
97 /***********************************************************************
98 * WinGCreateHalftonePalette (WING32.@)
100 HPALETTE WINAPI WinGCreateHalftonePalette( void )
102 HDC hdc;
103 HPALETTE hpal;
105 hdc = GetDC( 0 );
106 hpal = CreateHalftonePalette( hdc );
107 ReleaseDC( 0, hdc );
109 return hpal;
112 /***********************************************************************
113 * WinGCreateHalftoneBrush (WING32.@)
115 HBRUSH WINAPI WinGCreateHalftoneBrush( HDC hdc, COLORREF color, INT type )
117 return CreateSolidBrush( color );
120 /***********************************************************************
121 * WinGStretchBlt (WING32.@)
123 BOOL WINAPI WinGStretchBlt( HDC hdcDst, INT xDst, INT yDst, INT widthDst, INT heightDst,
124 HDC hdcSrc, INT xSrc, INT ySrc, INT widthSrc, INT heightSrc )
126 INT old_blt_mode;
127 BOOL ret;
129 old_blt_mode = SetStretchBltMode( hdcDst, COLORONCOLOR );
130 ret = StretchBlt( hdcDst, xDst, yDst, widthDst, heightDst,
131 hdcSrc, xSrc, ySrc, widthSrc, heightSrc, SRCCOPY );
132 SetStretchBltMode( hdcDst, old_blt_mode );
133 return ret;
136 /***********************************************************************
137 * WinGBitBlt (WING32.@)
139 BOOL WINAPI WinGBitBlt( HDC hdcDst, INT xDst, INT yDst, INT width,
140 INT height, HDC hdcSrc, INT xSrc, INT ySrc )
142 return BitBlt( hdcDst, xDst, yDst, width, height, hdcSrc, xSrc, ySrc, SRCCOPY );