# $Id: gdi.spec,v 1.3 1993/07/04 04:04:21 root Exp root $
#
name	gdi
id	3
length	490

1   pascal SetBkColor(word long) SetBkColor
2   pascal16 SetBkMode(word word) SetBkMode
3   pascal16 SetMapMode(word word) SetMapMode
4   pascal16 SetROP2(word word) SetROP2
5   pascal16 SetRelAbs(word word) SetRelAbs
6   pascal16 SetPolyFillMode(word word) SetPolyFillMode
7   pascal16 SetStretchBltMode(word word) SetStretchBltMode
8   pascal16 SetTextCharacterExtra(word s_word) SetTextCharacterExtra
9   pascal SetTextColor(word long) SetTextColor
10  pascal16 SetTextJustification(word s_word s_word) SetTextJustification
11  pascal SetWindowOrg(word s_word s_word) SetWindowOrg
12  pascal SetWindowExt(word s_word s_word) SetWindowExt
13  pascal SetViewportOrg(word s_word s_word) SetViewportOrg
14  pascal SetViewportExt(word s_word s_word) SetViewportExt
15  pascal OffsetWindowOrg(word s_word s_word) OffsetWindowOrg
16  pascal ScaleWindowExt(word s_word s_word s_word s_word) ScaleWindowExt
17  pascal OffsetViewportOrg(word s_word s_word) OffsetViewportOrg
18  pascal ScaleViewportExt(word s_word s_word s_word s_word) ScaleViewportExt
19  pascal16 LineTo(word s_word s_word) LineTo
20  pascal MoveTo(word s_word s_word) MoveTo
21  pascal16 ExcludeClipRect(word s_word s_word s_word s_word) ExcludeClipRect
22  pascal16 IntersectClipRect(word s_word s_word s_word s_word)
             IntersectClipRect
23  pascal16 Arc(word s_word s_word s_word s_word s_word s_word s_word s_word)
             Arc
24  pascal16 Ellipse(word s_word s_word s_word s_word) Ellipse
25  pascal16 FloodFill(word s_word s_word long) FloodFill
26  pascal16 Pie(word s_word s_word s_word s_word s_word s_word s_word s_word)
             Pie
27  pascal16 Rectangle(word s_word s_word s_word s_word) Rectangle
28  pascal16 RoundRect(word s_word s_word s_word s_word s_word s_word)
             RoundRect
29  pascal16 PatBlt(word s_word s_word s_word s_word long) PatBlt
30  pascal16 SaveDC(word) SaveDC
31  pascal SetPixel(word s_word s_word long) SetPixel
32  pascal16 OffsetClipRgn(word s_word s_word) OffsetClipRgn
33  pascal16 TextOut(word s_word s_word ptr word) TextOut
34  pascal16 BitBlt( word s_word s_word s_word s_word word s_word s_word long)
             BitBlt
35  pascal16 StretchBlt(word s_word s_word s_word s_word word s_word s_word
                        s_word s_word long) StretchBlt
36  pascal16 Polygon (word ptr word) Polygon 
37  pascal16 Polyline (word ptr word) Polyline 
38  pascal Escape(word word word ptr ptr) Escape
39  pascal16 RestoreDC(word s_word) RestoreDC
40  pascal16 FillRgn(word word word) FillRgn
#41  pascal FrameRgn
42  pascal16 InvertRgn(word word) InvertRgn
43  pascal16 PaintRgn(word word) PaintRgn
44  pascal16 SelectClipRgn(word word) SelectClipRgn
45  pascal16 SelectObject(word word) SelectObject
#46  pascal __GP?
47  pascal16 CombineRgn(word word word word) CombineRgn
48  pascal16 CreateBitmap(word word word word ptr) CreateBitmap
49  pascal16 CreateBitmapIndirect(ptr) CreateBitmapIndirect
50  pascal16 CreateBrushIndirect(ptr) CreateBrushIndirect
51  pascal16 CreateCompatibleBitmap(word word word) CreateCompatibleBitmap
52  pascal16 CreateCompatibleDC(word) CreateCompatibleDC
53  pascal16 CreateDC(ptr ptr ptr ptr) CreateDC
54  pascal16 CreateEllipticRgn(s_word s_word s_word s_word) CreateEllipticRgn
55  pascal16 CreateEllipticRgnIndirect(ptr) CreateEllipticRgnIndirect
56  pascal16 CreateFont(s_word s_word s_word s_word s_word word word word
                        word word word word word ptr) CreateFont
57  pascal16 CreateFontIndirect(ptr) CreateFontIndirect
58  pascal16 CreateHatchBrush(word long) CreateHatchBrush
60  pascal16 CreatePatternBrush(word) CreatePatternBrush
61  pascal16 CreatePen(s_word s_word long) CreatePen
62  pascal16 CreatePenIndirect(ptr) CreatePenIndirect
63  pascal16 CreatePolygonRgn(ptr word word) CreatePolygonRgn
64  pascal16 CreateRectRgn(s_word s_word s_word s_word) CreateRectRgn
65  pascal16 CreateRectRgnIndirect(ptr) CreateRectRgnIndirect
66  pascal16 CreateSolidBrush(long) CreateSolidBrush
67  pascal16 DPtoLP(word ptr s_word) DPtoLP
68  pascal16 DeleteDC(word) DeleteDC
69  pascal16 DeleteObject(word) DeleteObject
70  pascal16 EnumFonts(word ptr segptr long) EnumFonts
71  pascal16 EnumObjects(word word ptr long) EnumObjects
72  pascal16 EqualRgn(word word) EqualRgn
73  pascal16 ExcludeVisRect(word s_word s_word s_word s_word) ExcludeVisRect
74  pascal GetBitmapBits(word long ptr) GetBitmapBits
75  pascal GetBkColor(word) GetBkColor
76  pascal16 GetBkMode(word) GetBkMode
77  pascal16 GetClipBox(word ptr) GetClipBox
78  pascal GetCurrentPosition(word) GetCurrentPosition
79  pascal GetDCOrg(word) GetDCOrg
80  pascal16 GetDeviceCaps(word s_word) GetDeviceCaps
81  pascal16 GetMapMode(word) GetMapMode
82  pascal16 GetObject(word word ptr) GetObject
83  pascal GetPixel(word s_word s_word) GetPixel
84  pascal16 GetPolyFillMode(word) GetPolyFillMode
85  pascal16 GetROP2(word) GetROP2
86  pascal16 GetRelAbs(word) GetRelAbs
87  pascal16 GetStockObject(word) GetStockObject
88  pascal16 GetStretchBltMode(word) GetStretchBltMode
89  pascal16 GetTextCharacterExtra(word) GetTextCharacterExtra
90  pascal GetTextColor(word) GetTextColor
91  pascal GetTextExtent(word ptr s_word) GetTextExtent
92  pascal16 GetTextFace(word s_word ptr) GetTextFace
93  pascal16 GetTextMetrics(word ptr) GetTextMetrics
94  pascal GetViewportExt(word) GetViewportExt
95  pascal GetViewportOrg(word) GetViewportOrg
96  pascal GetWindowExt(word) GetWindowExt
97  pascal GetWindowOrg(word) GetWindowOrg
98  pascal16 IntersectVisRect(word s_word s_word s_word s_word)
             IntersectVisRect
99  pascal16 LPtoDP(word ptr s_word) LPtoDP
100 pascal16 LineDDA(s_word s_word s_word s_word segptr long) LineDDA
101 pascal16 OffsetRgn(word s_word s_word) OffsetRgn
102 pascal16 OffsetVisRgn(word s_word s_word) OffsetVisRgn
103 pascal16 PtVisible(word s_word s_word) PtVisible
104 pascal16 RectVisibleOld(word ptr) RectVisible
105 pascal16 SelectVisRgn(word word) SelectVisRgn
106 pascal SetBitmapBits(word long ptr) SetBitmapBits
117 pascal SetDCOrg(word s_word s_word) SetDCOrg
119 pascal16 AddFontResource(ptr) AddFontResource
#121 pascal Death
#122 pascal ReSurRection
123 pascal16 PlayMetaFile(word word) PlayMetaFile
124 pascal16 GetMetaFile(ptr) GetMetaFile
125 pascal16 CreateMetaFile(ptr) CreateMetaFile
126 pascal16 CloseMetaFile(word) CloseMetaFile
127 pascal16 DeleteMetaFile(word) DeleteMetaFile
128 pascal MulDiv(s_word s_word s_word) MulDiv
129 pascal16 SaveVisRgn(word) SaveVisRgn
130 pascal16 RestoreVisRgn(word) RestoreVisRgn
131 pascal16 InquireVisRgn(word) InquireVisRgn
132 pascal16 SetEnvironment(ptr ptr word) SetEnvironment
133 pascal16 GetEnvironment(ptr ptr word) GetEnvironment
134 pascal16 GetRgnBox(word ptr) GetRgnBox
#135 pascal ScanLr
136 pascal16 RemoveFontResource(ptr) RemoveFontResource
148 pascal SetBrushOrg(word s_word s_word) SetBrushOrg
149 pascal GetBrushOrg(word) GetBrushOrg
150 pascal16 UnrealizeObject(word) UnrealizeObject
#151 pascal CopyMetaFile
153 pascal16 CreateIC(ptr ptr ptr ptr) CreateIC
154 pascal GetNearestColor(word long) GetNearestColor
#155 pascal QueryAbort
156 pascal16 CreateDiscardableBitmap(word word word) CreateDiscardableBitmap
#159 pascal GetMetaFileBits
#160 pascal SetMetaFileBits
161 pascal16 PtInRegion(word s_word s_word) PtInRegion
162 pascal GetBitmapDimension(word) GetBitmapDimension
163 pascal SetBitmapDimension(word s_word s_word) SetBitmapDimension
#169 pascal IsDCDirty
#170 pascal SetDCStatus
172 pascal16 SetRectRgn(word s_word s_word s_word s_word) SetRectRgn
173 pascal16 GetClipRgn(word) GetClipRgn
#175 pascal EnumMetaFile
176 pascal16 PlayMetaFileRecord(word ptr ptr word) PlayMetaFileRecord
179 pascal16 GetDCState(word) GetDCState
180 pascal16 SetDCState(word word) SetDCState
181 pascal16 RectInRegionOld(word ptr) RectInRegion
#190 pascal SetDCHook
#191 pascal GetDCHook
#192 pascal SetHookFlags
#193 pascal SetBoundsRect
#194 pascal GetBoundsRect
#195 pascal SelectBitmap
#196 pascal SetMetaFileBitsBetter
#201 pascal DMBITBLT
#202 pascal DMCOLORINFO
#206 pascal DMENUMDFONTS
#207 pascal DMENUMOBJ
#208 pascal DMOUTPUT
#209 pascal DMPIXEL
#210 pascal DMREALIZEOBJECT
#211 pascal DMSTRBLT
#212 pascal DMSCANLR
#213 pascal BRUTE
#214 pascal DMEXTTEXTOUT
#215 pascal DMGETCHARWIDTH
#216 pascal DMSTRETCHBLT
#217 pascal DMDIBBITS
#218 pascal DMSTRETCHDIBITS
#219 pascal DMSETDIBTODEV
#220 pascal DMTRANSPOSE
#230 pascal CREATEPQ
#231 pascal MINPQ
#232 pascal EXTRACTPQ
#233 pascal INSERTPQ
#234 pascal SIZEPQ
#235 pascal DELETEPQ
#240 pascal OPENJOB
#241 pascal WRITESPOOL
#242 pascal WRITEDIALOG
#243 pascal CLOSEJOB
#244 pascal DELETEJOB
#245 pascal GETSPOOLJOB
#246 pascal STARTSPOOLPAGE
#247 pascal ENDSPOOLPAGE
#248 pascal QUERYJOB
250 pascal16 Copy(ptr ptr word) Copy
#253 pascal DeleteSpoolPage
#254 pascal SpoolFile
#300 pascal ENGINEENUMERATEFONT
#301 pascal ENGINEDELETEFONT
#302 pascal ENGINEREALIZEFONT
#303 pascal ENGINEGETCHARWIDTH
#304 pascal ENGINESETFONTCONTEXT
#305 pascal ENGINEGETGLYPHBMP
#306 pascal ENGINEMAKEFONTDIR
#307 pascal GETCHARABCWIDTHS
#308 pascal GETOUTLINETEXTMETRICS
#309 pascal GETGLYPHOUTLINE
#310 pascal CREATESCALABLEFONTRESOURCE
#311 pascal GETFONTDATA
#312 pascal CONVERTOUTLINEFONTFILE
#313 pascal GETRASTERIZERCAPS
#314 pascal ENGINEEXTTEXTOUT
330 pascal16 EnumFontFamilies(word ptr segptr long) EnumFontFamilies
#332 pascal GETKERNINGPAIRS
345 pascal16 GetTextAlign(word) GetTextAlign
346 pascal16 SetTextAlign(word word) SetTextAlign
348 pascal16 Chord(word s_word s_word s_word s_word s_word s_word
                   s_word s_word) Chord
349 pascal SetMapperFlags(word word) SetMapperFlags
350 pascal16 GetCharWidth(word word word ptr) GetCharWidth
351 pascal16 ExtTextOut(word s_word s_word word ptr ptr s_word ptr) ExtTextOut
#352 pascal GETPHYSICALFONTHANDLE
#353 pascal GETASPECTRATIOFILTER
#354 pascal SHRINKGDIHEAP
360 pascal16 CreatePalette(ptr) CreatePalette
361 pascal16 GDISelectPalette(word word) GDISelectPalette
362 pascal16 GDIRealizePalette(word) GDIRealizePalette
363 pascal16 GetPaletteEntries(word word word ptr) GetPaletteEntries
364 pascal16 SetPaletteEntries(word word word ptr) SetPaletteEntries
365 pascal16 RealizeDefaultPalette(word) RealizeDefaultPalette
#366 pascal UPDATECOLORS
#367 pascal ANIMATEPALETTE
#368 pascal RESIZEPALETTE
370 pascal16 GetNearestPaletteIndex(word long) GetNearestPaletteIndex
372 pascal16 ExtFloodFill(word s_word s_word long word) ExtFloodFill
375 pascal16 GetSystemPaletteEntries(word word word ptr)
             GetSystemPaletteEntries
#376 pascal RESETDC
#377 pascal STARTDOC
#378 pascal ENDDOC
#379 pascal STARTPAGE
#380 pascal ENDPAGE
#381 pascal SETABORTPROC
#382 pascal ABORTDOC
#400 pascal FASTWINDOWFRAME
#401 pascal GDIMOVEBITMAP
#403 pascal GDIINIT2
#405 pascal FINALGDIINIT
#407 pascal CREATEUSERBITMAP
#409 pascal CREATEUSERDISCARDABLEBITMAP
#410 pascal ISVALIDMETAFILE
411 pascal16 GetCurLogFont(word) GetCurLogFont
#412 pascal ISDCCURRENTPALETTE
#439 pascal STRETCHDIBITS
440 pascal16 SetDIBits(word word word word ptr ptr word) SetDIBits
441 pascal16 GetDIBits(word word word word ptr ptr word) GetDIBits
442 pascal16 CreateDIBitmap(word ptr long ptr ptr word) CreateDIBitmap
443 pascal16 SetDIBitsToDevice(word s_word s_word word word word word
                               word word ptr ptr word) SetDIBitsToDevice
444 pascal16 CreateRoundRectRgn(s_word s_word s_word s_word s_word s_word)
             CreateRoundRectRgn
445 pascal16 CreateDIBPatternBrush(word word) CreateDIBPatternBrush
#449 pascal DEVICECOLORMATCH
450 pascal16 PolyPolygon(word ptr ptr word) PolyPolygon
451 pascal16 CreatePolyPolygonRgn(ptr ptr word word) CreatePolyPolygonRgn
#452 pascal GDISEEGDIDO
#460 pascal GDITASKTERMINATION
461 return SetObjectOwner 4 0
462 pascal16 IsGDIObject(word) IsGDIObject
#463 pascal MAKEOBJECTPRIVATE
#464 pascal FIXUPBOGUSPUBLISHERMETAFILE
465 pascal16 RectVisible(word ptr) RectVisible
466 pascal16 RectInRegion(word ptr) RectInRegion
#467 pascal UNICODETOANSI
468 pascal16 GetBitmapDimensionEx(word ptr) GetBitmapDimensionEx
469 pascal16 GetBrushOrgEx(word ptr) GetBrushOrgEx
470 pascal16 GetCurrentPositionEx(word ptr) GetCurrentPositionEx
471 pascal16 GetTextExtentPoint(word ptr s_word ptr) GetTextExtentPoint
472 pascal16 GetViewportExtEx(word ptr) GetViewportExtEx
473 pascal16 GetViewportOrgEx(word ptr) GetViewportOrgEx
474 pascal16 GetWindowExtEx(word ptr) GetWindowExtEx
475 pascal16 GetWindowOrgEx(word ptr) GetWindowOrgEx
476 pascal16 OffsetViewportOrgEx(word s_word s_word ptr) OffsetViewportOrgEx
477 pascal16 OffsetWindowOrgEx(word s_word s_word ptr) OffsetWindowOrgEx
478 pascal16 SetBitmapDimensionEx(word s_word s_word ptr) SetBitmapDimensionEx
479 pascal16 SetViewportExtEx(word s_word s_word ptr) SetViewportExtEx
480 pascal16 SetViewportOrgEx(word s_word s_word ptr) SetViewportOrgEx
481 pascal16 SetWindowExtEx(word s_word s_word ptr) SetWindowExtEx
482 pascal16 SetWindowOrgEx(word s_word s_word ptr) SetWindowOrgEx
483 pascal16 MoveToEx(word s_word s_word ptr) MoveToEx
484 pascal16 ScaleViewportExtEx(word s_word s_word s_word s_word ptr)
             ScaleViewportExtEx
485 pascal16 ScaleWindowExtEx(word s_word s_word s_word s_word ptr)
             ScaleWindowExtEx
#486 pascal GETASPECTRATIOFILEREX
