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