Use pipe sync code from wineoss.
[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 /* DC hook codes */
376 #define DCHC_INVALIDVISRGN      0x0001
377 #define DCHC_DELETEDC           0x0002
378
379 #define DCHF_INVALIDATEVISRGN   0x0001
380 #define DCHF_VALIDATEVISRGN     0x0002
381
382 /* RenderMode */
383 #define RENDERMODE_NO_DISPLAY 0
384 #define RENDERMODE_OPEN 1
385 #define RENDERMODE_CLOSED 2
386
387 #include <poppack.h>
388
389
390 INT16       WINAPI AbortDoc16(HDC16);
391 BOOL16      WINAPI AbortPath16(HDC16);
392 INT16       WINAPI AddFontResource16(LPCSTR);
393 void        WINAPI AnimatePalette16(HPALETTE16,UINT16,UINT16,const PALETTEENTRY*);
394 BOOL16      WINAPI Arc16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
395 BOOL16      WINAPI BeginPath16(HDC16);
396 BOOL16      WINAPI BitBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,INT16,DWORD);
397 BOOL16      WINAPI Chord16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
398 BOOL16      WINAPI CloseFigure16(HDC16);
399 INT16       WINAPI CloseJob16(HPJOB16);
400 HMETAFILE16 WINAPI CloseMetaFile16(HDC16);
401 INT16       WINAPI CombineRgn16(HRGN16,HRGN16,HRGN16,INT16);
402 HMETAFILE16 WINAPI CopyMetaFile16(HMETAFILE16,LPCSTR);
403 HBITMAP16   WINAPI CreateBitmap16(INT16,INT16,UINT16,UINT16,LPCVOID);
404 HBITMAP16   WINAPI CreateBitmapIndirect16(const BITMAP16*);
405 HBRUSH16    WINAPI CreateBrushIndirect16(const LOGBRUSH16*);
406 HBITMAP16   WINAPI CreateCompatibleBitmap16(HDC16,INT16,INT16);
407 HDC16       WINAPI CreateCompatibleDC16(HDC16);
408 HDC16       WINAPI CreateDC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
409 HBITMAP16   WINAPI CreateDIBitmap16(HDC16,const BITMAPINFOHEADER*,DWORD,
410                                     LPCVOID,const BITMAPINFO*,UINT16);
411 HBRUSH16    WINAPI CreateDIBPatternBrush16(HGLOBAL16,UINT16);
412 HBITMAP16   WINAPI CreateDIBSection16 (HDC16, BITMAPINFO *, UINT16,
413                                        SEGPTR *, HANDLE, DWORD offset);
414 HBITMAP16   WINAPI CreateDiscardableBitmap16(HDC16,INT16,INT16);
415 HRGN16      WINAPI CreateEllipticRgn16(INT16,INT16,INT16,INT16);
416 HRGN16      WINAPI CreateEllipticRgnIndirect16(const RECT16 *);
417 HFONT16     WINAPI CreateFont16(INT16,INT16,INT16,INT16,INT16,BYTE,BYTE,BYTE,
418                                 BYTE,BYTE,BYTE,BYTE,BYTE,LPCSTR);
419 HFONT16     WINAPI CreateFontIndirect16(const LOGFONT16*);
420 HPALETTE16  WINAPI CreateHalftonePalette16(HDC16);
421 HBRUSH16    WINAPI CreateHatchBrush16(INT16,COLORREF);
422 HDC16       WINAPI CreateIC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
423 HDC16       WINAPI CreateMetaFile16(LPCSTR);
424 HPALETTE16  WINAPI CreatePalette16(const LOGPALETTE*);
425 HBRUSH16    WINAPI CreatePatternBrush16(HBITMAP16);
426 HPEN16      WINAPI CreatePen16(INT16,INT16,COLORREF);
427 HPEN16      WINAPI CreatePenIndirect16(const LOGPEN16*);
428 HRGN16      WINAPI CreatePolyPolygonRgn16(const POINT16*,const INT16*,INT16,INT16);
429 HRGN16      WINAPI CreatePolygonRgn16(const POINT16*,INT16,INT16);
430 HRGN16      WINAPI CreateRectRgn16(INT16,INT16,INT16,INT16);
431 HRGN16      WINAPI CreateRectRgnIndirect16(const RECT16*);
432 HRGN16      WINAPI CreateRoundRectRgn16(INT16,INT16,INT16,INT16,INT16,INT16);
433 BOOL16      WINAPI CreateScalableFontResource16(UINT16,LPCSTR,LPCSTR,LPCSTR);
434 HBRUSH16    WINAPI CreateSolidBrush16(COLORREF);
435 VOID        WINAPI Death16(HDC16);
436 BOOL16      WINAPI DeleteDC16(HDC16);
437 INT16       WINAPI DeleteJob16(HPJOB16,INT16);
438 BOOL16      WINAPI DeleteMetaFile16(HMETAFILE16);
439 BOOL16      WINAPI DeleteObject16(HGDIOBJ16);
440 BOOL16      WINAPI DPtoLP16(HDC16,LPPOINT16,INT16);
441 DWORD       WINAPI DrvGetPrinterData16(LPSTR,LPSTR,LPDWORD,LPBYTE,int cbData,LPDWORD);
442 DWORD       WINAPI DrvSetPrinterData16(LPSTR,LPSTR,DWORD,LPBYTE,DWORD);
443 BOOL16      WINAPI Ellipse16(HDC16,INT16,INT16,INT16,INT16);
444 INT16       WINAPI EndDoc16(HDC16);
445 INT16       WINAPI EndPage16(HDC16);
446 BOOL16      WINAPI EndPath16(HDC16);
447 INT16       WINAPI EndSpoolPage16(HPJOB16);
448 INT16       WINAPI EnumFontFamilies16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
449 INT16       WINAPI EnumFontFamiliesEx16(HDC16,LPLOGFONT16,FONTENUMPROC16,LPARAM,DWORD);
450 INT16       WINAPI EnumFonts16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
451 BOOL16      WINAPI EnumMetaFile16(HDC16,HMETAFILE16,MFENUMPROC16,LPARAM);
452 INT16       WINAPI EnumObjects16(HDC16,INT16,GOBJENUMPROC16,LPARAM);
453 BOOL16      WINAPI EqualRgn16(HRGN16,HRGN16);
454 INT16       WINAPI Escape16(HDC16,INT16,INT16,SEGPTR,LPVOID);
455 INT16       WINAPI ExcludeClipRect16(HDC16,INT16,INT16,INT16,INT16);
456 INT16       WINAPI ExcludeVisRect16(HDC16,INT16,INT16,INT16,INT16);
457 HPEN16      WINAPI ExtCreatePen16(DWORD,DWORD,const LOGBRUSH16*,DWORD,const DWORD*);
458 BOOL16      WINAPI ExtFloodFill16(HDC16,INT16,INT16,COLORREF,UINT16);
459 BOOL16      WINAPI ExtTextOut16(HDC16,INT16,INT16,UINT16,const RECT16*,
460                                 LPCSTR,UINT16,const INT16*);
461 BOOL16      WINAPI FastWindowFrame16(HDC16,const RECT16*,INT16,INT16,DWORD);
462 BOOL16      WINAPI FillPath16(HDC16);
463 BOOL16      WINAPI FillRgn16(HDC16,HRGN16,HBRUSH16);
464 BOOL16      WINAPI FlattenPath16(HDC16);
465 BOOL16      WINAPI FloodFill16(HDC16,INT16,INT16,COLORREF);
466 BOOL16      WINAPI FrameRgn16(HDC16,HRGN16,HBRUSH16,INT16,INT16);
467 UINT16      WINAPI GDIRealizePalette16(HDC16);
468 DWORD       WINAPI GdiSeeGdiDo16(WORD,WORD,WORD,WORD);
469 HPALETTE16  WINAPI GDISelectPalette16(HDC16,HPALETTE16,WORD);
470 INT16       WINAPI GetArcDirection16(HDC16);
471 BOOL16      WINAPI GetAspectRatioFilterEx16(HDC16,LPSIZE16);
472 LONG        WINAPI GetBitmapBits16(HBITMAP16,LONG,LPVOID);
473 DWORD       WINAPI GetBitmapDimension16(HBITMAP16);
474 BOOL16      WINAPI GetBitmapDimensionEx16(HBITMAP16,LPSIZE16);
475 DWORD       WINAPI GetBrushOrg16(HDC16);
476 BOOL16      WINAPI GetBrushOrgEx16(HDC16,LPPOINT16);
477 COLORREF    WINAPI GetBkColor16(HDC16);
478 INT16       WINAPI GetBkMode16(HDC16);
479 UINT16      WINAPI GetBoundsRect16(HDC16,LPRECT16,UINT16);
480 BOOL16      WINAPI GetCharABCWidths16(HDC16,UINT16,UINT16,LPABC16);
481 BOOL16      WINAPI GetCharWidth16(HDC16,UINT16,UINT16,LPINT16);
482 INT16       WINAPI GetClipBox16(HDC16,LPRECT16);
483 HRGN16      WINAPI GetClipRgn16(HDC16);
484 HFONT16     WINAPI GetCurLogFont16(HDC16);
485 DWORD       WINAPI GetCurrentPosition16(HDC16);
486 BOOL16      WINAPI GetCurrentPositionEx16(HDC16,LPPOINT16);
487 DWORD       WINAPI GetDCHook16(HDC16,FARPROC16*);
488 DWORD       WINAPI GetDCOrg16(HDC16);
489 HDC16       WINAPI GetDCState16(HDC16);
490 INT16       WINAPI GetDeviceCaps16(HDC16,INT16);
491 UINT16      WINAPI GetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
492 INT16       WINAPI GetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPVOID,LPBITMAPINFO,UINT16);
493 INT16       WINAPI GetEnvironment16(LPCSTR,LPDEVMODEA,UINT16);
494 DWORD       WINAPI GetFontData16(HDC16,DWORD,DWORD,LPVOID,DWORD);
495 DWORD       WINAPI GetFontLanguageInfo16(HDC16);
496 DWORD       WINAPI GetGlyphOutline16(HDC16,UINT16,UINT16,LPGLYPHMETRICS16,DWORD,LPVOID,const MAT2*);
497 INT16       WINAPI GetKerningPairs16(HDC16,INT16,LPKERNINGPAIR16);
498 INT16       WINAPI GetMapMode16(HDC16);
499 HMETAFILE16 WINAPI GetMetaFile16(LPCSTR);
500 HGLOBAL16   WINAPI GetMetaFileBits16(HMETAFILE16);
501 DWORD       WINAPI GetNearestColor16(HDC16,DWORD);
502 UINT16      WINAPI GetNearestPaletteIndex16(HPALETTE16,COLORREF);
503 INT16       WINAPI GetObject16(HANDLE16,INT16,LPVOID);
504 UINT16      WINAPI GetOutlineTextMetrics16(HDC16,UINT16,LPOUTLINETEXTMETRIC16);
505 UINT16      WINAPI GetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY);
506 INT16       WINAPI GetPath16(HDC16,LPPOINT16,LPBYTE,INT16);
507 COLORREF    WINAPI GetPixel16(HDC16,INT16,INT16);
508 INT16       WINAPI GetPolyFillMode16(HDC16);
509 BOOL16      WINAPI GetRasterizerCaps16(LPRASTERIZER_STATUS,UINT16);
510 DWORD       WINAPI GetRegionData16(HRGN16,DWORD,LPRGNDATA);
511 INT16       WINAPI GetRelAbs16(HDC16);
512 INT16       WINAPI GetRgnBox16(HRGN16,LPRECT16);
513 INT16       WINAPI GetROP216(HDC16);
514 DWORD       WINAPI GetSpoolJob16(int,LONG);
515 HGDIOBJ16   WINAPI GetStockObject16(INT16);
516 INT16       WINAPI GetStretchBltMode16(HDC16);
517 UINT16      WINAPI GetSystemPaletteEntries16(HDC16,UINT16,UINT16,LPPALETTEENTRY);
518 UINT16      WINAPI GetSystemPaletteUse16(HDC16);
519 UINT16      WINAPI GetTextAlign16(HDC16);
520 INT16       WINAPI GetTextCharacterExtra16(HDC16);
521 UINT16      WINAPI GetTextCharset16(HDC16);
522 COLORREF    WINAPI GetTextColor16(HDC16);
523 DWORD       WINAPI GetTextExtent16(HDC16,LPCSTR,INT16);
524 BOOL16      WINAPI GetTextExtentPoint16(HDC16,LPCSTR,INT16,LPSIZE16);
525 INT16       WINAPI GetTextFace16(HDC16,INT16,LPSTR);
526 BOOL16      WINAPI GetTextMetrics16(HDC16,LPTEXTMETRIC16);
527 DWORD       WINAPI GetViewportExt16(HDC16);
528 BOOL16      WINAPI GetViewportExtEx16(HDC16,LPSIZE16);
529 BOOL16      WINAPI GetViewportOrgEx16(HDC16,LPPOINT16);
530 DWORD       WINAPI GetViewportOrg16(HDC16);
531 DWORD       WINAPI GetWindowExt16(HDC16);
532 DWORD       WINAPI GetWindowOrg16(HDC16);
533 BOOL16      WINAPI GetWindowExtEx16(HDC16,LPSIZE16);
534 BOOL16      WINAPI GetWindowOrgEx16(HDC16,LPPOINT16);
535 HRGN16      WINAPI InquireVisRgn16(HDC16);
536 INT16       WINAPI IntersectClipRect16(HDC16,INT16,INT16,INT16,INT16);
537 INT16       WINAPI IntersectVisRect16(HDC16,INT16,INT16,INT16,INT16);
538 BOOL16      WINAPI InvertRgn16(HDC16,HRGN16);
539 BOOL16      WINAPI IsDCCurrentPalette16(HDC16);
540 BOOL16      WINAPI IsGDIObject16(HGDIOBJ16);
541 BOOL16      WINAPI IsValidMetaFile16(HMETAFILE16);
542 VOID        WINAPI LineDDA16(INT16,INT16,INT16,INT16,LINEDDAPROC16,LPARAM);
543 BOOL16      WINAPI LineTo16(HDC16,INT16,INT16);
544 BOOL16      WINAPI LPtoDP16(HDC16,LPPOINT16,INT16);
545 DWORD       WINAPI MoveTo16(HDC16,INT16,INT16);
546 BOOL16      WINAPI MoveToEx16(HDC16,INT16,INT16,LPPOINT16);
547 INT16       WINAPI MulDiv16(INT16,INT16,INT16);
548 INT16       WINAPI OffsetClipRgn16(HDC16,INT16,INT16);
549 INT16       WINAPI OffsetRgn16(HRGN16,INT16,INT16);
550 DWORD       WINAPI OffsetViewportOrg16(HDC16,INT16,INT16);
551 BOOL16      WINAPI OffsetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
552 INT16       WINAPI OffsetVisRgn16(HDC16,INT16,INT16);
553 DWORD       WINAPI OffsetWindowOrg16(HDC16,INT16,INT16);
554 BOOL16      WINAPI OffsetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
555 HANDLE16    WINAPI OpenJob16(LPCSTR,LPCSTR,HDC16);
556 BOOL16      WINAPI PaintRgn16(HDC16,HRGN16);
557 BOOL16      WINAPI PatBlt16(HDC16,INT16,INT16,INT16,INT16,DWORD);
558 HRGN16      WINAPI PathToRegion16(HDC16);
559 BOOL16      WINAPI Pie16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
560 BOOL16      WINAPI PlayMetaFile16(HDC16,HMETAFILE16);
561 VOID        WINAPI PlayMetaFileRecord16(HDC16,LPHANDLETABLE16,LPMETARECORD,UINT16);
562 BOOL16      WINAPI PolyBezier16(HDC16,const POINT16*,INT16);
563 BOOL16      WINAPI PolyBezierTo16(HDC16,const POINT16*,INT16);
564 BOOL16      WINAPI PolyPolygon16(HDC16,const POINT16*,const INT16*,UINT16);
565 BOOL16      WINAPI Polygon16(HDC16,const POINT16*,INT16);
566 BOOL16      WINAPI Polyline16(HDC16,const POINT16*,INT16);
567 BOOL16      WINAPI PtInRegion16(HRGN16,INT16,INT16);
568 BOOL16      WINAPI PtVisible16(HDC16,INT16,INT16);
569 BOOL16      WINAPI QueryAbort16(HDC16,INT16);
570 UINT16      WINAPI RealizeDefaultPalette16(HDC16);
571 BOOL16      WINAPI Rectangle16(HDC16,INT16,INT16,INT16,INT16);
572 BOOL16      WINAPI RectInRegion16(HRGN16,const RECT16 *);
573 BOOL16      WINAPI RectVisible16(HDC16,const RECT16*);
574 BOOL16      WINAPI RemoveFontResource16(LPCSTR);
575 HDC16       WINAPI ResetDC16(HDC16,const DEVMODEA *);
576 BOOL16      WINAPI ResizePalette16(HPALETTE16,UINT16);
577 BOOL16      WINAPI RestoreDC16(HDC16,INT16);
578 INT16       WINAPI RestoreVisRgn16(HDC16);
579 VOID        WINAPI Resurrection16(HDC16,WORD,WORD,WORD,WORD,WORD,WORD);
580 BOOL16      WINAPI RoundRect16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16);
581 INT16       WINAPI SaveDC16(HDC16);
582 HRGN16      WINAPI SaveVisRgn16(HDC16);
583 DWORD       WINAPI ScaleViewportExt16(HDC16,INT16,INT16,INT16,INT16);
584 BOOL16      WINAPI ScaleViewportExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
585 DWORD       WINAPI ScaleWindowExt16(HDC16,INT16,INT16,INT16,INT16);
586 BOOL16      WINAPI ScaleWindowExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
587 BOOL16      WINAPI SelectClipPath16(HDC16,INT16);
588 INT16       WINAPI SelectClipRgn16(HDC16,HRGN16);
589 HGDIOBJ16   WINAPI SelectObject16(HDC16,HGDIOBJ16);
590 INT16       WINAPI SelectVisRgn16(HDC16,HRGN16);
591 INT16       WINAPI SetAbortProc16(HDC16,ABORTPROC16);
592 INT16       WINAPI SetArcDirection16(HDC16,INT16);
593 LONG        WINAPI SetBitmapBits16(HBITMAP16,LONG,LPCVOID);
594 DWORD       WINAPI SetBitmapDimension16(HBITMAP16,INT16,INT16);
595 BOOL16      WINAPI SetBitmapDimensionEx16(HBITMAP16,INT16,INT16,LPSIZE16);
596 COLORREF    WINAPI SetBkColor16(HDC16,COLORREF);
597 INT16       WINAPI SetBkMode16(HDC16,INT16);
598 UINT16      WINAPI SetBoundsRect16(HDC16,const RECT16*,UINT16);
599 DWORD       WINAPI SetBrushOrg16(HDC16,INT16,INT16);
600 BOOL        WINAPI SetDCHook(HDC,DCHOOKPROC,DWORD);
601 BOOL16      WINAPI SetDCHook16(HDC16,FARPROC16,DWORD);
602 DWORD       WINAPI SetDCOrg16(HDC16,INT16,INT16);
603 VOID        WINAPI SetDCState16(HDC16,HDC16);
604 UINT16      WINAPI SetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
605 INT16       WINAPI SetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
606 INT16       WINAPI SetDIBitsToDevice16(HDC16,INT16,INT16,INT16,INT16,INT16,
607                          INT16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
608 INT16       WINAPI SetEnvironment16(LPCSTR,LPDEVMODEA,UINT16);
609 WORD        WINAPI SetHookFlags16(HDC16,WORD);
610 INT16       WINAPI SetMapMode16(HDC16,INT16);
611 DWORD       WINAPI SetMapperFlags16(HDC16,DWORD);
612 HMETAFILE16 WINAPI SetMetaFileBits16(HGLOBAL16);
613 UINT16      WINAPI SetPaletteEntries16(HPALETTE16,UINT16,UINT16,const PALETTEENTRY*);
614 COLORREF    WINAPI SetPixel16(HDC16,INT16,INT16,COLORREF);
615 INT16       WINAPI SetPolyFillMode16(HDC16,INT16);
616 VOID        WINAPI SetRectRgn16(HRGN16,INT16,INT16,INT16,INT16);
617 INT16       WINAPI SetRelAbs16(HDC16,INT16);
618 INT16       WINAPI SetROP216(HDC16,INT16);
619 INT16       WINAPI SetStretchBltMode16(HDC16,INT16);
620 UINT16      WINAPI SetSystemPaletteUse16(HDC16,UINT16);
621 UINT16      WINAPI SetTextAlign16(HDC16,UINT16);
622 INT16       WINAPI SetTextCharacterExtra16(HDC16,INT16);
623 COLORREF    WINAPI SetTextColor16(HDC16,COLORREF);
624 INT16       WINAPI SetTextJustification16(HDC16,INT16,INT16);
625 DWORD       WINAPI SetViewportExt16(HDC16,INT16,INT16);
626 BOOL16      WINAPI SetViewportExtEx16(HDC16,INT16,INT16,LPSIZE16);
627 DWORD       WINAPI SetViewportOrg16(HDC16,INT16,INT16);
628 BOOL16      WINAPI SetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
629 DWORD       WINAPI SetWindowExt16(HDC16,INT16,INT16);
630 BOOL16      WINAPI SetWindowExtEx16(HDC16,INT16,INT16,LPSIZE16);
631 DWORD       WINAPI SetWindowOrg16(HDC16,INT16,INT16);
632 BOOL16      WINAPI SetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
633 INT16       WINAPI StartDoc16(HDC16,const DOCINFO16*);
634 INT16       WINAPI StartPage16(HDC16);
635 INT16       WINAPI StartSpoolPage16(HPJOB16);
636 BOOL16      WINAPI StretchBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,
637                                 INT16,INT16,INT16,DWORD);
638 INT16       WINAPI StretchDIBits16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,
639                        INT16,INT16,const VOID*,const BITMAPINFO*,UINT16,DWORD);
640 BOOL16      WINAPI StrokeAndFillPath16(HDC16);
641 BOOL16      WINAPI StrokePath16(HDC16);
642 BOOL16      WINAPI TextOut16(HDC16,INT16,INT16,LPCSTR,INT16);
643 BOOL16      WINAPI UnrealizeObject16(HGDIOBJ16);
644 INT16       WINAPI UpdateColors16(HDC16);
645 BOOL16      WINAPI WidenPath16(HDC16);
646 INT16       WINAPI WriteDialog16(HPJOB16,LPSTR,INT16);
647 INT16       WINAPI WriteSpool16(HPJOB16,LPSTR,INT16);
648
649
650 inline static void CONV_POINT16TO32( const POINT16 *p16, POINT *p32 )
651 {
652     p32->x = p16->x;
653     p32->y = p16->y;
654 }
655
656 inline static void CONV_POINT32TO16( const POINT *p32, POINT16 *p16 )
657 {
658     p16->x = (INT16)p32->x;
659     p16->y = (INT16)p32->y;
660 }
661
662 inline static void CONV_RECT16TO32( const RECT16 *r16, RECT *r32 )
663 {
664     r32->left   = r16->left;
665     r32->top    = r16->top;
666     r32->right  = r16->right;
667     r32->bottom = r16->bottom;
668 }
669
670 inline static void CONV_RECT32TO16( const RECT *r32, RECT16 *r16 )
671 {
672     r16->left   = (INT16)r32->left;
673     r16->top    = (INT16)r32->top;
674     r16->right  = (INT16)r32->right;
675     r16->bottom = (INT16)r32->bottom;
676 }
677
678 #endif /* __WINE_WINE_WINGDI16_H */