Файлы WMF и EMF состоят из списка записей, каждая из которых представляет собой определённую команду с набором аргументов. Форматы записей WMF и EMF похожи, однако есть следующие основные различия:
WMF-запись |
Код WMF-записи |
EMF-запись |
Код EMF-записи |
Описание |
|
|
EMR_HEADER |
0x00000001 |
Заголовок |
|
|
EMR_POLYBEZIER |
0x00000002 |
|
|
|
EMR_POLYBEZIER16 |
0x00000055 |
|
META_POLYGON |
0x0324 |
EMR_POLYGON |
0x00000003 |
Нарисовать замкнутую ломаную линию |
EMR_POLYGON16 |
0x00000056 |
META_POLYLINE |
0x0325 |
EMR_POLYLINE |
0x00000004 |
|
EMR_POLYLINE16 |
0x00000057 |
|
|
EMR_POLYBEZIERTO |
0x00000005 |
|
|
|
EMR_POLYBEZIERTO16 |
0x00000058 |
|
META_POLYPOLYGON |
0x0538 |
EMR_POLYPOLYGON |
0x00000008 |
|
EMR_POLYPOLYGON16 |
0x0000005B |
|
META_SETWINDOWEXT |
0x020C |
EMR_SETWINDOWEXTEX |
0x00000009 |
Установить размеры окна |
META_SETWINDOWORG |
0x020B |
EMR_SETWINDOWORGEX |
0x0000000A |
Установить позицию левого верхнего угла окна |
META_SETVIEWPORTEXT |
0x020E |
EMR_SETVIEWPORTEXTEX |
0x0000000B |
Установить размеры устройства вывода |
META_SETVIEWPORTORG |
0x020D |
EMR_SETVIEWPORTORGEX |
0x0000000C |
Установить позицию левого верхнего угла устройства вывода |
|
|
EMR_SETBRUSHORGEX |
0x0000000D |
|
META_EOF |
0x0000 |
EMR_EOF |
0x0000000E |
Конец файла |
|
|
EMR_SETPIXELV |
0x0000000F |
|
META_SETMAPPERFLAGS |
0x0231 |
EMR_SETMAPPERFLAGS |
0x00000010 |
|
META_SETMAPMODE |
0x0103 |
EMR_SETMAPMODE |
0x00000011 |
Задаёт режим преобразования логических единиц измерения окна в единицы измерения устройства вывода |
META_SETBKMODE |
0x0102 |
EMR_SETBKMODE |
0x00000012 |
Установить режим заливки |
META_SETPOLYFILLMODE |
0x0106 |
EMR_SETPOLYFILLMODE |
0x00000013 |
|
META_SETROP2 |
0x0104 |
EMR_SETROP2 |
0x00000014 |
Установить логическую операцию при рисовании |
META_SETSTRETCHBLTMODE |
0x0107 |
EMR_SETSTRETCHBLTMODE |
0x00000015 |
|
META_SETTEXTALIGN |
0x012E |
EMR_SETTEXTALIGN |
0x00000016 |
Установить горизонтальное и вертикальное выравнивание |
|
|
EMR_SETCOLORADJUSTMENT |
0x00000017 |
|
META_SETTEXTCOLOR |
0x0209 |
EMR_SETTEXTCOLOR |
0x00000018 |
Установить цвет текста |
META_SETBKCOLOR |
0x0201 |
EMR_SETBKCOLOR |
0x00000019 |
Установить цвет заливки |
META_OFFSETCLIPRGN |
0x0220 |
EMR_OFFSETCLIPRGN |
0x0000001A |
|
META_MOVETO |
0x0214 |
EMR_MOVETOEX |
0x0000001B |
|
META_EXCLUDECLIPRECT |
0x0415 |
EMR_EXCLUDECLIPRECT |
0x0000001D |
|
META_INTERSECTCLIPRECT |
0x0416 |
EMR_INTERSECTCLIPRECT |
0x0000001E |
|
META_SCALEVIEWPORTEXT |
0x0412 |
EMR_SCALEVIEWPORTEXTEX |
0x0000001F |
Растянуть устройство вывода по горизонтали и вертикали |
META_SCALEWINDOWEXT |
0x0410 |
EMR_SCALEWINDOWEXTEX |
0x00000020 |
Растянуть окно по горизонтали и вертикали |
META_RESTOREDC |
0x0127 |
EMR_RESTOREDC |
0x00000022 |
Восстановить состояние устройства вывода в заранее сохранённое командой SAVEDC |
META_SELECTOBJECT |
0x012D |
EMR_SELECTOBJECT |
0x00000025 |
|
META_CREATEBRUSHINDIRECT |
0x02FC |
EMR_CREATEBRUSHINDIRECT |
0x00000027 |
|
META_DELETEOBJECT |
0x01f0 |
EMR_DELETEOBJECT |
0x00000028 |
|
|
|
EMR_ANGLEARC |
0x00000029 |
|
META_ELLIPSE |
0x0418 |
EMR_ELLIPSE |
0x0000002A |
|
META_RECTANGLE |
0x041B |
EMR_RECTANGLE |
0x0000002B |
|
META_ROUNDRECT |
0x061C |
EMR_ROUNDRECT |
0x0000002C |
|
META_ARC |
0x0817 |
EMR_ARC |
0x0000002D |
|
META_CHORD |
0x0830 |
EMR_CHORD |
0x0000002E |
|
META_PIE |
0x081A |
EMR_PIE |
0x0000002F |
|
META_SELECTPALETTE |
0x0234 |
EMR_SELECTPALETTE |
0x00000030 |
|
META_CREATEPALETTE |
0x00f7 |
EMR_CREATEPALETTE |
0x00000031 |
|
META_SETPALENTRIES |
0x0037 |
EMR_SETPALETTEENTRIES |
0x00000032 |
Установить палитру |
META_RESIZEPALETTE |
0x0139 |
EMR_RESIZEPALETTE |
0x00000033 |
|
META_EXTFLOODFILL |
0x0548 |
EMR_EXTFLOODFILL |
0x00000035 |
|
META_LINETO |
0x0213 |
EMR_LINETO |
0x00000036 |
|
|
|
EMR_ARCTO |
0x00000037 |
|
|
|
EMR_SETARCDIRECTION |
0x00000039 |
|
|
|
EMR_SETMITERLIMIT |
0x0000003A |
|
|
|
EMR_STROKEPATH |
0x00000040 |
|
|
|
EMR_COMMENT |
0x00000046 |
|
META_FILLREGION |
0x0228 |
EMR_FILLRGN |
0x00000047 |
|
META_INVERTREGION |
0x012A |
EMR_INVERTRGN |
0x00000049 |
Обратить цвета в регионе, заданном объединением множества прямоугольников |
META_PAINTREGION |
0x012B |
EMR_PAINTRGN |
0x0000004A |
|
META_SELECTCLIPREGION |
0x012C |
EMR_EXTSELECTCLIPRGN |
0x0000004B |
|
META_BITBLT |
0x0922 |
EMR_BITBLT |
0x0000004C |
|
META_STRETCHBLT |
0x0B23 |
EMR_STRETCHBLT |
0x0000004D |
|
META_SETDIBTODEV |
0x0d33 |
EMR_SETDIBITSTODEVICE |
0x00000050 |
|
META_DIBSTRETCHBLT |
0x0b41 |
EMR_STRETCHDIBITS |
0x00000051 |
|
META_CREATEFONTINDIRECT |
0x02FB |
EMR_EXTCREATEFONTINDIRECTW |
0x00000052 |
|
META_CREATEPENINDIRECT |
0x02FA |
EMR_EXTCREATEPEN |
0x0000005F |
|
|
|
EMR_SETICMMODE |
0x00000062 |
|
|
|
EMR_CREATECOLORSPACE |
0x00000063 |
|
|
|
EMR_SETCOLORSPACE |
0x00000064 |
|
|
|
EMR_DELETECOLORSPACE |
0x00000065 |
|
|
|
EMR_GLSRECORD |
0x00000066 |
|
|
|
EMR_GLSBOUNDEDRECORD |
0x00000067 |
|
|
|
EMR_PIXELFORMAT |
0x00000068 |
|
|
|
EMR_FORCEUFIMAPPING |
0x0000006D |
|
|
|
EMR_COLORCORRECTPALETTE |
0x0000006F |
|
|
|
EMR_SETICMPROFILEA |
0x00000070 |
|
|
|
EMR_SETICMPROFILEW |
0x00000071 |
|
META_SETLAYOUT |
0x0149 |
EMR_SETLAYOUT |
0x00000073 |
Задаёт направление вывода текста и изображений - слева-направо или справа-налево |
|
|
EMR_GRADIENTFILL |
0x00000076 |
|
|
|
EMR_SETLINKEDUFIS |
0x00000077 |
|
META_SETTEXTJUSTIFICATION |
0x020A |
EMR_SETTEXTJUSTIFICATION |
0x00000078 |
|
META_REALIZEPALETTE |
0x0035 |
|
|
|
META_SETRELABS |
0x0105 |
|
|
|
META_SETTEXTCHAREXTRA |
0x0108 |
|
|
|
META_DIBCREATEPATTERNBRUSH |
0x0142 |
|
|
|
META_OFFSETVIEWPORTORG |
0x0211 |
|
|
|
META_OFFSETWINDOWORG |
0x020F |
|
|
|
META_FLOODFILL |
0x0419 |
|
|
|
META_FRAMEREGION |
0x0429 |
|
|
|
META_ANIMATEPALETTE |
0x0436 |
|
|
|
META_TEXTOUT |
0x0521 |
|
|
|
META_SETPIXEL |
0x041F |
|
|
|
META_PATBLT |
0x061D |
|
|
|
META_SAVEDC |
0x001E |
|
|
Сохранить состояние устройства вывода |
META_ESCAPE |
0x0626 |
|
|
|
META_DIBBITBLT |
0x0940 |
|
|
|
META_EXTTEXTOUT |
0x0a32 |
|
|
|
META_STRETCHDIB |
0x0f43 |
|
|
|
META_CREATEPATTERNBRUSH |
0x01F9 |
|
|
|
META_CREATEREGION |
0x06FF |
|
|
|