Get rid of a W->A crosscall (ResetDCA->ResetDCW).
[wine] / include / wine / wingdi16.h
1 /*
2  * Copyright (C) the Wine project
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #ifndef __WINE_WINE_WINGDI16_H
20 #define __WINE_WINE_WINGDI16_H
21
22 #include <stdarg.h>
23 #include <windef.h>
24 #include <winbase.h>
25 #include <wingdi.h>
26 #include <wine/winbase16.h>
27
28 #include <pshpack1.h>
29
30 typedef HANDLE16 HPQ16;
31 typedef HANDLE16 HPJOB16;
32
33 typedef struct
34 {
35     WORD   wFirst;
36     WORD   wSecond;
37     INT16  iKernAmount;
38 } KERNINGPAIR16, *LPKERNINGPAIR16;
39
40 typedef struct
41 {
42     INT16  bmType;
43     INT16  bmWidth;
44     INT16  bmHeight;
45     INT16  bmWidthBytes;
46     BYTE   bmPlanes;
47     BYTE   bmBitsPixel;
48     SEGPTR bmBits;
49 } BITMAP16, *LPBITMAP16;
50
51 typedef struct
52 {
53     UINT16     lbStyle;
54     COLORREF   lbColor;
55     INT16      lbHatch;
56 } LOGBRUSH16, *LPLOGBRUSH16;
57
58 typedef struct
59 {
60     INT16  lfHeight;
61     INT16  lfWidth;
62     INT16  lfEscapement;
63     INT16  lfOrientation;
64     INT16  lfWeight;
65     BYTE   lfItalic;
66     BYTE   lfUnderline;
67     BYTE   lfStrikeOut;
68     BYTE   lfCharSet;
69     BYTE   lfOutPrecision;
70     BYTE   lfClipPrecision;
71     BYTE   lfQuality;
72     BYTE   lfPitchAndFamily;
73     CHAR   lfFaceName[LF_FACESIZE];
74 } LOGFONT16, *LPLOGFONT16;
75
76 typedef struct
77 {
78   LOGFONT16  elfLogFont;
79   BYTE       elfFullName[LF_FULLFACESIZE];
80   BYTE       elfStyle[LF_FACESIZE];
81 } ENUMLOGFONT16, *LPENUMLOGFONT16;
82
83 typedef struct
84 {
85   LOGFONT16  elfLogFont;
86   BYTE       elfFullName[LF_FULLFACESIZE];
87   BYTE       elfStyle[LF_FACESIZE];
88   BYTE       elfScript[LF_FACESIZE];
89 } ENUMLOGFONTEX16, *LPENUMLOGFONTEX16;
90
91 typedef struct
92 {
93     INT16  txfHeight;
94     INT16  txfWidth;
95     INT16  txfEscapement;
96     INT16  txfOrientation;
97     INT16  txfWeight;
98     CHAR   txfItalic;
99     CHAR   txfUnderline;
100     CHAR   txfStrikeOut;
101     CHAR   txfOutPrecision;
102     CHAR   txfClipPrecision;
103     INT16  txfAccelerator;
104     INT16  txfOverhang;
105 } TEXTXFORM16, *LPTEXTXFORM16;
106
107 typedef struct
108 {
109     INT16 dfType;
110     INT16 dfPoints;
111     INT16 dfVertRes;
112     INT16 dfHorizRes;
113     INT16 dfAscent;
114     INT16 dfInternalLeading;
115     INT16 dfExternalLeading;
116     CHAR  dfItalic;
117     CHAR  dfUnderline;
118     CHAR  dfStrikeOut;
119     INT16 dfWeight;
120     BYTE  dfCharSet;
121     INT16 dfPixWidth;
122     INT16 dfPixHeight;
123     CHAR  dfPitchAndFamily;
124     INT16 dfAvgWidth;
125     INT16 dfMaxWidth;
126     CHAR  dfFirstChar;
127     CHAR  dfLastChar;
128     CHAR  dfDefaultChar;
129     CHAR  dfBreakChar;
130     INT16 dfWidthBytes;
131     LONG  dfDevice;
132     LONG  dfFace;
133     LONG  dfBitsPointer;
134     LONG  dfBitsOffset;
135     CHAR  dfReserved;
136     /* Fields, introduced for Windows 3.x fonts */
137     LONG  dfFlags;
138     INT16 dfAspace;
139     INT16 dfBspace;
140     INT16 dfCspace;
141     LONG  dfColorPointer;
142     LONG  dfReserved1[4];
143 } FONTINFO16, *LPFONTINFO16;
144
145 typedef struct {
146     WORD   dfVersion;
147     DWORD  dfSize;
148     CHAR   dfCopyright[60];
149     WORD   dfType;
150     WORD   dfPoints;
151     WORD   dfVertRes;
152     WORD   dfHorizRes;
153     WORD   dfAscent;
154     WORD   dfInternalLeading;
155     WORD   dfExternalLeading;
156     BYTE   dfItalic;
157     BYTE   dfUnderline;
158     BYTE   dfStrikeOut;
159     WORD   dfWeight;
160     BYTE   dfCharSet;
161     WORD   dfPixWidth;
162     WORD   dfPixHeight;
163     BYTE   dfPitchAndFamily;
164     WORD   dfAvgWidth;
165     WORD   dfMaxWidth;
166     BYTE   dfFirstChar;
167     BYTE   dfLastChar;
168     BYTE   dfDefaultChar;
169     BYTE   dfBreakChar;
170     WORD   dfWidthBytes;
171     DWORD  dfDevice;
172     DWORD  dfFace;
173     DWORD  dfReserved;
174     CHAR   szDeviceName[60]; /* FIXME: length unknown */
175     CHAR   szFaceName[60];   /* dito */
176 } FONTDIR16, *LPFONTDIR16;
177
178 typedef struct
179 {
180     INT16     tmHeight;
181     INT16     tmAscent;
182     INT16     tmDescent;
183     INT16     tmInternalLeading;
184     INT16     tmExternalLeading;
185     INT16     tmAveCharWidth;
186     INT16     tmMaxCharWidth;
187     INT16     tmWeight;
188     BYTE      tmItalic;
189     BYTE      tmUnderlined;
190     BYTE      tmStruckOut;
191     BYTE      tmFirstChar;
192     BYTE      tmLastChar;
193     BYTE      tmDefaultChar;
194     BYTE      tmBreakChar;
195     BYTE      tmPitchAndFamily;
196     BYTE      tmCharSet;
197     INT16     tmOverhang;
198     INT16     tmDigitizedAspectX;
199     INT16     tmDigitizedAspectY;
200 } TEXTMETRIC16, *LPTEXTMETRIC16;
201
202 typedef struct _OUTLINETEXTMETRIC16
203 {
204     UINT16          otmSize;
205     TEXTMETRIC16    otmTextMetrics;
206     BYTE            otmFiller;
207     PANOSE          otmPanoseNumber;
208     UINT16          otmfsSelection;
209     UINT16          otmfsType;
210     INT16           otmsCharSlopeRise;
211     INT16           otmsCharSlopeRun;
212     INT16           otmItalicAngle;
213     UINT16          otmEMSquare;
214     INT16           otmAscent;
215     INT16           otmDescent;
216     UINT16          otmLineGap;
217     UINT16          otmsCapEmHeight;
218     UINT16          otmsXHeight;
219     RECT16          otmrcFontBox;
220     INT16           otmMacAscent;
221     INT16           otmMacDescent;
222     UINT16          otmMacLineGap;
223     UINT16          otmusMinimumPPEM;
224     POINT16         otmptSubscriptSize;
225     POINT16         otmptSubscriptOffset;
226     POINT16         otmptSuperscriptSize;
227     POINT16         otmptSuperscriptOffset;
228     UINT16          otmsStrikeoutSize;
229     INT16           otmsStrikeoutPosition;
230     INT16           otmsUnderscoreSize;
231     INT           otmsUnderscorePosition;
232     LPSTR           otmpFamilyName;
233     LPSTR           otmpFaceName;
234     LPSTR           otmpStyleName;
235     LPSTR           otmpFullName;
236 } OUTLINETEXTMETRIC16,*LPOUTLINETEXTMETRIC16;
237
238 typedef struct
239 {
240     INT16     tmHeight;
241     INT16     tmAscent;
242     INT16     tmDescent;
243     INT16     tmInternalLeading;
244     INT16     tmExternalLeading;
245     INT16     tmAveCharWidth;
246     INT16     tmMaxCharWidth;
247     INT16     tmWeight;
248     BYTE      tmItalic;
249     BYTE      tmUnderlined;
250     BYTE      tmStruckOut;
251     BYTE      tmFirstChar;
252     BYTE      tmLastChar;
253     BYTE      tmDefaultChar;
254     BYTE      tmBreakChar;
255     BYTE      tmPitchAndFamily;
256     BYTE      tmCharSet;
257     INT16     tmOverhang;
258     INT16     tmDigitizedAspectX;
259     INT16     tmDigitizedAspectY;
260     DWORD     ntmFlags;
261     UINT16    ntmSizeEM;
262     UINT16    ntmCellHeight;
263     UINT16    ntmAvgWidth;
264 } NEWTEXTMETRIC16,*LPNEWTEXTMETRIC16;
265
266 typedef struct
267 {
268     NEWTEXTMETRIC16     ntmTm;
269     FONTSIGNATURE       ntmFontSig;
270 } NEWTEXTMETRICEX16,*LPNEWTEXTMETRICEX16;
271
272 typedef BOOL16 (CALLBACK *DCHOOKPROC)(HDC16,WORD,DWORD,LPARAM);
273 typedef INT16 (CALLBACK *FONTENUMPROC16)(SEGPTR,SEGPTR,UINT16,LPARAM);
274 typedef VOID  (CALLBACK *LINEDDAPROC16)(INT16,INT16,LPARAM);
275 typedef INT16 (CALLBACK *GOBJENUMPROC16)(SEGPTR,LPARAM);
276
277
278 typedef struct
279 {
280     UINT16      gmBlackBoxX;
281     UINT16      gmBlackBoxY;
282     POINT16     gmptGlyphOrigin;
283     INT16       gmCellIncX;
284     INT16       gmCellIncY;
285 } GLYPHMETRICS16, *LPGLYPHMETRICS16;
286
287 typedef struct
288 {
289     INT16   abcA;
290     UINT16  abcB;
291     INT16   abcC;
292 } ABC16, *LPABC16;
293
294 typedef struct
295 {
296     UINT16   lopnStyle;
297     POINT16  lopnWidth;
298     COLORREF lopnColor;
299 } LOGPEN16, *LPLOGPEN16;
300
301 typedef struct
302 {
303     HGDIOBJ16 objectHandle[1];
304 } HANDLETABLE16, *LPHANDLETABLE16;
305
306 typedef struct
307 {
308     INT16        mm;
309     INT16        xExt;
310     INT16        yExt;
311     HMETAFILE16  hMF;
312 } METAFILEPICT16, *LPMETAFILEPICT16;
313
314 typedef struct {
315     EMR    emr;
316     RECTL  rclBounds;
317     DWORD  cpts;
318     POINT16 apts[1];
319 } EMRPOLYLINE16,     *PEMRPOLYLINE16,
320   EMRPOLYBEZIER16,   *PEMRPOLYBEZIER16,
321   EMRPOLYGON16,      *PEMRPOLYGON16,
322   EMRPOLYBEZIERTO16, *PEMRPOLYBEZIERTO16,
323   EMRPOLYLINETO16,   *PEMRPOLYLINETO16;
324
325 typedef struct {
326     EMR    emr;
327     RECTL  rclBounds;
328     DWORD  cpts;
329     POINT16 apts[1];
330     BYTE   abTypes[1];
331 } EMRPOLYDRAW16, *PEMRPOLYDRAW16;
332
333 typedef struct {
334     EMR     emr;
335     RECTL   rclBounds;
336     DWORD   nPolys;
337     DWORD   cpts;
338     DWORD   aPolyCounts[1];
339     POINT16 apts[1];
340 } EMRPOLYPOLYLINE16, *PEMRPOLYPOLYLINE16,
341   EMRPOLYPOLYGON16,  *PEMRPOLYPOLYGON16;
342
343 typedef INT16 (CALLBACK *MFENUMPROC16)(HDC16,HANDLETABLE16*,METARECORD*,
344                                        INT16,LPARAM);
345 typedef struct
346 {
347     INT16    cbSize;
348     SEGPTR   lpszDocName;
349     SEGPTR   lpszOutput;
350     SEGPTR   lpszDatatype;
351     DWORD    fwType;
352 } DOCINFO16, *LPDOCINFO16;
353
354 typedef BOOL16 (CALLBACK *ABORTPROC16)(HDC16, INT16);
355
356 #define INT_PD_DEFAULT_DEVMODE  1
357 #define INT_PD_DEFAULT_MODEL    2
358
359 /* Escape: CLIP_TO_PATH modes */
360 #define CLIP_SAVE 0
361 #define CLIP_RESTORE 1
362 #define CLIP_INCLUSIVE 2
363 #define CLIP_EXCLUSIVE 3
364
365 /* Escape: END_PATH info */
366 struct PATH_INFO {
367     short RenderMode;
368     BYTE FillMode;
369     BYTE BkMode;
370     LOGPEN16 Pen;
371     LOGBRUSH16 Brush;
372     DWORD BkColor;
373 };
374
375 /* RenderMode */
376 #define RENDERMODE_NO_DISPLAY 0
377 #define RENDERMODE_OPEN 1
378 #define RENDERMODE_CLOSED 2
379
380 #include <poppack.h>
381
382
383 INT16       WINAPI AbortDoc16(HDC16);
384 BOOL16      WINAPI AbortPath16(HDC16);
385 INT16       WINAPI AddFontResource16(LPCSTR);
386 void        WINAPI AnimatePalette16(HPALETTE16,UINT16,UINT16,const PALETTEENTRY*);
387 BOOL16      WINAPI Arc16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
388 BOOL16      WINAPI BeginPath16(HDC16);
389 BOOL16      WINAPI BitBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,INT16,DWORD);
390 BOOL16      WINAPI Chord16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
391 BOOL16      WINAPI CloseFigure16(HDC16);
392 INT16       WINAPI CloseJob16(HPJOB16);
393 HMETAFILE16 WINAPI CloseMetaFile16(HDC16);
394 INT16       WINAPI CombineRgn16(HRGN16,HRGN16,HRGN16,INT16);
395 HMETAFILE16 WINAPI CopyMetaFile16(HMETAFILE16,LPCSTR);
396 HBITMAP16   WINAPI CreateBitmap16(INT16,INT16,UINT16,UINT16,LPCVOID);
397 HBITMAP16   WINAPI CreateBitmapIndirect16(const BITMAP16*);
398 HBRUSH16    WINAPI CreateBrushIndirect16(const LOGBRUSH16*);
399 HBITMAP16   WINAPI CreateCompatibleBitmap16(HDC16,INT16,INT16);
400 HDC16       WINAPI CreateCompatibleDC16(HDC16);
401 HDC16       WINAPI CreateDC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
402 HBITMAP16   WINAPI CreateDIBitmap16(HDC16,const BITMAPINFOHEADER*,DWORD,
403                                     LPCVOID,const BITMAPINFO*,UINT16);
404 HBRUSH16    WINAPI CreateDIBPatternBrush16(HGLOBAL16,UINT16);
405 HBITMAP16   WINAPI CreateDIBSection16 (HDC16, BITMAPINFO *, UINT16,
406                                        SEGPTR *, HANDLE, DWORD offset);
407 HBITMAP16   WINAPI CreateDiscardableBitmap16(HDC16,INT16,INT16);
408 HRGN16      WINAPI CreateEllipticRgn16(INT16,INT16,INT16,INT16);
409 HRGN16      WINAPI CreateEllipticRgnIndirect16(const RECT16 *);
410 HFONT16     WINAPI CreateFont16(INT16,INT16,INT16,INT16,INT16,BYTE,BYTE,BYTE,
411                                 BYTE,BYTE,BYTE,BYTE,BYTE,LPCSTR);
412 HFONT16     WINAPI CreateFontIndirect16(const LOGFONT16*);
413 HPALETTE16  WINAPI CreateHalftonePalette16(HDC16);
414 HBRUSH16    WINAPI CreateHatchBrush16(INT16,COLORREF);
415 HDC16       WINAPI CreateIC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
416 HDC16       WINAPI CreateMetaFile16(LPCSTR);
417 HPALETTE16  WINAPI CreatePalette16(const LOGPALETTE*);
418 HBRUSH16    WINAPI CreatePatternBrush16(HBITMAP16);
419 HPEN16      WINAPI CreatePen16(INT16,INT16,COLORREF);
420 HPEN16      WINAPI CreatePenIndirect16(const LOGPEN16*);
421 HRGN16      WINAPI CreatePolyPolygonRgn16(const POINT16*,const INT16*,INT16,INT16);
422 HRGN16      WINAPI CreatePolygonRgn16(const POINT16*,INT16,INT16);
423 HRGN16      WINAPI CreateRectRgn16(INT16,INT16,INT16,INT16);
424 HRGN16      WINAPI CreateRectRgnIndirect16(const RECT16*);
425 HRGN16      WINAPI CreateRoundRectRgn16(INT16,INT16,INT16,INT16,INT16,INT16);
426 BOOL16      WINAPI CreateScalableFontResource16(UINT16,LPCSTR,LPCSTR,LPCSTR);
427 HBRUSH16    WINAPI CreateSolidBrush16(COLORREF);
428 VOID        WINAPI Death16(HDC16);
429 BOOL16      WINAPI DeleteDC16(HDC16);
430 INT16       WINAPI DeleteJob16(HPJOB16,INT16);
431 BOOL16      WINAPI DeleteMetaFile16(HMETAFILE16);
432 BOOL16      WINAPI DeleteObject16(HGDIOBJ16);
433 BOOL16      WINAPI DPtoLP16(HDC16,LPPOINT16,INT16);
434 DWORD       WINAPI DrvGetPrinterData16(LPSTR,LPSTR,LPDWORD,LPBYTE,int cbData,LPDWORD);
435 DWORD       WINAPI DrvSetPrinterData16(LPSTR,LPSTR,DWORD,LPBYTE,DWORD);
436 BOOL16      WINAPI Ellipse16(HDC16,INT16,INT16,INT16,INT16);
437 INT16       WINAPI EndDoc16(HDC16);
438 INT16       WINAPI EndPage16(HDC16);
439 BOOL16      WINAPI EndPath16(HDC16);
440 INT16       WINAPI EndSpoolPage16(HPJOB16);
441 INT16       WINAPI EnumFontFamilies16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
442 INT16       WINAPI EnumFontFamiliesEx16(HDC16,LPLOGFONT16,FONTENUMPROC16,LPARAM,DWORD);
443 INT16       WINAPI EnumFonts16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
444 BOOL16      WINAPI EnumMetaFile16(HDC16,HMETAFILE16,MFENUMPROC16,LPARAM);
445 INT16       WINAPI EnumObjects16(HDC16,INT16,GOBJENUMPROC16,LPARAM);
446 BOOL16      WINAPI EqualRgn16(HRGN16,HRGN16);
447 INT16       WINAPI Escape16(HDC16,INT16,INT16,SEGPTR,LPVOID);
448 INT16       WINAPI ExcludeClipRect16(HDC16,INT16,INT16,INT16,INT16);
449 INT16       WINAPI ExcludeVisRect16(HDC16,INT16,INT16,INT16,INT16);
450 HPEN16      WINAPI ExtCreatePen16(DWORD,DWORD,const LOGBRUSH16*,DWORD,const DWORD*);
451 BOOL16      WINAPI ExtFloodFill16(HDC16,INT16,INT16,COLORREF,UINT16);
452 BOOL16      WINAPI ExtTextOut16(HDC16,INT16,INT16,UINT16,const RECT16*,
453                                 LPCSTR,UINT16,const INT16*);
454 BOOL16      WINAPI FastWindowFrame16(HDC16,const RECT16*,INT16,INT16,DWORD);
455 BOOL16      WINAPI FillPath16(HDC16);
456 BOOL16      WINAPI FillRgn16(HDC16,HRGN16,HBRUSH16);
457 BOOL16      WINAPI FlattenPath16(HDC16);
458 BOOL16      WINAPI FloodFill16(HDC16,INT16,INT16,COLORREF);
459 BOOL16      WINAPI FrameRgn16(HDC16,HRGN16,HBRUSH16,INT16,INT16);
460 UINT16      WINAPI GDIRealizePalette16(HDC16);
461 DWORD       WINAPI GdiSeeGdiDo16(WORD,WORD,WORD,WORD);
462 HPALETTE16  WINAPI GDISelectPalette16(HDC16,HPALETTE16,WORD);
463 INT16       WINAPI GetArcDirection16(HDC16);
464 BOOL16      WINAPI GetAspectRatioFilterEx16(HDC16,LPSIZE16);
465 LONG        WINAPI GetBitmapBits16(HBITMAP16,LONG,LPVOID);
466 DWORD       WINAPI GetBitmapDimension16(HBITMAP16);
467 BOOL16      WINAPI GetBitmapDimensionEx16(HBITMAP16,LPSIZE16);
468 DWORD       WINAPI GetBrushOrg16(HDC16);
469 BOOL16      WINAPI GetBrushOrgEx16(HDC16,LPPOINT16);
470 COLORREF    WINAPI GetBkColor16(HDC16);
471 INT16       WINAPI GetBkMode16(HDC16);
472 UINT16      WINAPI GetBoundsRect16(HDC16,LPRECT16,UINT16);
473 BOOL16      WINAPI GetCharABCWidths16(HDC16,UINT16,UINT16,LPABC16);
474 BOOL16      WINAPI GetCharWidth16(HDC16,UINT16,UINT16,LPINT16);
475 INT16       WINAPI GetClipBox16(HDC16,LPRECT16);
476 HRGN16      WINAPI GetClipRgn16(HDC16);
477 HFONT16     WINAPI GetCurLogFont16(HDC16);
478 DWORD       WINAPI GetCurrentPosition16(HDC16);
479 BOOL16      WINAPI GetCurrentPositionEx16(HDC16,LPPOINT16);
480 DWORD       WINAPI GetDCHook16(HDC16,FARPROC16*);
481 DWORD       WINAPI GetDCOrg16(HDC16);
482 HDC16       WINAPI GetDCState16(HDC16);
483 INT16       WINAPI GetDeviceCaps16(HDC16,INT16);
484 UINT16      WINAPI GetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
485 INT16       WINAPI GetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPVOID,LPBITMAPINFO,UINT16);
486 INT16       WINAPI GetEnvironment16(LPCSTR,LPDEVMODEA,UINT16);
487 DWORD       WINAPI GetFontData16(HDC16,DWORD,DWORD,LPVOID,DWORD);
488 DWORD       WINAPI GetFontLanguageInfo16(HDC16);
489 DWORD       WINAPI GetGlyphOutline16(HDC16,UINT16,UINT16,LPGLYPHMETRICS16,DWORD,LPVOID,const MAT2*);
490 INT16       WINAPI GetKerningPairs16(HDC16,INT16,LPKERNINGPAIR16);
491 INT16       WINAPI GetMapMode16(HDC16);
492 HMETAFILE16 WINAPI GetMetaFile16(LPCSTR);
493 HGLOBAL16   WINAPI GetMetaFileBits16(HMETAFILE16);
494 DWORD       WINAPI GetNearestColor16(HDC16,DWORD);
495 UINT16      WINAPI GetNearestPaletteIndex16(HPALETTE16,COLORREF);
496 INT16       WINAPI GetObject16(HANDLE16,INT16,LPVOID);
497 UINT16      WINAPI GetOutlineTextMetrics16(HDC16,UINT16,LPOUTLINETEXTMETRIC16);
498 UINT16      WINAPI GetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY);
499 INT16       WINAPI GetPath16(HDC16,LPPOINT16,LPBYTE,INT16);
500 COLORREF    WINAPI GetPixel16(HDC16,INT16,INT16);
501 INT16       WINAPI GetPolyFillMode16(HDC16);
502 BOOL16      WINAPI GetRasterizerCaps16(LPRASTERIZER_STATUS,UINT16);
503 DWORD       WINAPI GetRegionData16(HRGN16,DWORD,LPRGNDATA);
504 INT16       WINAPI GetRelAbs16(HDC16);
505 INT16       WINAPI GetRgnBox16(HRGN16,LPRECT16);
506 INT16       WINAPI GetROP216(HDC16);
507 DWORD       WINAPI GetSpoolJob16(int,LONG);
508 HGDIOBJ16   WINAPI GetStockObject16(INT16);
509 INT16       WINAPI GetStretchBltMode16(HDC16);
510 UINT16      WINAPI GetSystemPaletteEntries16(HDC16,UINT16,UINT16,LPPALETTEENTRY);
511 UINT16      WINAPI GetSystemPaletteUse16(HDC16);
512 UINT16      WINAPI GetTextAlign16(HDC16);
513 INT16       WINAPI GetTextCharacterExtra16(HDC16);
514 UINT16      WINAPI GetTextCharset16(HDC16);
515 COLORREF    WINAPI GetTextColor16(HDC16);
516 DWORD       WINAPI GetTextExtent16(HDC16,LPCSTR,INT16);
517 BOOL16      WINAPI GetTextExtentPoint16(HDC16,LPCSTR,INT16,LPSIZE16);
518 INT16       WINAPI GetTextFace16(HDC16,INT16,LPSTR);
519 BOOL16      WINAPI GetTextMetrics16(HDC16,LPTEXTMETRIC16);
520 DWORD       WINAPI GetViewportExt16(HDC16);
521 BOOL16      WINAPI GetViewportExtEx16(HDC16,LPSIZE16);
522 BOOL16      WINAPI GetViewportOrgEx16(HDC16,LPPOINT16);
523 DWORD       WINAPI GetViewportOrg16(HDC16);
524 DWORD       WINAPI GetWindowExt16(HDC16);
525 DWORD       WINAPI GetWindowOrg16(HDC16);
526 BOOL16      WINAPI GetWindowExtEx16(HDC16,LPSIZE16);
527 BOOL16      WINAPI GetWindowOrgEx16(HDC16,LPPOINT16);
528 HRGN16      WINAPI InquireVisRgn16(HDC16);
529 INT16       WINAPI IntersectClipRect16(HDC16,INT16,INT16,INT16,INT16);
530 INT16       WINAPI IntersectVisRect16(HDC16,INT16,INT16,INT16,INT16);
531 BOOL16      WINAPI InvertRgn16(HDC16,HRGN16);
532 BOOL16      WINAPI IsDCCurrentPalette16(HDC16);
533 BOOL16      WINAPI IsGDIObject16(HGDIOBJ16);
534 BOOL16      WINAPI IsValidMetaFile16(HMETAFILE16);
535 VOID        WINAPI LineDDA16(INT16,INT16,INT16,INT16,LINEDDAPROC16,LPARAM);
536 BOOL16      WINAPI LineTo16(HDC16,INT16,INT16);
537 BOOL16      WINAPI LPtoDP16(HDC16,LPPOINT16,INT16);
538 DWORD       WINAPI MoveTo16(HDC16,INT16,INT16);
539 BOOL16      WINAPI MoveToEx16(HDC16,INT16,INT16,LPPOINT16);
540 INT16       WINAPI MulDiv16(INT16,INT16,INT16);
541 INT16       WINAPI OffsetClipRgn16(HDC16,INT16,INT16);
542 INT16       WINAPI OffsetRgn16(HRGN16,INT16,INT16);
543 DWORD       WINAPI OffsetViewportOrg16(HDC16,INT16,INT16);
544 BOOL16      WINAPI OffsetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
545 INT16       WINAPI OffsetVisRgn16(HDC16,INT16,INT16);
546 DWORD       WINAPI OffsetWindowOrg16(HDC16,INT16,INT16);
547 BOOL16      WINAPI OffsetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
548 HANDLE16    WINAPI OpenJob16(LPCSTR,LPCSTR,HDC16);
549 BOOL16      WINAPI PaintRgn16(HDC16,HRGN16);
550 BOOL16      WINAPI PatBlt16(HDC16,INT16,INT16,INT16,INT16,DWORD);
551 HRGN16      WINAPI PathToRegion16(HDC16);
552 BOOL16      WINAPI Pie16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
553 BOOL16      WINAPI PlayMetaFile16(HDC16,HMETAFILE16);
554 VOID        WINAPI PlayMetaFileRecord16(HDC16,LPHANDLETABLE16,LPMETARECORD,UINT16);
555 BOOL16      WINAPI PolyBezier16(HDC16,const POINT16*,INT16);
556 BOOL16      WINAPI PolyBezierTo16(HDC16,const POINT16*,INT16);
557 BOOL16      WINAPI PolyPolygon16(HDC16,const POINT16*,const INT16*,UINT16);
558 BOOL16      WINAPI Polygon16(HDC16,const POINT16*,INT16);
559 BOOL16      WINAPI Polyline16(HDC16,const POINT16*,INT16);
560 BOOL16      WINAPI PtInRegion16(HRGN16,INT16,INT16);
561 BOOL16      WINAPI PtVisible16(HDC16,INT16,INT16);
562 BOOL16      WINAPI QueryAbort16(HDC16,INT16);
563 UINT16      WINAPI RealizeDefaultPalette16(HDC16);
564 BOOL16      WINAPI Rectangle16(HDC16,INT16,INT16,INT16,INT16);
565 BOOL16      WINAPI RectInRegion16(HRGN16,const RECT16 *);
566 BOOL16      WINAPI RectVisible16(HDC16,const RECT16*);
567 BOOL16      WINAPI RemoveFontResource16(LPCSTR);
568 HDC16       WINAPI ResetDC16(HDC16,const DEVMODEA *);
569 BOOL16      WINAPI ResizePalette16(HPALETTE16,UINT16);
570 BOOL16      WINAPI RestoreDC16(HDC16,INT16);
571 INT16       WINAPI RestoreVisRgn16(HDC16);
572 VOID        WINAPI Resurrection16(HDC16,WORD,WORD,WORD,WORD,WORD,WORD);
573 BOOL16      WINAPI RoundRect16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16);
574 INT16       WINAPI SaveDC16(HDC16);
575 HRGN16      WINAPI SaveVisRgn16(HDC16);
576 DWORD       WINAPI ScaleViewportExt16(HDC16,INT16,INT16,INT16,INT16);
577 BOOL16      WINAPI ScaleViewportExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
578 DWORD       WINAPI ScaleWindowExt16(HDC16,INT16,INT16,INT16,INT16);
579 BOOL16      WINAPI ScaleWindowExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
580 BOOL16      WINAPI SelectClipPath16(HDC16,INT16);
581 INT16       WINAPI SelectClipRgn16(HDC16,HRGN16);
582 HGDIOBJ16   WINAPI SelectObject16(HDC16,HGDIOBJ16);
583 INT16       WINAPI SelectVisRgn16(HDC16,HRGN16);
584 INT16       WINAPI SetAbortProc16(HDC16,ABORTPROC16);
585 INT16       WINAPI SetArcDirection16(HDC16,INT16);
586 LONG        WINAPI SetBitmapBits16(HBITMAP16,LONG,LPCVOID);
587 DWORD       WINAPI SetBitmapDimension16(HBITMAP16,INT16,INT16);
588 BOOL16      WINAPI SetBitmapDimensionEx16(HBITMAP16,INT16,INT16,LPSIZE16);
589 COLORREF    WINAPI SetBkColor16(HDC16,COLORREF);
590 INT16       WINAPI SetBkMode16(HDC16,INT16);
591 UINT16      WINAPI SetBoundsRect16(HDC16,const RECT16*,UINT16);
592 DWORD       WINAPI SetBrushOrg16(HDC16,INT16,INT16);
593 BOOL        WINAPI SetDCHook(HDC,DCHOOKPROC,DWORD);
594 BOOL16      WINAPI SetDCHook16(HDC16,FARPROC16,DWORD);
595 DWORD       WINAPI SetDCOrg16(HDC16,INT16,INT16);
596 VOID        WINAPI SetDCState16(HDC16,HDC16);
597 UINT16      WINAPI SetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
598 INT16       WINAPI SetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
599 INT16       WINAPI SetDIBitsToDevice16(HDC16,INT16,INT16,INT16,INT16,INT16,
600                          INT16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
601 INT16       WINAPI SetEnvironment16(LPCSTR,LPDEVMODEA,UINT16);
602 WORD        WINAPI SetHookFlags16(HDC16,WORD);
603 INT16       WINAPI SetMapMode16(HDC16,INT16);
604 DWORD       WINAPI SetMapperFlags16(HDC16,DWORD);
605 HMETAFILE16 WINAPI SetMetaFileBits16(HGLOBAL16);
606 UINT16      WINAPI SetPaletteEntries16(HPALETTE16,UINT16,UINT16,const PALETTEENTRY*);
607 COLORREF    WINAPI SetPixel16(HDC16,INT16,INT16,COLORREF);
608 INT16       WINAPI SetPolyFillMode16(HDC16,INT16);
609 VOID        WINAPI SetRectRgn16(HRGN16,INT16,INT16,INT16,INT16);
610 INT16       WINAPI SetRelAbs16(HDC16,INT16);
611 INT16       WINAPI SetROP216(HDC16,INT16);
612 INT16       WINAPI SetStretchBltMode16(HDC16,INT16);
613 UINT16      WINAPI SetSystemPaletteUse16(HDC16,UINT16);
614 UINT16      WINAPI SetTextAlign16(HDC16,UINT16);
615 INT16       WINAPI SetTextCharacterExtra16(HDC16,INT16);
616 COLORREF    WINAPI SetTextColor16(HDC16,COLORREF);
617 INT16       WINAPI SetTextJustification16(HDC16,INT16,INT16);
618 DWORD       WINAPI SetViewportExt16(HDC16,INT16,INT16);
619 BOOL16      WINAPI SetViewportExtEx16(HDC16,INT16,INT16,LPSIZE16);
620 DWORD       WINAPI SetViewportOrg16(HDC16,INT16,INT16);
621 BOOL16      WINAPI SetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
622 DWORD       WINAPI SetWindowExt16(HDC16,INT16,INT16);
623 BOOL16      WINAPI SetWindowExtEx16(HDC16,INT16,INT16,LPSIZE16);
624 DWORD       WINAPI SetWindowOrg16(HDC16,INT16,INT16);
625 BOOL16      WINAPI SetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
626 INT16       WINAPI StartDoc16(HDC16,const DOCINFO16*);
627 INT16       WINAPI StartPage16(HDC16);
628 INT16       WINAPI StartSpoolPage16(HPJOB16);
629 BOOL16      WINAPI StretchBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,
630                                 INT16,INT16,INT16,DWORD);
631 INT16       WINAPI StretchDIBits16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,
632                        INT16,INT16,const VOID*,const BITMAPINFO*,UINT16,DWORD);
633 BOOL16      WINAPI StrokeAndFillPath16(HDC16);
634 BOOL16      WINAPI StrokePath16(HDC16);
635 BOOL16      WINAPI TextOut16(HDC16,INT16,INT16,LPCSTR,INT16);
636 BOOL16      WINAPI UnrealizeObject16(HGDIOBJ16);
637 INT16       WINAPI UpdateColors16(HDC16);
638 BOOL16      WINAPI WidenPath16(HDC16);
639 INT16       WINAPI WriteDialog16(HPJOB16,LPSTR,INT16);
640 INT16       WINAPI WriteSpool16(HPJOB16,LPSTR,INT16);
641
642
643 inline static void CONV_POINT16TO32( const POINT16 *p16, POINT *p32 )
644 {
645     p32->x = p16->x;
646     p32->y = p16->y;
647 }
648
649 inline static void CONV_POINT32TO16( const POINT *p32, POINT16 *p16 )
650 {
651     p16->x = (INT16)p32->x;
652     p16->y = (INT16)p32->y;
653 }
654
655 inline static void CONV_RECT16TO32( const RECT16 *r16, RECT *r32 )
656 {
657     r32->left   = r16->left;
658     r32->top    = r16->top;
659     r32->right  = r16->right;
660     r32->bottom = r16->bottom;
661 }
662
663 inline static void CONV_RECT32TO16( const RECT *r32, RECT16 *r16 )
664 {
665     r16->left   = (INT16)r32->left;
666     r16->top    = (INT16)r32->top;
667     r16->right  = (INT16)r32->right;
668     r16->bottom = (INT16)r32->bottom;
669 }
670
671 #endif /* __WINE_WINE_WINGDI16_H */