Windows Metafile

NameDescriptionABORTDOCStops processing the current document.BEGIN_PATHOpens a path.CHECK_JPEGFORMATDetermines whether it can handle the given JPEG image.CHECK_PNGFORMATDetermines whether it can handle the given PNG image.CLIP_TO_PATHApplies a function to the current PostScript clipping path.CLOSE_CHANNELSame as ENDDOC.DOWNLOAD_FACESets the font face name on the output device.DOWNLOAD_HEADERDownloads sets of PostScript procedures.DRAW_PATTERNRECTDraws a rectangle with a defined pattern.ENCAPSULATED_POSTSCRIPTSends arbitrary encapsulated PostScript (EPS) data directly to the printer driver.END_PATHEnds a path.ENDDOCNotifies the printer driver that a new print job is ending.EPS_PRINTINGIndicates the start and end of EPS printing.EXTTEXTOUTDraws text using the currently selected font, background color, and text color.GET_COLORTABLEGets color table values from the printer driver.GET_DEVICEUNITSGets the device units currently configured on the output device.GET_EXTENDED_TEXTMETRICSGets the extended text metrics that are currently configured on the printer driver.GET_FACENAMEGets the font face name currently configured on the output device.GET_PAIRKERNTABLEGets the font kern table currently defined on the output device.GET_PHYSPAGESIZERetrieves the physical page size currently selected on the output device.GET_PRINTINGOFFSETRetrieves the offset from the upper-left corner of the physical page where the actual printing or drawing begins.GET_PS_FEATURESETTINGQueries the printer driver for information about PostScript features supported on the output device.GET_SCALINGFACTORRetrieves the scaling factors for the x-axis and the y-axis of a printer.META_ESCAPE_ENHANCED_METAFILEUsed to embed an EMF metafile within a WMF metafile.METAFILE_DRIVERQueries the printer driver about its support for metafiles on the output device.NEWFRAMENotifies the printer driver that the application has finished writing to a page.NEXTBANDNotifies the printer driver that the application has finished writing to a band.PASSTHROUGHPasses through arbitrary data to the printer driver.POSTSCRIPT_DATASends arbitrary PostScript data to the output device.POSTSCRIPT_IDENTIFYSets the printer driver to either PostScript-centric or GDI-centric mode.POSTSCRIPT_IGNORENotifies the output device to ignore PostScript data.POSTSCRIPT_INJECTIONInserts a block of raw data into a PostScript stream.POSTSCRIPT_PASSTHROUGHSends arbitrary data directly to a printer driver, which is expected to process this data only when in PostScript mode.OPEN_CHANNELActs the same as STARTDOC, with a NULL document and output filename, and data in raw mode.QUERY_DIBSUPPORTQueries the printer driver about its support for DIBs on the output device.QUERY_ESCSUPPORTQueries the printer driver to determine whether a specific WMF escape function is supported on the output device.SET_COLORTABLESets color table values.SET_COPYCOUNTSets the number of copies.SET_LINECAPSpecifies the line-ending mode to use in drawing to the output device.SET_LINEJOINSpecifies the line-joining mode to use in drawing to the output device.SET_MITERLIMITSets the limit for the length of miter joins to use in drawing to the output device.SPCLPASSTHROUGH2Enables documents to include private procedures and other arbitrary data in documents.STARTDOCNotifies the printer driver that a new print job is starting.
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. 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 Microsoft Windows 3.1 Programmers Reference, Volume 4 Resources, Microsoft Press 1992, , chapter 3 pp. 21-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 
jmpl|Perbandingan Windows Metafiles - perhatikan bahwa file WMF dapat menyertakan catatan EMF +
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 
kiri|jmpl|Struktur metafile Windows asli dan dapat ditempatkan 
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 bitmap 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. 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. 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. 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. META_STRETCHBLT Menentukan bagaimana melakukan transfer blok bit, tetapi memungkinkan untuk perluasan atau kontraksi gambar. 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.

 Catatan gambar 
Catatan gambar menghasilkan keluaran grafik.
Nama Deskripsi META_ARC Menggambar busur elips. META_CHORD Menarik akord . META_ELLIPSE Menggambar busur elips. META_EXTFLOODFILL Mengisi area dengan kuas. META_EXTTEXTOUT Gambar teks dengan font, warna latar belakang dan warna teks dari konteks perangkat pemutaran. META_FILLREGION Mengisi wilayah dengan kuas tertentu. META_FLOODFILL Mengisi area dengan kuas. META_FRAMEREGION Menggambar batas di sekitar wilayah halaman dengan kuas. META_INVERTREGION Melukis wilayah grafik dengan warna terbalik. META_LINETO Menggambar setengah terbuka baris dari posisi gambar didefinisikan dalam konteks perangkat pemutaran ke titik tertentu. META_PAINTREGION Cat wilayah dengan kuas saat ini yang ditentukan dalam konteks perangkat pemutaran. 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 . 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. META_POLYLINE Menggambar serangkaian segmen garis dengan menghubungkan titik-titik dalam larik yang ditentukan. 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. 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. 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. 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. META_SETPIXEL Mengatur piksel pada koordinat yang ditentukan ke warna yang ditentukan. META_TEXTOUT Mengeluarkan string karakter di lokasi yang ditentukan dengan menggunakan font, warna latar belakang, dan warna teks yang ditentukan dalam konteks perangkat pemutaran.

 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).
Nama Deskripsi META_CREATEBRUSHINDIRECT Membuat objek kuas dari objek LogBrush (kuas logis). META_CREATEFONTINDIRECT Membuat objek kuas dari objek font. META_CREATEPALETTE Membuat objek palet. META_CREATEPATTERNBRUSH  Membuat objek kuas dari objek LogBrush (kuas logis). META_CREATEPENINDIRECT Membuat objek pena. META_CREATEREGION Membuat objek wilayah. META_DELETEOBJECT Hapus sebuah objek. META_CREATEBRUSHINDIRECT Membuat objek kuas dari objek LogBrush (kuas logis). META_DIBCREATEPATTERNBRUSH Membuat objek kuas dari bitmap yang tidak bergantung perangkat. META_SELECTCLIPREGION Menentukan objek wilayah yang akan menjadi wilayah kliping saat ini . 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. META_SELECTPLAETTE Memilih palet logis untuk konteks perangkat pemutaran.

 Catatan negara 
Catatan negara mengelola properti grafis dari konteks perangkat pemutaran.
Nama Deskripsi META_ANIMATEPALETTE Mendefinisikan ulang entri dalam palet logika yang ditentukan dalam konteks perangkat pemutaran dengan Objek Palet yang ditentukan. META_EXCLUDECLIPRECT Setel wilayah kliping yang ditentukan dalam konteks perangkat pemutaran ke wilayah kliping yang sudah ada dikurangi persegi panjang yang ditentukan. META_INTERSECTCLIPRECT Menyetel wilayah kliping yang ditentukan dalam konteks perangkat pemutaran ke persimpangan wilayah kliping yang ada dan persegi panjang yang ditentukan. META_MOVETO Setel posisi keluaran dalam konteks perangkat pemutaran ke titik yang ditentukan. META_OFFSETCLIPRGN Memindahkan daerah kliping yang ditentukan dalam konteks perangkat pemutaran dengan offset tertentu. META_OFFSETVIEWPORTORG Memindahkan asal viewport dalam konteks perangkat pemutaran dengan offset horizontal dan vertikal yang ditentukan. META_OFFSETWINDOWORG Memindahkan asal jendela keluaran dalam konteks perangkat pemutaran dengan offset horizontal dan vertikal yang ditentukan. META_REALIZEPALETTE Memetakan entri dari palet logis yang ditentukan dalam konteks perangkat pemutaran ke palet sistem. META_RESIZEPALETTE Mendefinisikan ulang ukuran palet logis yang ditentukan dalam konteks perangkat pemutaran. META_RESTOREDC Mengembalikan konteks perangkat pemutaran dari konteks perangkat yang disimpan sebelumnya. META_SAVEDC Menyimpan konteks perangkat pemutaran untuk pengambilan nanti. META_SCALEVIEWPORTEXT Menskalakan luasan horizontal dan vertikal viewport yang ditentukan dalam konteks perangkat pemutaran menggunakan rasio yang dibentuk oleh perkalian dan pembagi yang ditentukan. 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. META_SETBKCOLOR Menyetel warna latar belakang dalam konteks perangkat pemutaran ke warna yang ditentukan. META_SETBKMODE Setel mode campuran latar belakang dalam konteks perangkat pemutaran. META_SETLAYOUT Mendefinisikan orientasi tata letak dalam konteks perangkat pemutaran. META_SETMAPMODE Mendefinisikan mode pemetaan dalam konteks perangkat pemutaran. META_SETMAPPERFLAGS Mendefinisikan algoritma yang digunakan pemeta font saat memetakan font logis ke font fisik. META_SETPALENTRIES Mendefinisikan nilai warna RGB dalam rentang entri dalam palet logis yang ditentukan dalam konteks perangkat pemutaran. META_SETPOLYFILLMODE Mendefinisikan mode isian poligon dalam konteks perangkat pemutaran untuk operasi grafis yang mengisi poligon. META_SETRELABS Rekor yang tidak digunakan. META_SETROP2 Mendefinisikan mode pencampuran operasi raster latar depan dalam konteks perangkat pemutaran. META_SETSTRETCHBLTMODE Mendefinisikan mode peregangan bitmap dalam konteks perangkat pemutaran. META_SETTEXTALIGN Mendefinisikan nilai perataan teks dalam konteks perangkat pemutaran. META_SETTEXTCHAREXTRA Mendefinisikan spasi antar karakter untuk pembenaran teks dalam konteks perangkat pemutaran. META_SETTEXTCOLOR Mendefinisikan warna latar depan teks dalam konteks perangkat pemutaran. META_SETTEXTJUSTIFICATION Mendefinisikan jumlah spasi yang akan ditambahkan untuk memecah karakter dalam string teks yang dibenarkan. META_SETVIEWPORTEXT Mendefinisikan luasan horizontal dan vertikal viewport dalam konteks perangkat pemutaran. META_SETVIEWPORTORG Mendefinisikan asal viewport dalam konteks perangkat pemutaran. META_SETWINDOWEXT Mendefinisikan luasan horizontal dan vertikal dari jendela keluaran dalam konteks perangkat pemutaran. META_SETWINDOWORG Mendefinisikan asal jendela keluaran dalam konteks perangkat pemutaran.

 Catatan melarikan diri 
jmpl|Rekaman pelolosan umum WMF
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
NameDescriptionABORTDOCStops processing the current document.BEGIN_PATHOpens a path.CHECK_JPEGFORMATDetermines whether it can handle the given JPEG image.CHECK_PNGFORMATDetermines whether it can handle the given PNG image.CLIP_TO_PATHApplies a function to the current PostScript clipping path.CLOSE_CHANNELSame as ENDDOC.DOWNLOAD_FACESets the font face name on the output device.DOWNLOAD_HEADERDownloads sets of PostScript procedures.DRAW_PATTERNRECTDraws a rectangle with a defined pattern.ENCAPSULATED_POSTSCRIPTSends arbitrary encapsulated PostScript (EPS) data directly to the printer driver.END_PATHEnds a path.ENDDOCNotifies the printer driver that a new print job is ending.EPS_PRINTINGIndicates the start and end of EPS printing.EXTTEXTOUTDraws text using the currently selected font, background color, and text color.GET_COLORTABLEGets color table values from the printer driver.GET_DEVICEUNITSGets the device units currently configured on the output device.GET_EXTENDED_TEXTMETRICSGets the extended text metrics that are currently configured on the printer driver.GET_FACENAMEGets the font face name currently configured on the output device.GET_PAIRKERNTABLEGets the font kern table currently defined on the output device.GET_PHYSPAGESIZERetrieves the physical page size currently selected on the output device.GET_PRINTINGOFFSETRetrieves the offset from the upper-left corner of the physical page where the actual printing or drawing begins.GET_PS_FEATURESETTINGQueries the printer driver for information about PostScript features supported on the output device.GET_SCALINGFACTORRetrieves the scaling factors for the x-axis and the y-axis of a printer.META_ESCAPE_ENHANCED_METAFILEUsed to embed an EMF metafile within a WMF metafile.METAFILE_DRIVERQueries the printer driver about its support for metafiles on the output device.NEWFRAMENotifies the printer driver that the application has finished writing to a page.NEXTBANDNotifies the printer driver that the application has finished writing to a band.PASSTHROUGHPasses through arbitrary data to the printer driver.POSTSCRIPT_DATASends arbitrary PostScript data to the output device.POSTSCRIPT_IDENTIFYSets the printer driver to either PostScript-centric or GDI-centric mode.POSTSCRIPT_IGNORENotifies the output device to ignore PostScript data.POSTSCRIPT_INJECTIONInserts a block of raw data into a PostScript stream.POSTSCRIPT_PASSTHROUGHSends arbitrary data directly to a printer driver, which is expected to process this data only when in PostScript mode.OPEN_CHANNELActs the same as STARTDOC, with a NULL document and output filename, and data in raw mode.QUERY_DIBSUPPORTQueries the printer driver about its support for DIBs on the output device.QUERY_ESCSUPPORTQueries the printer driver to determine whether a specific WMF escape function is supported on the output device.SET_COLORTABLESets color table values.SET_COPYCOUNTSets the number of copies.SET_LINECAPSpecifies the line-ending mode to use in drawing to the output device.SET_LINEJOINSpecifies the line-joining mode to use in drawing to the output device.SET_MITERLIMITSets the limit for the length of miter joins to use in drawing to the output device.SPCLPASSTHROUGH2Enables documents to include private procedures and other arbitrary data in documents.STARTDOCNotifies the printer driver that a new print job is starting.
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:

 Pranala luar 

 Spesifikasi Format Metafile Windows dari Microsoft
 Metafiles - Aplikasi Windows
 Ringkasan Format File di fileformat.info
 FAQ Windows Metafile

Kategori:Multimedia di Windows
Kategori:Format gambar