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 "GetGlyphOutlineA" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
159 "GetGlyphOutlineW" => ["long", ["long", "long", "long", "ptr", "long", "ptr", "ptr"]],
160 "GetGraphicsMode" => ["long", ["long"]],
161 "GetICMProfileA" => ["long", ["long", "ptr", "str"]],
162 "GetKerningPairsA" => ["long", ["long", "long", "ptr"]],
163 "GetKerningPairsW" => ["long", ["long", "long", "ptr"]],
164 "GetLayout" => ["long", ["long"]],
165 "GetMapMode" => ["long", ["long"]],
166 "GetMetaFileA" => ["long", ["str"]],
167 "GetMetaFileBitsEx" => ["long", ["long", "long", "ptr"]],
168 "GetMetaFileW" => ["long", ["wstr"]],
169 "GetMetaRgn" => ["long", ["long", "long"]],
170 "GetMiterLimit" => ["long", ["long", "ptr"]],
171 "GetNearestColor" => ["long", ["long", "long"]],
172 "GetNearestPaletteIndex" => ["long", ["long", "long"]],
173 "GetObjectA" => ["long", ["long", "long", "ptr"]],
174 "GetObjectType" => ["long", ["long"]],
175 "GetObjectW" => ["long", ["long", "long", "ptr"]],
176 "GetOutlineTextMetricsA" => ["long", ["long", "long", "ptr"]],
177 "GetOutlineTextMetricsW" => ["long", ["long", "long", "ptr"]],
178 "GetPaletteEntries" => ["long", ["long", "long", "long", "ptr"]],
179 "GetPath" => ["long", ["long", "ptr", "ptr", "long"]],
180 "GetPixel" => ["long", ["long", "long", "long"]],
181 "GetPixelFormat" => ["long", ["long"]],
182 "GetPolyFillMode" => ["long", ["long"]],
183 "GetROP2" => ["long", ["long"]],
184 "GetRandomRgn" => ["long", ["long", "long", "long"]],
185 "GetRasterizerCaps" => ["long", ["ptr", "long"]],
186 "GetRegionData" => ["long", ["long", "long", "ptr"]],
187 "GetRelAbs" => ["long", ["long", "long"]],
188 "GetRgnBox" => ["long", ["long", "ptr"]],
189 "GetStockObject" => ["long", ["long"]],
190 "GetStretchBltMode" => ["long", ["long"]],
191 "GetSystemPaletteEntries" => ["long", ["long", "long", "long", "ptr"]],
192 "GetSystemPaletteUse" => ["long", ["long"]],
193 "GetTextAlign" => ["long", ["long"]],
194 "GetTextCharacterExtra" => ["long", ["long"]],
195 "GetTextCharset" => ["long", ["long"]],
196 "GetTextCharsetInfo" => ["long", ["long", "ptr", "long"]],
197 "GetTextColor" => ["long", ["long"]],
198 "GetTextExtentExPointA" => ["long", ["long", "str", "long", "long", "ptr", "ptr", "ptr"]],
199 "GetTextExtentExPointW" => ["long", ["long", "wstr", "long", "long", "ptr", "ptr", "ptr"]],
200 "GetTextExtentPoint32A" => ["long", ["long", "str", "long", "ptr"]],
201 "GetTextExtentPoint32W" => ["long", ["long", "wstr", "long", "ptr"]],
202 "GetTextExtentPointA" => ["long", ["long", "str", "long", "ptr"]],
203 "GetTextExtentPointW" => ["long", ["long", "wstr", "long", "ptr"]],
204 "GetTextFaceA" => ["long", ["long", "long", "str"]],
205 "GetTextFaceW" => ["long", ["long", "long", "wstr"]],
206 "GetTextMetricsA" => ["long", ["long", "ptr"]],
207 "GetTextMetricsW" => ["long", ["long", "ptr"]],
208 "GetViewportExtEx" => ["long", ["long", "ptr"]],
209 "GetViewportOrgEx" => ["long", ["long", "ptr"]],
210 "GetWinMetaFileBits" => ["long", ["long", "long", "ptr", "long", "long"]],
211 "GetWindowExtEx" => ["long", ["long", "ptr"]],
212 "GetWindowOrgEx" => ["long", ["long", "ptr"]],
213 "GetWorldTransform" => ["long", ["long", "ptr"]],
214 "IntersectClipRect" => ["long", ["long", "long", "long", "long", "long"]],
215 "InvertRgn" => ["long", ["long", "long"]],
216 "LPtoDP" => ["long", ["long", "ptr", "long"]],
217 "LineDDA" => ["long", ["long", "long", "long", "long", "ptr", "long"]],
218 "LineTo" => ["long", ["long", "long", "long"]],
219 "MaskBlt" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long"]],
220 "ModifyWorldTransform" => ["long", ["long", "ptr", "long"]],
221 "MoveToEx" => ["long", ["long", "long", "long", "ptr"]],
222 "OffsetClipRgn" => ["long", ["long", "long", "long"]],
223 "OffsetRgn" => ["long", ["long", "long", "long"]],
224 "OffsetViewportOrgEx" => ["long", ["long", "long", "long", "ptr"]],
225 "OffsetWindowOrgEx" => ["long", ["long", "long", "long", "ptr"]],
226 "PaintRgn" => ["long", ["long", "long"]],
227 "PatBlt" => ["long", ["long", "long", "long", "long", "long", "long"]],
228 "PathToRegion" => ["long", ["long"]],
229 "Pie" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long"]],
230 "PlayEnhMetaFile" => ["long", ["long", "long", "ptr"]],
231 "PlayEnhMetaFileRecord" => ["long", ["long", "ptr", "ptr", "long"]],
232 "PlayMetaFile" => ["long", ["long", "long"]],
233 "PlayMetaFileRecord" => ["long", ["long", "ptr", "ptr", "long"]],
234 "PlgBlt" => ["long", ["long", "ptr", "long", "long", "long", "long", "long", "long", "long", "long"]],
235 "PolyBezier" => ["long", ["long", "ptr", "long"]],
236 "PolyBezierTo" => ["long", ["long", "ptr", "long"]],
237 "PolyDraw" => ["long", ["long", "ptr", "ptr", "long"]],
238 "PolyPolygon" => ["long", ["long", "ptr", "ptr", "long"]],
239 "PolyPolyline" => ["long", ["long", "ptr", "ptr", "long"]],
240 "PolyTextOutA" => ["long", ["long", "ptr", "long"]],
241 "PolyTextOutW" => ["long", ["long", "ptr", "long"]],
242 "Polygon" => ["long", ["long", "ptr", "long"]],
243 "Polyline" => ["long", ["long", "ptr", "long"]],
244 "PolylineTo" => ["long", ["long", "ptr", "long"]],
245 "PtInRegion" => ["long", ["long", "long", "long"]],
246 "PtVisible" => ["long", ["long", "long", "long"]],
247 "RealizePalette" => ["long", ["long"]],
248 "RectInRegion" => ["long", ["long", "ptr"]],
249 "RectVisible" => ["long", ["long", "ptr"]],
250 "Rectangle" => ["long", ["long", "long", "long", "long", "long"]],
251 "RemoveFontResourceA" => ["long", ["str"]],
252 "RemoveFontResourceW" => ["long", ["wstr"]],
253 "ResetDCA" => ["long", ["long", "ptr"]],
254 "ResetDCW" => ["long", ["long", "ptr"]],
255 "ResizePalette" => ["long", ["long", "long"]],
256 "RestoreDC" => ["long", ["long", "long"]],
257 "RoundRect" => ["long", ["long", "long", "long", "long", "long", "long", "long"]],
258 "SaveDC" => ["long", ["long"]],
259 "ScaleViewportExtEx" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
260 "ScaleWindowExtEx" => ["long", ["long", "long", "long", "long", "long", "ptr"]],
261 "SelectClipPath" => ["long", ["long", "long"]],
262 "SelectClipRgn" => ["long", ["long", "long"]],
263 "SelectObject" => ["long", ["long", "long"]],
264 "SelectPalette" => ["long", ["long", "long", "long"]],
265 "SetAbortProc" => ["long", ["long", "ptr"]],
266 "SetArcDirection" => ["long", ["long", "long"]],
267 "SetBitmapBits" => ["long", ["long", "long", "ptr"]],
268 "SetBitmapDimensionEx" => ["long", ["long", "long", "long", "ptr"]],
269 "SetBkColor" => ["long", ["long", "long"]],
270 "SetBkMode" => ["long", ["long", "long"]],
271 "SetBoundsRect" => ["long", ["long", "ptr", "long"]],
272 "SetBrushOrgEx" => ["long", ["long", "long", "long", "ptr"]],
273 "SetColorAdjustment" => ["long", ["long", "ptr"]],
274 "SetColorSpace" => ["long", ["long", "long"]],
275 "SetDCHook" => ["long", ["long", "ptr", "long"]],
276 "SetDIBColorTable" => ["long", ["long", "long", "long", "ptr"]],
277 "SetDIBits" => ["long", ["long", "long", "long", "long", "ptr", "ptr", "long"]],
278 "SetDIBitsToDevice" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr", "ptr", "long"]],
279 "SetDeviceGammaRamp" => ["long", ["long", "ptr"]],
280 "SetEnhMetaFileBits" => ["long", ["long", "ptr"]],
281 "SetGraphicsMode" => ["long", ["long", "long"]],
282 "SetICMMode" => ["long", ["long", "long"]],
283 "SetLayout" => ["long", ["long", "long"]],
284 "SetMapMode" => ["long", ["long", "long"]],
285 "SetMapperFlags" => ["long", ["long", "long"]],
286 "SetMetaFileBitsEx" => ["long", ["long", "ptr"]],
287 "SetMetaRgn" => ["long", ["long"]],
288 "SetMiterLimit" => ["long", ["long", "long", "ptr"]],
289 "SetObjectOwner" => ["void", ["long", "long"]],
290 "SetPaletteEntries" => ["long", ["long", "long", "long", "ptr"]],
291 "SetPixel" => ["long", ["long", "long", "long", "long"]],
292 "SetPixelFormat" => ["long", ["long", "long", "ptr"]],
293 "SetPixelV" => ["long", ["long", "long", "long", "long"]],
294 "SetPolyFillMode" => ["long", ["long", "long"]],
295 "SetROP2" => ["long", ["long", "long"]],
296 "SetRectRgn" => ["long", ["long", "long", "long", "long", "long"]],
297 "SetRelAbs" => ["long", ["long", "long"]],
298 "SetStretchBltMode" => ["long", ["long", "long"]],
299 "SetSystemPaletteUse" => ["long", ["long", "long"]],
300 "SetTextAlign" => ["long", ["long", "long"]],
301 "SetTextCharacterExtra" => ["long", ["long", "long"]],
302 "SetTextColor" => ["long", ["long", "long"]],
303 "SetTextJustification" => ["long", ["long", "long", "long"]],
304 "SetViewportExtEx" => ["long", ["long", "long", "long", "ptr"]],
305 "SetViewportOrgEx" => ["long", ["long", "long", "long", "ptr"]],
306 "SetWinMetaFileBits" => ["long", ["long", "ptr", "long", "ptr"]],
307 "SetWindowExtEx" => ["long", ["long", "long", "long", "ptr"]],
308 "SetWindowOrgEx" => ["long", ["long", "long", "long", "ptr"]],
309 "SetWorldTransform" => ["long", ["long", "ptr"]],
310 "StartDocA" => ["long", ["long", "ptr"]],
311 "StartDocW" => ["long", ["long", "ptr"]],
312 "StartPage" => ["long", ["long"]],
313 "StretchBlt" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "long", "long"]],
314 "StretchDIBits" => ["long", ["long", "long", "long", "long", "long", "long", "long", "long", "long", "ptr", "ptr", "long", "long"]],
315 "StrokeAndFillPath" => ["long", ["long"]],
316 "StrokePath" => ["long", ["long"]],
317 "SwapBuffers" => ["long", ["long"]],
318 "TextOutA" => ["long", ["long", "long", "long", "str", "long"]],
319 "TextOutW" => ["long", ["long", "long", "long", "wstr", "long"]],
320 "TranslateCharsetInfo" => ["long", ["ptr", "ptr", "long"]],
321 "UnrealizeObject" => ["long", ["long"]],
322 "UpdateColors" => ["long", ["long"]],
323 "WidenPath" => ["long", ["long"]]
326 &wine::declare("gdi32",%$module_declarations);
327 push @EXPORT, map { "&" . $_; } sort(keys(%$module_declarations));