- Better handling when settimeofday is not available.
[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 {
145     INT16     tmHeight;
146     INT16     tmAscent;
147     INT16     tmDescent;
148     INT16     tmInternalLeading;
149     INT16     tmExternalLeading;
150     INT16     tmAveCharWidth;
151     INT16     tmMaxCharWidth;
152     INT16     tmWeight;
153     BYTE      tmItalic;
154     BYTE      tmUnderlined;
155     BYTE      tmStruckOut;
156     BYTE      tmFirstChar;
157     BYTE      tmLastChar;
158     BYTE      tmDefaultChar;
159     BYTE      tmBreakChar;
160     BYTE      tmPitchAndFamily;
161     BYTE      tmCharSet;
162     INT16     tmOverhang;
163     INT16     tmDigitizedAspectX;
164     INT16     tmDigitizedAspectY;
165 } TEXTMETRIC16, *LPTEXTMETRIC16;
166
167 typedef struct _OUTLINETEXTMETRIC16
168 {
169     UINT16          otmSize;
170     TEXTMETRIC16    otmTextMetrics;
171     BYTE            otmFiller;
172     PANOSE          otmPanoseNumber;
173     UINT16          otmfsSelection;
174     UINT16          otmfsType;
175     INT16           otmsCharSlopeRise;
176     INT16           otmsCharSlopeRun;
177     INT16           otmItalicAngle;
178     UINT16          otmEMSquare;
179     INT16           otmAscent;
180     INT16           otmDescent;
181     UINT16          otmLineGap;
182     UINT16          otmsCapEmHeight;
183     UINT16          otmsXHeight;
184     RECT16          otmrcFontBox;
185     INT16           otmMacAscent;
186     INT16           otmMacDescent;
187     UINT16          otmMacLineGap;
188     UINT16          otmusMinimumPPEM;
189     POINT16         otmptSubscriptSize;
190     POINT16         otmptSubscriptOffset;
191     POINT16         otmptSuperscriptSize;
192     POINT16         otmptSuperscriptOffset;
193     UINT16          otmsStrikeoutSize;
194     INT16           otmsStrikeoutPosition;
195     INT16           otmsUnderscoreSize;
196     INT           otmsUnderscorePosition;
197     LPSTR           otmpFamilyName;
198     LPSTR           otmpFaceName;
199     LPSTR           otmpStyleName;
200     LPSTR           otmpFullName;
201 } OUTLINETEXTMETRIC16,*LPOUTLINETEXTMETRIC16;
202
203 typedef struct
204 {
205     INT16     tmHeight;
206     INT16     tmAscent;
207     INT16     tmDescent;
208     INT16     tmInternalLeading;
209     INT16     tmExternalLeading;
210     INT16     tmAveCharWidth;
211     INT16     tmMaxCharWidth;
212     INT16     tmWeight;
213     BYTE      tmItalic;
214     BYTE      tmUnderlined;
215     BYTE      tmStruckOut;
216     BYTE      tmFirstChar;
217     BYTE      tmLastChar;
218     BYTE      tmDefaultChar;
219     BYTE      tmBreakChar;
220     BYTE      tmPitchAndFamily;
221     BYTE      tmCharSet;
222     INT16     tmOverhang;
223     INT16     tmDigitizedAspectX;
224     INT16     tmDigitizedAspectY;
225     DWORD     ntmFlags;
226     UINT16    ntmSizeEM;
227     UINT16    ntmCellHeight;
228     UINT16    ntmAvgWidth;
229 } NEWTEXTMETRIC16,*LPNEWTEXTMETRIC16;
230
231 typedef struct
232 {
233     NEWTEXTMETRIC16     ntmTm;
234     FONTSIGNATURE       ntmFontSig;
235 } NEWTEXTMETRICEX16,*LPNEWTEXTMETRICEX16;
236
237 typedef BOOL16 (CALLBACK *DCHOOKPROC)(HDC16,WORD,DWORD,LPARAM);
238 typedef INT16 (CALLBACK *FONTENUMPROC16)(SEGPTR,SEGPTR,UINT16,LPARAM);
239 typedef INT16 (CALLBACK *FONTENUMPROCEX16)(SEGPTR,SEGPTR,UINT16,LPARAM);
240 typedef VOID  (CALLBACK *LINEDDAPROC16)(INT16,INT16,LPARAM);
241 typedef INT16 (CALLBACK *GOBJENUMPROC16)(SEGPTR,LPARAM);
242
243
244 typedef struct
245 {
246     UINT16      gmBlackBoxX;
247     UINT16      gmBlackBoxY;
248     POINT16     gmptGlyphOrigin;
249     INT16       gmCellIncX;
250     INT16       gmCellIncY;
251 } GLYPHMETRICS16, *LPGLYPHMETRICS16;
252
253 typedef struct
254 {
255     INT16   abcA;
256     UINT16  abcB;
257     INT16   abcC;
258 } ABC16, *LPABC16;
259
260 typedef struct
261 {
262     UINT16   lopnStyle; 
263     POINT16  lopnWidth;
264     COLORREF lopnColor;
265 } LOGPEN16, *LPLOGPEN16;
266
267 typedef struct
268 {
269     HGDIOBJ16 objectHandle[1];
270 } HANDLETABLE16, *LPHANDLETABLE16;
271
272 typedef struct
273 {
274     INT16        mm;
275     INT16        xExt;
276     INT16        yExt;
277     HMETAFILE16  hMF;
278 } METAFILEPICT16, *LPMETAFILEPICT16;
279
280 typedef struct {
281     EMR    emr;
282     RECTL  rclBounds;
283     DWORD  cpts;
284     POINT16 apts[1];
285 } EMRPOLYLINE16,     *PEMRPOLYLINE16,
286   EMRPOLYBEZIER16,   *PEMRPOLYBEZIER16,
287   EMRPOLYGON16,      *PEMRPOLYGON16,
288   EMRPOLYBEZIERTO16, *PEMRPOLYBEZIERTO16,
289   EMRPOLYLINETO16,   *PEMRPOLYLINETO16;
290
291 typedef struct {
292     EMR    emr;
293     RECTL  rclBounds;
294     DWORD  cpts;
295     POINT16 apts[1];
296     BYTE   abTypes[1];
297 } EMRPOLYDRAW16, *PEMRPOLYDRAW16;
298
299 typedef struct {
300     EMR     emr;
301     RECTL   rclBounds;
302     DWORD   nPolys;
303     DWORD   cpts;
304     DWORD   aPolyCounts[1];
305     POINT16 apts[1];
306 } EMRPOLYPOLYLINE16, *PEMRPOLYPOLYLINE16,
307   EMRPOLYPOLYGON16,  *PEMRPOLYPOLYGON16;
308
309 typedef INT16 (CALLBACK *MFENUMPROC16)(HDC16,HANDLETABLE16*,METARECORD*,
310                                        INT16,LPARAM);
311 typedef struct 
312 {
313     INT16    cbSize;
314     SEGPTR   lpszDocName;
315     SEGPTR   lpszOutput;
316     SEGPTR   lpszDatatype;
317     DWORD    fwType;
318 } DOCINFO16, *LPDOCINFO16;
319
320 typedef BOOL16 (CALLBACK *ABORTPROC16)(HDC16, INT16);
321
322 #define INT_PD_DEFAULT_DEVMODE  1
323 #define INT_PD_DEFAULT_MODEL    2
324
325 #include "poppack.h"
326
327
328 INT16       WINAPI AbortDoc16(HDC16);
329 BOOL16      WINAPI AbortPath16(HDC16);
330 INT16       WINAPI AddFontResource16(LPCSTR);
331 void        WINAPI AnimatePalette16(HPALETTE16,UINT16,UINT16,const PALETTEENTRY*);
332 BOOL16      WINAPI Arc16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
333 BOOL16      WINAPI BeginPath16(HDC16);
334 BOOL16      WINAPI BitBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,INT16,DWORD);
335 BOOL16      WINAPI Chord16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
336 BOOL16      WINAPI CloseFigure16(HDC16);
337 INT16       WINAPI CloseJob16(HPJOB16);
338 HMETAFILE16 WINAPI CloseMetaFile16(HDC16);
339 INT16       WINAPI CombineRgn16(HRGN16,HRGN16,HRGN16,INT16);
340 HMETAFILE16 WINAPI CopyMetaFile16(HMETAFILE16,LPCSTR);
341 HBITMAP16   WINAPI CreateBitmap16(INT16,INT16,UINT16,UINT16,LPCVOID);
342 HBITMAP16   WINAPI CreateBitmapIndirect16(const BITMAP16*);
343 HBRUSH16    WINAPI CreateBrushIndirect16(const LOGBRUSH16*);
344 HBITMAP16   WINAPI CreateCompatibleBitmap16(HDC16,INT16,INT16);
345 HDC16       WINAPI CreateCompatibleDC16(HDC16);
346 HDC16       WINAPI CreateDC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
347 HBITMAP16   WINAPI CreateDIBitmap16(HDC16,const BITMAPINFOHEADER*,DWORD,
348                                     LPCVOID,const BITMAPINFO*,UINT16);
349 HBRUSH16    WINAPI CreateDIBPatternBrush16(HGLOBAL16,UINT16);
350 HBITMAP16   WINAPI CreateDIBSection16 (HDC16, BITMAPINFO *, UINT16,
351                                        SEGPTR *, HANDLE, DWORD offset);
352 HBITMAP16   WINAPI CreateDiscardableBitmap16(HDC16,INT16,INT16);
353 HRGN16      WINAPI CreateEllipticRgn16(INT16,INT16,INT16,INT16);
354 HRGN16      WINAPI CreateEllipticRgnIndirect16(const RECT16 *);
355 HFONT16     WINAPI CreateFont16(INT16,INT16,INT16,INT16,INT16,BYTE,BYTE,BYTE,
356                                 BYTE,BYTE,BYTE,BYTE,BYTE,LPCSTR);
357 HFONT16     WINAPI CreateFontIndirect16(const LOGFONT16*);
358 HBRUSH16    WINAPI CreateHatchBrush16(INT16,COLORREF);
359 HDC16       WINAPI CreateIC16(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
360 HDC16       WINAPI CreateMetaFile16(LPCSTR);
361 HPALETTE16  WINAPI CreatePalette16(const LOGPALETTE*);
362 HBRUSH16    WINAPI CreatePatternBrush16(HBITMAP16);
363 HPEN16      WINAPI CreatePen16(INT16,INT16,COLORREF);
364 HPEN16      WINAPI CreatePenIndirect16(const LOGPEN16*);
365 HRGN16      WINAPI CreatePolyPolygonRgn16(const POINT16*,const INT16*,INT16,INT16);
366 HRGN16      WINAPI CreatePolygonRgn16(const POINT16*,INT16,INT16);
367 HRGN16      WINAPI CreateRectRgn16(INT16,INT16,INT16,INT16);
368 HRGN16      WINAPI CreateRectRgnIndirect16(const RECT16*);
369 HRGN16      WINAPI CreateRoundRectRgn16(INT16,INT16,INT16,INT16,INT16,INT16);
370 BOOL16      WINAPI CreateScalableFontResource16(UINT16,LPCSTR,LPCSTR,LPCSTR);
371 HBRUSH16    WINAPI CreateSolidBrush16(COLORREF);
372 VOID        WINAPI Death16(HDC16);
373 BOOL16      WINAPI DeleteDC16(HDC16);
374 INT16       WINAPI DeleteJob16(HPJOB16,INT16);
375 BOOL16      WINAPI DeleteMetaFile16(HMETAFILE16);
376 BOOL16      WINAPI DeleteObject16(HGDIOBJ16);
377 BOOL16      WINAPI DPtoLP16(HDC16,LPPOINT16,INT16);
378 DWORD       WINAPI DrvGetPrinterData16(LPSTR,LPSTR,LPDWORD,LPBYTE,int cbData,LPDWORD);
379 DWORD       WINAPI DrvSetPrinterData16(LPSTR,LPSTR,DWORD,LPBYTE,DWORD);
380 BOOL16      WINAPI Ellipse16(HDC16,INT16,INT16,INT16,INT16);
381 INT16       WINAPI EndDoc16(HDC16);
382 INT16       WINAPI EndPage16(HDC16);
383 BOOL16      WINAPI EndPath16(HDC16);
384 INT16       WINAPI EndSpoolPage16(HPJOB16);
385 INT16       WINAPI EnumFontFamilies16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
386 INT16       WINAPI EnumFontFamiliesEx16(HDC16,LPLOGFONT16,FONTENUMPROCEX16,LPARAM,DWORD);
387 INT16       WINAPI EnumFonts16(HDC16,LPCSTR,FONTENUMPROC16,LPARAM);
388 BOOL16      WINAPI EnumMetaFile16(HDC16,HMETAFILE16,MFENUMPROC16,LPARAM);
389 INT16       WINAPI EnumObjects16(HDC16,INT16,GOBJENUMPROC16,LPARAM);
390 BOOL16      WINAPI EqualRgn16(HRGN16,HRGN16);
391 INT16       WINAPI Escape16(HDC16,INT16,INT16,SEGPTR,LPVOID);
392 INT16       WINAPI ExcludeClipRect16(HDC16,INT16,INT16,INT16,INT16);
393 INT16       WINAPI ExcludeVisRect16(HDC16,INT16,INT16,INT16,INT16);
394 HPEN16      WINAPI ExtCreatePen16(DWORD,DWORD,const LOGBRUSH16*,DWORD,const DWORD*);
395 BOOL16      WINAPI ExtFloodFill16(HDC16,INT16,INT16,COLORREF,UINT16);
396 BOOL16      WINAPI ExtTextOut16(HDC16,INT16,INT16,UINT16,const RECT16*,
397                                 LPCSTR,UINT16,const INT16*);
398 BOOL16      WINAPI FastWindowFrame16(HDC16,const RECT16*,INT16,INT16,DWORD);
399 BOOL16      WINAPI FillPath16(HDC16);
400 BOOL16      WINAPI FillRgn16(HDC16,HRGN16,HBRUSH16);
401 BOOL16      WINAPI FlattenPath16(HDC16);
402 BOOL16      WINAPI FloodFill16(HDC16,INT16,INT16,COLORREF);
403 BOOL16      WINAPI FrameRgn16(HDC16,HRGN16,HBRUSH16,INT16,INT16);
404 UINT16      WINAPI GDIRealizePalette16(HDC16);
405 DWORD       WINAPI GdiSeeGdiDo16(WORD,WORD,WORD,WORD);
406 HPALETTE16  WINAPI GDISelectPalette16(HDC16,HPALETTE16,WORD);
407 INT16       WINAPI GetArcDirection16(HDC16);
408 BOOL16      WINAPI GetAspectRatioFilterEx16(HDC16,LPSIZE16);
409 LONG        WINAPI GetBitmapBits16(HBITMAP16,LONG,LPVOID);
410 DWORD       WINAPI GetBitmapDimension16(HBITMAP16);
411 BOOL16      WINAPI GetBitmapDimensionEx16(HBITMAP16,LPSIZE16);
412 DWORD       WINAPI GetBrushOrg16(HDC16);
413 BOOL16      WINAPI GetBrushOrgEx16(HDC16,LPPOINT16);
414 COLORREF    WINAPI GetBkColor16(HDC16);
415 INT16       WINAPI GetBkMode16(HDC16);
416 UINT16      WINAPI GetBoundsRect16(HDC16,LPRECT16,UINT16);
417 BOOL16      WINAPI GetCharABCWidths16(HDC16,UINT16,UINT16,LPABC16);
418 BOOL16      WINAPI GetCharWidth16(HDC16,UINT16,UINT16,LPINT16);
419 INT16       WINAPI GetClipBox16(HDC16,LPRECT16);
420 HRGN16      WINAPI GetClipRgn16(HDC16);
421 HFONT16     WINAPI GetCurLogFont16(HDC16);
422 DWORD       WINAPI GetCurrentPosition16(HDC16);
423 BOOL16      WINAPI GetCurrentPositionEx16(HDC16,LPPOINT16);
424 DWORD       WINAPI GetDCHook(HDC16,FARPROC16*);
425 DWORD       WINAPI GetDCOrg16(HDC16);
426 HDC16       WINAPI GetDCState16(HDC16);
427 INT16       WINAPI GetDeviceCaps16(HDC16,INT16);
428 UINT16      WINAPI GetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
429 INT16       WINAPI GetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPVOID,LPBITMAPINFO,UINT16);
430 INT16       WINAPI GetEnvironment16(LPCSTR,LPDEVMODEA,UINT16);
431 DWORD       WINAPI GetFontData16(HDC16,DWORD,DWORD,LPVOID,DWORD);
432 DWORD       WINAPI GetFontLanguageInfo16(HDC16);
433 DWORD       WINAPI GetGlyphOutline16(HDC16,UINT16,UINT16,LPGLYPHMETRICS16,DWORD,LPVOID,const MAT2*);
434 INT16       WINAPI GetKerningPairs16(HDC16,INT16,LPKERNINGPAIR16);
435 INT16       WINAPI GetMapMode16(HDC16);
436 HMETAFILE16 WINAPI GetMetaFile16(LPCSTR);
437 HGLOBAL16   WINAPI GetMetaFileBits16(HMETAFILE16);
438 DWORD       WINAPI GetNearestColor16(HDC16,DWORD);
439 UINT16      WINAPI GetNearestPaletteIndex16(HPALETTE16,COLORREF);
440 INT16       WINAPI GetObject16(HANDLE16,INT16,LPVOID);
441 UINT16      WINAPI GetOutlineTextMetrics16(HDC16,UINT16,LPOUTLINETEXTMETRIC16);
442 UINT16      WINAPI GetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY);
443 INT16       WINAPI GetPath16(HDC16,LPPOINT16,LPBYTE,INT16);
444 COLORREF    WINAPI GetPixel16(HDC16,INT16,INT16);
445 INT16       WINAPI GetPolyFillMode16(HDC16);
446 BOOL16      WINAPI GetRasterizerCaps16(LPRASTERIZER_STATUS,UINT16);
447 DWORD       WINAPI GetRegionData16(HRGN16,DWORD,LPRGNDATA);
448 INT16       WINAPI GetRelAbs16(HDC16);
449 INT16       WINAPI GetRgnBox16(HRGN16,LPRECT16);
450 INT16       WINAPI GetROP216(HDC16);
451 DWORD       WINAPI GetSpoolJob16(int,LONG);
452 HGDIOBJ16   WINAPI GetStockObject16(INT16);
453 INT16       WINAPI GetStretchBltMode16(HDC16);
454 UINT16      WINAPI GetSystemPaletteEntries16(HDC16,UINT16,UINT16,LPPALETTEENTRY);
455 UINT16      WINAPI GetSystemPaletteUse16(HDC16);
456 UINT16      WINAPI GetTextAlign16(HDC16);
457 INT16       WINAPI GetTextCharacterExtra16(HDC16);
458 UINT16      WINAPI GetTextCharset16(HDC16);
459 COLORREF    WINAPI GetTextColor16(HDC16);
460 DWORD       WINAPI GetTextExtent16(HDC16,LPCSTR,INT16);
461 BOOL16      WINAPI GetTextExtentPoint16(HDC16,LPCSTR,INT16,LPSIZE16);
462 INT16       WINAPI GetTextFace16(HDC16,INT16,LPSTR);
463 BOOL16      WINAPI GetTextMetrics16(HDC16,LPTEXTMETRIC16);
464 DWORD       WINAPI GetViewportExt16(HDC16);
465 BOOL16      WINAPI GetViewportExtEx16(HDC16,LPSIZE16);
466 BOOL16      WINAPI GetViewportOrgEx16(HDC16,LPPOINT16);
467 DWORD       WINAPI GetViewportOrg16(HDC16);
468 DWORD       WINAPI GetWindowExt16(HDC16);
469 DWORD       WINAPI GetWindowOrg16(HDC16);
470 BOOL16      WINAPI GetWindowExtEx16(HDC16,LPSIZE16);
471 BOOL16      WINAPI GetWindowOrgEx16(HDC16,LPPOINT16);
472 HRGN16      WINAPI InquireVisRgn16(HDC16);
473 INT16       WINAPI IntersectClipRect16(HDC16,INT16,INT16,INT16,INT16);
474 INT16       WINAPI IntersectVisRect16(HDC16,INT16,INT16,INT16,INT16);
475 BOOL16      WINAPI InvertRgn16(HDC16,HRGN16);
476 BOOL16      WINAPI IsDCCurrentPalette16(HDC16);
477 BOOL16      WINAPI IsGDIObject16(HGDIOBJ16);
478 BOOL16      WINAPI IsValidMetaFile16(HMETAFILE16);
479 VOID        WINAPI LineDDA16(INT16,INT16,INT16,INT16,LINEDDAPROC16,LPARAM);
480 BOOL16      WINAPI LineTo16(HDC16,INT16,INT16);
481 BOOL16      WINAPI LPtoDP16(HDC16,LPPOINT16,INT16);
482 DWORD       WINAPI MoveTo16(HDC16,INT16,INT16);
483 BOOL16      WINAPI MoveToEx16(HDC16,INT16,INT16,LPPOINT16);
484 INT16       WINAPI MulDiv16(INT16,INT16,INT16);
485 INT16       WINAPI OffsetClipRgn16(HDC16,INT16,INT16);
486 INT16       WINAPI OffsetRgn16(HRGN16,INT16,INT16);
487 DWORD       WINAPI OffsetViewportOrg16(HDC16,INT16,INT16);
488 BOOL16      WINAPI OffsetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
489 INT16       WINAPI OffsetVisRgn16(HDC16,INT16,INT16);
490 DWORD       WINAPI OffsetWindowOrg16(HDC16,INT16,INT16);
491 BOOL16      WINAPI OffsetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
492 HANDLE16    WINAPI OpenJob16(LPCSTR,LPCSTR,HDC16);
493 BOOL16      WINAPI PaintRgn16(HDC16,HRGN16);
494 BOOL16      WINAPI PatBlt16(HDC16,INT16,INT16,INT16,INT16,DWORD);
495 HRGN16      WINAPI PathToRegion16(HDC16);
496 BOOL16      WINAPI Pie16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,INT16,INT16);
497 BOOL16      WINAPI PlayMetaFile16(HDC16,HMETAFILE16);
498 VOID        WINAPI PlayMetaFileRecord16(HDC16,LPHANDLETABLE16,LPMETARECORD,UINT16);
499 BOOL16      WINAPI PolyBezier16(HDC16,const POINT16*,INT16);
500 BOOL16      WINAPI PolyBezierTo16(HDC16,const POINT16*,INT16);
501 BOOL16      WINAPI PolyPolygon16(HDC16,const POINT16*,const INT16*,UINT16);
502 BOOL16      WINAPI Polygon16(HDC16,const POINT16*,INT16);
503 BOOL16      WINAPI Polyline16(HDC16,const POINT16*,INT16);
504 BOOL16      WINAPI PtInRegion16(HRGN16,INT16,INT16);
505 BOOL16      WINAPI PtVisible16(HDC16,INT16,INT16);
506 BOOL16      WINAPI QueryAbort16(HDC16,INT16);
507 UINT16      WINAPI RealizeDefaultPalette16(HDC16);
508 BOOL16      WINAPI Rectangle16(HDC16,INT16,INT16,INT16,INT16);
509 BOOL16      WINAPI RectInRegion16(HRGN16,const RECT16 *);
510 BOOL16      WINAPI RectVisible16(HDC16,const RECT16*);
511 BOOL16      WINAPI RemoveFontResource16(LPCSTR);
512 HDC16       WINAPI ResetDC16(HDC16,const DEVMODEA *);
513 BOOL16      WINAPI ResizePalette16(HPALETTE16,UINT16);
514 BOOL16      WINAPI RestoreDC16(HDC16,INT16);
515 INT16       WINAPI RestoreVisRgn16(HDC16);
516 VOID        WINAPI Resurrection16(HDC16,WORD,WORD,WORD,WORD,WORD,WORD);
517 BOOL16      WINAPI RoundRect16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16);
518 INT16       WINAPI SaveDC16(HDC16);
519 HRGN16      WINAPI SaveVisRgn16(HDC16);
520 DWORD       WINAPI ScaleViewportExt16(HDC16,INT16,INT16,INT16,INT16);
521 BOOL16      WINAPI ScaleViewportExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
522 DWORD       WINAPI ScaleWindowExt16(HDC16,INT16,INT16,INT16,INT16);
523 BOOL16      WINAPI ScaleWindowExtEx16(HDC16,INT16,INT16,INT16,INT16,LPSIZE16);
524 BOOL16      WINAPI SelectClipPath16(HDC16,INT16);
525 INT16       WINAPI SelectClipRgn16(HDC16,HRGN16);
526 HGDIOBJ16   WINAPI SelectObject16(HDC16,HGDIOBJ16);
527 INT16       WINAPI SelectVisRgn16(HDC16,HRGN16);
528 INT16       WINAPI SetAbortProc16(HDC16,ABORTPROC16);
529 INT16       WINAPI SetArcDirection16(HDC16,INT16);
530 LONG        WINAPI SetBitmapBits16(HBITMAP16,LONG,LPCVOID);
531 DWORD       WINAPI SetBitmapDimension16(HBITMAP16,INT16,INT16);
532 BOOL16      WINAPI SetBitmapDimensionEx16(HBITMAP16,INT16,INT16,LPSIZE16);
533 COLORREF    WINAPI SetBkColor16(HDC16,COLORREF);
534 INT16       WINAPI SetBkMode16(HDC16,INT16);
535 UINT16      WINAPI SetBoundsRect16(HDC16,const RECT16*,UINT16);
536 DWORD       WINAPI SetBrushOrg16(HDC16,INT16,INT16);
537 BOOL        WINAPI SetDCHook(HDC,DCHOOKPROC,DWORD);
538 BOOL16      WINAPI SetDCHook16(HDC16,FARPROC16,DWORD);
539 DWORD       WINAPI SetDCOrg16(HDC16,INT16,INT16);
540 VOID        WINAPI SetDCState16(HDC16,HDC16);
541 UINT16      WINAPI SetDIBColorTable16(HDC16,UINT16,UINT16,RGBQUAD*);
542 INT16       WINAPI SetDIBits16(HDC16,HBITMAP16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
543 INT16       WINAPI SetDIBitsToDevice16(HDC16,INT16,INT16,INT16,INT16,INT16,
544                          INT16,UINT16,UINT16,LPCVOID,const BITMAPINFO*,UINT16);
545 INT16       WINAPI SetEnvironment16(LPCSTR,LPDEVMODEA,UINT16);
546 WORD        WINAPI SetHookFlags16(HDC16,WORD);
547 INT16       WINAPI SetMapMode16(HDC16,INT16);
548 DWORD       WINAPI SetMapperFlags16(HDC16,DWORD);
549 HMETAFILE16 WINAPI SetMetaFileBits16(HGLOBAL16);
550 UINT16      WINAPI SetPaletteEntries16(HPALETTE16,UINT16,UINT16,LPPALETTEENTRY);
551 COLORREF    WINAPI SetPixel16(HDC16,INT16,INT16,COLORREF);
552 INT16       WINAPI SetPolyFillMode16(HDC16,INT16);
553 VOID        WINAPI SetRectRgn16(HRGN16,INT16,INT16,INT16,INT16);
554 INT16       WINAPI SetRelAbs16(HDC16,INT16);
555 INT16       WINAPI SetROP216(HDC16,INT16);
556 INT16       WINAPI SetStretchBltMode16(HDC16,INT16);
557 UINT16      WINAPI SetSystemPaletteUse16(HDC16,UINT16);
558 UINT16      WINAPI SetTextAlign16(HDC16,UINT16);
559 INT16       WINAPI SetTextCharacterExtra16(HDC16,INT16);
560 COLORREF    WINAPI SetTextColor16(HDC16,COLORREF);
561 INT16       WINAPI SetTextJustification16(HDC16,INT16,INT16);
562 DWORD       WINAPI SetViewportExt16(HDC16,INT16,INT16);
563 BOOL16      WINAPI SetViewportExtEx16(HDC16,INT16,INT16,LPSIZE16);
564 DWORD       WINAPI SetViewportOrg16(HDC16,INT16,INT16);
565 BOOL16      WINAPI SetViewportOrgEx16(HDC16,INT16,INT16,LPPOINT16);
566 DWORD       WINAPI SetWindowExt16(HDC16,INT16,INT16);
567 BOOL16      WINAPI SetWindowExtEx16(HDC16,INT16,INT16,LPSIZE16);
568 DWORD       WINAPI SetWindowOrg16(HDC16,INT16,INT16);
569 BOOL16      WINAPI SetWindowOrgEx16(HDC16,INT16,INT16,LPPOINT16);
570 INT16       WINAPI StartDoc16(HDC16,const DOCINFO16*);
571 INT16       WINAPI StartPage16(HDC16);
572 INT16       WINAPI StartSpoolPage16(HPJOB16);
573 BOOL16      WINAPI StretchBlt16(HDC16,INT16,INT16,INT16,INT16,HDC16,INT16,
574                                 INT16,INT16,INT16,DWORD);
575 INT16       WINAPI StretchDIBits16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,
576                        INT16,INT16,const VOID*,const BITMAPINFO*,UINT16,DWORD);
577 BOOL16      WINAPI StrokeAndFillPath16(HDC16);
578 BOOL16      WINAPI StrokePath16(HDC16);
579 BOOL16      WINAPI TextOut16(HDC16,INT16,INT16,LPCSTR,INT16);
580 BOOL16      WINAPI UnrealizeObject16(HGDIOBJ16);
581 INT16       WINAPI UpdateColors16(HDC16);
582 BOOL16      WINAPI WidenPath16(HDC16);
583 INT16       WINAPI WriteDialog16(HPJOB16,LPSTR,INT16);
584 INT16       WINAPI WriteSpool16(HPJOB16,LPSTR,INT16);
585
586
587 inline static void CONV_POINT16TO32( const POINT16 *p16, POINT *p32 )
588 {
589     p32->x = p16->x;
590     p32->y = p16->y;
591 }
592
593 inline static void CONV_POINT32TO16( const POINT *p32, POINT16 *p16 )
594 {
595     p16->x = (INT16)p32->x;
596     p16->y = (INT16)p32->y;
597 }
598
599 inline static void CONV_RECT16TO32( const RECT16 *r16, RECT *r32 )
600 {
601     r32->left   = r16->left;
602     r32->top    = r16->top;
603     r32->right  = r16->right;
604     r32->bottom = r16->bottom;
605 }
606
607 inline static void CONV_RECT32TO16( const RECT *r32, RECT16 *r16 )
608 {
609     r16->left   = (INT16)r32->left;
610     r16->top    = (INT16)r32->top;
611     r16->right  = (INT16)r32->right;
612     r16->bottom = (INT16)r32->bottom;
613 }
614
615 #endif /* __WINE_WINE_WINGDI16_H */