source: trunk/src/gdi32/gdi32.cpp@ 4

Last change on this file since 4 was 4, checked in by ktk, 26 years ago

Import

File size: 135.0 KB
Line 
1/* $Id: gdi32.cpp,v 1.1 1999-05-24 20:19:39 ktk Exp $ */
2
3/*
4 * GDI32 DIB sections
5 *
6 * Copyright 1998 Sander van Leeuwen (sandervl@xs4all.nl)
7 * Copyright 1998 Patrick Haller
8 *
9 * Project Odin Software License can be found in LICENSE.TXT
10 *
11 */
12#include <os2win.h>
13#include <stdlib.h>
14#include <stdarg.h>
15#include <string.h>
16#include "misc.h"
17#include "callback.h"
18#include "unicode.h"
19#include "dibsect.h"
20
21
22typedef struct _POLYTEXTA
23{
24 int x;
25 int y;
26 UINT n;
27 LPCSTR lpstr;
28 UINT uiFlags;
29 RECT rcl;
30 int *pdx;
31} POLYTEXTA;
32
33
34typedef struct _POLYTEXTW
35{
36 int x;
37 int y;
38 UINT n;
39 LPCWSTR lpstr;
40 UINT uiFlags;
41 RECT rcl;
42 int *pdx;
43} POLYTEXTW;
44
45
46//******************************************************************************
47//******************************************************************************
48BOOL WIN32API GetTextExtentPointA(HDC hdc, LPCSTR lpsz, int cbString, LPSIZE lpSize)
49{
50 BOOL rc;
51
52 rc = O32_GetTextExtentPoint(hdc, lpsz, cbString, lpSize);
53 dprintf(("GDI32: GetTextExtentPointA of %s returned %d\n", lpsz, rc));
54 return(rc);
55}
56//******************************************************************************
57//******************************************************************************
58COLORREF WIN32API SetBkColor(HDC hdc, COLORREF crColor)
59{
60 dprintf(("GDI32: SetBkColor to %X\n", crColor));
61 return(O32_SetBkColor(hdc, crColor));
62}
63//******************************************************************************
64//******************************************************************************
65COLORREF WIN32API SetTextColor(HDC hdc, COLORREF crColor)
66{
67 COLORREF clr;
68
69 clr = O32_SetTextColor(hdc, crColor);
70 dprintf(("GDI32: SetTextColor from %X to %X\n", clr, crColor));
71 return(clr);
72}
73//******************************************************************************
74//******************************************************************************
75BOOL WIN32API TextOutA(HDC hdc, int nXStart, int nYStart,
76 LPCSTR lpszString, int cbString)
77{
78 BOOL rc;
79
80 rc = O32_TextOut(hdc, nXStart, nYStart, lpszString, cbString);
81 dprintf(("GDI32: TextOut %s returned %d\n", lpszString, rc));
82 return(rc);
83}
84//******************************************************************************
85//******************************************************************************
86HGDIOBJ WIN32API GetStockObject(int arg1)
87{
88 HGDIOBJ obj;
89
90 switch(arg1) {
91 case DEFAULT_GUI_FONT:
92 obj = NULL;
93 break;
94 default:
95 obj = O32_GetStockObject(arg1);
96 break;
97 }
98 dprintf(("GDI32: GetStockObject %d returned %X\n", arg1, obj));
99 return(obj);
100}
101//******************************************************************************
102//******************************************************************************
103UINT WIN32API RealizePalette( HDC arg1)
104{
105 dprintf(("GDI32: RealizePalette\n"));
106 return O32_RealizePalette(arg1);
107}
108//******************************************************************************
109//******************************************************************************
110int WIN32API GetObjectA( HGDIOBJ arg1, int arg2, void * arg3)
111{
112 dprintf(("GDI32: GetObject %X %X %X\n", arg1, arg2, arg3));
113 return O32_GetObject(arg1, arg2, arg3);
114}
115//******************************************************************************
116//******************************************************************************
117DWORD WIN32API GetObjectType( HGDIOBJ arg1)
118{
119 dprintf(("GDI32: GetObjectType\n"));
120 return O32_GetObjectType(arg1);
121}
122//******************************************************************************
123//******************************************************************************
124BOOL WIN32API DeleteObject(HANDLE hObj)
125{
126 dprintf(("GDI32: DeleteObject\n"));
127 DIBSection::deleteSection((DWORD)hObj);
128 return O32_DeleteObject(hObj);
129}
130//******************************************************************************
131//******************************************************************************
132BOOL WIN32API DeleteDC( HDC arg1)
133{
134 dprintf(("GDI32: DeleteDC\n"));
135 return O32_DeleteDC(arg1);
136}
137//******************************************************************************
138//******************************************************************************
139HPALETTE WIN32API CreatePalette( const LOGPALETTE * arg1)
140{
141 dprintf(("GDI32: CreatePalette\n"));
142 return O32_CreatePalette(arg1);
143}
144//******************************************************************************
145//******************************************************************************
146HBRUSH WIN32API CreatePatternBrush(HBITMAP arg1)
147{
148 HBRUSH brush;
149
150 brush = O32_CreatePatternBrush(arg1);
151 dprintf(("GDI32: CreatePatternBrush from bitmap %X returned %X\n", arg1, brush));
152 return(brush);
153}
154//******************************************************************************
155//******************************************************************************
156HPEN WIN32API CreatePen( int arg1, int arg2, COLORREF arg3)
157{
158 dprintf(("GDI32: CreatePen\n"));
159 return O32_CreatePen(arg1, arg2, arg3);
160}
161//******************************************************************************
162//******************************************************************************
163HPEN WIN32API CreatePenIndirect( const LOGPEN * arg1)
164{
165 dprintf(("GDI32: CreatePenIndirect\n"));
166 return O32_CreatePenIndirect(arg1);
167}
168//******************************************************************************
169//******************************************************************************
170HRGN WIN32API CreatePolyPolygonRgn( const POINT * arg1, const INT * arg2, int arg3, int arg4)
171{
172 dprintf(("GDI32: CreatePolyPolygonRgn\n"));
173 return O32_CreatePolyPolygonRgn(arg1, arg2, arg3, arg4);
174}
175//******************************************************************************
176//******************************************************************************
177HRGN WIN32API CreatePolygonRgn(const POINT * arg1, int arg2, int arg3)
178{
179 dprintf(("GDI32: CreatePolygonRgn"));
180 return O32_CreatePolygonRgn(arg1, arg2, arg3);
181}
182//******************************************************************************
183//******************************************************************************
184HBRUSH WIN32API CreateDIBPatternBrushPt( const VOID * arg1, UINT arg2)
185{
186 dprintf(("GDI32: CreateDIBPatternBrushPt\n"));
187 return O32_CreateDIBPatternBrushPt(arg1, arg2);
188}
189//******************************************************************************
190//******************************************************************************
191HBITMAP WIN32API CreateDIBitmap(HDC arg1, const BITMAPINFOHEADER * arg2, DWORD arg3, const void * arg4, const BITMAPINFO * arg5, UINT arg6)
192{
193 dprintf(("GDI32: CreateDIBitmap\n"));
194 return O32_CreateDIBitmap(arg1, arg2, arg3, arg4, arg5, arg6);
195}
196//******************************************************************************
197//******************************************************************************
198HBITMAP WIN32API CreateCompatibleBitmap( HDC arg1, int arg2, int arg3)
199{
200 dprintf(("GDI32: CreateCompatibleBitmap\n"));
201 return O32_CreateCompatibleBitmap(arg1, arg2, arg3);
202}
203//******************************************************************************
204//******************************************************************************
205HDC WIN32API CreateCompatibleDC( HDC arg1)
206{
207 dprintf(("GDI32: CreateCompatibleDC %X\n", arg1));
208 return O32_CreateCompatibleDC(arg1);
209}
210//******************************************************************************
211//******************************************************************************
212int WIN32API StretchDIBits( HDC arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9, const void * arg10, const BITMAPINFO *arg11, UINT arg12, DWORD arg13)
213{
214 dprintf(("GDI32: StretchDIBits\n"));
215 return O32_StretchDIBits(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, (void *)arg10, (PBITMAPINFO)arg11, arg12, arg13);
216}
217//******************************************************************************
218//******************************************************************************
219BOOL WIN32API StretchBlt(HDC hdcDest, int nXOriginDest, int nYOriginDest,
220 int nWidthDest, int nHeightDest,
221 HDC hdcSrc, int nXOriginSrc, int nYOriginSrc,
222 int nWidthSrc, int nHeightSrc, DWORD dwRop)
223{
224 dprintf(("GDI32: StretchBlt Dest: (%d, %d) size (%d, %d)\n", nXOriginDest, nYOriginDest, nWidthDest, nHeightDest));
225 dprintf(("GDI32: StretchBlt Src : (%d, %d) size (%d, %d)\n", nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc));
226 return O32_StretchBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, hdcSrc, nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc, dwRop);
227}
228//******************************************************************************
229//******************************************************************************
230BOOL WIN32API StrokeAndFillPath( HDC arg1)
231{
232 dprintf(("GDI32: StrokeAndFillPath\n"));
233 return O32_StrokeAndFillPath(arg1);
234}
235//******************************************************************************
236//******************************************************************************
237BOOL WIN32API StrokePath( HDC arg1)
238{
239 dprintf(("GDI32: StrokePath\n"));
240 return O32_StrokePath(arg1);
241}
242//******************************************************************************
243//******************************************************************************
244int WIN32API SetStretchBltMode( HDC arg1, int arg2)
245{
246 dprintf(("GDI32: SetStretchBltMode\n"));
247 return O32_SetStretchBltMode(arg1, arg2);
248}
249//******************************************************************************
250//******************************************************************************
251HGDIOBJ WIN32API SelectObject(HDC hdc, HGDIOBJ hObj)
252{
253 HGDIOBJ rc;
254
255//// dprintf(("GDI32: SelectObject\n"));
256
257 if(DIBSection::getSection() != NULL) {
258 DIBSection *dsect;
259
260 dsect = DIBSection::find(hdc);
261 if(dsect) {//remove previously selected dibsection
262 dsect->UnSelectDIBObject();
263 }
264 dsect = DIBSection::find((DWORD)hObj);
265 if(dsect) {
266 dsect->SelectDIBObject(hdc);
267 }
268 }
269 rc = O32_SelectObject(hdc, hObj);
270 if(rc != 0 && DIBSection::getSection != NULL) {
271 DIBSection *dsect = DIBSection::find((DWORD)rc);
272 if(dsect) {
273 dsect->UnSelectDIBObject();
274 }
275 }
276 return(rc);
277}
278//******************************************************************************
279//******************************************************************************
280HPALETTE WIN32API SelectPalette(HDC arg1, HPALETTE arg2, BOOL arg3)
281{
282 dprintf(("GDI32: SelectPalette\n"));
283 return O32_SelectPalette(arg1, arg2, arg3);
284}
285//******************************************************************************
286//******************************************************************************
287int WIN32API SetBkMode( HDC arg1, int arg2)
288{
289 dprintf(("GDI32: SetBkMode\n"));
290 return O32_SetBkMode(arg1, arg2);
291}
292//******************************************************************************
293//******************************************************************************
294BOOL WIN32API ExtTextOutA(HDC hdc, int X, int Y, UINT fuOptions, CONST RECT *lprc,
295 LPCSTR lpszString, UINT cbCount, CONST INT *lpDx)
296{
297 if(lpszString && strlen(lpszString) > cbCount)
298 ((LPSTR)lpszString)[cbCount] = 0;
299 dprintf(("GDI32: ExtTextOutA %s\n", lpszString));
300 return(O32_ExtTextOut(hdc, X, Y, fuOptions, lprc, lpszString, cbCount, lpDx));
301}
302//******************************************************************************
303//******************************************************************************
304COLORREF WIN32API GetPixel( HDC arg1, int arg2, int arg3)
305{
306//// dprintf(("GDI32: GetPixel\n"));
307 return O32_GetPixel(arg1, arg2, arg3);
308}
309//******************************************************************************
310//******************************************************************************
311COLORREF WIN32API SetPixel( HDC arg1, int arg2, int arg3, COLORREF arg4)
312{
313//// dprintf(("GDI32: SetPixel\n"));
314 return O32_SetPixel(arg1, arg2, arg3, arg4);
315}
316//******************************************************************************
317//Faster version of SetPixel (since it doesn't need to return the original color)
318//Just use SetPixel for now
319//******************************************************************************
320BOOL WIN32API SetPixelV(HDC arg1, int arg2, int arg3, COLORREF arg4)
321{
322 COLORREF rc;
323
324//// dprintf(("GDI32: SetPixelV\n"));
325 rc = O32_SetPixel(arg1, arg2, arg3, arg4);
326 if(rc == GDI_ERROR) // || rc == COLOR_INVALID)
327 return(FALSE);
328 return(TRUE);
329}
330//******************************************************************************
331//******************************************************************************
332HFONT WIN32API CreateFontA(int arg1, int arg2, int arg3, int arg4, int arg5,
333 DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9,
334 DWORD arg10, DWORD arg11, DWORD arg12, DWORD arg13, LPCSTR arg14)
335{
336 HFONT hfont;
337
338 hfont = O32_CreateFont(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
339 dprintf(("GDI32: CreateFontA '%s' returned %D\n", arg14, hfont));
340 return(hfont);
341}
342//******************************************************************************
343//******************************************************************************
344BOOL WIN32API GetDCOrgEx(HDC arg1, PPOINT arg2)
345{
346 dprintf(("GDI32: GetDCOrgEx\n"));
347 return O32_GetDCOrgEx(arg1, arg2);
348}
349//******************************************************************************
350//******************************************************************************
351BOOL WIN32API GetWindowExtEx(HDC arg1, PSIZE arg2)
352{
353 dprintf(("GDI32: GetWindowExtEx\n"));
354 return O32_GetWindowExtEx(arg1, arg2);
355}
356//******************************************************************************
357//******************************************************************************
358int WIN32API AbortDoc( HDC arg1)
359{
360 dprintf(("GDI32: OS2AbortDoc"));
361 return O32_AbortDoc(arg1);
362}
363//******************************************************************************
364//******************************************************************************
365BOOL WIN32API AbortPath( HDC arg1)
366{
367 dprintf(("GDI32: OS2AbortPath"));
368 return O32_AbortPath(arg1);
369}
370//******************************************************************************
371//******************************************************************************
372int WIN32API AddFontResourceA( LPCSTR arg1)
373{
374 dprintf(("GDI32: OS2AddFontResourceA"));
375 return O32_AddFontResource(arg1);
376}
377//******************************************************************************
378//******************************************************************************
379int WIN32API AddFontResourceW( LPCWSTR arg1)
380{
381 dprintf(("GDI32: OS2AddFontResourceW STUB"));
382 // NOTE: This will not work as is (needs UNICODE support)
383// return O32_AddFontResource(arg1);
384 return 0;
385}
386//******************************************************************************
387//******************************************************************************
388BOOL WIN32API AngleArc( HDC arg1, int arg2, int arg3, DWORD arg4, float arg5, float arg6)
389{
390 dprintf(("GDI32: OS2AngleArc"));
391 return O32_AngleArc(arg1, arg2, arg3, arg4, arg5, arg6);
392}
393//******************************************************************************
394//******************************************************************************
395BOOL WIN32API AnimatePalette( HPALETTE arg1, UINT arg2, UINT arg3, const PALETTEENTRY * arg4)
396{
397 dprintf(("GDI32: OS2AnimatePalette"));
398 return O32_AnimatePalette(arg1, arg2, arg3, arg4);
399}
400//******************************************************************************
401//******************************************************************************
402BOOL WIN32API Arc( HDC arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9)
403{
404 dprintf(("GDI32: OS2Arc"));
405 return O32_Arc(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
406}
407//******************************************************************************
408//******************************************************************************
409BOOL WIN32API ArcTo( HDC arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9)
410{
411 dprintf(("GDI32: OS2ArcTo"));
412 return O32_ArcTo(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
413}
414//******************************************************************************
415//******************************************************************************
416BOOL WIN32API BeginPath( HDC arg1)
417{
418 dprintf(("GDI32: OS2BeginPath"));
419 return O32_BeginPath(arg1);
420}
421//******************************************************************************
422//******************************************************************************
423BOOL WIN32API BitBlt(HDC hdcDest, int arg2, int arg3, int arg4, int arg5, HDC hdcSrc, int arg7, int arg8, DWORD arg9)
424{
425 if(DIBSection::getSection() != NULL) {
426 DIBSection *dsect = DIBSection::findHDC(hdcSrc);
427 if(dsect) {
428 return(dsect->BitBlt(hdcDest, O32_WindowFromDC(hdcDest), arg2, arg3, arg4,
429 arg5, arg7, arg8, arg9));
430 }
431 }
432 dprintf(("GDI32: OS2BitBlt to hdc %X from (%d,%d) to (%d,%d), (%d,%d) rop %X\n", hdcDest, arg7, arg8, arg2, arg3, arg4, arg5, arg9));
433 return O32_BitBlt(hdcDest, arg2, arg3, arg4, arg5, hdcSrc, arg7, arg8, arg9);
434}
435//******************************************************************************
436//******************************************************************************
437BOOL WIN32API Chord( HDC arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9)
438{
439 dprintf(("GDI32: OS2Chord"));
440 return O32_Chord(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
441}
442//******************************************************************************
443//******************************************************************************
444HENHMETAFILE WIN32API CloseEnhMetaFile( HDC arg1)
445{
446 dprintf(("GDI32: OS2CloseEnhMetaFile"));
447 return O32_CloseEnhMetaFile(arg1);
448}
449//******************************************************************************
450//******************************************************************************
451BOOL WIN32API CloseFigure( HDC arg1)
452{
453 dprintf(("GDI32: OS2CloseFigure"));
454 return O32_CloseFigure(arg1);
455}
456//******************************************************************************
457//******************************************************************************
458HMETAFILE WIN32API CloseMetaFile( HDC arg1)
459{
460 dprintf(("GDI32: OS2CloseMetaFile"));
461 return O32_CloseMetaFile(arg1);
462}
463//******************************************************************************
464//******************************************************************************
465int WIN32API CombineRgn( HRGN arg1, HRGN arg2, HRGN arg3, int arg4)
466{
467 dprintf(("GDI32: OS2CombineRgn"));
468 return O32_CombineRgn(arg1, arg2, arg3, arg4);
469}
470//******************************************************************************
471//******************************************************************************
472HENHMETAFILE WIN32API CopyEnhMetaFileA( HENHMETAFILE arg1, LPCSTR arg2)
473{
474 dprintf(("GDI32: OS2CopyEnhMetaFileA"));
475 return O32_CopyEnhMetaFile(arg1, arg2);
476}
477//******************************************************************************
478//******************************************************************************
479HENHMETAFILE WIN32API CopyEnhMetaFileW( HENHMETAFILE arg1, LPCWSTR arg2)
480{
481 char *astring = UnicodeToAsciiString((LPWSTR)arg2);
482 HENHMETAFILE rc;
483
484 dprintf(("GDI32: OS2CopyEnhMetaFileW"));
485 rc = O32_CopyEnhMetaFile(arg1, astring);
486 FreeAsciiString(astring);
487 return rc;
488}
489//******************************************************************************
490//******************************************************************************
491HMETAFILE WIN32API CopyMetaFileA( HMETAFILE arg1, LPCSTR arg2)
492{
493 dprintf(("GDI32: OS2CopyMetaFileA"));
494 return O32_CopyMetaFile(arg1, arg2);
495}
496//******************************************************************************
497//******************************************************************************
498HMETAFILE WIN32API CopyMetaFileW( HMETAFILE arg1, LPCWSTR arg2)
499{
500 char *astring = UnicodeToAsciiString((LPWSTR)arg2);
501 HMETAFILE rc;
502
503 dprintf(("GDI32: OS2CopyMetaFileW"));
504 rc = O32_CopyMetaFile(arg1, astring);
505 FreeAsciiString(astring);
506 return rc;
507}
508//******************************************************************************
509//******************************************************************************
510HBITMAP WIN32API CreateBitmap(int nWidth, int nHeight, UINT cPlanes,
511 UINT cBitsPerPel, const void *lpvBits)
512{
513 HBITMAP rc;
514
515 rc = O32_CreateBitmap(nWidth, nHeight, cPlanes, cBitsPerPel, lpvBits);
516 dprintf(("GDI32: OS2CreateBitmap (%d,%d) bps %d returned %d\n", nWidth, nHeight, cBitsPerPel, rc));
517 return(rc);
518}
519//******************************************************************************
520//******************************************************************************
521HBITMAP WIN32API CreateBitmapIndirect( const BITMAP * arg1)
522{
523 dprintf(("GDI32: OS2CreateBitmapIndirect"));
524 return O32_CreateBitmapIndirect(arg1);
525}
526//******************************************************************************
527//******************************************************************************
528HBRUSH WIN32API CreateBrushIndirect( const LOGBRUSH * arg1)
529{
530 dprintf(("GDI32: OS2CreateBrushIndirect"));
531 return O32_CreateBrushIndirect((LPLOGBRUSH)arg1);
532}
533//******************************************************************************
534//******************************************************************************
535HDC WIN32API CreateDCA( LPCSTR arg1, LPCSTR arg2, LPCSTR arg3, const DEVMODEA * arg4)
536{
537 dprintf(("GDI32: OS2CreateDCA"));
538 return O32_CreateDC(arg1, arg2, arg3, arg4);
539}
540//******************************************************************************
541//******************************************************************************
542HDC WIN32API CreateDCW( LPCWSTR arg1, LPCWSTR arg2, LPCWSTR arg3, const DEVMODEW * arg4)
543{
544 dprintf(("GDI32: OS2CreateDCW STUB"));
545 // NOTE: This will not work as is (needs UNICODE support)
546// return O32_CreateDC(arg1, arg2, arg3, arg4);
547 return 0;
548}
549//******************************************************************************
550//******************************************************************************
551HRGN WIN32API CreateEllipticRgn( int arg1, int arg2, int arg3, int arg4)
552{
553 dprintf(("GDI32: OS2CreateEllipticRgn"));
554 return O32_CreateEllipticRgn(arg1, arg2, arg3, arg4);
555}
556//******************************************************************************
557//******************************************************************************
558HRGN WIN32API CreateEllipticRgnIndirect( const RECT * arg1)
559{
560 dprintf(("GDI32: OS2CreateEllipticRgnIndirect"));
561 return O32_CreateEllipticRgnIndirect(arg1);
562}
563//******************************************************************************
564//******************************************************************************
565HENHMETAFILE WIN32API CreateEnhMetaFileA( HDC arg1, LPCSTR arg2, const RECT * arg3, LPCSTR arg4)
566{
567 dprintf(("GDI32: OS2CreateEnhMetaFileA"));
568 return O32_CreateEnhMetaFile(arg1, arg2, arg3, arg4);
569}
570//******************************************************************************
571//******************************************************************************
572HENHMETAFILE WIN32API CreateEnhMetaFileW( HDC arg1, LPCWSTR arg2, const RECT * arg3, LPCWSTR arg4)
573{
574 dprintf(("GDI32: OS2CreateEnhMetaFileW STUB"));
575 // NOTE: This will not work as is (needs UNICODE support)
576// return O32_CreateEnhMetaFile(arg1, arg2, arg3, arg4);
577 return 0;
578}
579//******************************************************************************
580//******************************************************************************
581HFONT WIN32API CreateFontIndirectA(const LOGFONTA *lplf)
582{
583 HFONT rc;
584
585 dprintf(("GDI32: CreateFontIndirectA\n"));
586 dprintf(("GDI32: lfHeight = %d\n", lplf->lfHeight));
587 dprintf(("GDI32: lfWidth = %d\n", lplf->lfWidth));
588 dprintf(("GDI32: lfEscapement = %d\n", lplf->lfEscapement));
589 dprintf(("GDI32: lfOrientation = %d\n", lplf->lfOrientation));
590 dprintf(("GDI32: lfWeight = %d\n", lplf->lfWeight));
591 dprintf(("GDI32: lfItalic = %d\n", lplf->lfItalic));
592 dprintf(("GDI32: lfUnderline = %d\n", lplf->lfUnderline));
593 dprintf(("GDI32: lfStrikeOut = %d\n", lplf->lfStrikeOut));
594 dprintf(("GDI32: lfCharSet = %X\n", lplf->lfCharSet));
595 dprintf(("GDI32: lfOutPrecision = %X\n", lplf->lfOutPrecision));
596 dprintf(("GDI32: lfClipPrecision = %X\n", lplf->lfClipPrecision));
597 dprintf(("GDI32: lfQuality = %X\n", lplf->lfQuality));
598 dprintf(("GDI32: lfPitchAndFamily= %X\n", lplf->lfPitchAndFamily));
599 dprintf(("GDI32: lfFaceName = %s\n", lplf->lfFaceName));
600 rc = O32_CreateFontIndirect(lplf);
601 dprintf(("GDI32: OS2CreateFontIndirectA returned %X\n", rc));
602 return(rc);
603}
604//******************************************************************************
605//******************************************************************************
606HFONT WIN32API CreateFontIndirectW(const LOGFONTW *lplf)
607{
608 LOGFONTA afont;
609 HFONT hfont;
610
611 memcpy(&afont, lplf, ((int)&afont.lfFaceName - (int)&afont));
612 UnicodeToAscii((WCHAR *)lplf->lfFaceName, afont.lfFaceName);
613
614 hfont = O32_CreateFontIndirect(&afont);
615 dprintf(("GDI32: CreateFontIndirectW\n"));
616 dprintf(("GDI32: lfHeight = %d\n", lplf->lfHeight));
617 dprintf(("GDI32: lfWidth = %d\n", lplf->lfWidth));
618 dprintf(("GDI32: lfHeight = %d\n", afont.lfHeight));
619 dprintf(("GDI32: lfWidth = %d\n", afont.lfWidth));
620 dprintf(("GDI32: lfEscapement = %d\n", afont.lfEscapement));
621 dprintf(("GDI32: lfOrientation = %d\n", afont.lfOrientation));
622 dprintf(("GDI32: lfWeight = %d\n", afont.lfWeight));
623 dprintf(("GDI32: lfItalic = %d\n", afont.lfItalic));
624 dprintf(("GDI32: lfUnderline = %d\n", afont.lfUnderline));
625 dprintf(("GDI32: lfStrikeOut = %d\n", afont.lfStrikeOut));
626 dprintf(("GDI32: lfCharSet = %X\n", afont.lfCharSet));
627 dprintf(("GDI32: lfOutPrecision = %X\n", afont.lfOutPrecision));
628 dprintf(("GDI32: lfClipPrecision = %X\n", afont.lfClipPrecision));
629 dprintf(("GDI32: lfQuality = %X\n", afont.lfQuality));
630 dprintf(("GDI32: lfPitchAndFamily= %X\n", afont.lfPitchAndFamily));
631 dprintf(("GDI32: lfFaceName = %s\n", afont.lfFaceName));
632 dprintf(("GDI32: CreateFontIndirectW %s returned %X\n", afont.lfFaceName, hfont));
633
634 return(hfont);
635}
636//******************************************************************************
637//******************************************************************************
638HFONT WIN32API CreateFontW(int arg1, int arg2, int arg3, int arg4, int arg5,
639 DWORD arg6, DWORD arg7, DWORD arg8, DWORD arg9,
640 DWORD arg10, DWORD arg11, DWORD arg12, DWORD arg13, LPCWSTR arg14)
641{
642 char *astring = UnicodeToAsciiString((LPWSTR)arg14);
643 HFONT rc;
644
645 dprintf(("GDI32: OS2CreateFontW\n"));
646 rc = O32_CreateFont(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, astring);
647 FreeAsciiString(astring);
648 return(rc);
649}
650//******************************************************************************
651//******************************************************************************
652HBRUSH WIN32API CreateHatchBrush( int arg1, COLORREF arg2)
653{
654 dprintf(("GDI32: OS2CreateHatchBrush"));
655 return O32_CreateHatchBrush(arg1, arg2);
656}
657//******************************************************************************
658//******************************************************************************
659HDC WIN32API CreateICA( LPCSTR arg1, LPCSTR arg2, LPCSTR arg3, const DEVMODEA * arg4)
660{
661 dprintf(("GDI32: OS2CreateICA"));
662 return O32_CreateIC(arg1, arg2, arg3, arg4);
663}
664//******************************************************************************
665//******************************************************************************
666HDC WIN32API CreateICW( LPCWSTR arg1, LPCWSTR arg2, LPCWSTR arg3, const DEVMODEW * arg4)
667{
668 dprintf(("GDI32: OS2CreateICW STUB"));
669 // NOTE: This will not work as is (needs UNICODE support)
670// return O32_CreateIC(arg1, arg2, arg3, arg4);
671 return 0;
672}
673//******************************************************************************
674//******************************************************************************
675HDC WIN32API CreateMetaFileA( LPCSTR arg1)
676{
677 dprintf(("GDI32: OS2CreateMetaFileA"));
678 return O32_CreateMetaFile(arg1);
679}
680//******************************************************************************
681//******************************************************************************
682HDC WIN32API CreateMetaFileW( LPCWSTR arg1)
683{
684 char *astring = UnicodeToAsciiString((LPWSTR)arg1);
685 HDC rc;
686
687 dprintf(("GDI32: OS2CreateMetaFileW"));
688 rc = O32_CreateMetaFile(astring);
689 FreeAsciiString(astring);
690 return rc;
691}
692//******************************************************************************
693//******************************************************************************
694HRGN WIN32API CreateRectRgn( int arg1, int arg2, int arg3, int arg4)
695{
696 dprintf(("GDI32: OS2CreateRectRgn"));
697 return O32_CreateRectRgn(arg1, arg2, arg3, arg4);
698}
699//******************************************************************************
700//******************************************************************************
701HRGN WIN32API CreateRectRgnIndirect( const RECT * arg1)
702{
703 dprintf(("GDI32: OS2CreateRectRgnIndirect"));
704 return O32_CreateRectRgnIndirect(arg1);
705}
706//******************************************************************************
707//******************************************************************************
708HRGN WIN32API CreateRoundRectRgn( int arg1, int arg2, int arg3, int arg4, int arg5, int arg6)
709{
710 dprintf(("GDI32: OS2CreateRoundRectRgn"));
711 return O32_CreateRoundRectRgn(arg1, arg2, arg3, arg4, arg5, arg6);
712}
713//******************************************************************************
714//******************************************************************************
715HBRUSH WIN32API CreateSolidBrush( COLORREF arg1)
716{
717 dprintf(("GDI32: OS2CreateSolidBrush\n"));
718 return O32_CreateSolidBrush(arg1);
719}
720//******************************************************************************
721//******************************************************************************
722BOOL WIN32API DPtoLP( HDC arg1, PPOINT arg2, int arg3)
723{
724 dprintf(("GDI32: OS2DPtoLP\n"));
725 return DPtoLP(arg1, arg2, arg3);
726}
727//******************************************************************************
728//******************************************************************************
729BOOL WIN32API DeleteEnhMetaFile( HENHMETAFILE arg1)
730{
731 dprintf(("GDI32: OS2DeleteEnhMetaFile\n"));
732 return O32_DeleteEnhMetaFile(arg1);
733}
734//******************************************************************************
735//******************************************************************************
736BOOL WIN32API DeleteMetaFile( HMETAFILE arg1)
737{
738 dprintf(("GDI32: OS2DeleteMetaFile"));
739 return O32_DeleteMetaFile(arg1);
740}
741//******************************************************************************
742//******************************************************************************
743BOOL WIN32API Ellipse( HDC arg1, int arg2, int arg3, int arg4, int arg5)
744{
745 dprintf(("GDI32: OS2Ellipse"));
746 return O32_Ellipse(arg1, arg2, arg3, arg4, arg5);
747}
748//******************************************************************************
749//******************************************************************************
750int WIN32API EndDoc( HDC arg1)
751{
752 dprintf(("GDI32: OS2EndDoc"));
753 return O32_EndDoc(arg1);
754}
755//******************************************************************************
756//******************************************************************************
757int WIN32API EndPage( HDC arg1)
758{
759 dprintf(("GDI32: OS2EndPage"));
760 return O32_EndPage(arg1);
761}
762//******************************************************************************
763//******************************************************************************
764BOOL WIN32API EndPath( HDC arg1)
765{
766 dprintf(("GDI32: OS2EndPath"));
767 return O32_EndPath(arg1);
768}
769//******************************************************************************
770//******************************************************************************
771BOOL WIN32API EnumEnhMetaFile( HDC arg1, HENHMETAFILE arg2, ENHMFENUMPROC arg3, PVOID arg4, const RECT * arg5)
772{
773 dprintf(("GDI32: OS2EnumEnhMetaFile DOESN'T WORK!"));
774// return O32_EnumEnhMetaFile(arg1, arg2, arg3, arg4, arg5);
775 return 0;
776}
777//******************************************************************************
778//******************************************************************************
779int WIN32API EnumFontFamiliesA(HDC arg1,
780 LPCSTR arg2,
781 FONTENUMPROCA arg3,
782 LPARAM arg4)
783{
784 dprintf(("GDI32: OS2EnumFontFamiliesA DOESN'T WORK!"));
785// return O32_EnumFontFamilies(arg1, arg2, arg3, arg4);
786 return 0;
787}
788//******************************************************************************
789//******************************************************************************
790int WIN32API EnumFontFamiliesW(HDC arg1,
791 LPCWSTR arg2,
792 FONTENUMPROCW arg3,
793 LPARAM arg4)
794{
795 dprintf(("GDI32: OS2EnumFontFamiliesW not implemented\n"));
796
797 // NOTE: This will not work as is (needs UNICODE support)
798
799 /* @@@PH 98/06/07 EnumFontFamilies will crash upon return from a
800 wide-character FONTENUMPROC. */
801 return(0);
802}
803//******************************************************************************
804//******************************************************************************
805BOOL WIN32API LineTo( HDC arg1, int arg2, int arg3)
806{
807 dprintf(("GDI32: OS2LineTo"));
808 return O32_LineTo(arg1, arg2, arg3);
809}
810//******************************************************************************
811//******************************************************************************
812BOOL WIN32API MoveToEx( HDC arg1, int arg2, int arg3, PPOINT arg4)
813{
814 dprintf(("GDI32: OS2MoveToEx\n"));
815 return O32_MoveToEx(arg1, arg2, arg3, arg4);
816}
817//******************************************************************************
818//******************************************************************************
819BOOL WIN32API PatBlt( HDC arg1, int arg2, int arg3, int arg4, int arg5, DWORD arg6)
820{
821 BOOL rc;
822
823 rc = O32_PatBlt(arg1, arg2, arg3, arg4, arg5, arg6);
824 dprintf(("GDI32: OS2PatBlt (%d,%d) (%d,%d) returned %d\n", arg2, arg3, arg4, arg5, rc));
825 return(rc);
826}
827//******************************************************************************
828//******************************************************************************
829BOOL WIN32API Rectangle( HDC arg1, int arg2, int arg3, int arg4, int arg5)
830{
831 dprintf(("GDI32: OS2Rectangle\n"));
832 return O32_Rectangle(arg1, arg2, arg3, arg4, arg5);
833}
834//******************************************************************************
835//******************************************************************************
836int WIN32API SetROP2( HDC arg1, int arg2)
837{
838 dprintf(("GDI32: OS2SetROP2"));
839 return O32_SetROP2(arg1, arg2);
840}
841//******************************************************************************
842//TODO: Callback
843//******************************************************************************
844int WIN32API EnumFontsA( HDC arg1, LPCSTR arg2, FONTENUMPROCA arg3, LPARAM arg4)
845{
846 dprintf(("GDI32: OS2EnumFontsA"));
847// return O32_EnumFonts(arg1, arg2, arg3, arg4);
848 return 1;
849}
850//******************************************************************************
851//TODO: Callback
852//******************************************************************************
853int WIN32API EnumFontsW( HDC arg1, LPCWSTR arg2, FONTENUMPROCW arg3, LPARAM arg4)
854{
855 dprintf(("GDI32: OS2EnumFontsW - stub (1)"));
856 // NOTE: This will not work as is (needs UNICODE support)
857// return O32_EnumFonts(arg1, arg2, arg3, arg4);
858 return 1;
859}
860//******************************************************************************
861//******************************************************************************
862BOOL WIN32API EnumMetaFile( HDC arg1, HMETAFILE arg2, MFENUMPROC arg3, LPARAM arg4)
863{
864 dprintf(("GDI32: OS2EnumMetaFile STUB"));
865 //calling convention differences
866// return O32_EnumMetaFile(arg1, arg2, arg3, arg4);
867 return 0;
868}
869//******************************************************************************
870//******************************************************************************
871int WIN32API EnumObjects( HDC arg1, int arg2, GOBJENUMPROC arg3, LPARAM arg4)
872{
873 dprintf(("GDI32: OS2EnumObjects STUB"));
874 //calling convention differences
875// return O32_EnumObjects(arg1, arg2, arg3, arg4);
876 return 0;
877}
878//******************************************************************************
879//******************************************************************************
880BOOL WIN32API EqualRgn( HRGN arg1, HRGN arg2)
881{
882 dprintf(("GDI32: OS2EqualRgn"));
883 return O32_EqualRgn(arg1, arg2);
884}
885//******************************************************************************
886//******************************************************************************
887int WIN32API Escape( HDC arg1, int arg2, int arg3, LPCSTR arg4, PVOID arg5)
888{
889 dprintf(("GDI32: OS2Escape"));
890 return O32_Escape(arg1, arg2, arg3, arg4, arg5);
891}
892//******************************************************************************
893//******************************************************************************
894int WIN32API ExcludeClipRect( HDC arg1, int arg2, int arg3, int arg4, int arg5)
895{
896 dprintf(("GDI32: OS2ExcludeClipRect"));
897 return O32_ExcludeClipRect(arg1, arg2, arg3, arg4, arg5);
898}
899//******************************************************************************
900//******************************************************************************
901HPEN WIN32API ExtCreatePen( DWORD arg1, DWORD arg2, const LOGBRUSH * arg3, DWORD arg4, const DWORD * arg5)
902{
903 dprintf(("GDI32: OS2ExtCreatePen"));
904 return O32_ExtCreatePen(arg1, arg2, arg3, arg4, arg5);
905}
906//******************************************************************************
907//******************************************************************************
908HRGN WIN32API ExtCreateRegion( const XFORM * arg1, DWORD arg2, const RGNDATA * arg3)
909{
910 dprintf(("GDI32: OS2ExtCreateRegion"));
911 return O32_ExtCreateRegion(arg1, arg2, arg3);
912}
913//******************************************************************************
914//******************************************************************************
915BOOL WIN32API ExtFloodFill( HDC arg1, int arg2, int arg3, COLORREF arg4, UINT arg5)
916{
917 dprintf(("GDI32: OS2ExtFloodFill"));
918 return O32_ExtFloodFill(arg1, arg2, arg3, arg4, arg5);
919}
920//******************************************************************************
921//******************************************************************************
922int WIN32API ExtSelectClipRgn( HDC arg1, HRGN arg2, int arg3)
923{
924 dprintf(("GDI32: OS2ExtSelectClipRgn"));
925 return O32_ExtSelectClipRgn(arg1, arg2, arg3);
926}
927//******************************************************************************
928//******************************************************************************
929BOOL WIN32API ExtTextOutW(HDC hdc, int X, int Y, UINT fuOptions,
930 const RECT *lprc, LPCWSTR lpString, UINT cbCount,
931 const int *lpDx)
932{
933 char *astring = UnicodeToAsciiString((LPWSTR)lpString);
934 BOOL rc;
935
936 if(lprc)
937 dprintf(("GDI32: OS2ExtTextOutW (%d,%d) %X, (%d,%d)(%d,%d)\n", X, Y, fuOptions, lprc->left, lprc->top, lprc->right, lprc->bottom));
938 else dprintf(("GDI32: OS2ExtTextOutW (%d,%d) %X\n", X, Y, fuOptions));
939 rc = O32_ExtTextOut(hdc, X, Y, fuOptions, lprc, astring, cbCount, lpDx);
940 dprintf(("GDI32: OS2ExtTextOutW %s (%X) length %d rc %d\n", astring, lpString, cbCount, rc));
941 FreeAsciiString(astring);
942 return(rc);
943}
944//******************************************************************************
945//******************************************************************************
946BOOL WIN32API FillPath( HDC arg1)
947{
948 dprintf(("GDI32: OS2FillPath"));
949 return O32_FillPath(arg1);
950}
951//******************************************************************************
952//******************************************************************************
953BOOL WIN32API FillRgn( HDC arg1, HRGN arg2, HBRUSH arg3)
954{
955 dprintf(("GDI32: OS2FillRgn"));
956 return O32_FillRgn(arg1, arg2, arg3);
957}
958//******************************************************************************
959//******************************************************************************
960BOOL WIN32API FlattenPath( HDC arg1)
961{
962 dprintf(("GDI32: OS2FlattenPath"));
963 return O32_FlattenPath(arg1);
964}
965//******************************************************************************
966//******************************************************************************
967BOOL WIN32API FloodFill(HDC arg1, int arg2, int arg3, COLORREF arg4)
968{
969 dprintf(("GDI32: OS2FloodFill"));
970 return O32_FloodFill(arg1, arg2, arg3, arg4);
971}
972//******************************************************************************
973//******************************************************************************
974BOOL WIN32API FrameRgn( HDC arg1, HRGN arg2, HBRUSH arg3, int arg4, int arg5)
975{
976 dprintf(("GDI32: OS2FrameRgn"));
977 return O32_FrameRgn(arg1, arg2, arg3, arg4, arg5);
978}
979//******************************************************************************
980//******************************************************************************
981int WIN32API GetArcDirection( HDC arg1)
982{
983 dprintf(("GDI32: OS2GetArcDirection"));
984 return O32_GetArcDirection(arg1);
985}
986//******************************************************************************
987//******************************************************************************
988BOOL WIN32API GetAspectRatioFilterEx( HDC arg1, PSIZE arg2)
989{
990 dprintf(("GDI32: OS2GetAspectRatioFilterEx"));
991 return O32_GetAspectRatioFilterEx(arg1, arg2);
992}
993//******************************************************************************
994//******************************************************************************
995LONG WIN32API GetBitmapBits( HBITMAP arg1, LONG arg2, PVOID arg3)
996{
997 dprintf(("GDI32: OS2GetBitmapBits"));
998 return O32_GetBitmapBits(arg1, arg2, arg3);
999}
1000//******************************************************************************
1001//******************************************************************************
1002BOOL WIN32API GetBitmapDimensionEx( HBITMAP arg1, PSIZE arg2)
1003{
1004 dprintf(("GDI32: OS2GetBitmapDimensionEx"));
1005 return O32_GetBitmapDimensionEx(arg1, arg2);
1006}
1007//******************************************************************************
1008//******************************************************************************
1009COLORREF WIN32API GetBkColor( HDC arg1)
1010{
1011 dprintf(("GDI32: OS2GetBkColor"));
1012 return O32_GetBkColor(arg1);
1013}
1014//******************************************************************************
1015//******************************************************************************
1016int WIN32API GetBkMode( HDC arg1)
1017{
1018 dprintf(("GDI32: OS2GetBkMode"));
1019 return O32_GetBkMode(arg1);
1020}
1021//******************************************************************************
1022//******************************************************************************
1023UINT WIN32API GetBoundsRect( HDC arg1, PRECT arg2, UINT arg3)
1024{
1025 dprintf(("GDI32: OS2GetBoundsRect"));
1026 return O32_GetBoundsRect(arg1, arg2, arg3);
1027}
1028//******************************************************************************
1029//******************************************************************************
1030BOOL WIN32API GetBrushOrgEx( HDC arg1, PPOINT arg2)
1031{
1032 dprintf(("GDI32: OS2GetBrushOrgEx"));
1033 return O32_GetBrushOrgEx(arg1, arg2);
1034}
1035//******************************************************************************
1036//******************************************************************************
1037BOOL WIN32API GetCharABCWidthsA( HDC arg1, UINT arg2, UINT arg3, LPABC arg4)
1038{
1039 dprintf(("GDI32: OS2GetCharABCWidthsA"));
1040 return O32_GetCharABCWidths(arg1, arg2, arg3, arg4);
1041}
1042//******************************************************************************
1043//******************************************************************************
1044BOOL WIN32API GetCharABCWidthsW( HDC arg1, UINT arg2, UINT arg3, LPABC arg4)
1045{
1046 dprintf(("GDI32: OS2GetCharABCWidthsW not properly implemented."));
1047 // NOTE: This will not work as is (needs UNICODE support)
1048 return O32_GetCharABCWidths(arg1, arg2, arg3, arg4);
1049}
1050//******************************************************************************
1051//******************************************************************************
1052BOOL WIN32API GetCharWidthA( HDC arg1, UINT arg2, UINT arg3, PINT arg4)
1053{
1054 dprintf(("GDI32: OS2GetCharWidthA"));
1055 return O32_GetCharWidth(arg1, arg2, arg3, arg4);
1056}
1057//******************************************************************************
1058//TODO: Cut off Unicode chars?
1059//******************************************************************************
1060BOOL WIN32API GetCharWidthW(HDC arg1, UINT iFirstChar, UINT iLastChar, PINT arg4)
1061{
1062 dprintf(("GDI32: OS2GetCharWidthW, not properly implemented"));
1063 return O32_GetCharWidth(arg1, iFirstChar, iLastChar, arg4);
1064}
1065//******************************************************************************
1066//******************************************************************************
1067int WIN32API GetClipBox( HDC arg1, PRECT arg2)
1068{
1069 int rc;
1070
1071 rc = O32_GetClipBox(arg1, arg2);
1072 dprintf(("GDI32: OS2GetClipBox of %X returned %d\n", arg1, rc));
1073 return(rc);
1074}
1075//******************************************************************************
1076//******************************************************************************
1077int WIN32API GetClipRgn( HDC arg1, HRGN arg2)
1078{
1079 dprintf(("GDI32: OS2GetClipRgn"));
1080 return O32_GetClipRgn(arg1, arg2);
1081}
1082//******************************************************************************
1083//******************************************************************************
1084HANDLE WIN32API GetCurrentObject( HDC arg1, UINT arg2)
1085{
1086 dprintf(("GDI32: OS2GetCurrentObject"));
1087 return (HANDLE)O32_GetCurrentObject(arg1, arg2);
1088}
1089//******************************************************************************
1090//******************************************************************************
1091BOOL WIN32API GetCurrentPositionEx( HDC arg1, PPOINT arg2)
1092{
1093 dprintf(("GDI32: OS2GetCurrentPositionEx"));
1094 return O32_GetCurrentPositionEx(arg1, arg2);
1095}
1096//******************************************************************************
1097//******************************************************************************
1098int WIN32API GetDIBits( HDC arg1, HBITMAP arg2, UINT arg3, UINT arg4, void * arg5, PBITMAPINFO arg6, UINT arg7)
1099{
1100 dprintf(("GDI32: OS2GetDIBits"));
1101 return O32_GetDIBits(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
1102}
1103//******************************************************************************
1104//******************************************************************************
1105int WIN32API GetDeviceCaps(HDC hdc, int nIndex)
1106{
1107 int rc;
1108
1109 rc = O32_GetDeviceCaps(hdc, nIndex);
1110 dprintf(("GDI32: OS2GetDeviceCaps %X, %d returned %d\n", hdc, nIndex, rc));
1111 //SvL: 13-9-'98: NT returns -1 when using 16 bits colors, NOT 65536!
1112 if(nIndex == NUMCOLORS && rc > 256)
1113 return -1;
1114 return(rc);
1115}
1116//******************************************************************************
1117//******************************************************************************
1118HENHMETAFILE WIN32API GetEnhMetaFileA( LPCSTR arg1)
1119{
1120 dprintf(("GDI32: OS2GetEnhMetaFileA"));
1121 return O32_GetEnhMetaFile(arg1);
1122}
1123//******************************************************************************
1124//******************************************************************************
1125UINT WIN32API GetEnhMetaFileBits( HENHMETAFILE arg1, UINT arg2, PBYTE arg3)
1126{
1127 dprintf(("GDI32: OS2GetEnhMetaFileBits"));
1128 return O32_GetEnhMetaFileBits(arg1, arg2, arg3);
1129}
1130//******************************************************************************
1131//******************************************************************************
1132UINT WIN32API GetEnhMetaFileHeader( HENHMETAFILE arg1, UINT arg2, LPENHMETAHEADER arg3)
1133{
1134 dprintf(("GDI32: OS2GetEnhMetaFileHeader"));
1135 return O32_GetEnhMetaFileHeader(arg1, arg2, arg3);
1136}
1137//******************************************************************************
1138//******************************************************************************
1139UINT WIN32API GetEnhMetaFilePaletteEntries( HENHMETAFILE arg1, UINT arg2, PPALETTEENTRY arg3)
1140{
1141 dprintf(("GDI32: OS2GetEnhMetaFilePaletteEntries"));
1142 return O32_GetEnhMetaFilePaletteEntries(arg1, arg2, arg3);
1143}
1144//******************************************************************************
1145//******************************************************************************
1146HENHMETAFILE WIN32API GetEnhMetaFileW( LPCWSTR arg1)
1147{
1148 char *astring = UnicodeToAsciiString((LPWSTR)arg1);
1149 HENHMETAFILE rc;
1150
1151 dprintf(("GDI32: OS2GetEnhMetaFileW"));
1152 // NOTE: This will not work as is (needs UNICODE support)
1153 rc = O32_GetEnhMetaFile(astring);
1154 FreeAsciiString(astring);
1155 return rc;
1156}
1157//******************************************************************************
1158//******************************************************************************
1159int WIN32API GetGraphicsMode(HDC arg1)
1160{
1161 dprintf(("GDI32: OS2GetGraphicsMode"));
1162 return O32_GetGraphicsMode(arg1);
1163}
1164//******************************************************************************
1165//******************************************************************************
1166DWORD WIN32API GetKerningPairsA( HDC arg1, DWORD arg2, LPKERNINGPAIR arg3)
1167{
1168 dprintf(("GDI32: OS2GetKerningPairsA"));
1169 return O32_GetKerningPairs(arg1, arg2, arg3);
1170}
1171//******************************************************************************
1172//******************************************************************************
1173DWORD WIN32API GetKerningPairsW( HDC arg1, DWORD arg2, LPKERNINGPAIR arg3)
1174{
1175 dprintf(("GDI32: OS2GetKerningPairsW"));
1176 // NOTE: This will not work as is (needs UNICODE support)
1177 return O32_GetKerningPairs(arg1, arg2, arg3);
1178}
1179//******************************************************************************
1180//******************************************************************************
1181int WIN32API GetMapMode( HDC arg1)
1182{
1183 dprintf(("GDI32: OS2GetMapMode"));
1184 return O32_GetMapMode(arg1);
1185}
1186//******************************************************************************
1187//******************************************************************************
1188HMETAFILE WIN32API GetMetaFileA( LPCSTR arg1)
1189{
1190 dprintf(("GDI32: OS2GetMetaFileA"));
1191 return O32_GetMetaFile(arg1);
1192}
1193//******************************************************************************
1194//******************************************************************************
1195UINT WIN32API GetMetaFileBitsEx( HMETAFILE arg1, UINT arg2, LPVOID arg3)
1196{
1197 dprintf(("GDI32: OS2GetMetaFileBitsEx"));
1198 return O32_GetMetaFileBitsEx(arg1, arg2, arg3);
1199}
1200//******************************************************************************
1201//******************************************************************************
1202HMETAFILE WIN32API GetMetaFileW( LPCWSTR arg1)
1203{
1204 char *astring = UnicodeToAsciiString((LPWSTR)arg1);
1205 HENHMETAFILE rc;
1206
1207 dprintf(("GDI32: OS2GetMetaFileW"));
1208 rc = O32_GetMetaFile(astring);
1209 FreeAsciiString(astring);
1210 return rc;
1211
1212}
1213//******************************************************************************
1214//******************************************************************************
1215BOOL WIN32API GetMiterLimit( HDC arg1, float * arg2)
1216{
1217 dprintf(("GDI32: OS2GetMiterLimit"));
1218 return O32_GetMiterLimit(arg1, arg2);
1219}
1220//******************************************************************************
1221//******************************************************************************
1222COLORREF WIN32API GetNearestColor( HDC arg1, COLORREF arg2)
1223{
1224 dprintf(("GDI32: OS2GetNearestColor\n"));
1225 return O32_GetNearestColor(arg1, arg2);
1226}
1227//******************************************************************************
1228//******************************************************************************
1229UINT WIN32API GetNearestPaletteIndex( HPALETTE arg1, COLORREF arg2)
1230{
1231 dprintf(("GDI32: OS2GetNearestPaletteIndex\n"));
1232 return O32_GetNearestPaletteIndex(arg1, arg2);
1233}
1234//******************************************************************************
1235//******************************************************************************
1236int WIN32API GetObjectW( HGDIOBJ arg1, int arg2, void * arg3)
1237{
1238 dprintf(("GDI32: OS2GetObjectW %X, %d %X\n", arg1, arg2, arg3));
1239 // NOTE: This will not work as is (needs UNICODE support)
1240 return O32_GetObject(arg1, arg2, arg3);
1241}
1242//******************************************************************************
1243//******************************************************************************
1244UINT WIN32API GetOutlineTextMetricsA( HDC arg1, UINT arg2, LPOUTLINETEXTMETRICA arg3)
1245{
1246 dprintf(("GDI32: OS2GetOutlineTextMetricsA"));
1247 return O32_GetOutlineTextMetrics(arg1, arg2, arg3);
1248}
1249//******************************************************************************
1250//******************************************************************************
1251UINT WIN32API GetOutlineTextMetricsW( HDC arg1, UINT arg2, LPOUTLINETEXTMETRICW arg3)
1252{
1253 dprintf(("GDI32: OS2GetOutlineTextMetricsW STUB"));
1254 // NOTE: This will not work as is (needs UNICODE support)
1255// return O32_GetOutlineTextMetrics(arg1, arg2, arg3);
1256 return 0;
1257}
1258//******************************************************************************
1259//******************************************************************************
1260UINT WIN32API GetPaletteEntries( HPALETTE arg1, UINT arg2, UINT arg3, PPALETTEENTRY arg4)
1261{
1262 dprintf(("GDI32: OS2GetPaletteEntries"));
1263 return O32_GetPaletteEntries(arg1, arg2, arg3, arg4);
1264}
1265//******************************************************************************
1266//******************************************************************************
1267INT WIN32API GetPath( HDC arg1, PPOINT arg2, PBYTE arg3, int arg4)
1268{
1269 dprintf(("GDI32: OS2GetPath"));
1270 return O32_GetPath(arg1, arg2, arg3, arg4);
1271}
1272//******************************************************************************
1273//******************************************************************************
1274int WIN32API GetPolyFillMode( HDC arg1)
1275{
1276 dprintf(("GDI32: OS2GetPolyFillMode"));
1277 return O32_GetPolyFillMode(arg1);
1278}
1279//******************************************************************************
1280//******************************************************************************
1281int WIN32API GetROP2( HDC arg1)
1282{
1283 dprintf(("GDI32: OS2GetROP2"));
1284 return O32_GetROP2(arg1);
1285}
1286//******************************************************************************
1287//******************************************************************************
1288BOOL WIN32API GetRasterizerCaps(LPRASTERIZER_STATUS arg1, UINT arg2)
1289{
1290 dprintf(("GDI32: OS2GetRasterizerCaps"));
1291 return O32_GetRasterizerCaps(arg1, arg2);
1292}
1293//******************************************************************************
1294//******************************************************************************
1295DWORD WIN32API GetRegionData( HRGN arg1, DWORD arg2, PRGNDATA arg3)
1296{
1297 dprintf(("GDI32: OS2GetRegionData"));
1298 return O32_GetRegionData(arg1, arg2, arg3);
1299}
1300//******************************************************************************
1301//******************************************************************************
1302int WIN32API GetRgnBox( HRGN arg1, PRECT arg2)
1303{
1304 dprintf(("GDI32: OS2GetRgnBox"));
1305 return O32_GetRgnBox(arg1, arg2);
1306}
1307//******************************************************************************
1308//******************************************************************************
1309int WIN32API GetStretchBltMode( HDC arg1)
1310{
1311 dprintf(("GDI32: OS2GetStretchBltMode"));
1312 return O32_GetStretchBltMode(arg1);
1313}
1314//******************************************************************************
1315//******************************************************************************
1316UINT WIN32API GetSystemPaletteEntries( HDC arg1, UINT arg2, UINT arg3, PPALETTEENTRY arg4)
1317{
1318 UINT rc;
1319
1320 dprintf(("GDI32: OS2GetSystemPaletteEntries start %d nr %d pal ptr %X", arg2, arg3, arg4));
1321 rc = O32_GetSystemPaletteEntries(arg1, arg2, arg3, arg4);
1322 dprintf((" GetSystemPaletteEntries returned %d", rc));
1323 return(rc);
1324}
1325//******************************************************************************
1326//******************************************************************************
1327UINT WIN32API GetTextAlign( HDC arg1)
1328{
1329 dprintf(("GDI32: OS2GetTextAlign"));
1330 return O32_GetTextAlign(arg1);
1331}
1332//******************************************************************************
1333//******************************************************************************
1334int WIN32API GetTextCharacterExtra( HDC arg1)
1335{
1336 dprintf(("GDI32: OS2GetTextCharacterExtra"));
1337 return O32_GetTextCharacterExtra(arg1);
1338}
1339//******************************************************************************
1340//******************************************************************************
1341COLORREF WIN32API GetTextColor( HDC arg1)
1342{
1343 dprintf(("GDI32: OS2GetTextColor"));
1344 return O32_GetTextColor(arg1);
1345}
1346//******************************************************************************
1347//******************************************************************************
1348BOOL WIN32API GetTextExtentPoint32A( HDC arg1, LPCSTR arg2, int arg3, PSIZE arg4)
1349{
1350 dprintf(("GDI32: OS2GetTextExtentPoint32A"));
1351 return O32_GetTextExtentPoint32(arg1, arg2, arg3, arg4);
1352}
1353//******************************************************************************
1354//******************************************************************************
1355BOOL WIN32API GetTextExtentPoint32W(HDC arg1, LPCWSTR arg2, int arg3, PSIZE arg4)
1356{
1357 char *astring = UnicodeToAsciiString((LPWSTR)arg2);
1358 BOOL rc;
1359
1360 dprintf(("GDI32: OS2GetTextExtentPoint32W %s\n", astring));
1361 rc = O32_GetTextExtentPoint32(arg1, astring, arg3, arg4);
1362 FreeAsciiString(astring);
1363 return(rc);
1364}
1365//******************************************************************************
1366//******************************************************************************
1367BOOL WIN32API GetTextExtentPointW(HDC hdc,
1368 LPCWSTR lpString,
1369 int cbString,
1370 PSIZE lpSize)
1371{
1372 char *astring = UnicodeToAsciiString((LPWSTR)lpString);
1373 BOOL rc;
1374
1375 rc = O32_GetTextExtentPoint(hdc,
1376 astring,
1377 cbString,
1378 lpSize);
1379 dprintf(("GDI32: OS2GetTextExtentPointW %X %s (size %08xh) returned %d\n", hdc, astring, cbString, rc));
1380 dprintf(("GDI32: OS2GetTextExtentPointW (%d,%d)\n", lpSize->cx, lpSize->cy));
1381
1382 FreeAsciiString(astring);
1383 return(rc);
1384}
1385//******************************************************************************
1386//******************************************************************************
1387int WIN32API GetTextFaceA( HDC arg1, int arg2, LPSTR arg3)
1388{
1389 dprintf(("GDI32: OS2GetTextFaceA"));
1390 return O32_GetTextFace(arg1, arg2, arg3);
1391}
1392//******************************************************************************
1393//******************************************************************************
1394int WIN32API GetTextFaceW( HDC arg1, int arg2, LPWSTR arg3)
1395{
1396 char *astring = UnicodeToAsciiString((LPWSTR)arg3);
1397 int rc;
1398
1399 dprintf(("GDI32: OS2GetTextFaceW"));
1400 // NOTE: This will not work as is (needs UNICODE support)
1401 rc = O32_GetTextFace(arg1, arg2, astring);
1402 FreeAsciiString(astring);
1403 return rc;
1404}
1405//******************************************************************************
1406//******************************************************************************
1407BOOL WIN32API GetTextMetricsA( HDC arg1, LPTEXTMETRICA arg2)
1408{
1409 BOOL rc;
1410
1411 rc = O32_GetTextMetrics(arg1, arg2);
1412 dprintf(("GDI32: OS2GetTextMetricsA returned %d\n", rc));
1413 return(rc);
1414}
1415//******************************************************************************
1416//******************************************************************************
1417BOOL WIN32API GetTextMetricsW( HDC arg1, LPTEXTMETRICW pwtm)
1418{
1419 BOOL rc;
1420 TEXTMETRICA atm;
1421
1422 dprintf(("GDI32: OS2GetTextMetricsW"));
1423
1424 rc = O32_GetTextMetrics(arg1, &atm);
1425 pwtm->tmHeight = atm.tmHeight;
1426 pwtm->tmAscent = atm.tmAscent;
1427 pwtm->tmDescent = atm.tmDescent;
1428 pwtm->tmInternalLeading = atm.tmInternalLeading;
1429 pwtm->tmExternalLeading = atm.tmExternalLeading;
1430 pwtm->tmAveCharWidth = atm.tmAveCharWidth;
1431 pwtm->tmMaxCharWidth = atm.tmMaxCharWidth;
1432 pwtm->tmWeight = atm.tmWeight;
1433 pwtm->tmOverhang = atm.tmOverhang;
1434 pwtm->tmDigitizedAspectX = atm.tmDigitizedAspectX;
1435 pwtm->tmDigitizedAspectY = atm.tmDigitizedAspectY;
1436 pwtm->tmFirstChar = atm.tmFirstChar;
1437 pwtm->tmLastChar = atm.tmLastChar;
1438 pwtm->tmDefaultChar = atm.tmDefaultChar;
1439 pwtm->tmBreakChar = atm.tmBreakChar;
1440 pwtm->tmItalic = atm.tmItalic;
1441 pwtm->tmUnderlined = atm.tmUnderlined;
1442 pwtm->tmStruckOut = atm.tmStruckOut;
1443 pwtm->tmPitchAndFamily = atm.tmPitchAndFamily;
1444 pwtm->tmCharSet = atm.tmCharSet;
1445 return(rc);
1446}
1447//******************************************************************************
1448//******************************************************************************
1449BOOL WIN32API GetViewportExtEx( HDC arg1, PSIZE arg2)
1450{
1451 dprintf(("GDI32: OS2GetViewportExtEx"));
1452 return O32_GetViewportExtEx(arg1, arg2);
1453}
1454//******************************************************************************
1455//******************************************************************************
1456BOOL WIN32API GetViewportOrgEx( HDC arg1, PPOINT arg2)
1457{
1458 dprintf(("GDI32: OS2GetViewportOrgEx"));
1459 return O32_GetViewportOrgEx(arg1, arg2);
1460}
1461//******************************************************************************
1462//******************************************************************************
1463UINT WIN32API GetWinMetaFileBits( HENHMETAFILE arg1, UINT arg2, PBYTE arg3, int arg4, HDC arg5)
1464{
1465 dprintf(("GDI32: OS2GetWinMetaFileBits"));
1466 return O32_GetWinMetaFileBits(arg1, arg2, arg3, arg4, arg5);
1467}
1468//******************************************************************************
1469//******************************************************************************
1470BOOL WIN32API GetWindowOrgEx( HDC arg1, PPOINT arg2)
1471{
1472 dprintf(("GDI32: OS2GetWindowOrgEx"));
1473 return O32_GetWindowOrgEx(arg1, arg2);
1474}
1475//******************************************************************************
1476//******************************************************************************
1477BOOL WIN32API GetWorldTransform( HDC arg1, LPXFORM arg2)
1478{
1479 dprintf(("GDI32: OS2GetWorldTransform"));
1480 return O32_GetWorldTransform(arg1, arg2);
1481}
1482//******************************************************************************
1483//******************************************************************************
1484int WIN32API IntersectClipRect(HDC arg1, int arg2, int arg3, int arg4, int arg5)
1485{
1486 int rc;
1487
1488 rc = O32_IntersectClipRect(arg1, arg2, arg3, arg4, arg5);
1489 dprintf(("GDI32: OS2IntersectClipRect returned %d\n", rc));
1490 return(rc);
1491}
1492//******************************************************************************
1493//******************************************************************************
1494BOOL WIN32API InvertRgn( HDC arg1, HRGN arg2)
1495{
1496 dprintf(("GDI32: OS2InvertRgn"));
1497 return O32_InvertRgn(arg1, arg2);
1498}
1499//******************************************************************************
1500//******************************************************************************
1501BOOL WIN32API LPtoDP( HDC arg1, PPOINT arg2, int arg3)
1502{
1503 dprintf(("GDI32: OS2LPtoDP"));
1504 return O32_LPtoDP(arg1, arg2, arg3);
1505}
1506//******************************************************************************
1507//******************************************************************************
1508BOOL WIN32API LineDDA( int arg1, int arg2, int arg3, int arg4, LINEDDAPROC lpLineFunc, LPARAM lpData)
1509{
1510 BOOL rc;
1511 LineDDAProcCallback *callback = new LineDDAProcCallback(lpLineFunc, lpData);
1512
1513 dprintf(("GDI32: OS2LineDDA\n"));
1514 rc = O32_LineDDA(arg1, arg2, arg3, arg4, callback->GetOS2Callback(), (LPARAM)callback);
1515 if(callback)
1516 delete callback;
1517 return(rc);
1518}
1519//******************************************************************************
1520//******************************************************************************
1521BOOL WIN32API MaskBlt( HDC arg1, int arg2, int arg3, int arg4, int arg5, HDC arg6, int arg7, int arg8, HBITMAP arg9, int arg10, int arg11, DWORD arg12)
1522{
1523 dprintf(("GDI32: OS2MaskBlt"));
1524 return O32_MaskBlt(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
1525}
1526//******************************************************************************
1527//******************************************************************************
1528BOOL WIN32API ModifyWorldTransform( HDC arg1, const XFORM *arg2, DWORD arg3)
1529{
1530 dprintf(("GDI32: OS2ModifyWorldTransform"));
1531 return O32_ModifyWorldTransform(arg1, (LPXFORM)arg2, arg3);
1532}
1533//******************************************************************************
1534//******************************************************************************
1535int WIN32API OffsetClipRgn( HDC arg1, int arg2, int arg3)
1536{
1537 dprintf(("GDI32: OS2OffsetClipRgn"));
1538 return O32_OffsetClipRgn(arg1, arg2, arg3);
1539}
1540//******************************************************************************
1541//******************************************************************************
1542int WIN32API OffsetRgn( HRGN arg1, int arg2, int arg3)
1543{
1544 dprintf(("GDI32: OS2OffsetRgn"));
1545 return O32_OffsetRgn(arg1, arg2, arg3);
1546}
1547//******************************************************************************
1548//******************************************************************************
1549BOOL WIN32API OffsetViewportOrgEx( HDC arg1, int arg2, int arg3, PPOINT arg4)
1550{
1551 dprintf(("GDI32: OS2OffsetViewportOrgEx"));
1552 return O32_OffsetViewportOrgEx(arg1, arg2, arg3, arg4);
1553}
1554//******************************************************************************
1555//******************************************************************************
1556BOOL WIN32API OffsetWindowOrgEx( HDC arg1, int arg2, int arg3, PPOINT arg4)
1557{
1558 dprintf(("GDI32: OS2OffsetWindowOrgEx"));
1559 return O32_OffsetWindowOrgEx(arg1, arg2, arg3, arg4);
1560}
1561//******************************************************************************
1562//******************************************************************************
1563BOOL WIN32API PaintRgn( HDC arg1, HRGN arg2)
1564{
1565 dprintf(("GDI32: OS2PaintRgn"));
1566 return O32_PaintRgn(arg1, arg2);
1567}
1568//******************************************************************************
1569//******************************************************************************
1570HRGN WIN32API PathToRegion( HDC arg1)
1571{
1572 dprintf(("GDI32: OS2PathToRegion"));
1573 return O32_PathToRegion(arg1);
1574}
1575//******************************************************************************
1576//******************************************************************************
1577BOOL WIN32API Pie( HDC arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, int arg8, int arg9)
1578{
1579 dprintf(("GDI32: OS2Pie"));
1580 return O32_Pie(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
1581}
1582//******************************************************************************
1583//******************************************************************************
1584BOOL WIN32API PlayEnhMetaFile( HDC arg1, HENHMETAFILE arg2, const RECT * arg3)
1585{
1586 dprintf(("GDI32: OS2PlayEnhMetaFile"));
1587 return O32_PlayEnhMetaFile(arg1, arg2, arg3);
1588}
1589//******************************************************************************
1590//******************************************************************************
1591BOOL WIN32API PlayMetaFile( HDC arg1, HMETAFILE arg2)
1592{
1593 dprintf(("GDI32: OS2PlayMetaFile"));
1594 return O32_PlayMetaFile(arg1, arg2);
1595}
1596//******************************************************************************
1597//******************************************************************************
1598BOOL WIN32API PlayMetaFileRecord( HDC arg1, LPHANDLETABLE arg2, LPMETARECORD arg3, UINT arg4)
1599{
1600 dprintf(("GDI32: OS2PlayMetaFileRecord"));
1601 return O32_PlayMetaFileRecord(arg1, arg2, arg3, (int)arg4);
1602}
1603//******************************************************************************
1604//******************************************************************************
1605BOOL WIN32API PolyBezier( HDC arg1, const POINT * arg2, DWORD arg3)
1606{
1607 dprintf(("GDI32: OS2PolyBezier"));
1608 return O32_PolyBezier(arg1, arg2, (int)arg3);
1609}
1610//******************************************************************************
1611//******************************************************************************
1612BOOL WIN32API PolyBezierTo( HDC arg1, const POINT * arg2, DWORD arg3)
1613{
1614 dprintf(("GDI32: OS2PolyBezierTo"));
1615 return O32_PolyBezierTo(arg1, arg2, arg3);
1616}
1617//******************************************************************************
1618//******************************************************************************
1619BOOL WIN32API PolyDraw( HDC arg1, const POINT * arg2, const BYTE * arg3, DWORD arg4)
1620{
1621 dprintf(("GDI32: OS2PolyDraw"));
1622 return O32_PolyDraw(arg1, arg2, arg3, arg4);
1623}
1624//******************************************************************************
1625//******************************************************************************
1626BOOL WIN32API PolyPolygon( HDC arg1, const POINT * arg2, const INT * arg3, UINT arg4)
1627{
1628 dprintf(("GDI32: OS2PolyPolygon"));
1629 return O32_PolyPolygon(arg1, arg2, arg3, arg4);
1630}
1631//******************************************************************************
1632//******************************************************************************
1633BOOL WIN32API PolyPolyline( HDC arg1, const POINT * arg2, const DWORD * arg3, DWORD arg4)
1634{
1635 dprintf(("GDI32: OS2PolyPolyline"));
1636 return O32_PolyPolyline(arg1, arg2, arg3, arg4);
1637}
1638//******************************************************************************
1639//******************************************************************************
1640BOOL WIN32API Polygon( HDC arg1, const POINT * arg2, int arg3)
1641{
1642 dprintf(("GDI32: OS2Polygon"));
1643 return O32_Polygon(arg1, arg2, arg3);
1644}
1645//******************************************************************************
1646//******************************************************************************
1647BOOL WIN32API Polyline( HDC arg1, const POINT * arg2, int arg3)
1648{
1649 dprintf(("GDI32: OS2Polyline"));
1650 return O32_Polyline(arg1, arg2, arg3);
1651}
1652//******************************************************************************
1653//******************************************************************************
1654BOOL WIN32API PolylineTo( HDC arg1, const POINT * arg2, DWORD arg3)
1655{
1656 dprintf(("GDI32: OS2PolylineTo"));
1657 return O32_PolylineTo(arg1, arg2, arg3);
1658}
1659//******************************************************************************
1660//******************************************************************************
1661BOOL WIN32API PtInRegion( HRGN arg1, int arg2, int arg3)
1662{
1663 dprintf(("GDI32: OS2PtInRegion"));
1664 return O32_PtInRegion(arg1, arg2, arg3);
1665}
1666//******************************************************************************
1667//******************************************************************************
1668BOOL WIN32API PtVisible( HDC arg1, int arg2, int arg3)
1669{
1670 dprintf(("GDI32: OS2PtVisible"));
1671 return O32_PtVisible(arg1, arg2, arg3);
1672}
1673//******************************************************************************
1674//******************************************************************************
1675BOOL WIN32API RectInRegion( HRGN arg1, const RECT * arg2)
1676{
1677 dprintf(("GDI32: OS2RectInRegion"));
1678 return O32_RectInRegion(arg1, arg2);
1679}
1680//******************************************************************************
1681//******************************************************************************
1682BOOL WIN32API RectVisible( HDC arg1, const RECT * arg2)
1683{
1684 dprintf(("GDI32: OS2RectVisible\n"));
1685 return O32_RectVisible(arg1, arg2);
1686}
1687//******************************************************************************
1688//******************************************************************************
1689BOOL WIN32API RemoveFontResourceA( LPCSTR arg1)
1690{
1691 dprintf(("GDI32: OS2RemoveFontResourceA %s\n", arg1));
1692 return O32_RemoveFontResource(arg1);
1693}
1694//******************************************************************************
1695//******************************************************************************
1696BOOL WIN32API RemoveFontResourceW(LPCWSTR arg1)
1697{
1698 char *astring = UnicodeToAsciiString((LPWSTR)arg1);
1699 BOOL rc;
1700
1701 dprintf(("GDI32: OS2RemoveFontResourceW\n"));
1702 rc = O32_RemoveFontResource(astring);
1703 FreeAsciiString(astring);
1704 return(rc);
1705}
1706//******************************************************************************
1707//******************************************************************************
1708HDC WIN32API ResetDCA( HDC arg1, const DEVMODEA * arg2)
1709{
1710 dprintf(("GDI32: OS2ResetDCA\n"));
1711 return (HDC)O32_ResetDC(arg1, arg2);
1712}
1713//******************************************************************************
1714//******************************************************************************
1715HDC WIN32API ResetDCW( HDC arg1, const DEVMODEW * arg2)
1716{
1717 dprintf(("GDI32: OS2ResetDCW\n"));
1718 // NOTE: This will not work as is (needs UNICODE support)
1719 return (HDC)O32_ResetDC(arg1, (const DEVMODEA *)arg2);
1720}
1721//******************************************************************************
1722//******************************************************************************
1723BOOL WIN32API ResizePalette( HPALETTE arg1, UINT arg2)
1724{
1725 dprintf(("GDI32: OS2ResizePalette\n"));
1726 return O32_ResizePalette(arg1, arg2);
1727}
1728//******************************************************************************
1729//******************************************************************************
1730BOOL WIN32API RestoreDC( HDC arg1, int arg2)
1731{
1732 dprintf(("GDI32: OS2RestoreDC\n"));
1733 return O32_RestoreDC(arg1, arg2);
1734}
1735//******************************************************************************
1736//******************************************************************************
1737BOOL WIN32API RoundRect( HDC arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7)
1738{
1739 dprintf(("GDI32: OS2RoundRect"));
1740 return O32_RoundRect(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
1741}
1742//******************************************************************************
1743//******************************************************************************
1744int WIN32API SaveDC( HDC arg1)
1745{
1746 dprintf(("GDI32: OS2SaveDC"));
1747 return O32_SaveDC(arg1);
1748}
1749//******************************************************************************
1750//******************************************************************************
1751BOOL WIN32API ScaleViewportExtEx( HDC arg1, int arg2, int arg3, int arg4, int arg5, PSIZE arg6)
1752{
1753 dprintf(("GDI32: OS2ScaleViewportExtEx"));
1754 return O32_ScaleViewportExtEx(arg1, arg2, arg3, arg4, arg5, arg6);
1755}
1756//******************************************************************************
1757//******************************************************************************
1758BOOL WIN32API ScaleWindowExtEx( HDC arg1, int arg2, int arg3, int arg4, int arg5, PSIZE arg6)
1759{
1760 dprintf(("GDI32: OS2ScaleWindowExtEx"));
1761 return O32_ScaleWindowExtEx(arg1, arg2, arg3, arg4, arg5, arg6);
1762}
1763//******************************************************************************
1764//******************************************************************************
1765int WIN32API SelectClipRgn( HDC arg1, HRGN arg2)
1766{
1767 dprintf(("GDI32: OS2SelectClipRgn"));
1768 return O32_SelectClipRgn(arg1, arg2);
1769}
1770//******************************************************************************
1771//******************************************************************************
1772int WIN32API SetArcDirection( HDC arg1, int arg2)
1773{
1774 dprintf(("GDI32: OS2SetArcDirection"));
1775 return O32_SetArcDirection(arg1, arg2);
1776}
1777//******************************************************************************
1778//******************************************************************************
1779LONG WIN32API SetBitmapBits( HBITMAP arg1, LONG arg2, const VOID * arg3)
1780{
1781 dprintf(("GDI32: OS2SetBitmapBits"));
1782 return O32_SetBitmapBits(arg1, (DWORD)arg2, arg3);
1783}
1784//******************************************************************************
1785//******************************************************************************
1786BOOL WIN32API SetBitmapDimensionEx( HBITMAP arg1, int arg2, int arg3, PSIZE arg4)
1787{
1788 dprintf(("GDI32: OS2SetBitmapDimensionEx"));
1789 return O32_SetBitmapDimensionEx(arg1, arg2, arg3, arg4);
1790}
1791//******************************************************************************
1792//******************************************************************************
1793UINT WIN32API SetBoundsRect( HDC arg1, const RECT * arg2, UINT arg3)
1794{
1795 dprintf(("GDI32: OS2SetBoundsRect"));
1796 return O32_SetBoundsRect(arg1, arg2, arg3);
1797}
1798//******************************************************************************
1799//******************************************************************************
1800BOOL WIN32API SetBrushOrgEx( HDC arg1, int arg2, int arg3, PPOINT arg4)
1801{
1802 BOOL rc;
1803
1804 rc = O32_SetBrushOrgEx(arg1, arg2, arg3, arg4);
1805 dprintf(("GDI32: OS2SetBrushOrgEx returned %d\n", rc));
1806 return(rc);
1807}
1808//******************************************************************************
1809//******************************************************************************
1810int WIN32API SetDIBits( HDC arg1, HBITMAP arg2, UINT arg3, UINT arg4, const VOID * arg5, const BITMAPINFO * arg6, UINT arg7)
1811{
1812 dprintf(("GDI32: OS2SetDIBits\n"));
1813 return O32_SetDIBits(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
1814}
1815//******************************************************************************
1816//******************************************************************************
1817INT WIN32API SetDIBitsToDevice( HDC arg1, INT arg2, INT arg3, DWORD arg4, DWORD arg5, INT arg6, INT arg7, UINT arg8, UINT arg9, LPCVOID arg10, const BITMAPINFO *arg11, UINT arg12)
1818{
1819 dprintf(("GDI32: OS2SetDIBitsToDevice"));
1820 return O32_SetDIBitsToDevice(arg1, arg2, arg3, (int)arg4, (int)arg5, arg6, arg7, arg8, arg9, (PVOID)arg10, (PBITMAPINFO)arg11, arg12);
1821}
1822//******************************************************************************
1823//******************************************************************************
1824HENHMETAFILE WIN32API SetEnhMetaFileBits( UINT arg1, const BYTE * arg2)
1825{
1826 dprintf(("GDI32: OS2SetEnhMetaFileBits"));
1827 return O32_SetEnhMetaFileBits(arg1, arg2);
1828}
1829//******************************************************************************
1830//******************************************************************************
1831int WIN32API SetGraphicsMode(HDC arg1, int arg2)
1832{
1833 dprintf(("GDI32: OS2SetGraphicsMode"));
1834 return O32_SetGraphicsMode(arg1, arg2);
1835}
1836//******************************************************************************
1837//******************************************************************************
1838int WIN32API SetMapMode( HDC arg1, int arg2)
1839{
1840 dprintf(("GDI32: OS2SetMapMode"));
1841 return O32_SetMapMode(arg1, arg2);
1842}
1843//******************************************************************************
1844//******************************************************************************
1845DWORD WIN32API SetMapperFlags( HDC arg1, DWORD arg2)
1846{
1847 dprintf(("GDI32: OS2SetMapperFlags"));
1848 return O32_SetMapperFlags(arg1, arg2);
1849}
1850//******************************************************************************
1851//******************************************************************************
1852HMETAFILE WIN32API SetMetaFileBitsEx( UINT arg1, const BYTE * arg2)
1853{
1854 dprintf(("GDI32: OS2SetMetaFileBitsEx"));
1855 return O32_SetMetaFileBitsEx(arg1, (PBYTE)arg2);
1856}
1857//******************************************************************************
1858//******************************************************************************
1859BOOL WIN32API SetMiterLimit( HDC arg1, float arg2, float * arg3)
1860{
1861 dprintf(("GDI32: OS2SetMiterLimit"));
1862 return O32_SetMiterLimit(arg1, arg2, arg3);
1863}
1864//******************************************************************************
1865//******************************************************************************
1866UINT WIN32API SetPaletteEntries( HPALETTE arg1, UINT arg2, UINT arg3, PALETTEENTRY * arg4)
1867{
1868 dprintf(("GDI32: OS2SetPaletteEntries"));
1869 return O32_SetPaletteEntries(arg1, arg2, arg3, (const PALETTEENTRY *)arg4);
1870}
1871//******************************************************************************
1872//******************************************************************************
1873int WIN32API SetPolyFillMode( HDC arg1, int arg2)
1874{
1875 dprintf(("GDI32: OS2SetPolyFillMode"));
1876 return O32_SetPolyFillMode(arg1, arg2);
1877}
1878//******************************************************************************
1879//******************************************************************************
1880BOOL WIN32API SetRectRgn( HRGN arg1, int arg2, int arg3, int arg4, int arg5)
1881{
1882 dprintf(("GDI32: OS2SetRectRgn"));
1883 return O32_SetRectRgn(arg1, arg2, arg3, arg4, arg5);
1884}
1885//******************************************************************************
1886//******************************************************************************
1887UINT WIN32API SetTextAlign( HDC arg1, UINT arg2)
1888{
1889 dprintf(("GDI32: OS2SetTextAlign"));
1890 return O32_SetTextAlign(arg1, arg2);
1891}
1892//******************************************************************************
1893//******************************************************************************
1894int WIN32API SetTextCharacterExtra( HDC arg1, int arg2)
1895{
1896 dprintf(("GDI32: OS2SetTextCharacterExtra"));
1897 return O32_SetTextCharacterExtra(arg1, arg2);
1898}
1899//******************************************************************************
1900//******************************************************************************
1901BOOL WIN32API SetTextJustification( HDC arg1, int arg2, int arg3)
1902{
1903 dprintf(("GDI32: OS2SetTextJustification"));
1904 return O32_SetTextJustification(arg1, arg2, arg3);
1905}
1906//******************************************************************************
1907//******************************************************************************
1908BOOL WIN32API SetViewportExtEx( HDC arg1, int arg2, int arg3, PSIZE arg4)
1909{
1910 dprintf(("GDI32: OS2SetViewportExtEx"));
1911 return O32_SetViewportExtEx(arg1, arg2, arg3, arg4);
1912}
1913//******************************************************************************
1914//******************************************************************************
1915BOOL WIN32API SetViewportOrgEx( HDC arg1, int arg2, int arg3, PPOINT arg4)
1916{
1917 dprintf(("GDI32: OS2SetViewportOrgEx"));
1918 return O32_SetViewportOrgEx(arg1, arg2, arg3, arg4);
1919}
1920//******************************************************************************
1921//******************************************************************************
1922HENHMETAFILE WIN32API SetWinMetaFileBits( UINT arg1, const BYTE * arg2, HDC arg3, const METAFILEPICT * arg4)
1923{
1924 dprintf(("GDI32: OS2SetWinMetaFileBits"));
1925 return O32_SetWinMetaFileBits(arg1, arg2, arg3, arg4);
1926}
1927//******************************************************************************
1928//******************************************************************************
1929BOOL WIN32API SetWindowExtEx( HDC arg1, int arg2, int arg3, PSIZE arg4)
1930{
1931 dprintf(("GDI32: OS2SetWindowExtEx"));
1932 return O32_SetWindowExtEx(arg1, arg2, arg3, arg4);
1933}
1934//******************************************************************************
1935//******************************************************************************
1936BOOL WIN32API SetWindowOrgEx( HDC arg1, int arg2, int arg3, PPOINT arg4)
1937{
1938 dprintf(("GDI32: OS2SetWindowOrgEx"));
1939 return O32_SetWindowOrgEx(arg1, arg2, arg3, arg4);
1940}
1941//******************************************************************************
1942//******************************************************************************
1943BOOL WIN32API SetWorldTransform( HDC arg1, const XFORM *arg2)
1944{
1945 dprintf(("GDI32: OS2SetWorldTransform"));
1946 return O32_SetWorldTransform(arg1, (LPXFORM)arg2);
1947}
1948//******************************************************************************
1949//******************************************************************************
1950INT WIN32API StartDocA( HDC arg1, const DOCINFOA *arg2)
1951{
1952 dprintf(("GDI32: OS2StartDocA"));
1953 return O32_StartDoc(arg1, (LPDOCINFOA)arg2);
1954}
1955//******************************************************************************
1956//******************************************************************************
1957INT WIN32API StartDocW( HDC arg1, const DOCINFOW *arg2)
1958{
1959 dprintf(("GDI32: OS2StartDocW STUB"));
1960 // NOTE: This will not work as is (needs UNICODE support)
1961// return O32_StartDoc(arg1, arg2);
1962 return 0;
1963}
1964//******************************************************************************
1965//******************************************************************************
1966int WIN32API StartPage( HDC arg1)
1967{
1968 dprintf(("GDI32: OS2StartPage"));
1969 return O32_StartPage(arg1);
1970}
1971//******************************************************************************
1972//******************************************************************************
1973BOOL WIN32API TextOutW( HDC arg1, int arg2, int arg3, LPCWSTR arg4, int arg5)
1974{
1975 char *astring = UnicodeToAsciiString((LPWSTR)arg4);
1976 BOOL rc;
1977
1978 dprintf(("GDI32: OS2TextOutW"));
1979 // NOTE: This will not work as is (needs UNICODE support)
1980 rc = O32_TextOut(arg1, arg2, arg3, astring, arg5);
1981 FreeAsciiString(astring);
1982 return rc;
1983}
1984//******************************************************************************
1985//******************************************************************************
1986BOOL WIN32API UnrealizeObject( HGDIOBJ arg1)
1987{
1988 dprintf(("GDI32: OS2UnrealizeObject"));
1989 return O32_UnrealizeObject(arg1);
1990}
1991//******************************************************************************
1992//******************************************************************************
1993BOOL WIN32API WidenPath( HDC arg1)
1994{
1995 dprintf(("GDI32: OS2WidenPath"));
1996 return O32_WidenPath(arg1);
1997}
1998//******************************************************************************
1999//CreateDisardableBitmap is obsolete and can be replaced by CreateCompatibleBitmap
2000//******************************************************************************
2001HBITMAP WIN32API CreateDiscardableBitmap(HDC hDC, int nWidth, int nHeight)
2002{
2003 dprintf(("GDI32: OS2CreateDisardableBitmap\n"));
2004 return O32_CreateCompatibleBitmap(hDC, nWidth, nHeight);
2005}
2006//******************************************************************************
2007//TODO: Not implemented
2008//******************************************************************************
2009int WIN32API SetAbortProc(HDC hdc, ABORTPROC lpAbortProc)
2010{
2011 dprintf(("GDI32: OS2SetAbortProc - stub (1)w\n"));
2012 return(1);
2013}
2014//******************************************************************************
2015//TODO:
2016//Should return the character set of the font currently selected into the hdc
2017//******************************************************************************
2018UINT WIN32API GetTextCharset(HDC hdc)
2019{
2020 dprintf(("GDI32: OS2GetTextCharset, not complete\n"));
2021 return(ANSI_CHARSET);
2022}
2023//******************************************************************************
2024//Selects the current path as a clipping region for a device context, combining
2025//any existing clipping region by using the specified mode
2026//TODO: Can be emulated with SelectClipRegion??
2027//******************************************************************************
2028BOOL WIN32API SelectClipPath(HDC hdc, int iMode)
2029{
2030 dprintf(("GDI32: OS2SelectClipPath, not implemented!(TRUE)\n"));
2031 return(TRUE);
2032}
2033//******************************************************************************
2034//TODO: Sets the color adjustment values for a device context. (used to adjust
2035// the input color of the src bitmap for calls of StretchBlt & StretchDIBits
2036// functions when HALFTONE mode is set
2037//******************************************************************************
2038BOOL WIN32API SetColorAdjustment(HDC hdc, CONST COLORADJUSTMENT *lpca)
2039{
2040 dprintf(("GDI32: OS2SetColorAdjustment, not implemented!(TRUE)\n"));
2041 return(TRUE);
2042}
2043//******************************************************************************
2044//WINE: OBJECTS\DIB.C
2045//******************************************************************************
2046HBITMAP WIN32API CreateDIBSection(HDC hdc, BITMAPINFO *pbmi, UINT iUsage,
2047 VOID **ppvBits, HANDLE hSection, DWORD dwOffset)
2048{
2049 HBITMAP res = 0;
2050 BOOL fFlip = 0;
2051
2052 dprintf(("GDI32: OS2CreateDIBSection, partly implemented!\n"));
2053 if(hSection) {
2054 dprintf(("GDI32: OS2CreateDIBSection, hSection != NULL, not supported!\n"));
2055 return NULL;
2056 }
2057
2058 //SvL: 13-9-98: StarCraft uses bitmap with negative height
2059 if(pbmi->bmiHeader.biWidth < 0) {
2060 pbmi->bmiHeader.biWidth = -pbmi->bmiHeader.biWidth;
2061 fFlip = FLIP_HOR;
2062 }
2063 if(pbmi->bmiHeader.biHeight < 0) {
2064 pbmi->bmiHeader.biHeight = -pbmi->bmiHeader.biHeight;
2065 fFlip |= FLIP_VERT;
2066 }
2067
2068 res = O32_CreateDIBitmap(hdc, &pbmi->bmiHeader, 0, NULL, pbmi, 0);
2069 if (res)
2070 {
2071 DIBSection *dsect = new DIBSection((WINBITMAPINFOHEADER *)&pbmi->bmiHeader, (DWORD)res, fFlip);
2072 *ppvBits = dsect->GetDIBObject();
2073 return(res);
2074 }
2075
2076 /* Error. */
2077 if (res) DeleteObject(res);
2078 *ppvBits = NULL;
2079#ifdef DEBUG
2080 dprintf(("GDI32: CreateDIBSection, error!\n"));
2081 dprintf(("pbmi->biWidth %d", pbmi->bmiHeader.biWidth));
2082 dprintf(("pbmi->biHeight %d", pbmi->bmiHeader.biHeight));
2083 dprintf(("pbmi->biBitCount %d", pbmi->bmiHeader.biBitCount));
2084#endif
2085
2086 return 0;
2087}
2088//******************************************************************************
2089//******************************************************************************
2090UINT WIN32API GetDIBColorTable(HDC hdc, UINT uStartIndex, UINT cEntries,
2091 RGBQUAD *pColors)
2092{
2093 HPALETTE hpal = O32_GetCurrentObject(hdc, OBJ_PAL);
2094 UINT rc;
2095 int i;
2096
2097 dprintf(("GDI32: OS2GetDIBColorTable, not implemented?\n"));
2098 rc = O32_GetPaletteEntries(hpal,
2099 uStartIndex,
2100 cEntries,
2101 (PALETTEENTRY *)pColors);
2102 for(i=0;
2103 i<cEntries;
2104 i++)
2105 {
2106 pColors[i].rgbReserved = 0;
2107 }
2108 dprintf(("GDI32: GetDIBColor returns %d\n", rc));
2109 return(rc);
2110}
2111//******************************************************************************
2112//******************************************************************************
2113UINT WIN32API SetDIBColorTable(HDC hdc, UINT uStartIndex, UINT cEntries,
2114 RGBQUAD *pColors)
2115{
2116 DIBSection *dsect = DIBSection::findHDC(hdc);
2117
2118 dprintf(("GDI32: OS2SetDIBColorTable\n"));
2119 if(dsect) {
2120 return(dsect->SetDIBColorTable(uStartIndex, cEntries, pColors));
2121 }
2122 else return(0);
2123}
2124//******************************************************************************
2125//******************************************************************************
2126INT WIN32API EnumFontFamiliesExA( HDC arg1, LPLOGFONTA arg2, FONTENUMPROCEXA arg3, LPARAM arg4, DWORD dwFlags)
2127{
2128 dprintf(("GDI32: OS2EnumFontFamiliesExA, not implemented\n"));
2129 return 0;
2130}
2131//******************************************************************************
2132//******************************************************************************
2133INT WIN32API EnumFontFamiliesExW( HDC arg1, LPLOGFONTW arg2, FONTENUMPROCEXW arg3, LPARAM arg4, DWORD dwFlags)
2134{
2135 dprintf(("GDI32: OS2EnumFontFamiliesW, not implemented\n"));
2136 // NOTE: This will not work as is (needs UNICODE support)
2137 return 0;
2138}
2139//******************************************************************************
2140//******************************************************************************
2141HPALETTE WIN32API CreateHalftonePalette(HDC hdc)
2142{
2143 dprintf(("GDI32: OS2CreateHalftonePalette, not implemented\n"));
2144 return(NULL);
2145}
2146//******************************************************************************
2147//******************************************************************************
2148INT WIN32API TranslateCharsetInfo(DWORD *lpSrc, LPCHARSETINFO lpCs, DWORD dwFlags)
2149{
2150 dprintf(("GDI32: OS2TranslateCharsetInfo, not implemented\n"));
2151 return(0);
2152}
2153//******************************************************************************
2154//Maps colors to system palette; faster way to update window (instead of redrawing)
2155//We just redraw
2156//******************************************************************************
2157BOOL WIN32API UpdateColors(HDC hdc)
2158{
2159 dprintf(("GDI32: OS2UpdateColors\n"));
2160 return O32_InvalidateRect(O32_WindowFromDC(hdc), NULL, FALSE);
2161}
2162//******************************************************************************
2163//******************************************************************************
2164BOOL WIN32API GdiFlush()
2165{
2166 dprintf(("GDI32: GdiFlush, not implemented (TRUE)\n"));
2167 return(TRUE);
2168}
2169//******************************************************************************
2170//******************************************************************************
2171BOOL WIN32API GdiComment(HDC hdc, UINT cbSize, CONST BYTE *lpData)
2172{
2173 dprintf(("GDI32: GdiComment, not implemented (TRUE)\n"));
2174 return(TRUE);
2175}
2176//******************************************************************************
2177//******************************************************************************
2178BOOL WIN32API GetCharWidthFloatA(HDC hdc, UINT iFirstChar, UINT iLastChar, PFLOAT pxBUffer)
2179{
2180 dprintf(("GDI32: GetCharWidthFloatA, not implemented\n"));
2181 return(FALSE);
2182}
2183//******************************************************************************
2184//******************************************************************************
2185BOOL WIN32API GetCharWidthFloatW(HDC hdc, UINT iFirstChar, UINT iLastChar, PFLOAT pxBUffer)
2186{
2187 dprintf(("GDI32: GetCharWidthFloatW, not implemented\n"));
2188 return(FALSE);
2189}
2190//******************************************************************************
2191//******************************************************************************
2192BOOL WIN32API GetCharABCWidthsFloatA(HDC hdc, UINT iFirstChar, UINT iLastChar, LPABCFLOAT pxBUffer)
2193{
2194 dprintf(("GDI32: GetCharABCWidthsFloatA, not implemented\n"));
2195 return(FALSE);
2196}
2197//******************************************************************************
2198//******************************************************************************
2199BOOL WIN32API GetCharABCWidthsFloatW(HDC hdc,
2200 UINT iFirstChar,
2201 UINT iLastChar,
2202 LPABCFLOAT pxBUffer)
2203{
2204 dprintf(("GDI32: GetCharABCWidthsFloatA, not implemented\n"));
2205 return(FALSE);
2206}
2207//******************************************************************************
2208//******************************************************************************
2209INT WIN32API ExtEscape(HDC hdc, INT nEscape, INT cbInput, LPCSTR lpszInData,
2210 INT cbOutput, LPSTR lpszOutData)
2211{
2212 dprintf(("GDI32: ExtEscape, not implemented\n"));
2213 return(0);
2214}
2215//******************************************************************************
2216//******************************************************************************
2217int WIN32API DrawEscape(HDC hdc, int nEscape, int cbInput, LPCSTR lpszInData)
2218{
2219 dprintf(("GDI32: DrawEscape, not implemented\n"));
2220 return(0);
2221}
2222//******************************************************************************
2223//******************************************************************************
2224BOOL WIN32API GetColorAdjustment(HDC hdc, COLORADJUSTMENT *lpca)
2225{
2226 dprintf(("GDI32: GetColorAdjustment, not implemented\n"));
2227 return(FALSE);
2228}
2229//******************************************************************************
2230//******************************************************************************
2231BOOL WIN32API PlgBlt(HDC hdcDest, CONST POINT *lpPoint, HDC hdcSrc, int nXSrc,
2232 int nYSrc, int nWidth, int nHeight, HBITMAP hbmMask,
2233 int xMast, int yMask)
2234{
2235 dprintf(("GDI32: PlgBlt, not implemented\n"));
2236 return(FALSE);
2237}
2238//******************************************************************************
2239//******************************************************************************
2240DWORD WIN32API GetGlyphOutlineA(HDC hdc, UINT uChar, UINT uFormat, LPGLYPHMETRICS lpgm,
2241 DWORD cbBuffer, LPVOID lpvBuffer, CONST MAT2 *lpmat2)
2242{
2243 dprintf(("GDI32: GetGlyphOutLineA, not implemented (GDI_ERROR)\n"));
2244 return(GDI_ERROR);
2245}
2246//******************************************************************************
2247
2248//******************************************************************************
2249/*KSO Thu 21.05.1998*/
2250DWORD WIN32API GetGlyphOutlineW(HDC hdc, UINT uChar, UINT uFormat, LPGLYPHMETRICS lpgm,
2251 DWORD cbBuffer, LPVOID lpvBuffer, CONST MAT2 *lpmat2)
2252{
2253 dprintf(("GDI32: GetGlyphOutLineW, not implemented\n"));
2254 return(GDI_ERROR);
2255}
2256//******************************************************************************
2257
2258//******************************************************************************
2259DWORD WIN32API GetFontData(HDC hdc, DWORD dwTable, DWORD dwOffset, LPVOID lpvBuffer,
2260 DWORD dbData)
2261{
2262 dprintf(("GDI32: GetFontData, not implemented (GDI_ERROR)\n"));
2263 return(GDI_ERROR);
2264}
2265//******************************************************************************
2266//******************************************************************************
2267int WIN32API DescribePixelFormat(HDC, int, UINT, LPPIXELFORMATDESCRIPTOR)
2268{
2269 dprintf(("GDI32: GetFontData, not implemented (GDI_ERROR)\n"));
2270 return(GDI_ERROR);
2271}
2272//******************************************************************************
2273//******************************************************************************
2274UINT WIN32API SetSystemPaletteUse(HDC hdc, UINT flags)
2275{
2276 dprintf(("GDI32: SetSystemPaletteUse %X %X, not implemented (GDI_ERROR)\n", hdc, flags));
2277 return(GDI_ERROR);
2278}
2279//******************************************************************************
2280//******************************************************************************
2281BOOL WIN32API SetObjectOwner( HGDIOBJ arg1, int arg2 )
2282{
2283 // Here is a guess for a undocumented entry
2284 dprintf(("GDI32: SetObjectOwner - stub (TRUE)\n"));
2285 return TRUE;
2286}
2287//******************************************************************************
2288
2289
2290/* Office 97 stubs - KSO Thu 21.05.1998*/
2291//******************************************************************************
2292BOOL WIN32API GetTextExtentExPointA(/*KSO Thu 21.05.1998*/
2293 HDC arg1,
2294 LPCSTR arg2,
2295 int arg3,
2296 int arg4,
2297 LPINT arg5,
2298 LPINT arg6,
2299 LPSIZE arg7
2300 )
2301{
2302 dprintf(("GDI32: GetTextExtendExPointA - stub\n"));
2303 return FALSE;
2304}
2305//******************************************************************************
2306//******************************************************************************
2307BOOL WIN32API GetTextExtentExPointW( /*KSO Thu 21.05.1998*/
2308 HDC arg1,
2309 LPCWSTR arg2,
2310 int arg3,
2311 int arg4,
2312 LPINT arg5,
2313 LPINT arg6,
2314 LPSIZE arg7
2315 )
2316{
2317 dprintf(("GDI32: GetTextExtendExPointW - stub\n"));
2318 return FALSE;
2319}
2320//******************************************************************************
2321//******************************************************************************
2322UINT WIN32API GetTextCharsetInfo( /*KSO Thu 21.05.1998*/
2323 HDC hdc,
2324 LPFONTSIGNATURE lpSig,
2325 DWORD dwFlags
2326 )
2327{
2328 dprintf(("GDI32: GetTextCharsetInfo - stub\n"));
2329 return FALSE;
2330}
2331//******************************************************************************
2332//******************************************************************************
2333UINT WIN32API GetSystemPaletteUse( /*KSO Thu 21.05.1998*/
2334 HDC hdc
2335 )
2336{
2337 dprintf(("GDI32: GetSystemPaletteUse - stub\n"));
2338 return FALSE; /*?*/
2339}
2340//******************************************************************************
2341//******************************************************************************
2342BOOL WIN32API PlayEnhMetaFileRecord( /*KSO Thu 21.05.1998*/
2343 HDC arg1,
2344 LPHANDLETABLE arg2,
2345 CONST ENHMETARECORD *arg3,
2346 UINT arg4
2347 )
2348{
2349 dprintf(("GDI32: PlayEnhMetaFileRecord - stub\n"));
2350 return FALSE;
2351}
2352//******************************************************************************
2353UINT WIN32API GetEnhMetaFileDescriptionA( /*KSO Thu 21.05.1998*/
2354 HENHMETAFILE arg1,
2355 UINT arg2,
2356 LPSTR arg3
2357 )
2358{
2359 dprintf(("GDI32: GetEnhMetaFileDescriptionA - stub\n"));
2360 return FALSE;
2361}
2362//******************************************************************************
2363//******************************************************************************
2364UINT WIN32API GetEnhMetaFileDescriptionW( /*KSO Thu 21.05.1998*/
2365 HENHMETAFILE arg1,
2366 UINT arg2,
2367 LPWSTR arg3
2368 )
2369{
2370 dprintf(("GDI32: GetEnhMetaFileDescriptionW - stub\n"));
2371 return FALSE;
2372}
2373//******************************************************************************
2374//******************************************************************************
2375UINT WIN32API DeleteColorSpace( /*KSO Thu 21.05.1998*/
2376 HCOLORSPACE hColorSpace
2377 )
2378{
2379 dprintf(("GDI32: DeleteColorSpace - stub\n"));
2380 return FALSE;
2381}
2382//******************************************************************************
2383//******************************************************************************
2384BOOL WIN32API SetColorSpace( /*KSO Thu 21.05.1998*/
2385 HDC hdc,
2386 HCOLORSPACE hColorSpace
2387 )
2388{
2389 dprintf(("GDI32: SetColorSpace - stub\n"));
2390 return FALSE;
2391}
2392//******************************************************************************
2393//******************************************************************************
2394 HCOLORSPACE WIN32API CreateColorSpaceA( /*KSO Thu 21.05.1998*/
2395 LPLOGCOLORSPACEA lpLogColorSpace
2396 )
2397{
2398 dprintf(("GDI32: CreateColorSpaceA - stub\n"));
2399 return 0;
2400}
2401//******************************************************************************
2402//******************************************************************************
2403HCOLORSPACE WIN32API CreateColorSpaceW( /*KSO Thu 21.05.1998*/
2404 LPLOGCOLORSPACEW lpwLogColorSpace
2405 )
2406{
2407 dprintf(("GDI32: CreateColorSpaceW - stub\n"));
2408 return 0;
2409}
2410//******************************************************************************
2411//******************************************************************************
2412HANDLE WIN32API GetColorSpace( /*KSO Thu 21.05.1998*/
2413 HDC hdc
2414 )
2415{
2416 dprintf(("GDI32: GetColorSpace - stub\n"));
2417 return 0;
2418}
2419//******************************************************************************
2420//******************************************************************************
2421int WIN32API SetICMMode( /*KSO Thu 21.05.1998*/
2422 HDC hdc,
2423 int mode
2424 )
2425{
2426 dprintf(("GDI32: SetICMMode - stub\n"));
2427 return 0;
2428}
2429//******************************************************************************
2430
2431
2432
2433
2434/*****************************************************************************
2435 * Name : BOOL CancelDC
2436 * Purpose : The CancelDC function cancels any pending operation on the
2437 * specified device context (DC).
2438 * Parameters: HDC hdc handle of device context
2439 * Variables :
2440 * Result : TRUE / FALSE
2441 * Remark :
2442 * Status : UNTESTED STUB
2443 *
2444 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2445 *****************************************************************************/
2446
2447BOOL WIN32API CancelDC(HDC hdc)
2448{
2449 dprintf(("GDI32: CancelDC(%08xh) not implemented.\n",
2450 hdc));
2451
2452 return (FALSE);
2453}
2454
2455
2456/*****************************************************************************
2457 * Name : BOOL CheckColorsInGamut
2458 * Purpose : The CheckColorsInGamut function indicates whether the specified
2459 * color values are within the gamut of the specified device.
2460 * Parameters: HDC hdc handle of device context
2461 * LPVOID lpaRGBQuad
2462 * LPVOID lpResult
2463 * DWORD dwResult
2464 * Variables :
2465 * Result : TRUE / FALSE
2466 * Remark :
2467 * Status : UNTESTED STUB
2468 *
2469 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2470 *****************************************************************************/
2471
2472BOOL WIN32API CheckColorsInGamut(HDC hdc,
2473 LPVOID lpaRGBQuad,
2474 LPVOID lpResult,
2475 DWORD dwResult)
2476{
2477 dprintf(("GDI32: CheckColorsInGamut(%08xh,%08xh,%08xh,%08xh) not implemented.\n",
2478 hdc,
2479 lpaRGBQuad,
2480 lpResult,
2481 dwResult));
2482
2483 return (FALSE);
2484}
2485
2486
2487/*****************************************************************************
2488 * Name : BOOL ColorMatchToTarget
2489 * Purpose : The ColorMatchToTarget function enables or disables preview for
2490 * the specified device context. When preview is enabled, colors
2491 * in subsequent output to the specified device context are
2492 * displayed as they would appear on the target device. This is
2493 * useful for checking how well the target maps the specified
2494 * colors in an image. To enable preview, image color matching
2495 * must be enabled for both the target and the preview device context.
2496 * Parameters: HDC hdc handle of device context
2497 * HDC hdcTarget handle of target device context
2498 * DWORD uiAction
2499 * Variables :
2500 * Result : TRUE / FALSE
2501 * Remark :
2502 * Status : UNTESTED STUB
2503 *
2504 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2505 *****************************************************************************/
2506
2507BOOL WIN32API ColorMatchToTarget(HDC hdc,
2508 HDC hdcTarget,
2509 DWORD uiAction)
2510{
2511 dprintf(("GDI32: ColorMatchToTarget(%08xh,%08xh,%08xh) not implemented.\n",
2512 hdc,
2513 hdcTarget,
2514 uiAction));
2515
2516 return (FALSE);
2517}
2518
2519
2520/*****************************************************************************
2521 * Name : BOOL CombineTransform
2522 * Purpose : The CombineTransform function concatenates two world-space to
2523 * page-space transformations.
2524 * Parameters: LLPXFORM lLPXFORMResult address of combined transformation
2525 * XFORM *lLPXFORM1 address of 1st transformation
2526 * XFORM *lLPXFORM2 address of 2nd transformation
2527 * Variables :
2528 * Result : TRUE / FALSE
2529 * Remark :
2530 * Status : UNTESTED STUB
2531 *
2532 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2533 *****************************************************************************/
2534
2535BOOL WIN32API CombineTransform(LPXFORM lLPXFORMResult,
2536 CONST XFORM *lLPXFORM1,
2537 CONST XFORM *lLPXFORM2)
2538{
2539 dprintf(("GDI32: CombineTransform(%08xh,%08xh,%08xh) not implemented.\n",
2540 lLPXFORMResult,
2541 lLPXFORM1,
2542 lLPXFORM2));
2543
2544 return (FALSE);
2545}
2546
2547
2548
2549/*****************************************************************************
2550 * Name : HBRUSH CreateDIBPatternBrush
2551 * Purpose : The CreateDIBPatternBrush function creates a logical brush that
2552 * has the pattern specified by the specified device-independent
2553 * bitmap (DIB). The brush can subsequently be selected into any
2554 * device context that is associated with a device that supports
2555 * raster operations.
2556 * This function is provided only for compatibility with applications
2557 * written for versions of Windows earlier than 3.0. For Win32-based
2558 * applications, use the CreateDIBPatternBrushPt function.
2559 * Parameters: HGLOBAL hglbDIBPacked handle of device-independent bitmap
2560 * UINT fuColorSpec color table data
2561 * Variables :
2562 * Result : TRUE / FALSE
2563 * Remark :
2564 * Status : UNTESTED STUB
2565 *
2566 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2567 *****************************************************************************/
2568
2569HBRUSH WIN32API CreateDIBPatternBrush(HGLOBAL hglbDIBPacked,
2570 UINT fuColorSpec)
2571{
2572 dprintf(("GDI32: CreateDIBPatternBrush(%08xh, %08xh) not implemented.\n",
2573 hglbDIBPacked,
2574 fuColorSpec));
2575
2576 return (0);
2577}
2578
2579
2580/*****************************************************************************
2581 * Name : BOOL CreateScalableFontResourceA
2582 * Purpose : The CreateScalableFontResourceA function creates a font resource
2583 * file for a scalable font.
2584 * Parameters: DWORD fdwHidden flag for read-only embedded font
2585 * LPCSTR lpszFontRes address of filename for font resource
2586 * LPCSTR lpszFontFile address of filename for scalable font
2587 * LPCSTR lpszCurrentPath address of path to font file
2588 * Variables :
2589 * Result : TRUE / FALSE
2590 * Remark :
2591 * Status : UNTESTED STUB
2592 *
2593 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2594 *****************************************************************************/
2595
2596BOOL WIN32API CreateScalableFontResourceA(DWORD fdwHidden,
2597 LPCSTR lpszFontRes,
2598 LPCSTR lpszFontFile,
2599 LPCSTR lpszCurrentPath)
2600{
2601 dprintf(("GDI32: CreateScalableFontResourceA(%08xh,%08xh,%08xh,%08xh) not implemented.\n",
2602 fdwHidden,
2603 lpszFontRes,
2604 lpszFontFile,
2605 lpszCurrentPath));
2606
2607 return (FALSE);
2608}
2609
2610
2611/*****************************************************************************
2612 * Name : BOOL CreateScalableFontResourceW
2613 * Purpose : The CreateScalableFontResourceW function creates a font resource
2614 * file for a scalable font.
2615 * Parameters: DWORD fdwHidden flag for read-only embedded font
2616 * LPCSTR lpszFontRes address of filename for font resource
2617 * LPCSTR lpszFontFile address of filename for scalable font
2618 * LPCSTR lpszCurrentPath address of path to font file
2619 * Variables :
2620 * Result : TRUE / FALSE
2621 * Remark :
2622 * Status : UNTESTED STUB
2623 *
2624 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2625 *****************************************************************************/
2626
2627BOOL WIN32API CreateScalableFontResourceW(DWORD fdwHidden,
2628 LPCWSTR lpszFontRes,
2629 LPCWSTR lpszFontFile,
2630 LPCWSTR lpszCurrentPath)
2631{
2632 dprintf(("GDI32: CreateScalableFontResourceW(%08xh,%08xh,%08xh,%08xh) not implemented.\n",
2633 fdwHidden,
2634 lpszFontRes,
2635 lpszFontFile,
2636 lpszCurrentPath));
2637
2638 return (FALSE);
2639}
2640
2641
2642/*****************************************************************************
2643 * Name : int EnumICMProfilesA
2644 * Purpose : The EnumICMProfilesA function enumerates the different color
2645 * profiles that the system supports for the specified device context.
2646 * Parameters: HDC hdc
2647 * ICMENUMPROC lpICMEnumFunc
2648 * LPARAM lParam
2649 * Variables :
2650 * Result : TRUE / FALSE
2651 * Remark :
2652 * Status : UNTESTED STUB
2653 *
2654 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2655 *****************************************************************************/
2656
2657int WIN32API EnumICMProfilesA(HDC hdc,
2658 ICMENUMPROCA lpICMEnumProc,
2659 LPARAM lParam)
2660{
2661 dprintf(("GDI32: EnumICMProfilesA(%08xh, %08xh, %08xh) not implemented(-1).\n",
2662 hdc,
2663 lpICMEnumProc,
2664 lParam));
2665
2666 return (-1);
2667}
2668
2669
2670/*****************************************************************************
2671 * Name : int EnumICMProfilesW
2672 * Purpose : The EnumICMProfilesW function enumerates the different color
2673 * profiles that the system supports for the specified device context.
2674 * Parameters: HDC hdc
2675 * ICMENUMPROC lpICMEnumFunc
2676 * LPARAM lParam
2677 * Variables :
2678 * Result : TRUE / FALSE
2679 * Remark :
2680 * Status : UNTESTED STUB
2681 *
2682 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2683 *****************************************************************************/
2684
2685int WIN32API EnumICMProfilesW(HDC hdc,
2686 ICMENUMPROCW lpICMEnumProc,
2687 LPARAM lParam)
2688{
2689 dprintf(("GDI32: EnumICMProfilesW(%08xh, %08xh, %08xh) not implemented (-1).\n",
2690 hdc,
2691 lpICMEnumProc,
2692 lParam));
2693
2694 return (-1);
2695}
2696
2697
2698/*****************************************************************************
2699 * Name : BOOL FixBrushOrgEx
2700 * Purpose : The FixBrushOrgEx function is not implemented in the Win32 API.
2701 * It is provided for compatibility with Win32s. If called, the
2702 * function does nothing, and returns FALSE.
2703 * Parameters: HDC, int, int, LPPOINT
2704 * Variables :
2705 * Result : TRUE / FALSE
2706 * Remark : not implemented in Win32
2707 * Status : UNTESTED STUB
2708 *
2709 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2710 *****************************************************************************/
2711
2712BOOL WIN32API FixBrushOrgEx(HDC hdc,
2713 int iDummy1,
2714 int iDummy2,
2715 LPPOINT lpPoint)
2716{
2717 dprintf(("GDI32: FixBrushOrgEx(%08xh,%08xh,%08xh,%08xh) not implemented.\n",
2718 hdc,
2719 iDummy1,
2720 iDummy2,
2721 lpPoint));
2722
2723 return (FALSE);
2724}
2725
2726
2727/*****************************************************************************
2728 * Name : DWORD GdiGetBatchLimit
2729 * Purpose : The GdiGetBatchLimit function returns the maximum number of
2730 * function calls that can be accumulated in the calling thread's
2731 * current batch. The system flushes the current batch whenever
2732 * this limit is exceeded.
2733 * Parameters:
2734 * Variables :
2735 * Result : 1
2736 * Remark :
2737 * Status : UNTESTED STUB
2738 *
2739 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2740 *****************************************************************************/
2741
2742DWORD WIN32API GdiGetBatchLimit(VOID)
2743{
2744 dprintf(("GDI32: GdiGetBatchLimit() not implemented (1).\n"));
2745
2746 return (1);
2747}
2748
2749
2750/*****************************************************************************
2751 * Name : DWORD GdiSetBatchLimit
2752 * Purpose : The GdiSetBatchLimit function sets the maximum number of
2753 * functions that can be accumulated in the calling thread's current
2754 * batch. The system flushes the current batch whenever this limit
2755 * is exceeded.
2756 * Parameters: DWORD dwLimit
2757 * Variables :
2758 * Result :
2759 * Remark :
2760 * Status : UNTESTED STUB
2761 *
2762 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2763 *****************************************************************************/
2764
2765DWORD WIN32API GdiSetBatchLimit(DWORD dwLimit)
2766{
2767 dprintf(("GDI32: GdiSetBatchLimit(%08xh) not implemented (1).\n",
2768 dwLimit));
2769
2770 return (1);
2771}
2772
2773
2774/*****************************************************************************
2775 * Name : DWORD GetCharacterPlacementA
2776 * Purpose : The GetCharacterPlacementA function retrieves information about
2777 * a character string, such as character widths, caret positioning,
2778 * ordering within the string, and glyph rendering. The type of
2779 * information returned depends on the dwFlags parameter and is
2780 * based on the currently selected font in the given display context.
2781 * The function copies the information to the specified GCP_RESULTSA
2782 * structure or to one or more arrays specified by the structure.
2783 * Parameters: HDC hdc handle to device context
2784 * LPCSTR lpString pointer to string
2785 * int nCount number of characters in string
2786 * int nMaxExtent maximum extent for displayed string
2787 * LPGCP_RESULTSA *lpResults pointer to buffer for placement result
2788 * DWORD dwFlags placement flags
2789 * Variables :
2790 * Result :
2791 * Remark :
2792 * Status : UNTESTED STUB
2793 *
2794 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2795 *****************************************************************************/
2796
2797DWORD WIN32API GetCharacterPlacementA(HDC hdc,
2798 LPCSTR lpString,
2799 int nCount,
2800 int nMaxExtent,
2801 GCP_RESULTSA * lpResults,
2802 DWORD dwFlags)
2803{
2804 dprintf(("GDI32: GetCharacterPlacementA(%08xh,%s,%08xh,%08xh,%08xh,%08xh) not implemented.\n",
2805 hdc,
2806 lpString,
2807 nCount,
2808 nMaxExtent,
2809 lpResults,
2810 dwFlags));
2811
2812 return (0);
2813}
2814
2815
2816/*****************************************************************************
2817 * Name : DWORD GetCharacterPlacementW
2818 * Purpose : The GetCharacterPlacementW function retrieves information about
2819 * a character string, such as character widths, caret positioning,
2820 * ordering within the string, and glyph rendering. The type of
2821 * information returned depends on the dwFlags parameter and is
2822 * based on the currently selected font in the given display context.
2823 * The function copies the information to the specified GCP_RESULTSW
2824 * structure or to one or more arrays specified by the structure.
2825 * Parameters: HDC hdc handle to device context
2826 * LPCSTR lpString pointer to string
2827 * int nCount number of characters in string
2828 * int nMaxExtent maximum extent for displayed string
2829 * GCP_RESULTSW *lpResults pointer to buffer for placement result
2830 * DWORD dwFlags placement flags
2831 * Variables :
2832 * Result :
2833 * Remark :
2834 * Status : UNTESTED STUB
2835 *
2836 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2837 *****************************************************************************/
2838
2839DWORD WIN32API GetCharacterPlacementW(HDC hdc,
2840 LPCWSTR lpString,
2841 int nCount,
2842 int nMaxExtent,
2843 GCP_RESULTSW *lpResults,
2844 DWORD dwFlags)
2845{
2846 dprintf(("GDI32: GetCharacterPlacementW(%08xh,%s,%08xh,%08xh,%08xh,%08xh) not implemented.\n",
2847 hdc,
2848 lpString,
2849 nCount,
2850 nMaxExtent,
2851 lpResults,
2852 dwFlags));
2853
2854 return (0);
2855}
2856
2857
2858/*****************************************************************************
2859 * Name : DWORD GetDeviceGammaRamp
2860 * Purpose : The GetDeviceGammaRamp function retrieves the gamma ramp on
2861 * direct color display boards.
2862 * Parameters: HDC hdc handle to device context
2863 * LPVOID lpRamp Gamma ramp array
2864 * Variables :
2865 * Result :
2866 * Remark :
2867 * Status : UNTESTED STUB
2868 *
2869 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2870 *****************************************************************************/
2871
2872DWORD WIN32API GetDeviceGammaRamp(HDC hdc,
2873 LPVOID lpRamp)
2874{
2875 dprintf(("GDI32: GetDeviceGammaRamp(%08xh, %08xh) not implemented.\n",
2876 hdc,
2877 lpRamp));
2878
2879 return (FALSE);
2880}
2881
2882
2883/*****************************************************************************
2884 * Name : DWORD GetFontLanguageInfo
2885 * Purpose : The GetFontLanguageInfo function returns information about the
2886 * currently selected font for the specified display context.
2887 * Applications typically use this information and the
2888 * GetCharacterPlacement function to prepare a character string for display.
2889 * Parameters: HDC hdc handle to device context
2890 * Variables :
2891 * Result :
2892 * Remark :
2893 * Status : UNTESTED STUB
2894 *
2895 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2896 *****************************************************************************/
2897
2898DWORD WIN32API GetFontLanguageInfo(HDC hdc)
2899{
2900 dprintf(("GDI32: GetFontLanguageInfo(%08xh) not implemented.\n",
2901 hdc));
2902
2903 return (0);
2904}
2905
2906
2907/*****************************************************************************
2908 * Name : BOOL GetICMProfileA
2909 * Purpose : The GetICMProfileA function retrieves the name of the color
2910 * profile file for the device associated with the specified device
2911 * context.
2912 * Parameters: HDC hdc handle to device context
2913 * DWORD cbName
2914 * LPTSTR lpszFilename
2915 * Variables :
2916 * Result : TRUE / FALSE
2917 * Remark :
2918 * Status : UNTESTED STUB
2919 *
2920 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2921 *****************************************************************************/
2922
2923BOOL WIN32API GetICMProfileA(HDC hdc,
2924 DWORD cbName,
2925 LPTSTR lpszFilename)
2926{
2927 dprintf(("GDI32: GetICMProfileA(%08xh, %08xh, %08xh) not implemented.\n",
2928 hdc,
2929 cbName,
2930 lpszFilename));
2931
2932 return (FALSE);
2933}
2934
2935
2936/*****************************************************************************
2937 * Name : BOOL GetICMProfileW
2938 * Purpose : The GetICMProfileW function retrieves the name of the color
2939 * profile file for the device associated with the specified device
2940 * context.
2941 * Parameters: HDC hdc handle to device context
2942 * DWORD cbName
2943 * LPWSTR lpszFilename
2944 * Variables :
2945 * Result : TRUE / FALSE
2946 * Remark :
2947 * Status : UNTESTED STUB
2948 *
2949 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2950 *****************************************************************************/
2951
2952BOOL WIN32API GetICMProfileW(HDC hdc,
2953 DWORD cbName,
2954 LPTSTR lpszFilename)
2955{
2956 dprintf(("GDI32: GetICMProfileW(%08xh, %08xh, %08xh) not implemented.\n",
2957 hdc,
2958 cbName,
2959 lpszFilename));
2960
2961 return (FALSE);
2962}
2963
2964
2965/*****************************************************************************
2966 * Name : BOOL GetLogColorSpaceA
2967 * Purpose : The GetLogColorSpace function retrieves information about the
2968 * logical color space identified by the specified handle.
2969 * Parameters: HCOLORSPACE hColorSpace
2970 * LPLOGCOLORSPACE lpbuffer
2971 * DWORD nSize
2972 * Variables :
2973 * Result : TRUE / FALSE
2974 * Remark :
2975 * Status : UNTESTED STUB
2976 *
2977 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
2978 *****************************************************************************/
2979
2980#define LPLOGCOLORSPACE LPVOID
2981BOOL WIN32API GetLogColorSpaceA(HCOLORSPACE hColorSpace,
2982 LPLOGCOLORSPACE lpBuffer,
2983 DWORD nSize)
2984{
2985 dprintf(("GDI32: GetLogColorSpaceA(%08xh, %08xh, %08xh) not implemented.\n",
2986 hColorSpace,
2987 lpBuffer,
2988 nSize));
2989
2990 return (FALSE);
2991}
2992
2993
2994/*****************************************************************************
2995 * Name : BOOL GetLogColorSpaceW
2996 * Purpose : The GetLogColorSpace function retrieves information about the
2997 * logical color space identified by the specified handle.
2998 * Parameters: HCOLORSPACE hColorSpace
2999 * LPLOGCOLORSPACE lpbuffer
3000 * DWORD nSize
3001 * Variables :
3002 * Result : TRUE / FALSE
3003 * Remark :
3004 * Status : UNTESTED STUB
3005 *
3006 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3007 *****************************************************************************/
3008
3009BOOL WIN32API GetLogColorSpaceW(HCOLORSPACE hColorSpace,
3010 LPLOGCOLORSPACE lpBuffer,
3011 DWORD nSize)
3012{
3013 dprintf(("GDI32: GetLogColorSpaceW(%08xh, %08xh, %08xh) not implemented.\n",
3014 hColorSpace,
3015 lpBuffer,
3016 nSize));
3017
3018 return (FALSE);
3019}
3020
3021
3022/*****************************************************************************
3023 * Name : int GetMetaRgn
3024 * Purpose : The GetMetaRgn function retrieves the current metaregion for
3025 * the specified device context.
3026 * Parameters: HDC hdc handle of device context
3027 * HRGN hrgn handle of region
3028 * Variables :
3029 * Result : 0 / 1
3030 * Remark :
3031 * Status : UNTESTED STUB
3032 *
3033 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3034 *****************************************************************************/
3035
3036int WIN32API GetMetaRgn(HDC hdc,
3037 HRGN hrgn)
3038{
3039 dprintf(("GDI32: GetMetaRgn(%08xh, %08xh) not implemented.\n",
3040 hdc,
3041 hrgn));
3042
3043 return (0);
3044}
3045
3046
3047/*****************************************************************************
3048 * Name : int GetPixelFormat
3049 * Purpose : The GetPixelFormat function obtains the index of the specified
3050 * device context's currently selected pixel format.
3051 * Parameters: HDC hdc handle of device context
3052 * Variables :
3053 * Result : 0 / 1
3054 * Remark :
3055 * Status : UNTESTED STUB
3056 *
3057 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3058 *****************************************************************************/
3059
3060int WIN32API GetPixelFormat(HDC hdc)
3061{
3062 dprintf(("GDI32: GetPixelFormat(%08xh) not implemented.\n",
3063 hdc));
3064
3065 return (0);
3066}
3067
3068
3069/*****************************************************************************
3070 * Name : BOOL PolyTextOutA
3071 * Purpose : The PolyTextOutA function draws several strings using the font
3072 * and text colors currently selected in the specified device context.
3073 * Parameters: HDC hdc handle of device context
3074 * CONST POLYTEXT *pptxt address of array of structures that identify strings
3075 * int cStrings number of structures in array
3076 * Variables :
3077 * Result : TRUE / FALSE
3078 * Remark :
3079 * Status : UNTESTED STUB
3080 *
3081 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3082 *****************************************************************************/
3083
3084BOOL WIN32API PolyTextOutA(HDC hdc,
3085 POLYTEXTA *pptxt,
3086 int cStrings)
3087{
3088 dprintf(("GDI32: PolyTextOutA(%08xh, %08xh, %08xh) not implemented.\n",
3089 hdc,
3090 pptxt,
3091 cStrings));
3092
3093 return (FALSE);
3094}
3095
3096
3097#if 0
3098
3099The POLYTEXT structure describes how the PolyTextOut function should draw a string of text.
3100
3101Members
3102
3103x
3104
3105Specifies the horizontal reference point for the string. The string is aligned to this point using the current text-alignment mode.
3106
3107y
3108
3109Specifies the vertical reference point for the string. The string is aligned to this point using the current text-alignment mode.
3110
3111n
3112
3113Specifies the number of characters in the string.
3114
3115uiFlags
3116
3117Specifies whether the string is to be opaque or clipped and whether the string is accompanied by an array of character-width values. This member can be one or more of the following values:
3118
3119Value Meaning
3120ETO_OPAQUE The rectangles given for each string is to be opaqued with the current background color.
3121ETO_CLIPPED Each string is to be clipped to its given rectangle.
3122lpstr
3123
3124Points to a string of text to be drawn by the PolyTextOut function.
3125
3126rcl
3127
3128Specifies a rectangle structure that contains the dimensions of the opaquing or clipping rectangle. This member is ignored if neither of the ETO_OPAQUE nor the ETO_CLIPPED value is specified for the uiFlags member.
3129
3130pdx
3131
3132Specifies in an array the width value for each character in the string.
3133
3134See Also
3135
3136PolyTextOut
3137#endif
3138
3139
3140/*****************************************************************************
3141 * Name : BOOL PolyTextOutW
3142 * Purpose : The PolyTextOutW function draws several strings using the font
3143 * and text colors currently selected in the specified device context.
3144 * Parameters: HDC hdc handle of device context
3145 * CONST POLYTEXT *pptxt address of array of structures that identify strings
3146 * int cStrings number of structures in array
3147 * Variables :
3148 * Result : TRUE / FALSE
3149 * Remark :
3150 * Status : UNTESTED STUB
3151 *
3152 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3153 *****************************************************************************/
3154
3155BOOL WIN32API PolyTextOutW(HDC hdc,
3156 POLYTEXTW *pptxt,
3157 int cStrings)
3158{
3159 dprintf(("GDI32: PolyTextOutW(%08xh, %08xh, %08xh) not implemented.\n",
3160 hdc,
3161 pptxt,
3162 cStrings));
3163
3164 return (FALSE);
3165}
3166
3167
3168/*****************************************************************************
3169 * Name : BOOL SetDeviceGammaRamp
3170 * Purpose : The SetDeviceGammaRamp function sets the gamma ramp on direct
3171 * color display boards.
3172 * Parameters: HDC hdc handle of device context
3173 * LPVOID lpRamp
3174 * Variables :
3175 * Result : TRUE / FALSE
3176 * Remark :
3177 * Status : UNTESTED STUB
3178 *
3179 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3180 *****************************************************************************/
3181
3182BOOL WIN32API SetDeviceGammaRamp(HDC hdc,
3183 LPVOID lpRamp)
3184{
3185 dprintf(("GDI32: SetDeviceGammaRamp(%08xh, %08xh) not implemented.\n",
3186 hdc,
3187 lpRamp));
3188
3189 return (FALSE);
3190}
3191
3192
3193/*****************************************************************************
3194 * Name : BOOL SetICMProfileA
3195 * Purpose : The SetICMProfileA function sets the color profile for the
3196 * specified device context.
3197 * Parameters: HDC hdc handle of device context
3198 * LPTSTR lpFileName
3199 * Variables :
3200 * Result : TRUE / FALSE
3201 * Remark :
3202 * Status : UNTESTED STUB
3203 *
3204 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3205 *****************************************************************************/
3206
3207BOOL WIN32API SetICMProfileA(HDC hdc,
3208 LPTSTR lpFileName)
3209{
3210 dprintf(("GDI32: SetICMProfileA(%08xh, %s) not implemented.\n",
3211 hdc,
3212 lpFileName));
3213
3214 return (FALSE);
3215}
3216
3217
3218/*****************************************************************************
3219 * Name : BOOL SetICMProfileW
3220 * Purpose : The SetICMProfileW function sets the color profile for the
3221 * specified device context.
3222 * Parameters: HDC hdc handle of device context
3223 * LPTSTR lpFileName
3224 * Variables :
3225 * Result : TRUE / FALSE
3226 * Remark :
3227 * Status : UNTESTED STUB
3228 *
3229 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3230 *****************************************************************************/
3231
3232BOOL WIN32API SetICMProfileW(HDC hdc,
3233 LPWSTR lpFileName)
3234{
3235 dprintf(("GDI32: SetICMProfileW(%08xh, %s) not implemented.\n",
3236 hdc,
3237 lpFileName));
3238
3239 return (FALSE);
3240}
3241
3242
3243/*****************************************************************************
3244 * Name : int SetMetaRgn
3245 * Purpose : The SetMetaRgn function intersects the current clipping region
3246 * for the specified device context with the current metaregion
3247 * and saves the combined region as the new metaregion for the
3248 * specified device context. The clipping region is reset to a null region.
3249 * Parameters: HDC hdc handle of device context
3250 * Variables :
3251 * Result : TRUE / FALSE
3252 * Remark :
3253 * Status : UNTESTED STUB
3254 *
3255 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3256 *****************************************************************************/
3257
3258BOOL WIN32API SetMetaRgn(HDC hdc)
3259{
3260 dprintf(("GDI32: SetMetaRgn(%08xh) not implemented.\n",
3261 hdc));
3262
3263 return (NULLREGION);
3264}
3265
3266
3267/*****************************************************************************
3268 * Name : BOOL UpdateICMRegKeyA
3269 * Purpose : The UpdateICMRegKeyA function installs, removes, or queries
3270 * registry entries that identify ICC color profiles or color-matching
3271 * DLLs. The function carries out the action specified by the nCommand
3272 * parameter.
3273 * Parameters: DWORD dwReserved
3274 * DWORD CMID
3275 * LPTSTR lpszFileName
3276 * UINT nCommand
3277 * Variables :
3278 * Result : TRUE / FALSE
3279 * Remark :
3280 * Status : UNTESTED STUB
3281 *
3282 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3283 *****************************************************************************/
3284
3285BOOL WIN32API UpdateICMRegKeyA(DWORD dwReserved,
3286 DWORD CMID,
3287 LPTSTR lpszFileName,
3288 UINT nCommand)
3289{
3290 dprintf(("GDI32: UpdateICMRegKeyA(%08xh, %08xh, %08xh, %08xh) not implemented.\n",
3291 dwReserved,
3292 CMID,
3293 lpszFileName,
3294 nCommand));
3295
3296 return (FALSE);
3297}
3298
3299
3300/*****************************************************************************
3301 * Name : BOOL UpdateICMRegKeyW
3302 * Purpose : The UpdateICMRegKeyW function installs, removes, or queries
3303 * registry entries that identify ICC color profiles or color-matching
3304 * DLLs. The function carries out the action specified by the nCommand
3305 * parameter.
3306 * Parameters: DWORD dwReserved
3307 * DWORD CMID
3308 * LPWSTR lpszFileName
3309 * UINT nCommand
3310 * Variables :
3311 * Result : TRUE / FALSE
3312 * Remark :
3313 * Status : UNTESTED STUB
3314 *
3315 * Author : Patrick Haller [Mon, 1998/06/15 08:00]
3316 *****************************************************************************/
3317
3318BOOL WIN32API UpdateICMRegKeyW(DWORD dwReserved,
3319 DWORD CMID,
3320 LPWSTR lpszFileName,
3321 UINT nCommand)
3322{
3323 dprintf(("GDI32: UpdateICMRegKeyW(%08xh, %08xh, %08xh, %08xh) not implemented.\n",
3324 dwReserved,
3325 CMID,
3326 lpszFileName,
3327 nCommand));
3328
3329 return (FALSE);
3330}
3331
3332
Note: See TracBrowser for help on using the repository browser.