Jump to content

Метафайл Windows

(Перенаправлено с .wmf )

Метафайл Windows ( WMF ) — это формат файлов изображений, первоначально разработанный для Microsoft Windows в 1990-х годах. Исходный формат метафайла Windows не был независимым от устройства (хотя его можно было сделать в большей степени с помощью заголовков размещения) и может содержать как векторную графику , так и растровые компоненты. Он действует аналогично файлам SVG . Файлы WMF позже были заменены расширенными метафайлами (файлами EMF), которые обеспечивали независимость от устройства. Файлы EMF затем были улучшены с помощью файлов EMF+ .

По сути, метафайл хранит список записей, состоящий из команд рисования, определений свойств и графических объектов для отображения изображения на экране. [ 1 ] Используемые команды рисования тесно связаны с командами интерфейса графического устройства (GDI), API используемыми для рисования в Microsoft Windows.

Существует три основных типа метафайлов: WMF — это 16-битный формат, представленный в Windows 3.0 . Это собственный векторный формат для приложений Microsoft Office , таких как Word , PowerPoint и Publisher . По состоянию на 2023 год доступна версия 17 спецификации формата метафайла Windows. [ 2 ] Файлы EMF, пришедшие на смену файлам WMF, работают по тому же принципу, только это 32-битный формат файлов, который также позволяет встраивать личные данные в записи «комментариев». [ 3 ] EMF+ — это расширение файлов EMF, встроенное в эти записи комментариев, позволяющее использовать изображения и текст с использованием команд, объектов и свойств, аналогичных Windows GDI+ . [ 4 ]

Исходный 16-битный формат файла WMF был полностью указан в томе 4 документации Windows 3.1 SDK 1992 года. [ 5 ] (по крайней мере, в сочетании с описаниями отдельных функций и структур в других томах), но в этой спецификации были расплывчаты некоторые детали. Эти руководства были опубликованы в виде печатных книг, доступных в книжных магазинах, без необходимости ознакомления с лицензионным соглашением или другими необычными лицензионными ограничениями (просто общее предупреждение о том, что, если оно приобретено как часть пакета программного обеспечения, на программное обеспечение распространяется одно из них).

Со временем о существовании этой исторической спецификации в значительной степени забыли, и некоторые альтернативные реализации прибегли к обратному проектированию, чтобы определить формат файла из существующих файлов WMF, что было сложно и подвержено ошибкам. [ 6 ] В сентябре 2006 года Microsoft снова опубликовала спецификацию формата файлов WMF в более полной форме. [ 7 ] в контексте обещания Microsoft по открытой спецификации , обещая не заявлять патентные права разработчикам форматов файлов. [ 8 ]

Позже Microsoft отказалась от файлов WMF в пользу 32-битных файлов EMF, поскольку у файлов WMF были реальные проблемы с независимостью от устройства, несмотря на использование «размещаемого» заголовка файла, который обеспечивал базовую независимость от устройства. Microsoft обнаружила, что разработчики, использующие этот формат, «[встраивали] комментарии о приложении, местоположении или масштабировании в метафайлы... Другие добавляли в метафайл заголовки, которые предоставляли различную информацию, специфичную для приложения», что вызывало серьезные проблемы с совместимостью. [ 9 ] Таким образом, в 1992 году с Windows NT 3.1 Microsoft представила формат расширенного метафайла (EMF). [ 10 ] — формат, основанный на API Win32 и обеспечивающий независимость от устройства. [ 11 ] [ 9 ] — они также были известны как метафайлы NT. [ 12 ] С выпуском Windows XP и GDI+ набор записей пришлось значительно увеличить, и поэтому Microsoft выпустила EMF+ как расширение существующего формата файлов EMF. [ 10 ] [ 13 ]

Структура метафайла

[ редактировать ]
Сравнение метафайлов Windows. Обратите внимание, что файлы WMF могут включать записи EMF+.

Файлы WMF, EMF и EMF+ состоят из серии записей, которые воспроизводятся для получения графического вывода. Некоторые записи определяют объекты, которые могут указывать графические объекты, используемые для определения того, как следует рисовать графику (например, ручки определяют цвет и ширину линий). Каждый из этих объектов хранится в метафайлах и помещается в таблицу объектов, которая отслеживает использование графических объектов при обработке метафайла. Таблица объектов представляет собой ассоциативный массив индексов структур графических объектов, определенных в метафайле.

Файлы WMF и EMF обрабатывают объекты иначе, чем записи EMF+ в файлах EMF. Во время обработки файлов WMF и EMF записи считываются в таблицу объектов после определения объекта. Если объект удаляется, он удаляется из таблицы, и идентификатор можно использовать повторно. Примечательно, что объект не будет использоваться до тех пор, пока он не будет специально выбран во время воспроизведения записи. [ 14 ] [ 15 ] Это отличается от файлов EMF+, которые также используют ассоциативный массив через хэш-карту , записывающую объект вместе с идентификатором объекта. Однако в отличие от файлов WMF и EMF, которые могут удалять объект, при создании нового объекта с тем же индексом, что и у существующего объекта, запись в таблице заменяется новым объектом. Файл EMF также не требует специального выбора объекта перед его использованием. [ 16 ]

Метафайл Windows
Расширение имени файла
.wmf
Тип интернет-СМИ
изображение/wmf [ 10 ]
Единый идентификатор типа (UTI) com.microsoft.wmf [ 10 ]
Тип формата Векторная графика
Распространено на ЭДС
Структуры исходных и размещаемых метафайлов Windows [ 17 ]

Файлы WMF изначально не были предназначены для независимости от устройства, а это означает, что файл не мог быть воспроизведен на устройствах вывода, которые отличались от исходного устройства, на котором файл был записан. Частичное решение этой проблемы было изобретено корпорацией Aldus , которая добавила дополнительный «размещаемый» заголовок, называемый «заголовком APM», [ 18 ] который добавил ограничивающий прямоугольник, версию метафайла, размер метафайла, количество объектов в метафайле и размер самой большой отдельной записи в метафайле. [ 19 ] [ 20 ] Позже это было включено в формат WMF компанией Microsoft , начиная с Windows 2000 . [ 21 ]

Файлы WMF структурированы серией записей, начиная с ряда управляющих записей: записи заголовка, [ 19 ] [ 22 ] вышеупомянутая необязательная размещаемая запись, [ 23 ] и завершается окончанием записи файла . [ 19 ] [ 24 ]

В управляющие записи инкапсулированы записи, составляющие само изображение. Эти записи работают в так называемом контексте устройства воспроизведения , который представляет собой набор свойств и объектов, составляющих графическую среду устройства, когда метафайл «воспроизводится» на этом устройстве вывода. [ 25 ]

Записи, отличные от управляющих записей, можно в основном сгруппировать в записи растровых изображений, записи чертежей, записи объектов, записи состояний и escape-записи.

Растровые записи

[ редактировать ]

и выводят Записи растровых изображений управляют растровыми изображениями их .

Имя Описание
МЕТА_BITBLT Указывает, как выполнить передачу битовых блоков . Эти записи могут указывать растровое изображение, которое будет использоваться в качестве источника или региона. [ 26 ]
META_DIBBITBLT Указывает, как выполнить передачу битовых блоков аппаратно-независимого растрового изображения. Эти записи могут указывать растровое изображение, которое будет использоваться в качестве источника или региона. [ 27 ]
META_DIBSTRETCHBITBLT Указывает, как выполнить передачу битовых блоков аппаратно-независимого растрового изображения, но позволяет расширять или сжимать изображение. Эти записи могут указывать растровое изображение, которое будет использоваться в качестве источника или региона. [ 28 ]
META_SETDIBTODEV Указывает цвет для установки блока пикселей в аппаратно-независимом растровом изображении. Эти записи могут указывать растровое изображение, которое будет использоваться в качестве источника или региона. [ 29 ]
META_STRETCHBLT Указывает, как выполнять передачу битовых блоков, но позволяет расширять или сжимать изображение. [ 30 ]
META_STRETCHDIB Указывает, как выполнить передачу битовых блоков аппаратно-независимого растрового изображения, но позволяет расширять или сжимать изображение. Эти записи могут указывать растровое изображение, которое будет использоваться в качестве источника или региона. [ 31 ]

Рисование записей

[ редактировать ]

Записи чертежей производят графический вывод.

Имя Описание
МЕТА_ARC Рисует эллиптическую дугу . [ 32 ]
МЕТА_CHORD Рисует аккорд . [ 33 ]
МЕТА_ELLIPSE Рисует эллиптическую дугу . [ 34 ]
META_EXTFLOODFILL Заполняет область кистью. [ 35 ]
МЕТА_EXTTEXTOUT Нарисуйте текст с использованием шрифта, цвета фона и цвета текста контекста устройства воспроизведения. [ 36 ]
META_FILEREGION Заполняет область указанной кистью. [ 37 ]
META_FLOODFILL Заполняет область кистью. [ 38 ]
META_FRAMEREGION Рисует рамку вокруг области страницы с помощью кисти. [ 39 ]
META_INVERTREGION Закрашивает область изображения инвертированными цветами. [ 40 ]
META_LINETO Рисует полуоткрытую линию от позиции рисования, определенной в контексте устройства воспроизведения, до указанной точки. [ 41 ]
META_PAINTREGION Нарисуйте область текущей кистью, указанной в контексте устройства воспроизведения. [ 42 ]
МЕТА_PATBLT Нарисуйте область текущей кистью, указанной в контексте устройства воспроизведения, а затем объедините цвет кисти и цвет(а) поверхности с помощью растровой операции . [ 43 ]
МЕТА_ПИЕ Нарисуйте сектор в форме круга, ограниченный пересечением эллипса и двух радиалов — линия задается с помощью пера, установленного в контексте устройства воспроизведения, а область, ограниченная формой круга, заполняется текущей кистью устройства воспроизведения. контекст. [ 44 ]
МЕТА_ПОЛИЛИНИЯ Рисует серию отрезков линий, соединяя точки в указанном массиве. [ 45 ]
МЕТА_ПОЛИГОН Рисует многоугольник , состоящий из двух или более вершин, соединенных прямыми линиями. Многоугольник обрисовывается с помощью пера и заполняется с помощью кисти и режима заливки многоугольника, которые определены в контексте устройства воспроизведения. [ 46 ]
МЕТА_ПОЛИГОЛИГОН Рисует серию замкнутых многоугольников, которые могут перекрываться. Каждый многоугольник обрисовывается с помощью пера и заполняется с помощью кисти и режима заливки многоугольника, которые определены в контексте устройства воспроизведения. [ 47 ]
МЕТА_RECTANGLE Рисует прямоугольник, который обводится пером и заполняется кистью, а также заполняется кистью, определенной в контексте устройства воспроизведения. [ 48 ]
МЕТА_ROUNDRECT Рисует прямоугольник с закругленными углами. Прямоугольник обводится пером, заполняется кистью и заполняется кистью, определенной в контексте устройства воспроизведения. [ 49 ]
META_SETPIXEL Устанавливает пикселю в указанных координатах указанный цвет. [ 50 ]
МЕТА_ТЕКСТОУТ Выводит строку символов в указанном месте, используя шрифт, цвет фона и цвет текста, определенные в контексте устройства воспроизведения. [ 51 ]

Записи объектов

[ редактировать ]

Записи объектов создают графические объекты и управляют ими. В файлах WMF есть две большие категории объектов: графические объекты и объекты структуры. Объекты структуры не создаются и не удаляются в WMF явным образом, они представляют собой не сложные структуры. Например, BitmapCoreHeader содержит информацию о размерах и цветовом формате аппаратно-независимого растрового изображения. [ 52 ] который сам по себе является частью объекта DeviceIndependentBitmap. [ 53 ] Однако графический объект определяет параметры вывода графики, а во время воспроизведения WMF он устанавливает контекст устройства воспроизведения. [ 54 ]

Графическими объектами могут быть кисти (определяют стиль, цвет и рисунок кисти, определяющие способ закрашивания области изображения), шрифты (определяют свойства, влияющие на отображение текста), палитры (определяют цвета как значения, независимые от устройства), определяемые приложением), перья (определяют графические атрибуты линии) и регионы (которые определяют сегменты линий и кривых, определяющие форму). [ 54 ]

Имя Описание
META_CREATEBRUSHINDIRECT Создает объект кисти из объекта LogBrush (логическая кисть). [ 55 ]
META_CREATEFONTINDIRECT Создает объект кисти из объекта шрифта. [ 56 ]
META_CREATEPALETTE Создает объект палитры.
META_CREATEPATTERNBRUSH [ 57 ] Создает объект кисти из объекта LogBrush (логическая кисть). [ 58 ]
META_CREATEPENINDIRECT Создает объект пера. [ 59 ]
META_CREATEREGION Создает объект региона. [ 60 ]
МЕТА_DELETEOBJECT Удалить объект. [ 61 ]
META_CREATEBRUSHINDIRECT Создает объект кисти из объекта LogBrush (логическая кисть). [ 62 ]
META_DIBCREATEPATTERNBRUSH Создает объект кисти из аппаратно-независимого растрового изображения. [ 63 ]
META_SELECTCLIPREGION Указывает объект региона, который будет текущим регионом отсечения . [ 64 ]
МЕТА_SELECTOBJECT Выбирает объект, который будет текущим объектом для контекста устройства воспроизведения, который работает со всеми графическими объектами, кроме объектов палитры, которые должны быть установлены с помощью META_SELECTPALETTE. [ 65 ]
META_SELECTPALETTE Выбирает логическую палитру для контекста устройства воспроизведения. [ 66 ]

Государственные записи

[ редактировать ]

Записи состояния управляют графическими свойствами контекста устройства воспроизведения. [ 67 ]

Имя Описание
МЕТА_ANIMATEPALETTE Переопределяет записи в логической палитре, которая определена в контексте устройства воспроизведения с указанным объектом палитры. [ 68 ]
META_EXCLUDECLIPRECT Устанавливает область отсечения, определенную в контексте устройства воспроизведения, как существующую область отсечения за вычетом указанного прямоугольника. [ 69 ]
МЕТА_ИНТЕРСЕКТКЛИПРЕКТ Устанавливает область отсечения, определенную в контексте устройства воспроизведения, на пересечение существующей области отсечения и заданного прямоугольника. [ 70 ]
МЕТА_MOVETO Устанавливает позицию вывода в контексте устройства воспроизведения в указанную точку. [ 71 ]
META_OFFSETCLIPRGN Перемещает область отсечения, определенную в контексте устройства воспроизведения, на указанные смещения. [ 72 ]
META_OFFSETVIEWPORTORG Перемещает начало области просмотра в контексте устройства воспроизведения на указанные смещения по горизонтали и вертикали. [ 73 ]
META_OFFSETWINDOWORG Перемещает начало окна вывода в контексте устройства воспроизведения на указанные смещения по горизонтали и вертикали. [ 74 ]
META_REALIZEPALETTE Сопоставляет записи из логической палитры, определенной в контексте устройства воспроизведения, с системной палитрой. [ 75 ]
META_RESIZEPALETTE Переопределяет размер логической палитры, определенной в контексте устройства воспроизведения. [ 76 ]
META_RESTOREDC Восстанавливает контекст устройства воспроизведения из ранее сохраненного контекста устройства. [ 77 ]
WHEN_SAVEDC Сохраняет контекст устройства воспроизведения для последующего извлечения. [ 78 ]
META_SCALEVIEWPORTEXT Масштабирует горизонтальные и вертикальные размеры области просмотра, определенные в контексте устройства воспроизведения, с использованием коэффициентов, образованных указанными множимыми и делителями. [ 79 ]
META_SCALEWINDOWEXT Масштабирует горизонтальные и вертикальные размеры выходного окна, определенного в контексте устройства воспроизведения, с использованием соотношений, образованных указанными множимыми и делителями. [ 80 ]
META_SETBKCOLOR Устанавливает цвет фона в контексте устройства воспроизведения на указанный цвет. [ 81 ]
META_SETBKMODE Устанавливает режим фонового микширования в контексте устройства воспроизведения. [ 82 ]
META_SETLAYOUT Определяет ориентацию макета в контексте устройства воспроизведения. [ 83 ]
META_SETMAPMODE Определяет режим сопоставления в контексте устройства воспроизведения. [ 84 ]
META_SETMAPPERFLAGS Определяет алгоритм, который использует средство сопоставления шрифтов при сопоставлении логических шрифтов с физическими шрифтами. [ 85 ]
META_SETPALENTRIES Определяет значения цвета RGB в диапазоне записей логической палитры, которая определена в контексте устройства воспроизведения. [ 86 ]
META_SETPOLYFILLMODE Определяет режим заполнения многоугольников в контексте устройства воспроизведения для графических операций, заполняющих многоугольники. [ 87 ]
META_SETRELABS Неиспользованная запись. [ 88 ]
META_SETROP2 Определяет режим микширования растровых операций переднего плана в контексте устройства воспроизведения. [ 89 ]
META_SETSTRETCHBLTMODE Определяет режим растяжения растрового изображения в контексте устройства воспроизведения. [ 90 ]
META_SETTEXTALIGN Определяет значения выравнивания текста в контексте устройства воспроизведения. [ 91 ]
META_SETTEXTCHAREXTRA Определяет межсимвольный интервал для выравнивания текста в контексте устройства воспроизведения. [ 92 ]
META_SETTEXTCOLOR Определяет цвет переднего плана текста в контексте устройства воспроизведения. [ 93 ]
МЕТА_SETTEXTJUSTIFICATION Определяет объем места, добавляемого для разрыва символов в строке выровненного текста. [ 94 ]
META_SETVIEWPORTTEXT Определяет горизонтальные и вертикальные размеры области просмотра в контексте устройства воспроизведения. [ 95 ]
META_SETVIEWPORTORG Определяет начало области просмотра в контексте устройства воспроизведения. [ 96 ]
META_SETWINDOWEXT Определяет горизонтальные и вертикальные размеры окна вывода в контексте устройства воспроизведения. [ 97 ]
META_SETWINDOWORG Определяет начало окна вывода в контексте устройства воспроизведения. [ 98 ]

Побег записи

[ редактировать ]
Общая escape-запись WMF

Escape-записи — это средство расширения функциональности метафайла с помощью записей, которые иначе не определены как тип записи WMF. Каждая escape-запись содержит функцию записи, escape-функцию и потенциально escape-данные.

Следующие escape-записи составляют файл WMF.

Имя Описание
АБОРТДОК Останавливает обработку текущего документа. [ 99 ]
BEGIN_PATH Открывает путь. [ 100 ]
CHECK_JPEGFORMAT Определяет, может ли он обрабатывать данное изображение JPEG . [ 101 ]
ПРОВЕРИТЬ_PNGFORMAT Определяет, может ли он обрабатывать данное изображение PNG . [ 102 ]
CLIP_TO_PATH Применяет функцию к текущему контуру обрезки PostScript . [ 103 ]
ЗАКРЫТЬ_КАНАЛ То же, что и ЭНДДОК. [ 104 ]
СКАЧАТЬ_FACE Устанавливает имя шрифта на устройстве вывода. [ 105 ]
СКАЧАТЬ_HEADER Загружает наборы процедур PostScript. [ 106 ]
DRAW_PATTERNRECT Рисует прямоугольник с определенным узором. [ 107 ]
ENCAPSULATED_POSTSCRIPT Отправляет произвольные инкапсулированные данные PostScript (EPS) непосредственно в драйвер принтера. [ 108 ]
END_PATH Завершает путь. [ 109 ]
ЭНДДОК Уведомляет драйвер принтера об окончании нового задания печати. [ 110 ]
EPS_PRINTING Указывает начало и конец печати EPS. [ 111 ]
EXTTEXTOUT Рисует текст, используя текущий выбранный шрифт, цвет фона и цвет текста. [ 112 ]
GET_COLORTABLE Получает значения таблицы цветов из драйвера принтера. [ 113 ]
GET_DEVICEUNITS Получает единицы измерения устройства, настроенные в данный момент на устройстве вывода. [ 114 ]
GET_EXTENDED_TEXTMETRICS Получает расширенные текстовые метрики, которые в данный момент настроены в драйвере принтера. [ 115 ]
GET_FACENAME Получает имя шрифта, настроенное в данный момент на устройстве вывода. [ 116 ]
GET_PAIRKERNTABLE Получает таблицу кернов шрифтов, определенную в данный момент на устройстве вывода. [ 117 ]
GET_PHYSPAGESIZE Получает физический размер страницы, выбранный в данный момент на устройстве вывода. [ 118 ]
GET_PRINTINGOFFSET Получает смещение от верхнего левого угла физической страницы, где начинается фактическая печать или рисование. [ 119 ]
GET_PS_FEATURESETTING Запрашивает у драйвера принтера информацию о функциях PostScript, поддерживаемых устройством вывода. [ 120 ]
GET_SCALINGFACTOR Получает коэффициенты масштабирования для осей X и Y принтера. [ 121 ]
META_ESCAPE_ENHANCED_METAFILE Используется для встраивания метафайла EMF в метафайл WMF. [ 122 ]
METAFILE_DRIVER Запрашивает драйвер принтера о поддержке метафайлов на устройстве вывода. [ 123 ]
НЬЮФРЕЙМ Уведомляет драйвер принтера о том, что приложение завершило запись на страницу. [ 124 ]
NEXTBAND Уведомляет драйвер принтера о том, что приложение завершило запись в полосу. [ 125 ]
ПЕРЕХОД Передаёт произвольные данные драйверу принтера. [ 126 ]
POSTSCRIPT_DATA Отправляет произвольные данные PostScript на устройство вывода. [ 127 ]
POSTSCRIPT_IDENTIFY Устанавливает драйвер принтера в режим, ориентированный на PostScript или GDI. [ 128 ]
POSTSCRIPT_IGNORE Уведомляет устройство вывода о необходимости игнорировать данные PostScript. [ 129 ]
POSTSCRIPT_INJECTION Вставляет блок необработанных данных в поток PostScript. [ 130 ]
POSTSCRIPT_PASSTHROUGH Отправляет произвольные данные непосредственно драйверу принтера, который должен обрабатывать эти данные только в режиме PostScript. [ 131 ]
ОТКРЫТЫЙ_КАНАЛ Действует так же, как STARTDOC, с NULL-документом и именем выходного файла, а также данными в необработанном режиме. [ 132 ]
QUERY_DIBSUPPORT Запрашивает драйвер принтера о поддержке DIB на устройстве вывода. [ 133 ]
QUERY_ESCSUPPORT Запрашивает драйвер принтера, чтобы определить, поддерживается ли определенная escape-функция WMF на устройстве вывода. [ 134 ]
SET_COLORTABLE Устанавливает значения таблицы цветов. [ 135 ]
SET_COPYCOUNT Устанавливает количество копий. [ 136 ]
SET_LINECAP Указывает режим окончания строки, используемый при рисовании на устройстве вывода. [ 137 ]
SET_LINEJOIN Указывает режим соединения линий, используемый при рисовании на устройстве вывода. [ 138 ]
SET_MITERLIMIT Устанавливает предел длины соединений под углом, используемых при рисовании на устройстве вывода. [ 139 ]
SPCLPASSTHROUGH2 Позволяет документам включать в документы частные процедуры и другие произвольные данные. [ 140 ]
СТАРТДОК Уведомляет драйвер принтера о начале нового задания печати. [ 141 ]

В escape-записях была обнаружена серьезная уязвимость, связанная с escape-записью Abort, которая хранит код процедуры прерывания внутри самой записи. Это затронуло системы Windows (см. CVE 2005-4560 ) и проект Wine (см. CVE 2006-0106 ). По словам Secunia , «Уязвимость возникает из-за ошибки в обработке файлов метафайлов Windows ('.wmf'), содержащих специально созданные записи SETABORTPROC 'Escape'. Такие записи позволяют выполнять произвольную определяемую пользователем функцию при рендеринге файл WMF не работает». [ 142 ] Согласно документации Windows 3.1 SDK, escape-последовательность SETABORTPROC была устаревшей и заменена одноименной функцией в Windows 3.1 задолго до того, как была обнаружена уязвимость WMF. [ 143 ] Однако устаревший escape-код был сохранен для совместимости с 16-битными программами, написанными для Windows 3.0 (или, по крайней мере, обратно совместимыми с ней). Это изменение произошло примерно в то же время, когда Microsoft создавала 32-разрядную версию GDI для Windows NT, и вполне вероятно, что уязвимость возникла во время этих усилий.

После того, как Стив Гибсон обвинил Microsoft в намеренном внедрении бэкдора в свой код, [ 144 ] [ 145 ] Марк Руссинович дал опровержение и заявил, что:

...когда был разработан формат, все было по-другому. В модели «большой» памяти Windows 3.1 код по своей сути не зависит от местоположения, и Windows никогда не подвергалась исправлениям, поэтому и Windows, и приложение могли просто скопировать функцию приложения в файл WMF и предположить, что она будет работать при воспроизведении одним и тем же приложением в более поздний сеанс запуска. В любом случае, неясно, предполагали ли разработчики приложения, создающие метафайлы на диске с процедурами прерывания. Кроме того, как отметил Стивен Тулуза из Microsoft в опровержении утверждений Стива, среда безопасности в начале 1990-х сильно отличалась от сегодняшней, и весь код, включая тот, который хранился в файле WMF, по своей сути был доверенным. [ 146 ]

Питер Ферри из Symantec Security Response, США, также не согласился с Гибсоном, отметив, что:

Гибсон утверждал, что создается поток для запуска обработчика SetAbortProc. На самом деле для запуска обработчика не создается поток — это обратный вызов, который вызывается парсером, и парсеру приходится ждать, пока обратный вызов вернется, иначе весь смысл функции (прервать печать) теряется. . По его собственному признанию, Гибсон не читал документацию (фактически он утверждал, что не смог ее найти, хотя она находится в свободном доступе на веб-сайте Microsoft), а также утверждал, что контекст устройства недоступен обработчику функции. . Конечно, контекст устройства доступен обработчику функции — это один из двух передаваемых ему параметров (см. выше), и он необходим для прерывания печати. Наконец, Гибсон заявил, что поток управления не может вернуться в Windows. Это просто вопрос того, что функция возвращает и отбрасывает параметры, переданные в стек. Если запись имеет правильный формат, Windows продолжит анализировать файл, как и раньше. ... Гибсон признается, что догадывался о многом. К сожалению, он плохо угадал. Думаю, теперь мы знаем лучше. [ 147 ]

Расширенный метафайл
Расширение имени файла
.ЭДС
Тип интернет-СМИ
изображение/ЭДС [ 10 ]
Единый идентификатор типа (UTI) com.microsoft.emf [ 10 ]
Тип формата Векторная графика
Расширено с ВМФ
Распространено на ЭДС+
Заголовки расширенного метафайла Windows

Файлы EMF имеют три возможных версии заголовков. Исходные заголовки представляют собой просто контейнер для изображений, вторая и третья версии инкапсулируют исходный заголовок и содержат запись формата пикселей и поддержку записей OpenGL, а третья версия инкапсулирует второе расширение заголовка и повышает точность EMF и масштабируемость EMF, поскольку это добавляет возможность измерения расстояний поверхностей устройства в метрической системе. [ 148 ]

Каждый заголовок EMF начинается с записи EMR_HEADER и записывает соответствующие свойства устройства, на котором было записано изображение метафайла. Исходный заголовок EMF имеет заголовок длиной 80 байт и необязательную строку описания переменной длины. [ 149 ] Другие метафайлы содержат поля расширения, инкапсулирующие исходный заголовок. EmfMetafileHeaderExtension1 — это запись, которая вставляется непосредственно после исходного заголовка EMF, указывает, существует ли дескриптор формата пикселей и смещение объекта дескриптора в заголовке, а также поле, которое указывает, существуют ли записи OpenGL в метафайле. [ 150 ] Дескриптор формата пикселей определяет возможности поверхности рисования и то, кодируется ли пиксель в RGBA или является индексом в таблице цветов. [ 151 ] EmfMetafileHeaderExtension2 это запись, которая вставляется сразу после EmfMetafileHeaderExtension1 запись и содержит два поля со значениями X и Y для измерения поверхности устройства в микрометрах. [ 152 ]

Как и файлы WMF, записи можно классифицировать по функциям, однако в файлах EMF больше типов записей, чем в файлах WMF. Записи можно классифицировать как записи управления, растрового изображения, обрезки, комментария, рисования, экранирования, создания объекта, манипулирования объектом, OpenGL, скобки пути, записи состояния и преобразования.

С выпуском Windows XP был представлен формат Enhanced Metafile Format Plus Extensions (EMF+). EMF+ предоставляет способ сериализации вызовов API GDI+ таким же образом, как WMF/EMF хранит вызовы GDI.

Существуют также сжатые версии метафайлов Windows, известные как сжатый метафайл Windows (WMZ) и сжатый расширенный метафайл Windows (EMZ). [ 153 ] которые по сути представляют собой файлы WMF и EMF, сжатые gzip соответственно.

Реализации

[ редактировать ]

Формат WMF был разработан для выполнения слоем Windows GDI с целью восстановления изображения , но поскольку двоичные файлы WMF содержат определения графических примитивов GDI, составляющих это изображение, можно разработать альтернативные библиотеки, которые отображают двоичные файлы WMF. файлы или конвертировать их в другие графические форматы.

См. также

[ редактировать ]
  1. ^ Формат метафайла Windows (PDF) , Microsoft, стр. 16
  2. ^ «[MS-WMF]: формат метафайла Windows» . MSDN . 26 апреля 2021 г. Проверено 13 сентября 2023 г.
  3. ^ [MS-EMF]: Расширенный формат метафайлов (PDF) , Microsoft, стр. 17
  4. ^ [MS-EMFPLUS]: Enhanced Metafile Format Plus Extensions (PDF) , Microsoft, стр. 19
  5. ^ Справочник программистов Microsoft Windows 3.1, Ресурсы тома 4, Microsoft Press 1992, ISBN   1-55615-494-1 , глава 3, стр. 21–45.
  6. ^ Каолан Макнамара. «Справочник по метафайлам окон (wmf)» . Проверено 1 июня 2008 г. Эти коды операций не реализованы, поскольку я не знаю, что они собой представляют, нет известной документации.
  7. ^ «[MS-WMF]: Спецификация формата метафайла Windows» . Проверено 1 июня 2008 г.
  8. ^ «Обещание Microsoft по открытой спецификации» . Майкрософт . Проверено 1 июня 2008 г.
  9. ^ Jump up to: а б Расширенные метафайлы в Win32 , группа Microsoft Developer Network Technology, 10 июня 1993 г.
  10. ^ Jump up to: а б с д и ж Леонард, Шон (сентябрь 2016 г.). «Метафайлы Windows» . Типы носителей изображений Windows . IETF . п. 1. дои : 10.17487/RFC7903 . ISSN   2070-1721 . РФК 7903 . Проверено 8 февраля 2020 г.
  11. ^ "EMF" , FileFormat , Aspose Pty Ltd, 11 октября 2019 г. , получено 20 января 2020 г.
  12. ^ Петцольд, Чарльз (11 октября 1994 г.), «Метафайлы NT и объекты GDI» , журнал PC Magazine , стр. 343–347.
  13. ^ Поляков, Алекс; Брусенцев, Виталий (2005). Графическое программирование с использованием GDI+ и DirectX . Издательство A-List. п. 68. ИСБН  1-931769-39-7 .
  14. ^ «3.1.4.1 Таблица объектов WMF», [MS-WMF]: расширенный формат метафайла (PDF) , Microsoft, стр. 187
  15. ^ «3.1.1.1 Таблица объектов EMF», [MS-EMF]: Спецификация формата метафайла Windows (PDF) , Microsoft, стр. 212–214.
  16. ^ [MS-EMFPLUS]: Enhanced Metafile Format Plus Extensions (PDF) , Microsoft, стр. 204–205.
  17. ^ «Рисунок 1: Структуры исходных и размещаемых метафайлов Windows», Формат метафайла Windows (PDF) , Microsoft, стр. 17
  18. ^ Q66949: ИНФОРМАЦИЯ: Функции метафайлов Windows и размещаемые метафайлы Aldus , Microsoft – через Архив базы знаний: архив ранних версий базы знаний Microsoft
  19. ^ Jump up to: а б с «1.3.1 Структура метафайла», Формат метафайла Windows (PDF) , Microsoft, стр. 17
  20. ^ «2.3.2.3 Запись META_PLACEABLE», Формат метафайла Windows (PDF) , Microsoft, стр. 115
  21. ^ Формат метафайла Windows (PDF) , Microsoft, стр. 55, <55> Раздел 2.3.2.3: Windows NT 3.1, Windows NT 3.5, Windows NT 3.51 и Windows 95: эта функция не поддерживается.
  22. ^ «2.3.2.2 Запись MTF_HEADERRECORD», Формат метафайла Windows (PDF) , Microsoft, стр. 114
  23. ^ «2.3.2.2 Запись MTF_HEADERRECORD», Формат метафайла Windows (PDF) , Microsoft, стр. 114
  24. ^ «2.3.2.1 Запись MTF_EOF», Формат метафайла Windows (PDF) , Microsoft, стр. 114
  25. ^ «1.1 Глоссарий», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , Microsoft, стр. 13 , получено 24 января 2020 г.
  26. ^ «2.3.1.1 Запись META_BITBLT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 101–103 , получено 24 января 2020 г.
  27. ^ «2.3.1.2 Запись META_DIBBITBLT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , Microsoft, стр. 103–106 , получено 24 января 2020 г.
  28. ^ «2.3.1.3 Запись META_DIBSTRETCHBITBLT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , Microsoft, стр. 106–108 , получено 24 января 2020 г.
  29. ^ «2.3.1.4 Запись META_SETDIBTODEV», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , Microsoft, стр. 108–109 , получено 24 января 2020 г.
  30. ^ «2.3.1.5 Запись META_STRETCHBLT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , Microsoft, стр. 109–110 , получено 24 января 2020 г.
  31. ^ «2.3.1.6 Запись META_STRETCHDIB», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , Microsoft, стр. 103–106 , получено 24 января 2020 г.
  32. ^ «2.3.3.1 Запись META_ARC», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 101–103 , получено 24 января 2020 г.
  33. ^ «2.3.3.2 Запись META_CHORD», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 117–118 , получено 24 января 2020 г.
  34. ^ «2.3.3.3 Запись META_ELLIPSE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 119 , получено 24 января 2020 г.
  35. ^ «2.3.3.4 Запись META_EXTFLOODFILL», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 119–120 , получено 24 января 2020 г.
  36. ^ «2.3.3.5 Запись META_EXTTEXTOUT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 119–120 , получено 24 января 2020 г.
  37. ^ «2.3.3.6 Запись META_FILLREGION», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 121 , получено 24 января 2020 г.
  38. ^ «2.3.3.7 Запись META_FLOODFILL», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 119–120 , получено 24 января 2020 г.
  39. ^ «2.3.3.8 Запись META_FRAMEREGION», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 122–123 , получено 24 января 2020 г.
  40. ^ «2.3.3.9 Запись META_INVERTREGION», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 123 , получено 24 января 2020 г.
  41. ^ «2.3.3.10 Запись META_LINETO», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 123–124 , получено 24 января 2020 г.
  42. ^ «2.3.3.11 Запись META_PAINTREGION», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 124 , получено 24 января 2020 г.
  43. ^ «2.3.3.12 Запись META_PATBLT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 124–125 , получено 24 января 2020 г.
  44. ^ «2.3.3.13 Запись META_PIE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 125–126 , получено 24 января 2020 г.
  45. ^ «2.3.3.14 Запись META_POLYLINE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 126 , получено 24 января 2020 г.
  46. ^ «2.3.3.15 Запись META_POLYGON», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 127 , получено 24 января 2020 г.
  47. ^ «2.3.3.16 Запись META_POLYPOLYGON», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 127–128 , получено 24 января 2020 г.
  48. ^ «2.3.3.17 Запись META_RECTANGLE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 127–128 , получено 24 января 2020 г.
  49. ^ «2.3.3.18 Запись META_ROUNDRECT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 128–129 , получено 24 января 2020 г.
  50. ^ «2.3.3.19 Запись META_SETPIXEL», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 129–130 , получено 24 января 2020 г.
  51. ^ «2.3.3.20 Запись META_TEXTOUT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 130 , получено 24 января 2020 г.
  52. ^ «2.2.2.2. Объект BitmapCoreHeader», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 85 , получено 25 января 2020 г.
  53. ^ «2.2.2.9. Объект DeviceIndependentBitmap», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 91 , получено 25 января 2020 г.
  54. ^ Jump up to: а б «2.2.1. Графические объекты», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 79 , получено 25 января 2020 г.
  55. ^ «2.3.4.1 Запись META_CREATEBRUSHINDIRECT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 131–132 , получено 25 января 2020 г.
  56. ^ «2.3.4.2 Запись META_CREATEFONTINDIRECT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 132 , получено 25 января 2020 г.
  57. ^ «2.3.4.4 Запись META_CREATEPATTERNBRUSH», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 133–135 , получено 25 января 2020 г.
  58. ^ «2.3.4.3 Запись META_CREATEPALETTE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 132–133 , получено 25 января 2020 г.
  59. ^ «2.3.4.5 Запись META_CREATEPENINDIRECT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 134–135 , получено 25 января 2020 г.
  60. ^ «2.3.4.6 Запись META_CREATEREGION», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 135 , получено 25 января 2020 г.
  61. ^ «2.3.4.7 Запись META_DELETEOBJECT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 135 , получено 25 января 2020 г.
  62. ^ «2.3.4.8 Запись META_CREATEBRUSHINDIRECT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 135–136 , получено 25 января 2020 г.
  63. ^ «2.3.4.9 Запись META_DIBCREATEPATTERNBRUSH», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 136–137 , получено 25 января 2020 г.
  64. ^ «2.3.4.10 Запись META_SELECTCLIPREGION», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 137 , получено 25 января 2020 г.
  65. ^ «2.3.4.11 Запись META_SELECTOBJECT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 137–138 , получено 25 января 2020 г.
  66. ^ «2.3.4.11 Запись META_SELECTPALETTE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 139 , получено 25 января 2020 г.
  67. ^ «2.3.5 Типы записей состояния», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 138 , получено 28 января 2020 г.
  68. ^ «2.3.5.1 Запись META_ANIMATEPALETTE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 140 , получено 28 января 2020 г.
  69. ^ «2.3.5.2 Запись META_EXCLUDECLIPRECT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 140–141 , получено 28 января 2020 г.
  70. ^ «2.3.5.3 Запись META_INTERSECTCLIPRECT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 141–142 , получено 28 января 2020 г.
  71. ^ «2.3.5.1 Запись META_MOVETO», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 142 , получено 28 января 2020 г.
  72. ^ «2.3.5.4 Запись META_OFFSETCLIPRGN», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 142–143 , получено 28 января 2020 г.
  73. ^ «2.3.5.5 Запись META_OFFSETVIEWPORTORG», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 143 , получено 28 января 2020 г.
  74. ^ «2.3.5.6 Запись META_OFFSETWINDOWORG», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 131–132 , получено 28 января 2020 г.
  75. ^ «2.3.5.7 Запись META_REALIZEPALETTE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 143–144 , получено 28 января 2020 г.
  76. ^ «2.3.5.8 Запись META_RESIZEPALETTE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 144 , получено 28 января 2020 г.
  77. ^ «2.3.5.9 Запись META_RESTOREDC», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 145 , получено 28 января 2020 г.
  78. ^ «2.3.5.10 Запись META_SAVEDC», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 145 , получено 28 января 2020 г.
  79. ^ «2.3.5.11 Запись META_SCALEVIEWPORTEXT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 145–146 , получено 28 января 2020 г.
  80. ^ «2.3.5.12 Запись META_SCALEWINDOWEXT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 146–147 , получено 28 января 2020 г.
  81. ^ «2.3.5.13 Запись META_SETBKCOLOR», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 147 , получено 28 января 2020 г.
  82. ^ «2.3.5.14 Запись META_SETBKMODE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 147–148 , получено 28 января 2020 г.
  83. ^ «2.3.5.15 Запись META_SETLAYOUT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 148 , получено 28 января 2020 г.
  84. ^ «2.3.5.16 Запись META_SETMAPMODE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 148–149 , получено 28 января 2020 г.
  85. ^ «2.3.5.17 Запись META_SETMAPPERFLAGS», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 131–132 , получено 28 января 2020 г.
  86. ^ «2.3.5.18 Запись META_ANIMATEPALETTE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 149 , получено 28 января 2020 г.
  87. ^ «2.3.5.19 Запись META_SETPALENTRIES», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 149–150 , получено 28 января 2020 г.
  88. ^ «2.3.5.20 Запись META_SETRELABS», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 150 , получено 28 января 2020 г.
  89. ^ «2.3.5.21 Запись META_SETROP2», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 151 , получено 28 января 2020 г.
  90. ^ «2.3.5.1 Запись META_SETSTRETCHBLTMODE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 151–152 , получено 28 января 2020 г.
  91. ^ «2.3.5.22 Запись META_SETTEXTALIGN», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 152 , получено 28 января 2020 г.
  92. ^ «2.3.5.1 Запись META_SETTEXTCHAREXTRA», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 152–153 , получено 28 января 2020 г.
  93. ^ «2.3.5.23 Запись META_SETTEXTCOLOR», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 153 , получено 28 января 2020 г.
  94. ^ «2.3.5.24 Запись META_SETTEXTJUSTIFICATION», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 153–154 , получено 28 января 2020 г.
  95. ^ «2.3.5.25 Запись META_SETVIEWPORTEXT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 154 , получено 28 января 2020 г.
  96. ^ «2.3.5.26 Запись META_SETVIEWPORTORG», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 154–155 , получено 28 января 2020 г.
  97. ^ «2.3.5.27 Запись META_SETWINDOWEXT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 155 , получено 28 января 2020 г.
  98. ^ «2.3.5.28 Запись META_SETWINDOWORG», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 155 , получено 28 января 2020 г.
  99. ^ «2.3.6.2. Запись ABORTDOC», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 158–159 , получено 28 января 2020 г.
  100. ^ «2.3.6.3. Запись BEGIN_PATH», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 159 , получено 28 января 2020 г.
  101. ^ «2.3.6.4. Запись CHECK_JPEGFORMAT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 159–160 , получено 28 января 2020 г.
  102. ^ «2.3.6.5. Запись CHECK_PNGFORMAT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 160 , получено 28 января 2020 г.
  103. ^ «2.3.6.6. Запись CLIP_TO_PATH», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 160 , получено 28 января 2020 г.
  104. ^ «2.3.6.7. Запись CLOSE_CHANNEL», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 162 , получено 28 января 2020 г.
  105. ^ «2.3.6.8. Запись DOWNLOAD_FACE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 162–163 , получено 28 января 2020 г.
  106. ^ «2.3.6.9. Запись DOWNLOAD_HEADER», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 158–159 , получено 28 января 2020 г.
  107. ^ «2.3.6.10. Запись DRAW_PATTERNRECT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 163–164 , получено 28 января 2020 г.
  108. ^ «2.3.6.11. Запись ENCAPSULATED_POSTSCRIPT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 164 , получено 28 января 2020 г.
  109. ^ «2.3.6.12. Запись END_PATH», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 164–165 , получено 28 января 2020 г.
  110. ^ «2.3.6.13. Запись ENDDOC», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 165 , получено 28 января 2020 г.
  111. ^ «2.3.6.14. Запись EPS_PRINTING», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 165–166 , получено 28 января 2020 г.
  112. ^ «2.3.6.15. Запись EXTTEXTOUT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 166–167 , получено 28 января 2020 г.
  113. ^ «2.3.6.16. Запись GET_COLORTABLE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 167–168 , получено 28 января 2020 г.
  114. ^ «2.3.6.17. Запись GET_DEVICEUNITS», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 168 , получено 28 января 2020 г.
  115. ^ «2.3.6.18. Запись GET_EXTENDED_TEXTMETRICS», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 168–169 , получено 28 января 2020 г.
  116. ^ «2.3.6.19. Запись GET_FACENAME», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 169 , получено 28 января 2020 г.
  117. ^ «2.3.6.20. Запись GET_PAIRKERNTABLE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 169–170 , получено 28 января 2020 г.
  118. ^ «2.3.6.21. Запись GET_PHYSPAGESIZE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 170 , получено 28 января 2020 г.
  119. ^ «2.3.6.22. Запись GET_PRINTINGOFFSET», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 170–171 , получено 28 января 2020 г.
  120. ^ «2.3.6.23. Запись GET_PS_FEATURESETTING», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 171 , получено 28 января 2020 г.
  121. ^ «2.3.6.24. Запись GET_SCALINGFACTOR», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 171–172 , получено 28 января 2020 г.
  122. ^ «2.3.6.25. Запись META_ESCAPE_ENHANCED_METAFILE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 172–173 , получено 28 января 2020 г.
  123. ^ «2.3.6.26. Запись METAFILE_DRIVER», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 173–174 , получено 28 января 2020 г.
  124. ^ «2.3.6.27. Запись NEWFRAME», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 174–175 , получено 28 января 2020 г.
  125. ^ «2.3.6.28. Запись NEXTBAND», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 174–175 , получено 28 января 2020 г.
  126. ^ «2.3.6.29. ПЕРЕХОДНАЯ запись», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 175 , получено 28 января 2020 г.
  127. ^ «2.3.6.30. Запись POSTSCRIPT_DATA», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 176 , получено 28 января 2020 г.
  128. ^ «2.3.6.31. Запись POSTSCRIPT_IDENTIFY», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 176–177 , получено 28 января 2020 г.
  129. ^ «2.3.6.32. Запись POSTSCRIPT_IGNORE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 177 , получено 28 января 2020 г.
  130. ^ «2.3.6.33. Запись POSTSCRIPT_INJECTION», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 177–178 , получено 28 января 2020 г.
  131. ^ «2.3.6.34. Запись POSTSCRIPT_PASSTHROUGH», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 178 , получено 28 января 2020 г.
  132. ^ «2.3.6.35. Запись OPEN_CHANNEL», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 179 , получено 28 января 2020 г.
  133. ^ «2.3.6.36. Запись QUERY_DIBSUPPORT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 179–180 , получено 28 января 2020 г.
  134. ^ «2.3.6.37. Запись QUERY_ESCSUPPORT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 180 , получено 28 января 2020 г.
  135. ^ «2.3.6.38. Запись SET_COLORTABLE», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 180–181 , получено 28 января 2020 г.
  136. ^ «2.3.6.39. Запись SET_COPYCOUNT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 181 , получено 28 января 2020 г.
  137. ^ «2.3.6.40. Запись SET_LINECAP», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 181–182 , получено 28 января 2020 г.
  138. ^ «2.3.6.41. Запись SET_LINEJOIN», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 182–183 , получено 28 января 2020 г.
  139. ^ «2.3.6.42. Запись SET_MITERLIMIT», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 183 , получено 28 января 2020 г.
  140. ^ «2.3.6.43. Запись SPCLPASSTHROUGH2», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 183–184 , получено 28 января 2020 г.
  141. ^ «2.3.6.44. Запись STARTDOC», [MS-WMF]: Спецификация формата метафайла Windows (PDF) , стр. 184 , получено 28 января 2020 г.
  142. ^ «Выполнение произвольного кода Microsoft Windows WMF «SETABORTPROC»» . Секуния . Рекомендация Secunia: SA18255. Архивировано из оригинала 2 января 2006 года.
  143. ^ Escape с поддержкой Pscript , Microsoft , получено 28 января 2020 г.
  144. ^ «Бэкдор Windows MetaFile?» . GRC Безопасность сейчас! (Подкаст). Исследовательская корпорация Гибсон . 12 января 2006 года . Проверено 28 января 2020 г.
  145. ^ Гибсон, Стив (12 января 2006 г.), «Re: Вы не захотите пропустить сегодняшнюю программу «Безопасность сейчас!», № 22» , grc.news.feedback , получено 28 января 2020 г.
  146. ^ Руссинович, Марк (18 января 2006 г.), «Внутри бэкдора WMF» , TechNet , Microsoft – через Microsoft Tech Community
  147. ^ Ферри, Питер (2 февраля 2006 г.), Inside the Windows Meta File Format (PDF) , Virus Bulletin , заархивировано из оригинала (PDF) 16 мая 2008 г. , получено 24 января 2020 г. - через Symantec
  148. ^ «1.3.1. Структура метафайла», [MS-EMF]: расширенный формат метафайла (PDF) , Microsoft, стр. 17–18.
  149. ^ «2.3.4.2.1 Запись EmfMetafileHeader», [MS-EMF]: расширенный формат метафайла (PDF) , Microsoft, стр. 120
  150. ^ «2.2.10 Объект HeaderExtension1», [MS-EMF]: расширенный формат метафайла (PDF) , Microsoft, стр. 57–58.
  151. ^ «2.2.22 Объект PixelFormatDescriptor», [MS-EMF]: расширенный формат метафайла (PDF) , Microsoft, стр. 68–71.
  152. ^ «2.3.4.2.3 Запись EmfMetafileHeaderExtension2», [MS-EMF]: расширенный формат метафайла (PDF) , Microsoft, стр. 122–124.
  153. ^ «При попытке вставить изображение в презентацию PowerPoint для Mac вы получаете сообщение об ошибке «Этот файл имеет неподдерживаемый графический формат» . Майкрософт . Архивировано из оригинала 19 апреля 2014 г. Проверено 19 апреля 2014 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: cbb279b4a6c0db0a930f2ae3cd3b815b__1723442940
URL1:https://arc.ask3.ru/arc/aa/cb/5b/cbb279b4a6c0db0a930f2ae3cd3b815b.html
Заголовок, (Title) документа по адресу, URL1:
Windows Metafile - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)