summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--msodumper/wmfrecord.py827
1 files changed, 750 insertions, 77 deletions
diff --git a/msodumper/wmfrecord.py b/msodumper/wmfrecord.py
index 96cdca1..feb9d24 100644
--- a/msodumper/wmfrecord.py
+++ b/msodumper/wmfrecord.py
@@ -6,6 +6,7 @@
#
from .binarystream import BinaryStream
+import base64
PlaceableKey = {
0x9ac6cdd7: "META_PLACEABLE",
@@ -629,7 +630,6 @@ class Rect(WMFRecord):
class RectL(WMFRecord):
"""The RectL Object defines a rectangle."""
-
def __init__(self, parent, name=None):
WMFRecord.__init__(self, parent)
if name:
@@ -649,7 +649,6 @@ class RectL(WMFRecord):
class SizeL(WMFRecord):
"""The SizeL Object defines a rectangle."""
-
def __init__(self, parent, name=None):
WMFRecord.__init__(self, parent)
if name:
@@ -667,7 +666,6 @@ class SizeL(WMFRecord):
class PointL(WMFRecord):
"""The PointL Object defines the coordinates of a point."""
-
def __init__(self, parent, name=None):
WMFRecord.__init__(self, parent)
if name:
@@ -685,7 +683,6 @@ class PointL(WMFRecord):
class PointS(WMFRecord):
"""The PointS Object defines the x- and y-coordinates of a point."""
-
def __init__(self, parent, name):
WMFRecord.__init__(self, parent)
self.name = name
@@ -700,7 +697,6 @@ class PointS(WMFRecord):
class ColorRef(WMFRecord):
"""The ColorRef Object defines the RGB color."""
-
def __init__(self, parent, name):
WMFRecord.__init__(self, parent)
self.name = name
@@ -715,7 +711,7 @@ class ColorRef(WMFRecord):
self.parent.pos = self.pos
-class WMFLineto(WMFRecord):
+class Lineto(WMFRecord):
"""Draws a line from the current position up to, but not including, the
specified point."""
def __init__(self, parent):
@@ -794,7 +790,7 @@ class PlaceableHeader(WMFRecord):
return False
-class WmfSetviewportorgex(WMFRecord):
+class Setviewportorgex(WMFRecord):
"""Defines the viewport origin."""
def __init__(self, parent):
@@ -808,78 +804,755 @@ class WmfSetviewportorgex(WMFRecord):
assert self.pos - posOrig == self.Size
-"""The RecordType enumeration defines values that uniquely identify EMF records."""
+class RealizePalette(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetPaletteEntries(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetBkMode(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetMapMode(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetROP2(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetRelAbs(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetPolyFillMode(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetStretchBltMode(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetTextCharacterExtra(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class RestoreDC:
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class ResizePalette(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class CreateDIBPatternBrush(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetLayout(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetTextColor(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetBkColor(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetTextColor(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class MoveTo(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class OffsetClipRgn(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class FillRgn(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetMapperFlags(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SelectPalette(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class Polygon(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class Polyline(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetTextJustification(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetWindowOrg(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetWindowExt:
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetViewportOrg(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetViewportExt(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class OffsetWindowOrg(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class ScaleWindowExt(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class ScaleViewportExt(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class ExcludeClipRect(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class IntersectClipRect(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class Ellipse(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class FrameRgn(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class AnimatePalette(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class TextOut(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class PolyPolygon(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class ExtFloodFill(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class Rectangle(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetPixel(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class RoundRect(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetPixel(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetPixel(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetPixel(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class RoundRect(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetPixel(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class PatBlt(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class RoundRect(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SaveDC(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SaveDC(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class Pie(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class StretchBlt(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class Escape(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class InvertRgn(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class PaintRgn(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SelectClipRgn(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SelectClipRgn(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SelectObject(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetTextAlign(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class Arc(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class Chord(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class BitBlt(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class ExtTextOut(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class SetDIBitsToDevice(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class StretchDIBits(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class StretchDIBits(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class StretchDIBits(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class DeleteObject(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class CreatePalette(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class CreatePatternBrush(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class CreatePenIndirect(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class CreateFontIndirect(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class CreateBrushIndirect(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+class CreateRectRgn(WMFRecord):
+ def __init__(self, parent):
+ WMFRecord.__init__(self, parent)
+
+ def dump(self):
+ print("<todo/>")
+ pass
+
+
+# GDI Functions: https://docs.microsoft.com/en-us/windows/win32/api/_gdi/
+# Wine API / GDI: https://source.winehq.org/WineAPI/gdi.html
+"""The RecordType enumeration defines values that uniquely identify WMF records."""
RecordType = {
0x0000: ['META_EOF'],
- 0x0035: ['META_REALIZEPALETTE'],
- 0x0037: ['META_SETPALENTRIES'],
- 0x0102: ['META_SETBKMODE'],
- 0x0103: ['META_SETMAPMODE'],
- 0x0104: ['META_SETROP2'],
- 0x0105: ['META_SETRELABS'],
- 0x0106: ['META_SETPOLYFILLMODE'],
- 0x0107: ['META_SETSTRETCHBLTMODE'],
- 0x0108: ['META_SETTEXTCHAREXTRA'],
- 0x0127: ['META_RESTOREDC'],
- 0x0139: ['META_RESIZEPALETTE'],
- 0x0142: ['META_DIBCREATEPATTERNBRUSH'],
- 0x0149: ['META_SETLAYOUT'],
- 0x0201: ['META_SETBKCOLOR'],
- 0x0209: ['META_SETTEXTCOLOR'],
- 0x0211: ['META_OFFSETVIEWPORTORG'],
- 0x0213: ['META_LINETO', WMFLineto],
- 0x0214: ['META_MOVETO'],
- 0x0220: ['META_OFFSETCLIPRGN'],
- 0x0228: ['META_FILLREGION'],
- 0x0231: ['META_SETMAPPERFLAGS'],
- 0x0234: ['META_SELECTPALETTE'],
- 0x0324: ['META_POLYGON'],
- 0x0325: ['META_POLYLINE'],
- 0x020A: ['META_SETTEXTJUSTIFICATION'],
- 0x020B: ['META_SETWINDOWORG'],
- 0x020C: ['META_SETWINDOWEXT'],
- 0x020D: ['META_SETVIEWPORTORG'],
- 0x020E: ['META_SETVIEWPORTEXT'],
- 0x020F: ['META_OFFSETWINDOWORG'],
- 0x0410: ['META_SCALEWINDOWEXT'],
- 0x0412: ['META_SCALEVIEWPORTEXT'],
- 0x0415: ['META_EXCLUDECLIPRECT'],
- 0x0416: ['META_INTERSECTCLIPRECT'],
- 0x0418: ['META_ELLIPSE'],
- 0x0419: ['META_FLOODFILL'],
- 0x0429: ['META_FRAMEREGION'],
- 0x0436: ['META_ANIMATEPALETTE'],
- 0x0521: ['META_TEXTOUT'],
- 0x0538: ['META_POLYPOLYGON'],
- 0x0548: ['META_EXTFLOODFILL'],
- 0x041B: ['META_RECTANGLE'],
- 0x041F: ['META_SETPIXEL'],
- 0x061C: ['META_ROUNDRECT'],
- 0x061D: ['META_PATBLT'],
- 0x001E: ['META_SAVEDC'],
- 0x081A: ['META_PIE'],
- 0x0B23: ['META_STRETCHBLT'],
- 0x0626: ['META_ESCAPE'],
- 0x012A: ['META_INVERTREGION'],
- 0x012B: ['META_PAINTREGION'],
- 0x012C: ['META_SELECTCLIPREGION'],
- 0x012D: ['META_SELECTOBJECT'],
- 0x012E: ['META_SETTEXTALIGN'],
- 0x0817: ['META_ARC'],
- 0x0830: ['META_CHORD'],
- 0x0922: ['META_BITBLT'],
- 0x0a32: ['META_EXTTEXTOUT'],
- 0x0d33: ['META_SETDIBTODEV'],
- 0x0940: ['META_DIBBITBLT'],
- 0x0b41: ['META_DIBSTRETCHBLT'],
- 0x0f43: ['META_STRETCHDIB'],
- 0x01f0: ['META_DELETEOBJECT'],
- 0x00f7: ['META_CREATEPALETTE'],
- 0x01F9: ['META_CREATEPATTERNBRUSH'],
- 0x02FA: ['META_CREATEPENINDIRECT'],
- 0x02FB: ['META_CREATEFONTINDIRECT'],
- 0x02FC: ['META_CREATEBRUSHINDIRECT'],
- 0x06FF: ['META_CREATEREGION'],
+ 0x0035: ['META_REALIZEPALETTE', RealizePalette],
+ 0x0037: ['META_SETPALENTRIES', SetPaletteEntries],
+ 0x0102: ['META_SETBKMODE', SetBkMode],
+ 0x0103: ['META_SETMAPMODE', SetMapMode],
+ 0x0104: ['META_SETROP2', SetROP2],
+ 0x0105: ['META_SETRELABS', SetRelAbs],
+ 0x0106: ['META_SETPOLYFILLMODE', SetPolyFillMode],
+ 0x0107: ['META_SETSTRETCHBLTMODE', SetStretchBltMode],
+ 0x0108: ['META_SETTEXTCHAREXTRA', SetTextCharacterExtra],
+ 0x0127: ['META_RESTOREDC', RestoreDC],
+ 0x0139: ['META_RESIZEPALETTE', ResizePalette],
+ 0x0142: ['META_DIBCREATEPATTERNBRUSH', CreateDIBPatternBrush],
+ 0x0149: ['META_SETLAYOUT', SetLayout],
+ 0x0201: ['META_SETBKCOLOR', SetBkColor],
+ 0x0209: ['META_SETTEXTCOLOR', SetTextColor],
+ 0x0211: ['META_OFFSETVIEWPORTORG', Setviewportorgex],
+ 0x0213: ['META_LINETO', Lineto],
+ 0x0214: ['META_MOVETO', MoveTo],
+ 0x0220: ['META_OFFSETCLIPRGN', OffsetClipRgn],
+ 0x0228: ['META_FILLREGION', FillRgn],
+ 0x0231: ['META_SETMAPPERFLAGS', SetMapperFlags],
+ 0x0234: ['META_SELECTPALETTE', SelectPalette],
+ 0x0324: ['META_POLYGON', Polygon],
+ 0x0325: ['META_POLYLINE', Polyline],
+ 0x020A: ['META_SETTEXTJUSTIFICATION', SetTextJustification],
+ 0x020B: ['META_SETWINDOWORG', SetWindowOrg],
+ 0x020C: ['META_SETWINDOWEXT', SetWindowExt],
+ 0x020D: ['META_SETVIEWPORTORG', SetViewportOrg],
+ 0x020E: ['META_SETVIEWPORTEXT', SetViewportExt],
+ 0x020F: ['META_OFFSETWINDOWORG', OffsetWindowOrg],
+ 0x0410: ['META_SCALEWINDOWEXT', ScaleWindowExt],
+ 0x0412: ['META_SCALEVIEWPORTEXT', ScaleViewportExt],
+ 0x0415: ['META_EXCLUDECLIPRECT', ExcludeClipRect],
+ 0x0416: ['META_INTERSECTCLIPRECT', IntersectClipRect],
+ 0x0418: ['META_ELLIPSE', Ellipse],
+ 0x0419: ['META_FLOODFILL', FloodFill],
+ 0x0429: ['META_FRAMEREGION', FrameRgn],
+ 0x0436: ['META_ANIMATEPALETTE', AnimatePalette],
+ 0x0521: ['META_TEXTOUT', TextOut],
+ 0x0538: ['META_POLYPOLYGON', PolyPolygon],
+ 0x0548: ['META_EXTFLOODFILL', ExtFloodFill],
+ 0x041B: ['META_RECTANGLE', Rectangle],
+ 0x041F: ['META_SETPIXEL', SetPixel],
+ 0x061C: ['META_ROUNDRECT', RoundRect],
+ 0x061D: ['META_PATBLT', PatBlt],
+ 0x001E: ['META_SAVEDC', SaveDC],
+ 0x081A: ['META_PIE', Pie],
+ 0x0B23: ['META_STRETCHBLT', StretchBlt],
+ 0x0626: ['META_ESCAPE', Escape],
+ 0x012A: ['META_INVERTREGION', InvertRgn],
+ 0x012B: ['META_PAINTREGION', PaintRgn],
+ 0x012C: ['META_SELECTCLIPREGION', SelectClipRgn],
+ 0x012D: ['META_SELECTOBJECT', SelectObject],
+ 0x012E: ['META_SETTEXTALIGN', SetTextAlign],
+ 0x0817: ['META_ARC', Arc],
+ 0x0830: ['META_CHORD', Chord],
+ 0x0922: ['META_BITBLT', BitBlt],
+ 0x0a32: ['META_EXTTEXTOUT', ExtTextOut],
+ 0x0d33: ['META_SETDIBTODEV', SetDIBitsToDevice],
+ 0x0940: ['META_DIBBITBLT', BitBlt],
+ 0x0b41: ['META_DIBSTRETCHBLT', StretchBlt],
+ 0x0f43: ['META_STRETCHDIB', StretchDIBits],
+ 0x01f0: ['META_DELETEOBJECT', DeleteObject],
+ 0x00f7: ['META_CREATEPALETTE', CreatePalette],
+ 0x01F9: ['META_CREATEPATTERNBRUSH', CreatePatternBrush],
+ 0x02FA: ['META_CREATEPENINDIRECT', CreatePenIndirect],
+ 0x02FB: ['META_CREATEFONTINDIRECT', CreateFontIndirect],
+ 0x02FC: ['META_CREATEBRUSHINDIRECT', CreateBrushIndirect],
+ 0x06FF: ['META_CREATEREGION', CreateRectRgn],
}
# vim:set filetype=python shiftwidth=4 softtabstop=4 expandtab: