Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

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

Существует три основных типа метафайлов - WMF - это 16-разрядный формат, представленный в Windows 3.0 . Это собственный векторный формат для приложений Microsoft Office, таких как Word , PowerPoint и Publisher . Начиная с 2017 г. 14 версия спецификации формата метафайлов Windows доступна для чтения в Интернете или для загрузки в формате PDF. [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 Open Specification Promise , пообещав не заявлять патентные права разработчикам форматов файлов. [8]

Позднее Microsoft отказалась от файлов WMF в пользу 32-разрядных файлов EMF, поскольку файлы WMF имели реальные проблемы с независимостью от устройства, несмотря на использование «размещаемого» заголовка файла, который обеспечивал базовую независимость устройства. Microsoft обнаружила, что разработчики, использующие этот формат, «[встраивали] приложение, расположение или масштабирование комментариев в метафайлы ... Другие добавляли в метафайл заголовки, которые предоставляли различную информацию о приложении», что приводило к серьезным проблемам совместимости. [9] Таким образом, в 1992 г. с Windows NT 3.1 Microsoft представила формат расширенного метафайла (EMF) [10] - формат, основанный на Win32 API и обеспечивающий независимость от устройств. [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]

WMF [ править ]

Структуры исходных и размещаемых метафайлов Windows [17]

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

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

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

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

Записи растровых изображений [ править ]

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

Записи чертежей [ править ]

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

Записи объекта [ править ]

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

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

Записи состояния [ править ]

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

Записи о побеге [ править ]

Общая аварийная запись WMF

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

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

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

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

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

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

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

EMF [ править ]

Заголовки расширенного метафайла 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, скобки пути, записи состояния и преобразования.

EMF + [ править ]

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

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

Реализации [ править ]

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

См. Также [ править ]

  • PostScript
  • Язык векторной разметки (VML)
  • Масштабируемая векторная графика (SVG)

Ссылки [ править ]

  1. ^ Формат метафайлов Windows (PDF) , Microsoft, стр. 16
  2. ^ «[MS-WMF]: формат метафайлов Windows» . MSDN . 2015-06-30 . Проверено 26 июля 2015 .
  3. ^ [MS-EMF]: Расширенный формат метафайлов (PDF) , Microsoft, стр. 17
  4. ^ [MS-EMFPLUS]: Расширенный формат метафайлов плюс расширения (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 Open Specification Promise" . Проверено 1 июня 2008 .
  9. ^ a b Расширенные метафайлы в Win32 , Microsoft Developer Network Technology Group, 10 июня 1993 г.
  10. ^ a b Леонард, Шон (сентябрь 2016 г.). «Метафайлы Windows» . Типы Windows Image Media . IETF . п. 1. дои : 10,17487 / RFC7903 . ISSN 2070-1721 . RFC 7903 . Проверено 8 февраля 2020 года . 
  11. ^ "EMF" , FileFormat , Aspose Pty Ltd , получено 20 января 2020 г.
  12. Петцольд, Чарльз (11 октября 1994 г.), "NT Metafiles and GDI Objects" , PC Magazine , pp. 343–347
  13. ^ Поляков, Алексей; Брусенцев, Виталий (2005). Программирование графики с помощью GDI + и DirectX . Публикация A-List. п. 68. ISBN 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 - через Архив базы знаний: архив ранней базы знаний Майкрософт
  19. ^ a b c «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.01.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.01.2020
  28. ^ «2.3.1.3 Запись META_DIBSTRETCHBITBLT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 106-108 , дата обращения 24.01.2020
  29. ^ "2.3.1.4 Запись META_SETDIBTODEV", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 108-109 , дата обращения 24.01.2020
  30. ^ «2.3.1.5 Запись META_STRETCHBLT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 109-110 , дата обращения 24.01.2020
  31. ^ «2.3.1.6 Запись META_STRETCHDIB», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , Microsoft, стр. 103-106 , дата обращения 24.01.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.01.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.01.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.01.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.01.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.01.2020
  46. ^ "2.3.3.15 Запись META_POLYGON", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 127 , дата обращения 24.01.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 Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 128–129 , получено 24 января 2020 г.
  50. ^ «2.3.3.19 META_SETPIXEL Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 129–130 , получено 24 января 2020 г.
  51. ^ "2.3.3.20 Запись META_TEXTOUT", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 130 , дата обращения 24.01.2020
  52. ^ «2.2.2.2. BitmapCoreHeader Object», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 85 , дата обращения 25.01.2020
  53. ^ «2.2.2.9. DeviceIndependentBitmap Object», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 91 , дата обращения 25.01.2020
  54. ^ a b «2.2.1. Графические объекты», [MS-WMF]: спецификация формата метафайлов Windows (PDF) , стр. 79 , дата обращения 25.01.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.01.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.01.2020
  61. ^ "2.3.4.7 Запись META_DELETEOBJECT", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 135 , дата обращения 25.01.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.01.2020
  65. ^ «2.3.4.11 Запись META_SELECTOBJECT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 137–138 , получено 25 января 2020 г.
  66. ^ «2.3.4.11 Запись META_SELECTPLAETTE», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 139 , дата обращения 25.01.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 , получено 2020-01-28
  70. ^ "2.3.5.3 Запись META_INTERSECTCLIPRECT", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 141–142 , получено 2020-01-28
  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 , получено 2020-01-28
  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 , получено 2020-01-28
  75. ^ "2.3.5.7 Запись META_REALIZEPALETTE", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 143–144 , получено 2020-01-28
  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 , получено 2020-01-28
  80. ^ «2.3.5.12 Запись META_SCALEWINDOWEXT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 146–147 , получено 2020-01-28
  81. ^ "2.3.5.13 Запись META_SETBKCOLOR", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 147 , проверено 28 января 2020 г.
  82. ^ «2.3.5.14 META_SETBKMODE Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 147–148 , получено 2020-01-28
  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 , получено 2020-01-28
  85. ^ "2.3.5.17 Запись META_SETMAPPERFLAGS", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 131–132 , получено 2020-01-28
  86. ^ "2.3.5.18 Запись META_ANIMATEPALETTE", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 149 , проверено 28 января 2020 г.
  87. ^ "2.3.5.19 META_SETPALENTRIES Record", [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 149–150 , получено 2020-01-28
  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 , получено 2020-01-28
  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 , получено 2020-01-28
  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 , получено 2020-01-28
  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 Record», [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 , получено 2020-01-28
  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 Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 162–163 , получено 2020-01-28
  106. ^ «2.3.6.9. DOWNLOAD_HEADER Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 158–159 , получено 2020-01-28
  107. ^ «2.3.6.10. Запись DRAW_PATTERNRECT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 163–164 , получено 2020-01-28
  108. ^ «2.3.6.11. Запись ENCAPSULATED_POSTSCRIPT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 164 , проверено 28 января 2020 г.
  109. ^ «2.3.6.12. END_PATH Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 164–165 , получено 28 января 2020 г.
  110. ^ «2.3.6.13. Запись ENDDOC», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 165 , дата обращения 28.01.2020
  111. ^ «2.3.6.14. EPS_PRINTING Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 165–166 , получено 28 января 2020 г.
  112. ^ «2.3.6.15. EXTTEXTOUT Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 166–167 , получено 28 января 2020 г.
  113. ^ «2.3.6.16. GET_COLORTABLE Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 167–168 , получено 2020-01-28
  114. ^ «2.3.6.17. Запись GET_DEVICEUNITS», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 168 , проверено 28 января 2020 г.
  115. ^ «2.3.6.18. GET_EXTENDED_TEXTMETRICS Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 168–169 , получено 2020-01-28
  116. ^ «2.3.6.19. Запись GET_FACENAME», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 169 , проверено 28 января 2020 г.
  117. ^ «2.3.6.20. GET_PAIRKERNTABLE Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 169–170 , получено 2020-01-28
  118. ^ «2.3.6.21. Запись GET_PHYSPAGESIZE», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 170 , дата обращения 28.01.2020
  119. ^ «2.3.6.22. GET_PRINTINGOFFSET Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 170–171 , получено 2020-01-28
  120. ^ «2.3.6.23. Запись GET_PS_FEATURESETTING», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 171 , проверено 28 января 2020 г.
  121. ^ «2.3.6.24. GET_SCALINGFACTOR Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 171–172 , получено 2020-01-28
  122. ^ «2.3.6.25. Запись META_ESCAPE_ENHANCED_METAFILE», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 172–173 , получено 2020-01-28
  123. ^ «2.3.6.26. Запись METAFILE_DRIVER», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 173–174 , получено 2020-01-28
  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. PASSTHROUGH Record», [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 , получено 2020-01-28
  129. ^ «2.3.6.32. Запись POSTSCRIPT_IGNORE», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 177 , проверено 28 января 2020 г.
  130. ^ «2.3.6.33. POSTSCRIPT_INJECTION Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 177–178 , получено 2020-01-28
  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 Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 179–180 , получено 2020-01-28
  134. ^ «2.3.6.37. Запись QUERY_ESCSUPPORT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 180 , дата обращения 28.01.2020
  135. ^ «2.3.6.38. SET_COLORTABLE Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 180–181 , получено 2020-01-28
  136. ^ «2.3.6.39. Запись SET_COPYCOUNT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 181 , проверено 28 января 2020 г.
  137. ^ «2.3.6.40. SET_LINECAP Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 181–182 , получено 2020-01-28
  138. ^ «2.3.6.41. SET_LINEJOIN Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 182–183 , получено 2020-01-28
  139. ^ «2.3.6.42. Запись SET_MITERLIMIT», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 183 , проверено 28 января 2020 г.
  140. ^ «2.3.6.43. SPCLPASSTHROUGH2 Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 183–184 , получено 2020-01-28
  141. ^ «2.3.6.44. STARTDOC Record», [MS-WMF]: Спецификация формата метафайлов Windows (PDF) , стр. 184 , проверено 28 января 2020 г.
  142. ^ "Microsoft Windows WMF" SETABORTPROC "Выполнение произвольного кода" . Secunia . Консультации Secunia: SA18255. Архивировано из оригинала 2 января 2006 года.
  143. ^ Pscript-Supported Escapes , Microsoft , получено 28 января 2020 г.
  144. ^ "Бэкдор Windows MetaFile?" . GRC Security сейчас! (Подкаст). Gibson Research Corporation . 12 января 2006 . Проверено 28 января 2020 .
  145. ^ Гибсон, Стив (12 января 2006 г.), «Re: Вы не захотите пропустить сегодняшний вечер Security Now !, # 22» , grc.news.feedback , получено 2020-01-28
  146. ^ Russinovich, Марк (18 января 2006), "Внутри WMF Backdoor" , TechNet , Microsoft - с помощью Microsoft Tech сообщества
  147. ^ Ферри, Питер (2 февраля 2006 г.), Inside the Windows Meta File Format (PDF) , Virus Bulletin , получено 24 января 2020 г. - через Symantec
  148. ^ «1.3.1. Структура метафайлов», [MS-EMF]: Enhanced Metafile Format (PDF) , Microsoft, стр. 17–18
  149. ^ «2.3.4.2.1 Запись EmfMetafileHeader», [MS-EMF]: Расширенный формат метафайлов (PDF) , Microsoft, стр. 120
  150. ^ «2.2.10 HeaderExtension1 Object», [MS-EMF]: Расширенный формат метафайлов (PDF) , Microsoft, стр. 57–58
  151. ^ "2.2.22 PixelFormatDescriptor Object", [MS-EMF]: Расширенный формат метафайлов (PDF) , Microsoft, стр. 68–71
  152. ^ «2.3.4.2.3 Запись EmfMetafileHeaderExtension2», [MS-EMF]: Расширенный формат метафайлов (PDF) , Microsoft, стр. 122–124
  153. ^ «Вы получаете сообщение об ошибке« Этот файл представляет собой неподдерживаемый графический формат »при попытке вставить изображение в презентацию PowerPoint для Mac» . Microsoft . Архивировано из оригинала на 2014-04-19 . Проверено 19 апреля 2014 .

Внешние ссылки [ править ]

  • Спецификация формата метафайлов Windows от Microsoft
  • Метафайлы - приложения Windows
  • Сводка формата файла на fileformat.info
  • Часто задаваемые вопросы по метафайлу Windows