Windows Metafile
Name | Description |
ABORTDOC | Stops processing the current document.[1] |
BEGIN_PATH | Opens a path.[2] |
CHECK_JPEGFORMAT | Determines whether it can handle the given JPEG image.[3] |
CHECK_PNGFORMAT | Determines whether it can handle the given PNG image.[4] |
CLIP_TO_PATH | Applies a function to the current PostScript clipping path.[5] |
CLOSE_CHANNEL | Same as ENDDOC.[6] |
DOWNLOAD_FACE | Sets the font face name on the output device.[7] |
DOWNLOAD_HEADER | Downloads sets of PostScript procedures.[8] |
DRAW_PATTERNRECT | Draws a rectangle with a defined pattern.[9] |
ENCAPSULATED_POSTSCRIPT | Sends arbitrary encapsulated PostScript (EPS) data directly to the printer driver.[10] |
END_PATH | Ends a path.[11] |
ENDDOC | Notifies the printer driver that a new print job is ending.[12] |
EPS_PRINTING | Indicates the start and end of EPS printing.[13] |
EXTTEXTOUT | Draws text using the currently selected font, background color, and text color.[14] |
GET_COLORTABLE | Gets color table values from the printer driver.[15] |
GET_DEVICEUNITS | Gets the device units currently configured on the output device.[16] |
GET_EXTENDED_TEXTMETRICS | Gets the extended text metrics that are currently configured on the printer driver.[17] |
GET_FACENAME | Gets the font face name currently configured on the output device.[18] |
GET_PAIRKERNTABLE | Gets the font kern table currently defined on the output device.[19] |
GET_PHYSPAGESIZE | Retrieves the physical page size currently selected on the output device.[20] |
GET_PRINTINGOFFSET | Retrieves the offset from the upper-left corner of the physical page where the actual printing or drawing begins.[21] |
GET_PS_FEATURESETTING | Queries the printer driver for information about PostScript features supported on the output device.[22] |
GET_SCALINGFACTOR | Retrieves the scaling factors for the x-axis and the y-axis of a printer.[23] |
META_ESCAPE_ENHANCED_METAFILE | Used to embed an EMF metafile within a WMF metafile.[24] |
METAFILE_DRIVER | Queries the printer driver about its support for metafiles on the output device.[25] |
NEWFRAME | Notifies the printer driver that the application has finished writing to a page.[26] |
NEXTBAND | Notifies the printer driver that the application has finished writing to a band.[27] |
PASSTHROUGH | Passes through arbitrary data to the printer driver.[28] |
POSTSCRIPT_DATA | Sends arbitrary PostScript data to the output device.[29] |
POSTSCRIPT_IDENTIFY | Sets the printer driver to either PostScript-centric or GDI-centric mode.[30] |
POSTSCRIPT_IGNORE | Notifies the output device to ignore PostScript data.[31] |
POSTSCRIPT_INJECTION | Inserts a block of raw data into a PostScript stream.[32] |
POSTSCRIPT_PASSTHROUGH | Sends arbitrary data directly to a printer driver, which is expected to process this data only when in PostScript mode.[33] |
OPEN_CHANNEL | Acts the same as STARTDOC, with a NULL document and output filename, and data in raw mode.[34] |
QUERY_DIBSUPPORT | Queries the printer driver about its support for DIBs on the output device.[35] |
QUERY_ESCSUPPORT | Queries the printer driver to determine whether a specific WMF escape function is supported on the output device.[36] |
SET_COLORTABLE | Sets color table values.[37] |
SET_COPYCOUNT | Sets the number of copies.[38] |
SET_LINECAP | Specifies the line-ending mode to use in drawing to the output device.[39] |
SET_LINEJOIN | Specifies the line-joining mode to use in drawing to the output device.[40] |
SET_MITERLIMIT | Sets the limit for the length of miter joins to use in drawing to the output device.[41] |
SPCLPASSTHROUGH2 | Enables documents to include private procedures and other arbitrary data in documents.[42] |
STARTDOC | Notifies the printer driver that a new print job is starting.[43] |
Windows Metafile ( WMF ) adalah format file gambar yang awalnya dirancang untuk Microsoft Windows pada tahun 1990-an. Format Windows Metafile asli tidak bergantung pada perangkat (meskipun bisa dibuat lebih dengan header penempatan) dan mungkin berisi grafik vektor dan komponen bitmap . Itu bertindak dengan cara yang mirip dengan file SVG . File WMF kemudian digantikan oleh Enhanced Metafiles (file EMF) yang menyediakan kemandirian perangkat. File EMF kemudian ditingkatkan sendiri melalui file EMF + .
Pada dasarnya, metafile menyimpan daftar record yang terdiri dari perintah gambar, definisi properti, dan objek grafik untuk menampilkan gambar di layar.[44] Perintah menggambar yang digunakan terkait erat dengan perintah API Antarmuka Perangkat Grafik (GDI) yang digunakan untuk menggambar di Microsoft Windows.
Ada tiga jenis utama metafile - WMF adalah format 16-bit yang diperkenalkan di Windows 3.0 . Ini adalah format vektor asli untuk aplikasi Microsoft Office seperti Word , PowerPoint , dan Publisher . Mulai 2017 revisi 14 dari spesifikasi Windows Metafile Format tersedia untuk dibaca online atau diunduh sebagai PDF. File EMF, yang menggantikan file WMF, bekerja dengan prinsip yang sama hanya saja itu adalah format file 32-bit yang juga memungkinkan penyematan data pribadi dalam catatan "komentar". EMF + adalah ekstensi untuk file EMF dan disematkan dalam catatan komentar ini, memungkinkan gambar dan teks menggunakan perintah, objek, dan properti yang mirip dengan Windows GDI + .
Sejarah
Format file WMF 16 bit asli sepenuhnya ditentukan dalam volume 4 dokumentasi SDK Windows 3.1 1992 [45] (setidaknya jika digabungkan dengan deskripsi fungsi dan struktur individu di volume lain), tetapi spesifikasi itu tidak jelas tentang a sedikit detail. Manual ini diterbitkan sebagai buku cetak yang tersedia di toko buku tanpa klik melalui EULA atau batasan lisensi tidak biasa lainnya (hanya peringatan umum bahwa jika dibeli sebagai bagian dari bundel perangkat lunak, perangkat lunak akan tunduk pada salah satunya).
Seiring waktu keberadaan spesifikasi bersejarah itu sebagian besar dilupakan dan beberapa implementasi alternatif menggunakan rekayasa terbalik untuk mengetahui format file dari file WMF yang ada, yang sulit dan rawan kesalahan. Pada bulan September 2006, Microsoft kembali menerbitkan spesifikasi format file WMF dalam bentuk yang lebih lengkap dalam konteks Microsoft Open Specification Promise , berjanji untuk tidak menegaskan hak paten kepada pelaksana format file.
Microsoft kemudian menghentikan file WMF dan mendukung file EMF 32-bit karena file WMF memiliki masalah nyata dengan kemandirian perangkat, meskipun menggunakan header file "placeable" yang memberikan kemandirian perangkat dasar. Microsoft menemukan bahwa pengembang yang menggunakan format tersebut adalah "[embedding] aplikasi, lokasi, atau komentar skala di metafile ... Yang lain menambahkan header ke metafile yang menyediakan berbagai informasi khusus aplikasi", menyebabkan masalah kompatibilitas utama. Jadi, pada tahun 1992 dengan Windows NT 3.1 , Microsoft memperkenalkan format Enhanced Metafile (EMF) - format yang didasarkan pada Win32 API dan yang mereka gunakan untuk kemandirian perangkat bawaan. - ini juga dikenal sebagai metafile NT. Dengan dirilisnya Windows XP dan GDI +, kumpulan catatan harus ditingkatkan secara signifikan sehingga Microsoft merilis EMF + sebagai perpanjangan dari format file EMF yang ada.
Struktur metafile
File WMF, EMF dan EMF + semuanya terdiri dari serangkaian rekaman yang diputar ulang untuk menghasilkan keluaran grafis. Beberapa catatan menentukan objek yang dapat menentukan objek grafis yang digunakan untuk menentukan bagaimana grafik harus digambar (misalnya pena menentukan warna dan lebar garis). Masing-masing objek ini disimpan dalam metafile dan ditempatkan ke dalam tabel objek, yang melacak penggunaan objek grafik saat memproses metafile. Tabel objek adalah larik indeks asosiatif ke struktur objek grafis yang ditentukan dalam metafile.
File WMF dan EMF menangani pemrosesan objek secara berbeda dengan catatan EMF + dalam file EMF. Saat file WMF dan EMF sedang diproses, catatan dibaca ke dalam tabel objek setelah objek ditentukan. Jika sebuah objek dihapus maka objek tersebut dilepaskan dari tabel dan pengenal dapat digunakan kembali. Khususnya sebuah objek tidak akan digunakan sampai secara khusus dipilih selama playback rekaman. Ini berbeda untuk file EMF +, yang juga menggunakan array asosiatif melalui peta hash yang merekam objek bersama dengan pengenal objek. Namun, tidak seperti file WMF dan EMF yang dapat menghapus objek, saat objek baru dibuat yang memiliki indeks yang sama dengan objek yang sudah ada, entri dalam tabel diganti dengan objek baru. File EMF juga tidak perlu secara khusus memilih objek sebelum digunakan.
WMF
File WMF awalnya tidak dirancang untuk menjadi perangkat independen, artinya Anda tidak dapat memutar file pada perangkat output yang berbeda dari perangkat asli tempat file direkam. Solusi parsial untuk masalah ini ditemukan oleh Aldus Corporation , yang menambahkan header "placeable" tambahan, yang disebut "header APM", yang menambahkan pembatas pembatas, versi metafile, ukuran metafile, jumlah objek di metafile dan ukuran rekor tunggal terbesar di metafile. Ini kemudian dimasukkan ke dalam format WMF oleh Microsoft, dimulai pada Windows 2000.
File WMF disusun oleh serangkaian record, dimulai dengan sejumlah record kontrol: record header, record placeable opsional yang disebutkan sebelumnya, dan diakhiri dengan akhir record file .
Dienkapsulasi oleh catatan kontrol adalah catatan yang menyusun gambar itu sendiri. Rekaman ini bekerja dalam apa yang dikenal sebagai konteks perangkat pemutaran , yang merupakan kumpulan properti dan objek yang membentuk lingkungan grafis perangkat saat metafile sedang "diputar" ke perangkat keluaran ini.
Rekaman selain catatan kontrol dapat dikelompokkan ke dalam catatan bitmap, catatan gambar, catatan objek, catatan status dan catatan escape.
Catatan bitmap
Catatan <a href="./Bitmap" rel="mw:WikiLink" data-linkid="undefined" data-cx="{"userAdded":true,"adapted":true}">bitmap</a> mengelola dan mengeluarkan gambar bitmap .
Nama | Deskripsi |
META_BITBLT | Menentukan bagaimana melakukan transfer blok bit . Catatan ini dapat menentukan bitmap untuk digunakan sebagai sumber, atau wilayah.[47] |
META_DIBBITBLT | Menentukan cara melakukan transfer blok bit dari image bitmap yang tidak tergantung perangkat . Catatan ini dapat menentukan bitmap untuk digunakan sebagai sumber, atau wilayah.[48] |
META_DIBSTRETCHBITBLT | Menentukan cara melakukan transfer blok bit dari gambar bitmap yang tidak tergantung perangkat, tetapi memungkinkan untuk perluasan atau penyusutan gambar. Catatan ini dapat menentukan bitmap untuk digunakan sebagai sumber, atau wilayah.[49] |
META_SETDIBTODEV | Menentukan warna untuk menyetel blok piksel dalam gambar bitmap yang tidak tergantung perangkat. Catatan ini dapat menentukan bitmap untuk digunakan sebagai sumber, atau wilayah.[50] |
META_STRETCHBLT | Menentukan bagaimana melakukan transfer blok bit, tetapi memungkinkan untuk perluasan atau kontraksi gambar.[51] |
META_STRETCHDIB | Menentukan cara melakukan transfer blok bit dari gambar bitmap yang tidak tergantung perangkat, tetapi memungkinkan untuk perluasan atau penyusutan gambar. Catatan ini dapat menentukan bitmap untuk digunakan sebagai sumber, atau wilayah.[52] |
Catatan gambar
Catatan gambar menghasilkan keluaran grafik.
Nama | Deskripsi |
META_ARC | Menggambar busur elips.[53] |
META_CHORD | Menarik akord .[54] |
META_ELLIPSE | Menggambar busur elips.[55] |
META_EXTFLOODFILL | Mengisi area dengan kuas.[56] |
META_EXTTEXTOUT | Gambar teks dengan font, warna latar belakang dan warna teks dari konteks perangkat pemutaran.[57] |
META_FILLREGION | Mengisi wilayah dengan kuas tertentu.[58] |
META_FLOODFILL | Mengisi area dengan kuas.[59] |
META_FRAMEREGION | Menggambar batas di sekitar wilayah halaman dengan kuas.[60] |
META_INVERTREGION | Melukis wilayah grafik dengan warna terbalik.[61] |
META_LINETO | Menggambar setengah terbuka baris dari posisi gambar didefinisikan dalam konteks perangkat pemutaran ke titik tertentu.[62] |
META_PAINTREGION | Cat wilayah dengan kuas saat ini yang ditentukan dalam konteks perangkat pemutaran.[63] |
META_PATBLT | Lukis suatu wilayah dengan kuas saat ini yang ditentukan dalam konteks perangkat pemutaran, lalu gabungkan warna kuas dan warna permukaan menggunakan operasi raster .[64] |
META_PIE | Gambar baji berbentuk pai yang dibatasi oleh perpotongan elips dan dua radial — garis ditetapkan melalui set pena melalui konteks perangkat pemutaran, dan area yang dibatasi oleh bentuk pai diisi oleh sikat perangkat pemutaran saat ini konteks.[65] |
META_POLYLINE | Menggambar serangkaian segmen garis dengan menghubungkan titik-titik dalam larik yang ditentukan.[66] |
META_POLYGON | Melukis poligon yang terdiri dari dua atau lebih simpul yang dihubungkan dengan garis lurus. Poligon diberi garis batas menggunakan pena dan diisi dengan menggunakan mode isian kuas dan poligon yang ditentukan dalam konteks perangkat pemutaran.[67] |
META_POLYPOLYGON | Melukis serangkaian poligon tertutup, yang mungkin tumpang tindih. Setiap poligon digarisbawahi dengan menggunakan pena dan diisi dengan menggunakan mode isian kuas dan poligon yang ditentukan dalam konteks perangkat pemutaran.[68] |
META_RECTANGLE | Melukis sebuah persegi panjang, yang digarisbawahi dengan menggunakan pena dan diisi dengan menggunakan kuas dan diisi dengan menggunakan kuas yang ditentukan dalam konteks perangkat pemutaran.[69] |
META_ROUNDRECT | Melukis persegi panjang dengan sudut membulat. Persegi panjang diberi garis menggunakan pena dan diisi dengan menggunakan kuas dan diisi dengan menggunakan kuas yang ditentukan dalam konteks perangkat pemutaran.[70] |
META_SETPIXEL | Mengatur piksel pada koordinat yang ditentukan ke warna yang ditentukan.[71] |
META_TEXTOUT | Mengeluarkan string karakter di lokasi yang ditentukan dengan menggunakan font, warna latar belakang, dan warna teks yang ditentukan dalam konteks perangkat pemutaran.[72] |
Catatan objek
Rekaman objek membuat dan mengelola objek grafik. Dalam file WMF ada dua kategori objek - objek grafik dan objek struktur. Objek struktur tidak dibuat atau dihapus secara eksplisit dalam WMF, melainkan struktur yang kompleks. Misalnya, BitmapCoreHeader berisi informasi tentang dimensi dan format warna dari bitmap yang tidak bergantung perangkat, yang merupakan bagian dari objek DeviceIndependentBitmap. Sebuah objek grafis, bagaimanapun, menentukan parameter untuk output grafis dan selama pemutaran dari WMF itu mengatur konteks perangkat pemutaran.
Objek grafik dapat berupa kuas (menentukan gaya, warna, dan pola kuas yang menentukan cara melukis area grafik), font (menentukan properti yang memengaruhi cara teks ditampilkan), palet (menentukan warna sebagai nilai yang tidak bergantung perangkat, ditentukan oleh aplikasi), pena (menentukan atribut grafis dari sebuah garis), dan daerah (yang menentukan segmen garis dan kurva yang menentukan bentuk).[73]
Nama | Deskripsi |
META_CREATEBRUSHINDIRECT | Membuat objek kuas dari objek LogBrush (kuas logis).[74] |
META_CREATEFONTINDIRECT | Membuat objek kuas dari objek font.[75] |
META_CREATEPALETTE | Membuat objek palet. |
META_CREATEPATTERNBRUSH [76] | Membuat objek kuas dari objek LogBrush (kuas logis).[77] |
META_CREATEPENINDIRECT | Membuat objek pena.[78] |
META_CREATEREGION | Membuat objek wilayah.[79] |
META_DELETEOBJECT | Hapus sebuah objek.[80] |
META_CREATEBRUSHINDIRECT | Membuat objek kuas dari objek LogBrush (kuas logis).[81] |
META_DIBCREATEPATTERNBRUSH | Membuat objek kuas dari bitmap yang tidak bergantung perangkat.[82] |
META_SELECTCLIPREGION | Menentukan objek wilayah yang akan menjadi wilayah kliping saat ini .[83] |
META_SELECTOBJECT | Memilih objek yang akan menjadi objek saat ini untuk konteks perangkat pemutaran, yang bekerja pada semua objek grafis kecuali objek palet, yang harus disetel dengan META_SELECTPALETTE.[84] |
META_SELECTPLAETTE | Memilih palet logis untuk konteks perangkat pemutaran.[85] |
Catatan negara
Catatan negara mengelola properti grafis dari konteks perangkat pemutaran.[86]
Nama | Deskripsi |
META_ANIMATEPALETTE | Mendefinisikan ulang entri dalam palet logika yang ditentukan dalam konteks perangkat pemutaran dengan Objek Palet yang ditentukan.[87] |
META_EXCLUDECLIPRECT | Setel wilayah kliping yang ditentukan dalam konteks perangkat pemutaran ke wilayah kliping yang sudah ada dikurangi persegi panjang yang ditentukan.[88] |
META_INTERSECTCLIPRECT | Menyetel wilayah kliping yang ditentukan dalam konteks perangkat pemutaran ke persimpangan wilayah kliping yang ada dan persegi panjang yang ditentukan.[89] |
META_MOVETO | Setel posisi keluaran dalam konteks perangkat pemutaran ke titik yang ditentukan.[90] |
META_OFFSETCLIPRGN | Memindahkan daerah kliping yang ditentukan dalam konteks perangkat pemutaran dengan offset tertentu.[91] |
META_OFFSETVIEWPORTORG | Memindahkan asal viewport dalam konteks perangkat pemutaran dengan offset horizontal dan vertikal yang ditentukan.[92] |
META_OFFSETWINDOWORG | Memindahkan asal jendela keluaran dalam konteks perangkat pemutaran dengan offset horizontal dan vertikal yang ditentukan.[93] |
META_REALIZEPALETTE | Memetakan entri dari palet logis yang ditentukan dalam konteks perangkat pemutaran ke palet sistem.[94] |
META_RESIZEPALETTE | Mendefinisikan ulang ukuran palet logis yang ditentukan dalam konteks perangkat pemutaran.[95] |
META_RESTOREDC | Mengembalikan konteks perangkat pemutaran dari konteks perangkat yang disimpan sebelumnya.[96] |
META_SAVEDC | Menyimpan konteks perangkat pemutaran untuk pengambilan nanti.[97] |
META_SCALEVIEWPORTEXT | Menskalakan luasan horizontal dan vertikal viewport yang ditentukan dalam konteks perangkat pemutaran menggunakan rasio yang dibentuk oleh perkalian dan pembagi yang ditentukan.[98] |
META_SCALEWINDOWEXT | Menskalakan luasan horizontal dan vertikal dari jendela keluaran yang ditentukan dalam konteks perangkat pemutaran menggunakan rasio yang dibentuk oleh perkalian dan pembagi yang ditentukan.[99] |
META_SETBKCOLOR | Menyetel warna latar belakang dalam konteks perangkat pemutaran ke warna yang ditentukan.[100] |
META_SETBKMODE | Setel mode campuran latar belakang dalam konteks perangkat pemutaran.[101] |
META_SETLAYOUT | Mendefinisikan orientasi tata letak dalam konteks perangkat pemutaran.[102] |
META_SETMAPMODE | Mendefinisikan mode pemetaan dalam konteks perangkat pemutaran.[103] |
META_SETMAPPERFLAGS | Mendefinisikan algoritma yang digunakan pemeta font saat memetakan font logis ke font fisik.[104] |
META_SETPALENTRIES | Mendefinisikan nilai warna RGB dalam rentang entri dalam palet logis yang ditentukan dalam konteks perangkat pemutaran.[105] |
META_SETPOLYFILLMODE | Mendefinisikan mode isian poligon dalam konteks perangkat pemutaran untuk operasi grafis yang mengisi poligon.[106] |
META_SETRELABS | Rekor yang tidak digunakan.[107] |
META_SETROP2 | Mendefinisikan mode pencampuran operasi raster latar depan dalam konteks perangkat pemutaran.[108] |
META_SETSTRETCHBLTMODE | Mendefinisikan mode peregangan bitmap dalam konteks perangkat pemutaran.[109] |
META_SETTEXTALIGN | Mendefinisikan nilai perataan teks dalam konteks perangkat pemutaran.[110] |
META_SETTEXTCHAREXTRA | Mendefinisikan spasi antar karakter untuk pembenaran teks dalam konteks perangkat pemutaran.[111] |
META_SETTEXTCOLOR | Mendefinisikan warna latar depan teks dalam konteks perangkat pemutaran.[112] |
META_SETTEXTJUSTIFICATION | Mendefinisikan jumlah spasi yang akan ditambahkan untuk memecah karakter dalam string teks yang dibenarkan.[113] |
META_SETVIEWPORTEXT | Mendefinisikan luasan horizontal dan vertikal viewport dalam konteks perangkat pemutaran.[114] |
META_SETVIEWPORTORG | Mendefinisikan asal viewport dalam konteks perangkat pemutaran.[115] |
META_SETWINDOWEXT | Mendefinisikan luasan horizontal dan vertikal dari jendela keluaran dalam konteks perangkat pemutaran.[116] |
META_SETWINDOWORG | Mendefinisikan asal jendela keluaran dalam konteks perangkat pemutaran.[117] |
Catatan melarikan diri
Rekaman melarikan diri adalah cara untuk memperluas fungsionalitas metafile melalui catatan yang tidak didefinisikan sebagai tipe catatan WMF. Setiap rekaman pelolosan berisi fungsi rekam, fungsi pelolosan, dan kemungkinan data pelolosan.
Rekaman pelolosan berikut membuat file WMF
Name | Description |
ABORTDOC | Stops processing the current document.[118] |
BEGIN_PATH | Opens a path.[119] |
CHECK_JPEGFORMAT | Determines whether it can handle the given JPEG image.[120] |
CHECK_PNGFORMAT | Determines whether it can handle the given PNG image.[121] |
CLIP_TO_PATH | Applies a function to the current PostScript clipping path.[122] |
CLOSE_CHANNEL | Same as ENDDOC.[123] |
DOWNLOAD_FACE | Sets the font face name on the output device.[124] |
DOWNLOAD_HEADER | Downloads sets of PostScript procedures.[125] |
DRAW_PATTERNRECT | Draws a rectangle with a defined pattern.[126] |
ENCAPSULATED_POSTSCRIPT | Sends arbitrary encapsulated PostScript (EPS) data directly to the printer driver.[127] |
END_PATH | Ends a path.[128] |
ENDDOC | Notifies the printer driver that a new print job is ending.[129] |
EPS_PRINTING | Indicates the start and end of EPS printing.[130] |
EXTTEXTOUT | Draws text using the currently selected font, background color, and text color.[131] |
GET_COLORTABLE | Gets color table values from the printer driver.[132] |
GET_DEVICEUNITS | Gets the device units currently configured on the output device.[133] |
GET_EXTENDED_TEXTMETRICS | Gets the extended text metrics that are currently configured on the printer driver.[134] |
GET_FACENAME | Gets the font face name currently configured on the output device.[135] |
GET_PAIRKERNTABLE | Gets the font kern table currently defined on the output device.[136] |
GET_PHYSPAGESIZE | Retrieves the physical page size currently selected on the output device.[137] |
GET_PRINTINGOFFSET | Retrieves the offset from the upper-left corner of the physical page where the actual printing or drawing begins.[138] |
GET_PS_FEATURESETTING | Queries the printer driver for information about PostScript features supported on the output device.[139] |
GET_SCALINGFACTOR | Retrieves the scaling factors for the x-axis and the y-axis of a printer.[140] |
META_ESCAPE_ENHANCED_METAFILE | Used to embed an EMF metafile within a WMF metafile.[141] |
METAFILE_DRIVER | Queries the printer driver about its support for metafiles on the output device.[142] |
NEWFRAME | Notifies the printer driver that the application has finished writing to a page.[143] |
NEXTBAND | Notifies the printer driver that the application has finished writing to a band.[144] |
PASSTHROUGH | Passes through arbitrary data to the printer driver.[145] |
POSTSCRIPT_DATA | Sends arbitrary PostScript data to the output device.[146] |
POSTSCRIPT_IDENTIFY | Sets the printer driver to either PostScript-centric or GDI-centric mode.[147] |
POSTSCRIPT_IGNORE | Notifies the output device to ignore PostScript data.[148] |
POSTSCRIPT_INJECTION | Inserts a block of raw data into a PostScript stream.[149] |
POSTSCRIPT_PASSTHROUGH | Sends arbitrary data directly to a printer driver, which is expected to process this data only when in PostScript mode.[150] |
OPEN_CHANNEL | Acts the same as STARTDOC, with a NULL document and output filename, and data in raw mode.[151] |
QUERY_DIBSUPPORT | Queries the printer driver about its support for DIBs on the output device.[152] |
QUERY_ESCSUPPORT | Queries the printer driver to determine whether a specific WMF escape function is supported on the output device.[153] |
SET_COLORTABLE | Sets color table values.[154] |
SET_COPYCOUNT | Sets the number of copies.[155] |
SET_LINECAP | Specifies the line-ending mode to use in drawing to the output device.[156] |
SET_LINEJOIN | Specifies the line-joining mode to use in drawing to the output device.[157] |
SET_MITERLIMIT | Sets the limit for the length of miter joins to use in drawing to the output device.[158] |
SPCLPASSTHROUGH2 | Enables documents to include private procedures and other arbitrary data in documents.[159] |
STARTDOC | Notifies the printer driver that a new print job is starting.[160] |
Ada kerentanan utama yang ditemukan dalam catatan pelarian di sekitar catatan pelarian Abort, yang menyimpan kode prosedur pembatalan di dalam catatan itu sendiri. Sistem Windows yang terpengaruh ini (lihat CVE - 2005-4560 ) dan proyek Wine (lihat CVE - 2006-0106 ). Menurut Secunia , "Kerentanan ini disebabkan karena kesalahan dalam penanganan file Windows Metafile ('.wmf') yang berisi catatan 'Escape' SETABORTPROC yang dibuat secara khusus. Catatan semacam itu memungkinkan fungsi yang ditentukan pengguna sewenang-wenang dijalankan saat rendering file WMF gagal. " Menurut dokumentasi SDK Windows 3.1, pelarian SETABORTPROC sudah usang dan digantikan oleh fungsi dengan nama yang sama di Windows 3.1, jauh sebelum kerentanan WMF ditemukan. Namun kode melarikan diri usang dipertahankan untuk kompatibilitas dengan program 16 bit yang ditulis untuk (atau setidaknya kompatibel dengan) Windows 3.0. Perubahan ini terjadi kira-kira pada waktu yang sama ketika Microsoft membuat implementasi ulang GDI 32 bit untuk Windows NT, dan kemungkinan kerentanan terjadi selama upaya ini.
Setelah Steve Gibson dari Gibson Research Corporation menuduh Microsoft sengaja menerapkan pintu belakang ke dalam kode mereka, Mark Russinovich memberikan bantahan, dan menyatakan bahwa:
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 158–159, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 159, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 159–160, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 160, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 160, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 162, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 162–163, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 158–159, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 163–164, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 164, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 164–165, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 165, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 165–166, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 166–167, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 167–168, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 168, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 168–169, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 169, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 169–170, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 170, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 170–171, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 171, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 171–172, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 172–173, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 173–174, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 174–175, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 174–175, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 175, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 176, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 176–177, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 177, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 177–178, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 178, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 179, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 179–180, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 180, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 180–181, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 181, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 181–182, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 182–183, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 183, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 183–184, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 184, diakses tanggal 2020-01-28
- ^ Windows Metafile Format (PDF), Microsoft, hlm. 16
- ^ Microsoft Windows 3.1 Programmers Reference, Volume 4 Resources, Microsoft Press 1992, ISBN 1-55615-494-1, chapter 3 pp. 21-45
- ^ Windows Metafile Format (PDF), Microsoft, hlm. 17
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 101–103, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), Microsoft, hlm. 103-106, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), Microsoft, hlm. 106-108, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), Microsoft, hlm. 108-109, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), Microsoft, hlm. 109-110, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), Microsoft, hlm. 103-106, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 101–103, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 117–118, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 119, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 119–120, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 119–120, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 121, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 119–120, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 122–123, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 123, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 123–124, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 124, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 124–125, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 125–126, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 126, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 127, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 127–128, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 127–128, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 128–129, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 129–130, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 130, diakses tanggal 2020-01-24
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 79, diakses tanggal 2020-01-25
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 131–132, diakses tanggal 2020-01-25
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 132, diakses tanggal 2020-01-25
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 133–135, diakses tanggal 2020-01-25
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 132–133, diakses tanggal 2020-01-25
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 134–135, diakses tanggal 2020-01-25
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 135, diakses tanggal 2020-01-25
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 135, diakses tanggal 2020-01-25
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 135–136, diakses tanggal 2020-01-25
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 136–137, diakses tanggal 2020-01-25
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 137, diakses tanggal 2020-01-25
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 137–138, diakses tanggal 2020-01-25
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 139, diakses tanggal 2020-01-25
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 138, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 140, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 140–141, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 141–142, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 142, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 142–143, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 143, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 131–132, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 143–144, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 144, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 145, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 145, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 145–146, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 146–147, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 147, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 147–148, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 148, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 148–149, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 131–132, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 149, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 149–150, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 150, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 151, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 151–152, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 152, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 152–153, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 153, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 153–154, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 154, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 154–155, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 155, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 155, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 158–159, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 159, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 159–160, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 160, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 160, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 162, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 162–163, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 158–159, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 163–164, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 164, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 164–165, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 165, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 165–166, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 166–167, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 167–168, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 168, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 168–169, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 169, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 169–170, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 170, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 170–171, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 171, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 171–172, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 172–173, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 173–174, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 174–175, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 174–175, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 175, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 176, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 176–177, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 177, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 177–178, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 178, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 179, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 179–180, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 180, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 180–181, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 181, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 181–182, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 182–183, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 183, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 183–184, diakses tanggal 2020-01-28
- ^ [MS-WMF]: Windows Metafile Format Specification (PDF), hlm. 184, diakses tanggal 2020-01-28