8 use vars qw(@ISA @EXPORT @EXPORT_OK);
14 my $module_declarations = {
15 "AbortDoc" => ["long", ["long"]],
16 "AbortPath" => ["long", ["long"]],
17 "AddFontResourceA" => ["long", ["str"]],
18 "AddFontResourceW" => ["long", ["wstr"]],
19 "AngleArc" => ["long", ["long", "long", "long", "long", "long", "long"]],
20 "AnimatePalette" => ["long", ["long", "long", "long", "ptr"]],
21 "Arc" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
22 "ArcTo" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
23 "BeginPath" => ["long", ["long"]],
24 "BitBlt" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
25 "ChoosePixelFormat" => ["long", ["long", "ptr"]],
26 "Chord" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
27 "CloseEnhMetaFile" => ["long", ["long"]],
28 "CloseFigure" => ["long", ["long"]],
29 "CloseMetaFile" => ["long", ["long"]],
30 "CloseMetaFile16" => ["long", ["long"]],
31 "CombineRgn" => ["long", ["long", "long", "long", "long"]],
32 "CombineTransform" => ["long", ["ptr", "ptr", "ptr"]],
33 "CopyEnhMetaFileA" => ["long", ["long", "str"]],
34 "CopyMetaFileA" => ["long", ["long", "str"]],
35 "CopyMetaFileW" => ["long", ["long", "wstr"]],
36 "CreateBitmap" => ["long", ["long", "long", "long", "long", "ptr"]],
37 "CreateBitmapIndirect" => ["long", ["ptr"]],
38 "CreateBrushIndirect" => ["long", ["ptr"]],
39 "CreateColorSpaceA" => ["long", ["ptr"]],
40 "CreateColorSpaceW" => ["long", ["ptr"]],
41 "CreateCompatibleBitmap" => ["long", ["long", "long", "long"]],
42 "CreateCompatibleDC" => ["long", ["long"]],
43 "CreateDCA" => ["long", ["str", "str", "str", "ptr"]],
44 "CreateDCW" => ["long", ["wstr", "wstr", "wstr", "ptr"]],
45 "CreateDIBPatternBrush" => ["long", ["long", "long"]],
46 "CreateDIBPatternBrushPt" => ["long", ["ptr", "long"]],
47 "CreateDIBSection" => ["long", ["long", "ptr", "long", "ptr", "long", "long"]],
48 "CreateDIBitmap" => ["long", ["long", "ptr", "long", "ptr", "ptr", "long"]],
49 "CreateDiscardableBitmap" => ["long", ["long", "long", "long"]],
50 "CreateEllipticRgn" => ["long", ["long", "long", "long", "long"]],
51 "CreateEllipticRgnIndirect" => ["long", ["ptr"]],
52 "CreateEnhMetaFileA" => ["long", ["long", "str", "ptr", "str"]],
53 "CreateEnhMetaFileW" => ["long", ["long", "wstr", "ptr", "wstr"]],
54 "CreateFontA" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "str"]],
55 "CreateFontIndirectA" => ["long", ["ptr"]],
56 "CreateFontIndirectW" => ["long", ["ptr"]],
57 "CreateFontW" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "wstr"]],
58 "CreateHalftonePalette" => ["long", ["long"]],
59 "CreateHatchBrush" => ["long", ["long", "long"]],
60 "CreateICA" => ["long", ["str", "str", "str", "ptr"]],
61 "CreateICW" => ["long", ["wstr", "wstr", "wstr", "ptr"]],
62 "CreateMetaFile16" => ["long", ["str"]],
63 "CreateMetaFileA" => ["long", ["str"]],
64 "CreateMetaFileW" => ["long", ["wstr"]],
65 "CreatePalette" => ["long", ["ptr"]],
66 "CreatePatternBrush" => ["long", ["long"]],
67 "CreatePen" => ["long", ["long", "long", "long"]],
68 "CreatePenIndirect" => ["long", ["ptr"]],
69 "CreatePolyPolygonRgn" => ["long", ["ptr", "ptr", "long", "long"]],
70 "CreatePolygonRgn" => ["long", ["ptr", "long", "long"]],
71 "CreateRectRgn" => ["long", ["long", "long", "long", "long"]],
72 "CreateRectRgnIndirect" => ["long", ["ptr"]],
73 "CreateRoundRectRgn" => ["long", ["long", "long", "long", "long", "long", "long"]],
74 "CreateScalableFontResourceA" => ["long", ["long", "str", "str", "str"]],
75 "CreateScalableFontResourceW" => ["long", ["long", "wstr", "wstr", "wstr"]],
76 "CreateSolidBrush" => ["long", ["long"]],
77 "DPtoLP" => ["long", ["long", "ptr", "long"]],
78 "DeleteColorSpace" => ["long", ["long"]],
79 "DeleteDC" => ["long", ["long"]],
80 "DeleteEnhMetaFile" => ["long", ["long"]],
81 "DeleteMetaFile" => ["long", ["long"]],
82 "DeleteObject" => ["long", ["long"]],
83 "DescribePixelFormat" => ["long", ["long", "long", "long", "ptr"]],
84 "DrawEscape" => ["long", ["long", "long", "long", "str"]],
85 "Ellipse" => ["long", ["long", "long", "long", "long", "long"]],
86 "EndDoc" => ["long", ["long"]],
87 "EndPage" => ["long", ["long"]],
88 "EndPath" => ["long", ["long"]],
89 "EnumEnhMetaFile" => ["long", ["long", "long", "ptr", "ptr", "ptr"]],
90 "EnumFontFamiliesA" => ["long", ["long", "str", "ptr", "long"]],
91 "EnumFontFamiliesExA" => ["long", ["long", "ptr", "ptr", "long", "long"]],
92 "EnumFontFamiliesExW" => ["long", ["long", "ptr", "ptr", "long", "long"]],
93 "EnumFontFamiliesW" => ["long", ["long", "wstr", "ptr", "long"]],
94 "EnumFontsA" => ["long", ["long", "str", "ptr", "long"]],
95 "EnumFontsW" => ["long", ["long", "wstr", "ptr", "long"]],
96 "EnumMetaFile" => ["long", ["long", "long", "ptr", "long"]],
97 "EnumObjects" => ["long", ["long", "long", "ptr", "long"]],
98 "EqualRgn" => ["long", ["long", "long"]],
99 "Escape" => ["long", ["long", "long", "long", "str", "ptr"]],
100 "ExcludeClipRect" => ["long", ["long", "long", "long", "long", "long"]],
101 "ExtCreatePen" => ["long", ["long", "long", "ptr", "long", "ptr"]],
102 "ExtCreateRegion" => ["long", ["ptr", "long", "ptr"]],
103 "ExtEscape" => ["long", ["long", "long", "long", "str", "long", "str"]],
104 "ExtFloodFill" => ["long", ["long", "long", "long", "long", "long"]],
105 "ExtSelectClipRgn" => ["long", ["long", "long", "long"]],
106 "ExtTextOutA" => ["long", ["long", "long", "long", "long", "ptr", "str", "long", "ptr"]],
107 "ExtTextOutW" => ["long", ["long", "long", "long", "long", "ptr", "wstr", "long", "ptr"]],
108 "FillPath" => ["long", ["long"]],
109 "FillRgn" => ["long", ["long", "long", "long"]],
110 "FixBrushOrgEx" => ["long", ["long", "long", "long", "ptr"]],
111 "FlattenPath" => ["long", ["long"]],
112 "FloodFill" => ["long", ["long", "long", "long", "long"]],
113 "FrameRgn" => ["long", ["long", "long", "long", "long", "long"]],
114 "GdiComment" => ["long", ["long", "long", "ptr"]],
115 "GdiFlush" => ["long", []],
116 "GdiGetBatchLimit" => ["long", []],
117 "GdiSetBatchLimit" => ["long", ["long"]],
118 "GetArcDirection" => ["long", ["long"]],
119 "GetAspectRatioFilterEx" => ["long", ["long", "ptr"]],
120 "GetBitmapBits" => ["long", ["long", "long", "ptr"]],
121 "GetBitmapDimensionEx" => ["long", ["long", "ptr"]],
122 "GetBkColor" => ["long", ["long"]],
123 "GetBkMode" => ["long", ["long"]],
124 "GetBoundsRect" => ["long", ["long", "ptr", "long"]],
125 "GetBrushOrgEx" => ["long", ["long", "ptr"]],
126 "GetCharABCWidthsA" => ["long", ["long", "long", "long", "ptr"]],
127 "GetCharABCWidthsFloatA" => ["long", ["long", "long", "long", "ptr"]],
128 "GetCharABCWidthsFloatW" => ["long", ["long", "long", "long", "ptr"]],
129 "GetCharABCWidthsW" => ["long", ["long", "long", "long", "ptr"]],
130 "GetCharWidth32A" => ["long", ["long", "long", "long", "ptr"]],
131 "GetCharWidth32W" => ["long", ["long", "long", "long", "ptr"]],
132 "GetCharWidthA" => ["long", ["long", "long", "long", "ptr"]],
133 "GetCharWidthFloatA" => ["long", ["long", "long", "long", "ptr"]],
134 "GetCharWidthFloatW" => ["long", ["long", "long", "long", "ptr"]],
135 "GetCharWidthW" => ["long", ["long", "long", "long", "ptr"]],
136 "GetCharacterPlacementA" => ["long", ["long", "str", "long", "long", "ptr", "long"]],
137 "GetCharacterPlacementW" => ["long", ["long", "wstr", "long", "long", "ptr", "long"]],
138 "GetClipBox" => ["long", ["long", "ptr"]],
139 "GetClipRgn" => ["long", ["long", "long"]],
140 "GetColorAdjustment" => ["long", ["long", "ptr"]],
141 "GetColorSpace" => ["long", ["long"]],
142 "GetCurrentObject" => ["long", ["long", "long"]],
143 "GetCurrentPositionEx" => ["long", ["long", "ptr"]],
144 "GetDCOrgEx" => ["long", ["long", "ptr"]],
145 "GetDIBColorTable" => ["long", ["long", "long", "long", "ptr"]],
146 "GetDIBits" => ["long", ["long", "long", "long", "long", "ptr", "ptr", "long"]],
147 "GetDeviceCaps" => ["long", ["long", "long"]],
148 "GetDeviceGammaRamp" => ["long", ["long", "ptr"]],
149 "GetEnhMetaFileA" => ["long", ["str"]],
150 "GetEnhMetaFileBits" => ["long", ["long", "long", "ptr"]],
151 "GetEnhMetaFileDescriptionA" => ["long", ["long", "long", "str"]],
152 "GetEnhMetaFileDescriptionW" => ["long", ["long", "long", "wstr"]],
153 "GetEnhMetaFileHeader" => ["long", ["long", "long", "ptr"]],
154 "GetEnhMetaFilePaletteEntries" => ["long", ["long", "long", "ptr"]],
155 "GetEnhMetaFileW" => ["long", ["wstr"]],
156 "GetFontData" => ["long", ["long", "long", "long", "ptr", "long"]],
157 "GetFontLanguageInfo" => ["long", ["long"]],
158 "GetGlyphIndicesA" => ["long", ["long", "str", "long", "ptr", "long"]],
159 "GetGlyphIndicesW" => ["long", ["long", "wstr", "long", "ptr", "long"]],
160 "GetGlyphOutlineA" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
161 "GetGlyphOutlineW" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
162 "GetGraphicsMode" => ["long", ["long"]],
163 "GetICMProfileA" => ["long", ["long", "ptr", "str"]],
164 "GetKerningPairsA" => ["long", ["long", "long", "ptr"]],
165 "GetKerningPairsW" => ["long", ["long", "long", "ptr"]],
166 "GetLayout" => ["long", ["long"]],
167 "GetMapMode" => ["long", ["long"]],
168 "GetMetaFileA" => ["long", ["str"]],
169 "GetMetaFileBitsEx" => ["long", ["long", "long", "ptr"]],
170 "GetMetaFileW" => ["long", ["wstr"]],
171 "GetMetaRgn" => ["long", ["long", "long"]],
172 "GetMiterLimit" => ["long", ["long", "ptr"]],
173 "GetNearestColor" => ["long", ["long", "long"]],
174 "GetNearestPaletteIndex" => ["long", ["long", "long"]],
175 "GetObjectA" => ["long", ["long", "long", "ptr"]],
176 "GetObjectType" => ["long", ["long"]],
177 "GetObjectW" => ["long", ["long", "long", "ptr"]],
178 "GetOutlineTextMetricsA" => ["long", ["long", "long", "ptr"]],
179 "GetOutlineTextMetricsW" => ["long", ["long", "long", "ptr"]],
180 "GetPaletteEntries" => ["long", ["long", "long", "long", "ptr"]],
181 "GetPath" => ["long", ["long", "ptr", "ptr", "long"]],
182 "GetPixel" => ["long", ["long", "long", "long"]],
183 "GetPixelFormat" => ["long", ["long"]],
184 "GetPolyFillMode" => ["long", ["long"]],
185 "GetROP2" => ["long", ["long"]],
186 "GetRandomRgn" => ["long", ["long", "long", "long"]],
187 "GetRasterizerCaps" => ["long", ["ptr", "long"]],
188 "GetRegionData" => ["long", ["long", "long", "ptr"]],
189 "GetRelAbs" => ["long", ["long", "long"]],
190 "GetRgnBox" => ["long", ["long", "ptr"]],
191 "GetStockObject" => ["long", ["long"]],
192 "GetStretchBltMode" => ["long", ["long"]],
193 "GetSystemPaletteEntries" => ["long", ["long", "long", "long", "ptr"]],
194 "GetSystemPaletteUse" => ["long", ["long"]],
195 "GetTextAlign" => ["long", ["long"]],
196 "GetTextCharacterExtra" => ["long", ["long"]],
197 "GetTextCharset" => ["long", ["long"]],
198 "GetTextCharsetInfo" => ["long", ["long", "ptr", "long"]],
199 "GetTextColor" => ["long", ["long"]],
200 "GetTextExtentExPointA" => ["long", ["long", "str", "long", "long", "ptr", "ptr", "ptr"]],
201 "GetTextExtentExPointW" => ["long", ["long", "wstr", "long", "long", "ptr", "ptr", "ptr"]],
202 "GetTextExtentPoint32A" => ["long", ["long", "str", "long", "ptr"]],
203 "GetTextExtentPoint32W" => ["long", ["long", "wstr", "long", "ptr"]],
204 "GetTextExtentPointA" => ["long", ["long", "str", "long", "ptr"]],
205 "GetTextExtentPointI" => ["long", ["long", "ptr", "long", "ptr"]],
206 "GetTextExtentPointW" => ["long", ["long", "wstr", "long", "ptr"]],
207 "GetTextFaceA" => ["long", ["long", "long", "str"]],
208 "GetTextFaceW" => ["long", ["long", "long", "wstr"]],
209 "GetTextMetricsA" => ["long", ["long", "ptr"]],
210 "GetTextMetricsW" => ["long", ["long", "ptr"]],
211 "GetViewportExtEx" => ["long", ["long", "ptr"]],
212 "GetViewportOrgEx" => ["long", ["long", "ptr"]],
213 "GetWinMetaFileBits" => ["long", ["long", "long", "ptr", "long", "long"]],
214 "GetWindowExtEx" => ["long", ["long", "ptr"]],
215 "GetWindowOrgEx" => ["long", ["long", "ptr"]],
216 "GetWorldTransform" => ["long", ["long", "ptr"]],
217 "IntersectClipRect" => ["long", ["long", "long", "long", "long", "long"]],
218 "InvertRgn" => ["long", ["long", "long"]],
219 "LPtoDP" => ["long", ["long", "ptr", "long"]],
220 "LineDDA" => ["long", ["long", "long", "long", "long", "ptr", "long"]],
221 "LineTo" => ["long", ["long", "long", "long"]],
222 "MaskBlt" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long"]],
223 "ModifyWorldTransform" => ["long", ["long", "ptr", "long"]],
224 "MoveToEx" => ["long", ["long", "long", "long", "ptr"]],
225 "OffsetClipRgn" => ["long", ["long", "long", "long"]],
226 "OffsetRgn" => ["long", ["long", "long", "long"]],
227 "OffsetViewportOrgEx" => ["long", ["long", "long", "long", "ptr"]],
228 "OffsetWindowOrgEx" => ["long", ["long", "long", "long", "ptr"]],
229 "PaintRgn" => ["long", ["long", "long"]],
230 "PatBlt" => ["long", ["long", "long", "long", "long", "long", "long"]],
231 "PathToRegion" => ["long", ["long"]],
232 "Pie" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
233 "PlayEnhMetaFile" => ["long", ["long", "long", "ptr"]],
234 "PlayEnhMetaFileRecord" => ["long", ["long", "ptr", "ptr", "long"]],
235 "PlayMetaFile" => ["long", ["long", "long"]],
236 "PlayMetaFileRecord" => ["long", ["long", "ptr", "ptr", "long"]],
237 "PlgBlt" => ["long", ["long", "ptr", "long", "long", "long", "long", "long", "long", "long", "long"]],
238 "PolyBezier" => ["long", ["long", "ptr", "long"]],
239 "PolyBezierTo" => ["long", ["long", "ptr", "long"]],
240 "PolyDraw" => ["long", ["long", "ptr", "ptr", "long"]],
241 "PolyPolygon" => ["long", ["long", "ptr", "ptr", "long"]],
242 "PolyPolyline" => ["long", ["long", "ptr", "ptr", "long"]],
243 "PolyTextOutA" => ["long", ["long", "ptr", "long"]],
244 "PolyTextOutW" => ["long", ["long", "ptr", "long"]],
245 "Polygon" => ["long", ["long", "ptr", "long"]],
246 "Polyline" => ["long", ["long", "ptr", "long"]],
247 "PolylineTo" => ["long", ["long", "ptr", "long"]],
248 "PtInRegion" => ["long", ["long", "long", "long"]],
249 "PtVisible" => ["long", ["long", "long", "long"]],
250 "RealizePalette" => ["long", ["long"]],
251 "RectInRegion" => ["long", ["long", "ptr"]],
252 "RectVisible" => ["long", ["long", "ptr"]],
253 "Rectangle" => ["long", ["long", "long", "long", "long", "long"]],
254 "RemoveFontResourceA" => ["long", ["str"]],
255 "RemoveFontResourceW" => ["long", ["wstr"]],
256 "ResetDCA" => ["long", ["long", "ptr"]],
257 "ResetDCW" => ["long", ["long", "ptr"]],
258 "ResizePalette" => ["long", ["long", "long"]],
259 "RestoreDC" => ["long", ["long", "long"]],
260 "RoundRect" => ["long", ["long", "long", "long", "long", "long", "long", "long"]],
261 "SaveDC" => ["long", ["long"]],
262 "ScaleViewportExtEx" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
263 "ScaleWindowExtEx" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
264 "SelectClipPath" => ["long", ["long", "long"]],
265 "SelectClipRgn" => ["long", ["long", "long"]],
266 "SelectObject" => ["long", ["long", "long"]],
267 "SelectPalette" => ["long", ["long", "long", "long"]],
268 "SetAbortProc" => ["long", ["long", "ptr"]],
269 "SetArcDirection" => ["long", ["long", "long"]],
270 "SetBitmapBits" => ["long", ["long", "long", "ptr"]],
271 "SetBitmapDimensionEx" => ["long", ["long", "long", "long", "ptr"]],
272 "SetBkColor" => ["long", ["long", "long"]],
273 "SetBkMode" => ["long", ["long", "long"]],
274 "SetBoundsRect" => ["long", ["long", "ptr", "long"]],
275 "SetBrushOrgEx" => ["long", ["long", "long", "long", "ptr"]],
276 "SetColorAdjustment" => ["long", ["long", "ptr"]],
277 "SetColorSpace" => ["long", ["long", "long"]],
278 "SetDCHook" => ["long", ["long", "ptr", "long"]],
279 "SetDIBColorTable" => ["long", ["long", "long", "long", "ptr"]],
280 "SetDIBits" => ["long", ["long", "long", "long", "long", "ptr", "ptr", "long"]],
281 "SetDIBitsToDevice" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr", "ptr", "long"]],
282 "SetDeviceGammaRamp" => ["long", ["long", "ptr"]],
283 "SetEnhMetaFileBits" => ["long", ["long", "ptr"]],
284 "SetGraphicsMode" => ["long", ["long", "long"]],
285 "SetICMMode" => ["long", ["long", "long"]],
286 "SetLayout" => ["long", ["long", "long"]],
287 "SetMapMode" => ["long", ["long", "long"]],
288 "SetMapperFlags" => ["long", ["long", "long"]],
289 "SetMetaFileBitsEx" => ["long", ["long", "ptr"]],
290 "SetMetaRgn" => ["long", ["long"]],
291 "SetMiterLimit" => ["long", ["long", "long", "ptr"]],
292 "SetObjectOwner" => ["void", ["long", "long"]],
293 "SetPaletteEntries" => ["long", ["long", "long", "long", "ptr"]],
294 "SetPixel" => ["long", ["long", "long", "long", "long"]],
295 "SetPixelFormat" => ["long", ["long", "long", "ptr"]],
296 "SetPixelV" => ["long", ["long", "long", "long", "long"]],
297 "SetPolyFillMode" => ["long", ["long", "long"]],
298 "SetROP2" => ["long", ["long", "long"]],
299 "SetRectRgn" => ["long", ["long", "long", "long", "long", "long"]],
300 "SetRelAbs" => ["long", ["long", "long"]],
301 "SetStretchBltMode" => ["long", ["long", "long"]],
302 "SetSystemPaletteUse" => ["long", ["long", "long"]],
303 "SetTextAlign" => ["long", ["long", "long"]],
304 "SetTextCharacterExtra" => ["long", ["long", "long"]],
305 "SetTextColor" => ["long", ["long", "long"]],
306 "SetTextJustification" => ["long", ["long", "long", "long"]],
307 "SetViewportExtEx" => ["long", ["long", "long", "long", "ptr"]],
308 "SetViewportOrgEx" => ["long", ["long", "long", "long", "ptr"]],
309 "SetWinMetaFileBits" => ["long", ["long", "ptr", "long", "ptr"]],
310 "SetWindowExtEx" => ["long", ["long", "long", "long", "ptr"]],
311 "SetWindowOrgEx" => ["long", ["long", "long", "long", "ptr"]],
312 "SetWorldTransform" => ["long", ["long", "ptr"]],
313 "StartDocA" => ["long", ["long", "ptr"]],
314 "StartDocW" => ["long", ["long", "ptr"]],
315 "StartPage" => ["long", ["long"]],
316 "StretchBlt" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long"]],
317 "StretchDIBits" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr", "ptr", "long", "long"]],
318 "StrokeAndFillPath" => ["long", ["long"]],
319 "StrokePath" => ["long", ["long"]],
320 "SwapBuffers" => ["long", ["long"]],
321 "TextOutA" => ["long", ["long", "long", "long", "str", "long"]],
322 "TextOutW" => ["long", ["long", "long", "long", "wstr", "long"]],
323 "TranslateCharsetInfo" => ["long", ["ptr", "ptr", "long"]],
324 "UnrealizeObject" => ["long", ["long"]],
325 "UpdateColors" => ["long", ["long"]],
326 "WidenPath" => ["long", ["long"]]
329 &wine::declare("gdi32",%$module_declarations);
330 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));