विंडोज़ मेटाफ़ाइल: Difference between revisions
No edit summary |
|||
(10 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{Short description|File format for images}} | {{Short description|File format for images}} | ||
'''विंडोज़ मेटाफ़ाइल (डब्लूएमएफ)''' एक इमेज फाइल फॉर्मेट है जिसे मूल रूप से 1990 के दशक में माइक्रोसॉफ्ट विंडोज़ के लिए डिज़ाइन किया गया था। मूल विंडोज़ मेटाफ़ाइल प्रारूप डिवाइस-स्वतंत्र नहीं था (हालांकि प्लेसमेंट हेडर के साथ इसे और अधिक बनाया जा सकता था) और इसमें [[वेक्टर ग्राफिक्स]] और बिटमैप दोनों घटक | '''विंडोज़ मेटाफ़ाइल (डब्लूएमएफ)''' एक इमेज फाइल फॉर्मेट है जिसे मूल रूप से 1990 के दशक में माइक्रोसॉफ्ट विंडोज़ के लिए डिज़ाइन किया गया था। मूल विंडोज़ मेटाफ़ाइल प्रारूप डिवाइस-स्वतंत्र नहीं था (हालांकि प्लेसमेंट हेडर के साथ इसे और अधिक बनाया जा सकता था) और इसमें [[वेक्टर ग्राफिक्स]] और बिटमैप दोनों घटक सम्मिलित हो सकते हैं। यह एसवीजी फाइलों की तरह ही कार्य करता है। WMF फ़ाइलों को बाद में एन्हांस्ड मेटाफ़ाइल्स (EMF फ़ाइलें) द्वारा प्रतिस्थापित किया गया, जो डिवाइस की स्वतंत्रता प्रदान करती थी। EMF फ़ाइलों को फिर EMF+ फ़ाइलों के माध्यम से बढ़ाया गया। | ||
अनिवार्य रूप से, एक मेटाफ़ाइल स्क्रीन पर एक छवि प्रदर्शित करने के लिए ड्राइंग कमांड, प्रॉपर्टी परिभाषा और ग्राफिक्स ऑब्जेक्ट से युक्त रिकॉर्ड की एक सूची संग्रहीत करता है।<ref name="wmfspecdef">{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=Windows Metafile Format|publisher=Microsoft|page=16}}</ref> उपयोग किए गए ड्राइंग कमांड माइक्रोसॉफ्ट विंडोज़ में ड्राइंग के लिए उपयोग किए जाने वाले ग्राफिक्स डिवाइस इंटरफ़ेस (जीडीआई) एपीआई के कमांड से निकटता से संबंधित हैं। | अनिवार्य रूप से, एक मेटाफ़ाइल स्क्रीन पर एक छवि प्रदर्शित करने के लिए ड्राइंग कमांड, प्रॉपर्टी परिभाषा और ग्राफिक्स ऑब्जेक्ट से युक्त रिकॉर्ड की एक सूची संग्रहीत करता है।<ref name="wmfspecdef">{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=Windows Metafile Format|publisher=Microsoft|page=16}}</ref> उपयोग किए गए ड्राइंग कमांड माइक्रोसॉफ्ट विंडोज़ में ड्राइंग के लिए उपयोग किए जाने वाले ग्राफिक्स डिवाइस इंटरफ़ेस (जीडीआई) एपीआई के कमांड से निकटता से संबंधित हैं। | ||
मेटाफ़ाइल्स के तीन प्रमुख प्रकार हैं - WMF एक 16-बिट प्रारूप है जिसे विंडोज़ 3.0 में | मेटाफ़ाइल्स के तीन प्रमुख प्रकार हैं - WMF एक 16-बिट प्रारूप है जिसे विंडोज़ 3.0 में प्रस्तुत किया गया है। यह वर्ड, पावर पॉइंट और प्रकाशक जैसे माइक्रोसॉफ़्ट ऑफिस अनुप्रयोगों के लिए मूल वेक्टर प्रारूप है। 2017 के अनुसार विंडोज मेटाफ़ाइल प्रारूप विनिर्देश का संशोधन 14 ऑनलाइन पढ़ने या पीडीएफ के रूप में डाउनलोड करने के लिए उपलब्ध है।<ref name="v15">{{cite web|url=http://msdn.microsoft.com/en-us/library/cc250370.aspx|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format|publisher=[[MSDN]]|date=2015-06-30|access-date=2015-07-26}}</ref> ईएमएफ फाइलें, जिन्होंने डब्लूएमएफ फाइलों को प्रतिस्थापित किया, उसी सिद्धांत पर काम करती हैं, केवल यह एक 32-बिट फ़ाइल प्रारूप है जो "टिप्पणी" रिकॉर्ड के भीतर निजी डेटा को एम्बेड करने की भी अनुमति देता है।<ref name="emfspecdef">{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-EMF/%5bMS-EMF%5d.pdf|title=<nowiki>[MS-EMF]:</nowiki> Enhanced Metafile Format|publisher=Microsoft|page=17}}</ref> ईएमएफ+ ईएमएफ फाइलों का एक विस्तार है और इन टिप्पणी रिकॉर्ड में एम्बेडेड है, जो विंडोज़ जीडीआई+ के समान कमांड, ऑब्जेक्ट और गुणों का उपयोग करके छवियों और टेक्स्ट की अनुमति देता है।<ref name="emfplusspecdef">{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-EMFPLUS/%5bMS-EMFPLUS%5d.pdf|title=<nowiki>[MS-EMFPLUS]:</nowiki> Enhanced Metafile Format Plus Extensions|publisher=Microsoft|page=19}}</ref> | ||
==इतिहास== | ==इतिहास== | ||
मूल 16-बिट WMF फ़ाइल स्वरूप 1992 के विंडोज़ 3.1 एसडीके | मूल 16-बिट WMF फ़ाइल स्वरूप 1992 के विंडोज़ 3.1 एसडीके प्रलेखन के खंड 4 में पूरी तरह से निर्दिष्ट किया गया था<ref>Microsoft Windows 3.1 Programmers Reference, Volume 4 Resources, Microsoft Press 1992, {{ISBN|1-55615-494-1}}, chapter 3 pp. 21-45</ref> (कम से कम यदि अन्य खंडों में व्यक्तिगत कार्यों और संरचनाओं के विवरण के साथ जोड़ा जाए), लेकिन वह विनिर्देश कुछ विवरणों के बारे में अस्पष्ट था। इन मैनुअलों को किताबों की दुकानों में उपलब्ध मुद्रित पुस्तकों के रूप में प्रकाशित किया गया था, जिसमें कोई क्लिक-थ्रू ईयूएलए या अन्य असामान्य लाइसेंसिंग प्रतिबंध नहीं थे (केवल एक सामान्य चेतावनी है कि यदि सॉफ्टवेयर बंडल के हिस्से के रूप में खरीदा जाता है, तो सॉफ्टवेयर एक के अधीन होगा)। | ||
समय के साथ उस ऐतिहासिक विनिर्देश के अस्तित्व को काफी हद तक भुला दिया गया और कुछ वैकल्पिक कार्यान्वयनों ने मौजूदा WMF फ़ाइलों से फ़ाइल प्रारूप का पता लगाने के लिए रिवर्स इंजीनियरिंग का सहारा लिया, जो कठिन और त्रुटि प्रवण था।<ref>{{cite web | url=http://wvware.sourceforge.net/caolan/support.html | title=विंडो मेटाफ़ाइल (डब्ल्यूएमएफ) संदर्भ| quote=''ये ऑपकोड लागू नहीं किए गए हैं, इस कारण से कि मुझे नहीं पता कि वे क्या हैं, कोई ज्ञात दस्तावेज नहीं है''| author=Caolan McNamara | access-date=2008-06-01}}</ref> सितंबर 2006 में, माइक्रोसॉफ़्ट ने WMF फ़ाइल प्रारूप विनिर्देश को अधिक पूर्ण रूप में फिर से प्रकाशित किया<ref>{{cite web | url=http://msdn.microsoft.com/en-us/library/cc215212.aspx | title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification | access-date=2008-06-01 }}</ref> [[माइक्रोसॉफ्ट ओपन विशिष्टता वादा]] के संदर्भ में, फ़ाइल प्रारूप कार्यान्वयनकर्ताओं पर पेटेंट अधिकारों का दावा नहीं करने का वादा किया गया है।<ref name="osp">{{cite web | url=http://www.microsoft.com/interop/osp/ | title=माइक्रोसॉफ्ट ओपन विशिष्टता वादा| website=[[Microsoft]] | access-date=2008-06-01 }}</ref> | |||
माइक्रोसॉफ्ट ने बाद में 32-बिट ईएमएफ फाइलों के पक्ष में डब्लूएमएफ फाइलों को खारिज कर दिया क्योंकि डब्लूएमएफ फाइलों में डिवाइस स्वतंत्रता के साथ वास्तविक समस्याएं थीं, प्लेसेबल फ़ाइल हेडर के उपयोग के बावजूद जो मूलभूत डिवाइस स्वतंत्रता प्रदान करती थी। माइक्रोसॉफ्ट ने पाया कि जो डेवलपर्स प्रारूप का उपयोग करते हैं, वे मेटाफ़ाइल्स में एप्लिकेशन, स्थान, या स्केलिंग टिप्पणियां [एम्बेडिंग] कर रहे थे... अन्य ने मेटाफ़ाइल में हेडर जोड़े जो विभिन्न एप्लिकेशन-विशिष्ट जानकारी प्रदान करते थे, जिससे प्रमुख संगतता समस्याएं पैदा हुईं। एक प्रारूप जो Win32 API पर आधारित था और जिसके साथ उन्होंने डिवाइस की स्वतंत्रता अंतर्निहित की थी। इन्हें एनटी मेटाफ़ाइल्स के रूप में भी जाना जाता था। विंडोज़ एक्सपी और जीडीआई+ की रिलीज़ के साथ, रिकॉर्ड्स के सेट को काफी बढ़ाना पड़ा और इसलिए माइक्रोसॉफ्ट ने मौजूदा ईएमएफ फ़ाइल प्रारूप के विस्तार के रूप में ईएमएफ+ प्रभावशील किया था।<ref name="rfc7903">{{cite IETF|title = Windows Image Media Types|rfc = 7903|sectionname = Windows Metafiles|page = 1|last1 = Leonard|first1 = Sean|date = September 2016|publisher = [[Internet Engineering Task Force|IETF]]|access-date = February 8, 2020|issn = 2070-1721|doi = 10.17487/RFC7903}}</ref> | |||
==मेटाफ़ाइल संरचना== | ==मेटाफ़ाइल संरचना== | ||
[[File:Microsoft Metafile comparisons.svg|thumb|विंडोज़ मेटाफ़ाइल्स की तुलना - ध्यान दें कि WMF फ़ाइलों में EMF+ रिकॉर्ड | [[File:Microsoft Metafile comparisons.svg|thumb|विंडोज़ मेटाफ़ाइल्स की तुलना - ध्यान दें कि WMF फ़ाइलों में EMF+ रिकॉर्ड सम्मिलित हो सकते हैं]]WMF, EMF और EMF+ फ़ाइलें सभी रिकॉर्ड की एक श्रृंखला से बनी होती हैं जिन्हें ग्राफिकल आउटपुट उत्पन्न करने के लिए चलाया जाता है। कुछ रिकॉर्ड वस्तुओं को परिभाषित करते हैं जो ग्राफिकल वस्तुओं को निर्दिष्ट कर सकते हैं जिनका उपयोग यह निर्धारित करने के लिए किया जाता है कि ग्राफिक्स कैसे बनाया जाना चाहिए (उदाहरण के लिए पेन लाइनों का रंग और चौड़ाई निर्दिष्ट करते हैं)। इनमें से प्रत्येक ऑब्जेक्ट को मेटाफ़ाइल्स में संग्रहीत किया जाता है और एक ऑब्जेक्ट तालिका में रखा जाता है, जो मेटाफ़ाइल को संसाधित करते समय ग्राफिक ऑब्जेक्ट्स के उपयोग को ट्रैक करता है। ऑब्जेक्ट तालिका मेटाफ़ाइल के भीतर परिभाषित ग्राफ़िकल ऑब्जेक्ट संरचनाओं के अनुक्रमितों की एक सहयोगी सरणी है। | ||
WMF और EMF फ़ाइलें EMF फ़ाइलों में EMF+ रिकॉर्ड से भिन्न तरीके से ऑब्जेक्ट प्रोसेसिंग को संभालती हैं। चूंकि WMF और EMF फ़ाइल को संसाधित किया जा रहा है, किसी ऑब्जेक्ट को परिभाषित करने के बाद रिकॉर्ड्स को ऑब्जेक्ट तालिका में पढ़ा जाता है। यदि कोई ऑब्जेक्ट हटा दिया जाता है तो ऑब्जेक्ट को तालिका से मुक्त कर दिया जाता है और पहचानकर्ता का पुन: उपयोग किया जा सकता है। विशेष रूप से किसी ऑब्जेक्ट का उपयोग तब तक नहीं किया जाएगा जब तक कि इसे रिकॉर्ड प्लेबैक के दौरान विशेष रूप से नहीं चुना जाता है।<ref>{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Enhanced Metafile Format|publisher=Microsoft|page=187|section=3.1.4.1 WMF Object Table}}</ref><ref>{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-EMF/%5bMS-EMF%5d.pdf|title=<nowiki>[MS-EMF]:</nowiki> Windows Metafile Format Specification|publisher=Microsoft|page=212-214|section=3.1.1.1 EMF Object Table}}</ref> यह EMF+ फ़ाइलों के लिए भिन्न है, जो हैशमैप के माध्यम से एक सहयोगी सरणी का भी उपयोग करता है जो ऑब्जेक्ट को ऑब्जेक्ट पहचानकर्ता के साथ रिकॉर्ड करता है। हालाँकि, WMF और EMF फ़ाइलों के विपरीत, जो किसी ऑब्जेक्ट को हटा सकती हैं, जब एक नया ऑब्जेक्ट बनाया जाता है जिसका इंडेक्स मौजूदा ऑब्जेक्ट के समान होता है, तो तालिका में प्रविष्टि को नए ऑब्जेक्ट से बदल दिया जाता है। ईएमएफ फ़ाइल को उपयोग करने से पहले विशेष रूप से किसी ऑब्जेक्ट का चयन करने की आवश्यकता नहीं होती है।<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-EMFPLUS/%5bMS-EMFPLUS%5d.pdf|pages=204–205|title=<nowiki>[MS-EMFPLUS]:</nowiki> Enhanced Metafile Format Plus Extensions|publisher=Microsoft}}</ref> | WMF और EMF फ़ाइलें EMF फ़ाइलों में EMF+ रिकॉर्ड से भिन्न तरीके से ऑब्जेक्ट प्रोसेसिंग को संभालती हैं। चूंकि WMF और EMF फ़ाइल को संसाधित किया जा रहा है, किसी ऑब्जेक्ट को परिभाषित करने के बाद रिकॉर्ड्स को ऑब्जेक्ट तालिका में पढ़ा जाता है। यदि कोई ऑब्जेक्ट हटा दिया जाता है तो ऑब्जेक्ट को तालिका से मुक्त कर दिया जाता है और पहचानकर्ता का पुन: उपयोग किया जा सकता है। विशेष रूप से किसी ऑब्जेक्ट का उपयोग तब तक नहीं किया जाएगा जब तक कि इसे रिकॉर्ड प्लेबैक के दौरान विशेष रूप से नहीं चुना जाता है।<ref>{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Enhanced Metafile Format|publisher=Microsoft|page=187|section=3.1.4.1 WMF Object Table}}</ref><ref>{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-EMF/%5bMS-EMF%5d.pdf|title=<nowiki>[MS-EMF]:</nowiki> Windows Metafile Format Specification|publisher=Microsoft|page=212-214|section=3.1.1.1 EMF Object Table}}</ref> यह EMF+ फ़ाइलों के लिए भिन्न है, जो हैशमैप के माध्यम से एक सहयोगी सरणी का भी उपयोग करता है जो ऑब्जेक्ट को ऑब्जेक्ट पहचानकर्ता के साथ रिकॉर्ड करता है। हालाँकि, WMF और EMF फ़ाइलों के विपरीत, जो किसी ऑब्जेक्ट को हटा सकती हैं, जब एक नया ऑब्जेक्ट बनाया जाता है जिसका इंडेक्स मौजूदा ऑब्जेक्ट के समान होता है, तो तालिका में प्रविष्टि को नए ऑब्जेक्ट से बदल दिया जाता है। ईएमएफ फ़ाइल को उपयोग करने से पहले विशेष रूप से किसी ऑब्जेक्ट का चयन करने की आवश्यकता नहीं होती है।<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-EMFPLUS/%5bMS-EMFPLUS%5d.pdf|pages=204–205|title=<nowiki>[MS-EMFPLUS]:</nowiki> Enhanced Metafile Format Plus Extensions|publisher=Microsoft}}</ref> | ||
Line 44: | Line 67: | ||
| free = | | free = | ||
}} | }} | ||
[[File:WMF-structure.svg|thumb|left|मूल और रखने योग्य विंडोज़ मेटाफ़ाइलों की संरचनाएँ<ref>{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=Windows Metafile Format|publisher=Microsoft|page=17|section=Figure 1: Structures of original and placeable Windows metafiles}}</ref>]]WMF फ़ाइलें मूल रूप से डिवाइस स्वतंत्र होने के लिए डिज़ाइन नहीं की गई थीं, जिसका अर्थ है कि आप फ़ाइल को आउटपुट डिवाइस पर प्लेबैक नहीं कर सकते थे जो मूल डिवाइस से भिन्न था जिस पर फ़ाइल रिकॉर्ड की गई थी। इस समस्या का आंशिक समाधान [[एल्डस कॉर्पोरेशन]] द्वारा आविष्कार किया गया था, जिसने एक अतिरिक्त प्लेसेबल हेडर जोड़ा, जिसे एपीएम हेडर कहा जाता है।<ref name="aldus">{{citation|title=Q66949: INFO: Windows Metafile Functions & Aldus Placeable Metafiles|publisher=Microsoft|url=https://jeffpar.github.io/kbarchive/kb/066/Q66949/|via=KnowledgeBase Archive: An Archive of Early Microsoft KnowledgeBase }}</ref> जिसमें एक बाउंडिंग आयत, एक मेटाफ़ाइल संस्करण, मेटाफ़ाइल आकार, मेटाफ़ाइल में ऑब्जेक्ट की संख्या और मेटाफ़ाइल में सबसे बड़े एकल रिकॉर्ड का आकार जोड़ा गया।<ref name="wmfstructure">{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=Windows Metafile Format|publisher=Microsoft|page=17|section=1.3.1 Metafile Structure}}</ref><ref>{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=Windows Metafile Format|publisher=Microsoft|section=2.3.2.3 META_PLACEABLE Record|page=115}}</ref> इसे बाद में [[माइक्रोसॉफ्ट]] द्वारा विंडोज 2000 में | [[File:WMF-structure.svg|thumb|left|मूल और रखने योग्य विंडोज़ मेटाफ़ाइलों की संरचनाएँ<ref>{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=Windows Metafile Format|publisher=Microsoft|page=17|section=Figure 1: Structures of original and placeable Windows metafiles}}</ref>]]WMF फ़ाइलें मूल रूप से डिवाइस स्वतंत्र होने के लिए डिज़ाइन नहीं की गई थीं, जिसका अर्थ है कि आप फ़ाइल को आउटपुट डिवाइस पर प्लेबैक नहीं कर सकते थे जो मूल डिवाइस से भिन्न था जिस पर फ़ाइल रिकॉर्ड की गई थी। इस समस्या का आंशिक समाधान [[एल्डस कॉर्पोरेशन]] द्वारा आविष्कार किया गया था, जिसने एक अतिरिक्त प्लेसेबल हेडर जोड़ा, जिसे एपीएम हेडर कहा जाता है।<ref name="aldus">{{citation|title=Q66949: INFO: Windows Metafile Functions & Aldus Placeable Metafiles|publisher=Microsoft|url=https://jeffpar.github.io/kbarchive/kb/066/Q66949/|via=KnowledgeBase Archive: An Archive of Early Microsoft KnowledgeBase }}</ref> जिसमें एक बाउंडिंग आयत, एक मेटाफ़ाइल संस्करण, मेटाफ़ाइल आकार, मेटाफ़ाइल में ऑब्जेक्ट की संख्या और मेटाफ़ाइल में सबसे बड़े एकल रिकॉर्ड का आकार जोड़ा गया।<ref name="wmfstructure">{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=Windows Metafile Format|publisher=Microsoft|page=17|section=1.3.1 Metafile Structure}}</ref><ref>{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=Windows Metafile Format|publisher=Microsoft|section=2.3.2.3 META_PLACEABLE Record|page=115}}</ref> इसे बाद में [[माइक्रोसॉफ्ट]] द्वारा विंडोज 2000 में प्रारंभ करके WMF प्रारूप में सम्मिलित किया गया।<ref>{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=Windows Metafile Format|publisher=Microsoft|page=55|quote=<55> Section 2.3.2.3: Windows NT 3.1, Windows NT 3.5, Windows NT 3.51, and Windows 95: This feature is not supported.}}</ref> | ||
WMF फ़ाइलें रिकॉर्ड की एक श्रृंखला द्वारा संरचित होती हैं, जो कई नियंत्रण रिकॉर्ड से | WMF फ़ाइलें रिकॉर्ड की एक श्रृंखला द्वारा संरचित होती हैं, जो कई नियंत्रण रिकॉर्ड से प्रारंभ होती हैं: हेडर रिकॉर्ड,<ref name="wmfstructure"/><ref>{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=Windows Metafile Format|publisher=Microsoft|section=2.3.2.2 MTF_HEADERRECORD Record|page=114}}</ref> उपर्युक्त वैकल्पिक स्थानयोग्य रिकॉर्ड, <ref>{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=Windows Metafile Format|publisher=Microsoft|section=2.3.2.2 MTF_HEADERRECORD Record|page=114}}</ref> और फ़ाइल रिकॉर्ड के अंत तक समाप्त हो गया।<ref name="wmfstructure"/><ref>{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=Windows Metafile Format|publisher=Microsoft|section=2.3.2.1 MTF_EOF Record|page=114}}</ref> | ||
नियंत्रण रिकॉर्ड द्वारा संपुटित वे रिकॉर्ड होते हैं जो स्वयं छवि बनाते हैं। ये रिकॉर्ड प्लेबैक डिवाइस संदर्भ के रूप में जाने जाते हैं, जो गुणों और वस्तुओं का संग्रह है जो डिवाइस के ग्राफिकल वातावरण को बनाते हैं क्योंकि मेटाफ़ाइल को इस आउटपुट डिवाइस पर वापस चलाया जा रहा है।<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf | title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification | section=1.1 Glossary|page=13|access-date=2020-01-24|publisher=Microsoft}}</ref> नियंत्रण रिकॉर्ड के अलावा अन्य रिकॉर्ड को बड़े पैमाने पर बिटमैप रिकॉर्ड, ड्राइंग रिकॉर्ड, ऑब्जेक्ट रिकॉर्ड, राज्य रिकॉर्ड और एस्केप रिकॉर्ड में समूहीकृत किया जा सकता है। | नियंत्रण रिकॉर्ड द्वारा संपुटित वे रिकॉर्ड होते हैं जो स्वयं छवि बनाते हैं। ये रिकॉर्ड प्लेबैक डिवाइस संदर्भ के रूप में जाने जाते हैं, जो गुणों और वस्तुओं का संग्रह है जो डिवाइस के ग्राफिकल वातावरण को बनाते हैं क्योंकि मेटाफ़ाइल को इस आउटपुट डिवाइस पर वापस चलाया जा रहा है।<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf | title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification | section=1.1 Glossary|page=13|access-date=2020-01-24|publisher=Microsoft}}</ref> नियंत्रण रिकॉर्ड के अलावा अन्य रिकॉर्ड को बड़े पैमाने पर बिटमैप रिकॉर्ड, ड्राइंग रिकॉर्ड, ऑब्जेक्ट रिकॉर्ड, राज्य रिकॉर्ड और एस्केप रिकॉर्ड में समूहीकृत किया जा सकता है। | ||
Line 295: | Line 318: | ||
| मेटा_ सेटविंडोवॉर्ग | | मेटा_ सेटविंडोवॉर्ग | ||
|प्लेबैक डिवाइस संदर्भ में आउटपुट विंडो मूल को परिभाषित करता है | |प्लेबैक डिवाइस संदर्भ में आउटपुट विंडो मूल को परिभाषित करता है | ||
|} | |} | ||
Line 3,209: | Line 325: | ||
निम्नलिखित एस्केप रिकॉर्ड एक WMF फ़ाइल बनाते हैं। | निम्नलिखित एस्केप रिकॉर्ड एक WMF फ़ाइल बनाते हैं। | ||
{| class="wikitable" | {| class="wikitable" | ||
|- valign="bottom" | |- valign="bottom" | ||
! | ! नाम | ||
! | ! विवरण | ||
|- | |- | ||
| ABORTDOC | | ABORTDOC | ||
| | | वर्तमान आलेख को संसाधित करना बंद कर देता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.2. ABORTDOC Record|pages=158–159|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| BEGIN_PATH | | BEGIN_PATH | ||
| | | एक रास्ता खोलता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.3. BEGIN_PATH Record|page=159|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| CHECK_JPEGFORMAT | | CHECK_JPEGFORMAT | ||
| | | निर्धारित करता है कि यह दी गई JPEG छवि को संभाल सकता है या नहीं<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.4. CHECK_JPEGFORMAT Record|pages=159–160|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| CHECK_PNGFORMAT | | CHECK_PNGFORMAT | ||
| | | निर्धारित करता है कि यह दी गई पीएनजी छवि को संभाल सकता है या नहीं<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.5. CHECK_PNGFORMAT Record|page=160|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| | | CLIP_TO_PATH | ||
| | | किसी फ़ंक्शन को वर्तमान पोस्टस्क्रिप्ट क्लिपिंग पथ पर लागू करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.6. CLIP_TO_PATH Record|page=160|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| CLOSE_CHANNEL | | CLOSE_CHANNEL | ||
| | | ENDDOC के समान<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.7. CLOSE_CHANNEL Record|page=162|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| DOWNLOAD_FACE | | DOWNLOAD_FACE | ||
| | | आउटपुट डिवाइस पर फ़ॉन्ट फेस नाम सेट करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.8. DOWNLOAD_FACE Record|pages=162–163|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| DOWNLOAD_HEADER | | DOWNLOAD_HEADER | ||
| | | पोस्टस्क्रिप्ट प्रक्रियाओं के सेट डाउनलोड करें<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.9. DOWNLOAD_HEADER Record|pages=158–159|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| | | DRAW_PATTERNRECT | ||
| | | एक परिभाषित पैटर्न के साथ एक आयत बनाता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.10. DRAW_PATTERNRECT Record|pages=163–164|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| ENCAPSULATED_POSTSCRIPT | | ENCAPSULATED_POSTSCRIPT | ||
| | | मनमाना इनकैप्सुलेटेड पोस्टस्क्रिप्ट (ईपीएस) डेटा सीधे प्रिंटर ड्राइवर को भेजता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.11. ENCAPSULATED_POSTSCRIPT Record|page=164|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| END_PATH | | END_PATH | ||
| | | एक रास्ता ख़त्म हो जाता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.12. END_PATH Record|pages=164–165|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| ENDDOC | | ENDDOC | ||
| | | प्रिंटर ड्राइवर को सूचित करता है कि नया प्रिंट कार्य समाप्त हो रहा है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.13. ENDDOC Record|pages=165|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| EPS_PRINTING | | EPS_PRINTING | ||
| | | ईपीएस प्रिंटिंग की प्रारंभ और समाप्ति को दर्शाता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.14. EPS_PRINTING Record|pages=165–166|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| | | EXTTEXTOUT | ||
| | | वर्तमान में चयनित फ़ॉन्ट, पृष्ठभूमि रंग और टेक्स्ट रंग का उपयोग करके टेक्स्ट बनाता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.15. EXTTEXTOUT Record|pages=166–167|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| GET_COLORTABLE | | GET_COLORTABLE | ||
| | | प्रिंटर ड्राइवर से रंग तालिका मान प्राप्त करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.16. GET_COLORTABLE Record|pages=167–168|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| GET_DEVICEUNITS | | GET_DEVICEUNITS | ||
| | | आउटपुट डिवाइस पर वर्तमान में कॉन्फ़िगर की गई डिवाइस इकाइयों को प्राप्त करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.17. GET_DEVICEUNITS Record|page=168|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| GET_EXTENDED_TEXTMETRICS | | GET_EXTENDED_TEXTMETRICS | ||
| | | विस्तारित टेक्स्ट मेट्रिक्स प्राप्त करता है जो वर्तमान में प्रिंटर ड्राइवर पर कॉन्फ़िगर किया गया है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.18. GET_EXTENDED_TEXTMETRICS Record|pages=168–169|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| GET_FACENAME | | GET_FACENAME | ||
| | | वर्तमान में आउटपुट डिवाइस पर कॉन्फ़िगर किया गया फ़ॉन्ट फेस नाम प्राप्त करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.19. GET_FACENAME Record|page=169|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| GET_PAIRKERNTABLE | | GET_PAIRKERNTABLE | ||
| | | आउटपुट डिवाइस पर वर्तमान में परिभाषित फ़ॉन्ट कर्न तालिका प्राप्त करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.20. GET_PAIRKERNTABLE Record|pages=169–170|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| GET_PHYSPAGESIZE | | GET_PHYSPAGESIZE | ||
| | | आउटपुट डिवाइस पर वर्तमान में चयनित भौतिक पृष्ठ आकार को पुनः प्राप्त करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.21. GET_PHYSPAGESIZE Record|page=170|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| GET_PRINTINGOFFSET | | GET_PRINTINGOFFSET | ||
| | | भौतिक पृष्ठ के ऊपरी-बाएँ कोने से ऑफ़सेट पुनर्प्राप्त करता है जहाँ वास्तविक मुद्रण या ड्राइंग शुरू होती है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.22. GET_PRINTINGOFFSET Record|pages=170–171|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| GET_PS_FEATURESETTING | | GET_PS_FEATURESETTING | ||
| | | आउटपुट डिवाइस पर समर्थित पोस्टस्क्रिप्ट सुविधाओं के बारे में जानकारी के लिए प्रिंटर ड्राइवर से पूछताछ करें<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.23. GET_PS_FEATURESETTING Record|page=171|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| GET_SCALINGFACTOR | | GET_SCALINGFACTOR | ||
| | | प्रिंटर के x-अक्ष और y-अक्ष के लिए स्केलिंग कारक पुनर्प्राप्त करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.24. GET_SCALINGFACTOR Record|pages=171–172|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| | | META_ESCAPE_ENHANCED_METAFILE | ||
| | | WMF मेटाफ़ाइल के भीतर EMF मेटाफ़ाइल को एम्बेड करने के लिए उपयोग किया जाता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.25. META_ESCAPE_ENHANCED_METAFILE Record|pages=172–173|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| | | METAFILE_DRIVER | ||
| | | आउटपुट डिवाइस पर मेटाफ़ाइल्स के लिए इसके समर्थन के बारे में प्रिंटर ड्राइवर से पूछताछ करें<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.26. METAFILE_DRIVER Record|pages=173–174|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| NEWFRAME | | NEWFRAME | ||
| | | प्रिंटर ड्राइवर को सूचित करता है कि एप्लिकेशन ने एक पृष्ठ पर लिखना समाप्त कर दिया है<<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.27. NEWFRAME Record|pages=174–175|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| NEXTBAND | | NEXTBAND | ||
| | | प्रिंटर ड्राइवर को सूचित करता है कि एप्लिकेशन ने बैंड पर लिखना समाप्त कर दिया है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.28. NEXTBAND Record|pages=174–175|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| PASSTHROUGH | | PASSTHROUGH | ||
| | | प्रिंटर ड्राइवर को मनमाना डेटा भेजता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.29. PASSTHROUGH Record|page=175|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| POSTSCRIPT_DATA | | POSTSCRIPT_DATA | ||
| | | आउटपुट डिवाइस पर मनमाना पोस्टस्क्रिप्ट डेटा भेजता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.30. POSTSCRIPT_DATA Record|page=176|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| POSTSCRIPT_IDENTIFY | | POSTSCRIPT_IDENTIFY | ||
| | | प्रिंटर ड्राइवर को या तो पोस्टस्क्रिप्ट-केंद्रित या GDI-केंद्रित मोड पर सेट करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.31. POSTSCRIPT_IDENTIFY Record|pages=176–177|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| POSTSCRIPT_IGNORE | | POSTSCRIPT_IGNORE | ||
| | | पोस्टस्क्रिप्ट डेटा को अनदेखा करने के लिए आउटपुट डिवाइस को सूचित करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.32. POSTSCRIPT_IGNORE Record|page=177|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| POSTSCRIPT_INJECTION | | POSTSCRIPT_INJECTION | ||
| | | पोस्टस्क्रिप्ट स्ट्रीम में कच्चे डेटा का एक ब्लॉक सम्मिलित करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.33. POSTSCRIPT_INJECTION Record|pages=177–178|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| POSTSCRIPT_PASSTHROUGH | | POSTSCRIPT_PASSTHROUGH | ||
| | | मनमाना डेटा सीधे एक प्रिंटर ड्राइवर को भेजता है, जिससे उम्मीद की जाती है कि वह इस डेटा को केवल पोस्टस्क्रिप्ट मोड में ही संसाधित करेगा<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.34. POSTSCRIPT_PASSTHROUGH Record|page=178|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| | | OPEN_CHANNEL | ||
| | | STARTDOC के समान कार्य करता है, एक NULL आलेख और आउटपुट फ़ाइल नाम और कच्चे मोड में डेटा के साथ<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.35. OPEN_CHANNEL Record|page=179|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| | | QUERY_DIBSUPPORT | ||
| | | आउटपुट डिवाइस पर DIB के लिए उसके समर्थन के बारे में प्रिंटर ड्राइवर से पूछताछ करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.36. QUERY_DIBSUPPORT Record|pages=179–180|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| QUERY_ESCSUPPORT | | QUERY_ESCSUPPORT | ||
| | | यह निर्धारित करने के लिए प्रिंटर ड्राइवर से पूछताछ करें कि आउटपुट डिवाइस पर एक विशिष्ट WMF एस्केप फ़ंक्शन समर्थित है या नहीं<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.37. QUERY_ESCSUPPORT Record|page=180|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| SET_COLORTABLE | | SET_COLORTABLE | ||
| | | रंग तालिका मान सेट करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.38. SET_COLORTABLE Record|pages=180–181|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| SET_COPYCOUNT | | SET_COPYCOUNT | ||
| | | प्रतियों की संख्या निर्धारित करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.39. SET_COPYCOUNT Record|page=181|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| SET_LINECAP | | SET_LINECAP | ||
| | | आउटपुट डिवाइस पर ड्राइंग में उपयोग करने के लिए लाइन-एंडिंग मोड निर्दिष्ट करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.40. SET_LINECAP Record|pages=181–182|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| SET_LINEJOIN | | SET_LINEJOIN | ||
| | | आउटपुट डिवाइस पर ड्राइंग में उपयोग करने के लिए लाइन-ज्वाइनिंग मोड निर्दिष्ट करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.41. SET_LINEJOIN Record|pages=182–183|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| SET_MITERLIMIT | | SET_MITERLIMIT | ||
| | | आउटपुट डिवाइस पर ड्राइंग में उपयोग के लिए मेटर जॉइन की लंबाई की सीमा निर्धारित करता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.42. SET_MITERLIMIT Record|page=183|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| SPCLPASSTHROUGH2 | | SPCLPASSTHROUGH2 | ||
| | | आलेखों को आलेखों में निजी प्रक्रियाओं और अन्य मनमाने डेटा को शामिल करने में सक्षम बनाता है<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.43. SPCLPASSTHROUGH2 Record|pages=183–184|access-date=2020-01-28}}</ref> | ||
|- | |- | ||
| STARTDOC | | STARTDOC | ||
| | | प्रिंटर ड्राइवर को सूचित करता है कि एक नया प्रिंट कार्य प्रारंभ हो रहा है।<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-WMF/%5bMS-WMF%5d.pdf|title=<nowiki>[MS-WMF]:</nowiki> Windows Metafile Format Specification|section=2.3.6.44. STARTDOC Record|page=184|access-date=2020-01-28}}</ref> | ||
|} | |} | ||
एबॉर्ट एस्केप रिकॉर्ड के आसपास एस्केप रिकॉर्ड में एक [[विंडोज़ मेटाफ़ाइल भेद्यता]] पाई गई थी, जो एबॉर्ट प्रक्रिया कोड को रिकॉर्ड के भीतर ही संग्रहीत करता है। इससे विंडोज़ सिस्टम प्रभावित हुआ (देखें)। {{CVE|2005-4560}}) और [[ वाइन (सॉफ़्टवेयर) ]] (देखें {{CVE|2006-0106}}). [[सिकुनिया]] के अनुसार, भेद्यता विशेष रूप से तैयार किए गए | |||
एबॉर्ट एस्केप रिकॉर्ड के आसपास एस्केप रिकॉर्ड में एक [[विंडोज़ मेटाफ़ाइल भेद्यता]] पाई गई थी, जो एबॉर्ट प्रक्रिया कोड को रिकॉर्ड के भीतर ही संग्रहीत करता है। इससे विंडोज़ सिस्टम प्रभावित हुआ (देखें)। {{CVE|2005-4560}}) और [[ वाइन (सॉफ़्टवेयर) ]] (देखें {{CVE|2006-0106}}). [[सिकुनिया]] के अनुसार, भेद्यता विशेष रूप से तैयार किए गए सेटबोर्टप्रोक 'एस्केप' रिकॉर्ड वाले विंडोज मेटाफ़ाइल फ़ाइलों ('.wmf') को संभालने में त्रुटि के कारण होती है। WMF फ़ाइल का रेंडरिंग विफल होने पर ऐसे रिकॉर्ड मनमाने उपयोगकर्ता-परिभाषित फ़ंक्शन को निष्पादित करने की अनुमति देते हैं।<ref name=secunia>{{cite web|archive-url=https://web.archive.org/web/20060102123654/http://secunia.com/advisories/18255/|archive-date=January 2, 2006|url=http://secunia.com/advisories/18255/|title=Microsoft Windows WMF "SETABORTPROC" मनमाना कोड निष्पादन|id=Secunia Advisory: SA18255|publisher=[[Secunia]]}}</ref> विंडोज़ 3.1 SDK प्रलेखन के अनुसार, WMF भेद्यता की खोज से बहुत पहले, सेटबोर्टप्रोक एस्केप अप्रचलित हो गया था और विंडोज़ 3.1 में उसी नाम के फ़ंक्शन द्वारा प्रतिस्थापित कर दिया गया था।<ref>{{citation|url=https://docs.microsoft.com/en-us/windows-hardware/drivers/print/pscript-supported-escapes|title=Pscript-Supported Escapes|publisher=Microsoft|access-date=2020-01-28}}</ref> हालाँकि, अप्रचलित एस्केप कोड को विंडोज 3.0 के लिए लिखे गए (या कम से कम बैकवर्ड संगत) 16 बिट प्रोग्राम के साथ संगतता के लिए बरकरार रखा गया था। यह परिवर्तन लगभग उसी समय हुआ जब माइक्रोसॉफ़्ट विंडोज़ NT के लिए GDI का 32 बिट पुनः कार्यान्वयन बना रहा था, और यह संभावना है कि इस प्रयास के दौरान भेद्यता उत्पन्न हुई। | |||
[[स्टीव गिब्सन (कंप्यूटर प्रोग्रामर)]] द्वारा माइक्रोसॉफ्ट पर जानबूझकर उनके कोड में पिछले दरवाजे (कंप्यूटिंग) को लागू करने का आरोप लगाने के बाद,<ref>{{cite podcast|url=https://media.grc.com/sn/sn-022.mp3|title=The Windows MetaFile Backdoor?|website=GRC Security Now!|publisher=[[Gibson Research Corporation]]|date=January 12, 2006|access-date=2020-01-28}}</ref><ref>{{citation|title = Re: You won't want to miss tonight's Security Now!, #22|first=Steve|last=Gibson|author-link=Steve Gibson (computer programmer)|date=January 12, 2006|work=grc.news.feedback|url=https://www.grc.com/x/news.exe?cmd=article&group=grc.news.feedback&item=60006|access-date=2020-01-28}}</ref> [[मार्क रुसिनोविच]] ने एक खंडन प्रदान किया, और कहा कि: | [[स्टीव गिब्सन (कंप्यूटर प्रोग्रामर)]] द्वारा माइक्रोसॉफ्ट पर जानबूझकर उनके कोड में पिछले दरवाजे (कंप्यूटिंग) को लागू करने का आरोप लगाने के बाद,<ref>{{cite podcast|url=https://media.grc.com/sn/sn-022.mp3|title=The Windows MetaFile Backdoor?|website=GRC Security Now!|publisher=[[Gibson Research Corporation]]|date=January 12, 2006|access-date=2020-01-28}}</ref><ref>{{citation|title = Re: You won't want to miss tonight's Security Now!, #22|first=Steve|last=Gibson|author-link=Steve Gibson (computer programmer)|date=January 12, 2006|work=grc.news.feedback|url=https://www.grc.com/x/news.exe?cmd=article&group=grc.news.feedback&item=60006|access-date=2020-01-28}}</ref> [[मार्क रुसिनोविच]] ने एक खंडन प्रदान किया, और कहा कि: | ||
{{quote|...things were different when the format was architected. In the Windows 3.1 “large” memory model code is inherently location-independent and Windows was never patched, so both Windows and an application could simply copy an application function into the WMF file and assume it would work when played back by the same application in a later run session. In any case, its not clear that the developers envisioned applications creating on-disk metafiles with abort procedures. Also, as Microsoft’s Stephen Toulouse pointed out in [https://web.archive.org/web/20060116042756/http://blogs.technet.com/msrc/archive/2006/01/13/417431.aspx Microsoft’s rebuttal] to Steve’s claims, the security landscape in the early 1990s was very different than today and all code, including that stored in a WMF file, was inherently trusted.<ref>{{citation|url=https://techcommunity.microsoft.com/t5/windows-blog-archive/inside-the-wmf-backdoor/ba-p/723489|first=Mark|last=Russinovich|author-link=Mark Russinovich|title=Inside the WMF Backdoor|publisher=Microsoft|work=TechNet|via=Microsoft Tech Community|date=January 18, 2006}}</ref>}} | {{quote|...things were different when the format was architected. In the Windows 3.1 “large” memory model code is inherently location-independent and Windows was never patched, so both Windows and an application could simply copy an application function into the WMF file and assume it would work when played back by the same application in a later run session. In any case, its not clear that the developers envisioned applications creating on-disk metafiles with abort procedures. Also, as Microsoft’s Stephen Toulouse pointed out in [https://web.archive.org/web/20060116042756/http://blogs.technet.com/msrc/archive/2006/01/13/417431.aspx Microsoft’s rebuttal] to Steve’s claims, the security landscape in the early 1990s was very different than today and all code, including that stored in a WMF file, was inherently trusted.<ref>{{citation|url=https://techcommunity.microsoft.com/t5/windows-blog-archive/inside-the-wmf-backdoor/ba-p/723489|first=Mark|last=Russinovich|author-link=Mark Russinovich|title=Inside the WMF Backdoor|publisher=Microsoft|work=TechNet|via=Microsoft Tech Community|date=January 18, 2006}}</ref> | ||
...जब प्रारूप तैयार किया गया था तो चीजें अलग थीं। विंडोज़ 3.1 में "बड़ी" मेमोरी मॉडल कोड स्वाभाविक रूप से स्थान-स्वतंत्र है और विंडोज़ को कभी भी पैच नहीं किया गया था, इसलिए विंडोज़ और एक एप्लिकेशन दोनों बस एक एप्लिकेशन फ़ंक्शन को डब्लूएमएफ फ़ाइल में कॉपी कर सकते हैं और मान सकते हैं कि यह उसी एप्लिकेशन द्वारा चलाए जाने पर काम करेगा। बाद में चलने वाला सत्र। किसी भी मामले में, यह स्पष्ट नहीं है कि डेवलपर्स ने निरस्त प्रक्रियाओं के साथ ऑन-डिस्क मेटाफ़ाइल्स बनाने वाले अनुप्रयोगों की कल्पना की थी। इसके अलावा, जैसा कि माइक्रोसॉफ्ट के स्टीफन टूलूज़ ने [https://web.archive.org/web/20060116042756/http://blogs.technet.com/msrc/archive/2006/01/13/417431.aspx माइक्रोसॉफ्ट के खंडन में बताया है स्टीव के दावों के अनुसार, 1990 के दशक की प्रारम्भ में सुरक्षा परिदृश्य आज की तुलना में बहुत अलग था और WMF फ़ाइल में संग्रहीत सहित सभी कोड, स्वाभाविक रूप से भरोसेमंद थे}} | |||
सिमेंटेक सिक्योरिटी रिस्पांस, यूएसए के पीटर फेरी भी गिब्सन से असहमत थे, उन्होंने कहा: | सिमेंटेक सिक्योरिटी रिस्पांस, यूएसए के पीटर फेरी भी गिब्सन से असहमत थे, उन्होंने कहा: | ||
{{quote|Gibson claimed that a thread is created to run the SetAbortProc handler. In fact, no thread is created to run the handler – it is a callback, which is called by the parser, and the parser has to wait until the callback returns, otherwise the whole point of the function (to abort the printing) is lost. By his own admission, Gibson did not read the documentation (in fact, he claimed that he couldn’t find it, although it is freely available on Microsoft’s Web site), and he claimed that the device context is not available to the function handler. Of course the device context is available to the function handler — it is one of the two parameters that is passed to it (see above), and it is required in order to abort the printing. Finally, Gibson claimed that the control flow could not return to Windows. It is simply a matter of the function returning and discarding the parameters that were passed on the stack. If the record is well formed, Windows will continue to parse the file, as before. ... Gibson admits that he was guessing about a number of things. Unfortunately, he guessed poorly. I guess we know better now.<ref>{{citation|title=Inside the Windows Meta File Format|publisher=[[Virus Bulletin]]|date=February 2, 2006|first=Peter|surname=Ferrie|url=https://www.symantec.com/avcenter/reference/inside.the.windows.meta.file.format.pdf|via=[[NortonLifeLock|Symantec]]|access-date=2020-01-24}}</ref>}} | {{quote|Gibson claimed that a thread is created to run the SetAbortProc handler. In fact, no thread is created to run the handler – it is a callback, which is called by the parser, and the parser has to wait until the callback returns, otherwise the whole point of the function (to abort the printing) is lost. By his own admission, Gibson did not read the documentation (in fact, he claimed that he couldn’t find it, although it is freely available on Microsoft’s Web site), and he claimed that the device context is not available to the function handler. Of course the device context is available to the function handler — it is one of the two parameters that is passed to it (see above), and it is required in order to abort the printing. Finally, Gibson claimed that the control flow could not return to Windows. It is simply a matter of the function returning and discarding the parameters that were passed on the stack. If the record is well formed, Windows will continue to parse the file, as before. ... Gibson admits that he was guessing about a number of things. Unfortunately, he guessed poorly. I guess we know better now.<ref>{{citation|title=Inside the Windows Meta File Format|publisher=[[Virus Bulletin]]|date=February 2, 2006|first=Peter|surname=Ferrie|url=https://www.symantec.com/avcenter/reference/inside.the.windows.meta.file.format.pdf|via=[[NortonLifeLock|Symantec]]|access-date=2020-01-24}}</ref> | ||
गिब्सन ने दावा किया कि SetAbortProc हैंडलर को चलाने के लिए एक थ्रेड बनाया गया है। वास्तव में, हैंडलर को चलाने के लिए कोई थ्रेड नहीं बनाया गया है - यह एक कॉलबैक है, जिसे पार्सर द्वारा कॉल किया जाता है, और पार्सर को कॉलबैक वापस आने तक इंतजार करना पड़ता है, अन्यथा फ़ंक्शन का पूरा बिंदु (प्रिंटिंग को रद्द करने के लिए) खो जाता है . अपने स्वयं के प्रवेश से, गिब्सन ने दस्तावेज़ नहीं पढ़ा (वास्तव में, उन्होंने दावा किया कि वह इसे नहीं ढूंढ सके, हालांकि यह माइक्रोसॉफ्ट की वेब साइट पर मुफ्त में उपलब्ध है), और उन्होंने दावा किया कि डिवाइस संदर्भ फ़ंक्शन हैंडलर के लिए उपलब्ध नहीं है . बेशक डिवाइस संदर्भ फ़ंक्शन हैंडलर के लिए उपलब्ध है — यह उन दो मापदंडों में से एक है जो इसे पास किया गया है (ऊपर देखें), और प्रिंटिंग को रद्द करने के लिए यह आवश्यक है। अंत में, गिब्सन ने दावा किया कि नियंत्रण प्रवाह विंडोज़ पर वापस नहीं आ सका। यह केवल फ़ंक्शन के लौटने और स्टैक पर पारित किए गए पैरामीटर को त्यागने का मामला है। यदि रिकॉर्ड अच्छी तरह से बना है, तो विंडोज़ पहले की तरह फ़ाइल को पार्स करना जारी रखेगा। ... गिब्सन स्वीकार करते हैं कि वह कई चीजों के बारे में अनुमान लगा रहे थे। दुर्भाग्य से, उसने ख़राब अनुमान लगाया। मुझे लगता है कि हम अब बेहतर जानते हैं}} | |||
===ईएमएफ=== | ===ईएमएफ=== | ||
Line 3,376: | Line 510: | ||
| free = | | free = | ||
}} | }} | ||
[[File:EMF headers.svg|thumb|upright=1.5|विंडोज़ एन्हांस्ड मेटाफ़ाइल हेडर]]ईएमएफ फाइलों में हेडर के तीन संभावित संस्करण हैं। मूल हेडर केवल छवियों के लिए एक कंटेनर है, दूसरा और तीसरा संस्करण मूल हेडर को समाहित करता है और इसमें एक पिक्सेल प्रारूप रिकॉर्ड और ओपनजीएल रिकॉर्ड के लिए समर्थन | [[File:EMF headers.svg|thumb|upright=1.5|विंडोज़ एन्हांस्ड मेटाफ़ाइल हेडर]]ईएमएफ फाइलों में हेडर के तीन संभावित संस्करण हैं। मूल हेडर केवल छवियों के लिए एक कंटेनर है, दूसरा और तीसरा संस्करण मूल हेडर को समाहित करता है और इसमें एक पिक्सेल प्रारूप रिकॉर्ड और ओपनजीएल रिकॉर्ड के लिए समर्थन सम्मिलित है, और तीसरा संस्करण दूसरे हेडर एक्सटेंशन को समाहित करता है और ईएमएफ की सटीकता और स्केलेबिलिटी को बढ़ाता है। मीट्रिक प्रणाली का उपयोग करके डिवाइस की सतहों की दूरी मापने की क्षमता जोड़ता है।<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-EMF/%5bMS-EMF%5d.pdf|title=<nowiki>[MS-EMF]:</nowiki> Enhanced Metafile Format|publisher=Microsoft|pages=17–18|section=1.3.1. Metafile Structure}}</ref> | ||
प्रत्येक EMF हेडर एक EMR_HEADER रिकॉर्ड से | प्रत्येक EMF हेडर एक EMR_HEADER रिकॉर्ड से प्रारंभ होता है, और उस डिवाइस के प्रासंगिक गुणों को रिकॉर्ड करता है जिस पर मेटाफ़ाइल छवि रिकॉर्ड की गई थी। मूल ईएमएफ हेडर में 80 बाइट हेडर और एक वैकल्पिक चर लंबाई विवरण स्ट्रिंग है।<ref>{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-EMF/%5bMS-EMF%5d.pdf|title=<nowiki>[MS-EMF]:</nowiki> Enhanced Metafile Format|publisher=Microsoft|page=120|section=2.3.4.2.1 EmfMetafileHeader Record}}</ref> अन्य मेटाफ़ाइलों में एक्सटेंशन फ़ील्ड होते हैं, जो मूल हेडर को समाहित करते हैं। <code>EmfमेटाfileHeaderExtension1</code> एक रिकॉर्ड है जो सीधे मूल ईएमएफ हेडर के बाद डाला जाता है, यह निर्दिष्ट करता है कि हेडर के भीतर एक पिक्सेल प्रारूप डिस्क्रिप्टर और डिस्क्रिप्टर ऑब्जेक्ट का ऑफसेट है या नहीं, साथ ही एक फ़ील्ड जो निर्दिष्ट करता है कि मेटाफ़ाइल में [[ओपन]]जीएल रिकॉर्ड मौजूद हैं या नहीं।<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-EMF/%5bMS-EMF%5d.pdf|title=<nowiki>[MS-EMF]:</nowiki> Enhanced Metafile Format|publisher=Microsoft|pages=57–58|section=2.2.10 HeaderExtension1 Object}}</ref> पिक्सेल प्रारूप डिस्क्रिप्टर ड्राइंग सतह की क्षमताओं को निर्दिष्ट करता है और क्या पिक्सेल [[आरजीबीए रंग मॉडल]] में एन्कोड किया गया है या रंग तालिका में एक सूचकांक है।<ref>{{citation|url= https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-EMF/%5bMS-EMF%5d.pdf|title=<nowiki>[MS-EMF]:</nowiki> Enhanced Metafile Format|publisher=Microsoft|pages=68–71|section=2.2.22 PixelFormatDescriptor Object}}</ref> <code>EmfमेटाfileHeaderExtension2</code> एक रिकॉर्ड है जो सीधे इसके बाद डाला जाता है <code>EmfमेटाfileHeaderExtension1</code> रिकॉर्ड करें, और इसमें डिवाइस की सतह को माइक्रोमीटर में मापने के लिए X और Y मान वाले दो फ़ील्ड सम्मिलित हैं।<ref>{{citation|url=https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-EMF/%5bMS-EMF%5d.pdf|title=<nowiki>[MS-EMF]:</nowiki> Enhanced Metafile Format|publisher=Microsoft|pages=122–124|section=2.3.4.2.3 EmfMetafileHeaderExtension2 Record}}</ref> | ||
WMF फ़ाइलों की तरह, रिकॉर्ड को फ़ंक्शन द्वारा वर्गीकृत किया जा सकता है, हालाँकि WMF फ़ाइलों की तुलना में EMF फ़ाइलों में अधिक रिकॉर्ड प्रकार होते हैं। रिकॉर्ड्स को नियंत्रण, बिटमैप, क्लिपिंग, टिप्पणी, ड्राइंग, एस्केप, ऑब्जेक्ट निर्माण, ऑब्जेक्ट हेरफेर, ओपनजीएल, पथ ब्रैकेट, स्थिति और ट्रांसफ़ॉर्म रिकॉर्ड के रूप में वर्गीकृत किया जा सकता है। | WMF फ़ाइलों की तरह, रिकॉर्ड को फ़ंक्शन द्वारा वर्गीकृत किया जा सकता है, हालाँकि WMF फ़ाइलों की तुलना में EMF फ़ाइलों में अधिक रिकॉर्ड प्रकार होते हैं। रिकॉर्ड्स को नियंत्रण, बिटमैप, क्लिपिंग, टिप्पणी, ड्राइंग, एस्केप, ऑब्जेक्ट निर्माण, ऑब्जेक्ट हेरफेर, ओपनजीएल, पथ ब्रैकेट, स्थिति और ट्रांसफ़ॉर्म रिकॉर्ड के रूप में वर्गीकृत किया जा सकता है। | ||
===ईएमएफ+=== | ===ईएमएफ+=== | ||
विंडोज़ XP की रिलीज़ के साथ, उन्नत मेटाफ़ाइल प्रारूप प्लस एक्सटेंशन (EMF+) प्रारूप प्रस्तुत किया गया था। EMF+ GDI+ API पर कॉल को उसी तरह क्रमबद्ध करने का एक तरीका प्रदान करता है जैसे WMF/EMF GDI पर कॉल को संग्रहीत करता है। | |||
विंडोज़ मेटाफ़ाइल्स के संपीड़ित संस्करण भी हैं जिन्हें संपीड़ित विंडोज़ मेटाफ़ाइल (डब्लूएमजेड) और संपीड़ित विंडोज़ एन्हांस्ड मेटाफ़ाइल (ईएमजेड) के रूप में जाना जाता है।<ref>{{cite web | url=http://support.microsoft.com/kb/895083 | archive-url=https://web.archive.org/web/20140419204933/http://support.microsoft.com/kb/895083 | url-status=dead | archive-date=2014-04-19 | title=जब आप मैक प्रेजेंटेशन के लिए पावरपॉइंट में एक चित्र सम्मिलित करने का प्रयास करते हैं तो आपको "यह फ़ाइल एक असमर्थित ग्राफ़िक प्रारूप है" त्रुटि संदेश प्राप्त होता है| publisher=[[Microsoft]] | access-date=2014-04-19}}</ref> जो मूल रूप से [[gzip]] संपीड़ित WMF और EMF फ़ाइलें हैं। | विंडोज़ मेटाफ़ाइल्स के संपीड़ित संस्करण भी हैं जिन्हें संपीड़ित विंडोज़ मेटाफ़ाइल (डब्लूएमजेड) और संपीड़ित विंडोज़ एन्हांस्ड मेटाफ़ाइल (ईएमजेड) के रूप में जाना जाता है।<ref>{{cite web | url=http://support.microsoft.com/kb/895083 | archive-url=https://web.archive.org/web/20140419204933/http://support.microsoft.com/kb/895083 | url-status=dead | archive-date=2014-04-19 | title=जब आप मैक प्रेजेंटेशन के लिए पावरपॉइंट में एक चित्र सम्मिलित करने का प्रयास करते हैं तो आपको "यह फ़ाइल एक असमर्थित ग्राफ़िक प्रारूप है" त्रुटि संदेश प्राप्त होता है| publisher=[[Microsoft]] | access-date=2014-04-19}}</ref> जो मूल रूप से [[gzip]] संपीड़ित WMF और EMF फ़ाइलें हैं। | ||
Line 3,388: | Line 522: | ||
== कार्यान्वयन == | == कार्यान्वयन == | ||
WMF प्रारूप को [[छवि]] को पुनर्स्थापित करने के लिए | WMF प्रारूप को [[छवि]] को पुनर्स्थापित करने के लिए विंडोज़ GDI परत द्वारा निष्पादित करने के लिए डिज़ाइन किया गया था, लेकिन चूंकि WMF बाइनरी फ़ाइलों में GDI ग्राफिक प्राइमेटिव की परिभाषा होती है जो इस छवि का निर्माण करती है, इसलिए वैकल्पिक पुस्तकालयों को डिज़ाइन करना संभव है जो WMF बाइनरी प्रस्तुत करते हैं फ़ाइलें या उन्हें अन्य ग्राफ़िक प्रारूपों में परिवर्तित करें। | ||
== यह भी देखें == | == यह भी देखें == | ||
Line 3,400: | Line 534: | ||
== बाहरी संबंध == | == बाहरी संबंध == | ||
* [https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-wmf/4813e7fd-52d0-4f42-965f-228c8b7488d2 | * [https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-wmf/4813e7fd-52d0-4f42-965f-228c8b7488d2 विंडोज़ मेटाfile Format Specification from माइक्रोसॉफ़्ट] | ||
* [https://docs.microsoft.com/en-us/windows/desktop/gdi/metafiles मेटाfiles – | * [https://docs.microsoft.com/en-us/windows/desktop/gdi/metafiles मेटाfiles – विंडोज़ applications] | ||
* [https://www.fileformat.info/format/wmf/ File Format Summary at fileformat.info] | * [https://www.fileformat.info/format/wmf/ File Format Summary at fileformat.info] | ||
* [https://www.companionsoftware.com/support/windows-metafile-faq/ | * [https://www.companionsoftware.com/support/windows-metafile-faq/ विंडोज़ मेटाfile FAQ] | ||
{{Graphics file formats}} | {{Graphics file formats}} | ||
[[Category: | [[Category:Collapse templates]] | ||
[[Category:Created On 10/07/2023]] | [[Category:Created On 10/07/2023]] | ||
[[Category:Lua-based templates]] | |||
[[Category:Machine Translated Page]] | |||
[[Category:Navigational boxes| ]] | |||
[[Category:Navigational boxes without horizontal lists]] | |||
[[Category:Pages with reference errors]] | |||
[[Category:Pages with script errors]] | |||
[[Category:Short description with empty Wikidata description]] | |||
[[Category:Sidebars with styles needing conversion]] | |||
[[Category:Template documentation pages|Documentation/doc]] | |||
[[Category:Templates Vigyan Ready]] | |||
[[Category:Templates generating microformats]] | |||
[[Category:Templates that add a tracking category]] | |||
[[Category:Templates that are not mobile friendly]] | |||
[[Category:Templates that generate short descriptions]] | |||
[[Category:Templates using TemplateData]] | |||
[[Category:Wikipedia metatemplates]] | |||
[[Category:ग्राफ़िक्स फ़ाइल स्वरूप]] | |||
[[Category:माइक्रोसॉफ्ट विंडोज़ मल्टीमीडिया तकनीक]] | |||
[[Category:वेक्टर ग्राफिक्स]] |
Latest revision as of 13:38, 14 September 2023
विंडोज़ मेटाफ़ाइल (डब्लूएमएफ) एक इमेज फाइल फॉर्मेट है जिसे मूल रूप से 1990 के दशक में माइक्रोसॉफ्ट विंडोज़ के लिए डिज़ाइन किया गया था। मूल विंडोज़ मेटाफ़ाइल प्रारूप डिवाइस-स्वतंत्र नहीं था (हालांकि प्लेसमेंट हेडर के साथ इसे और अधिक बनाया जा सकता था) और इसमें वेक्टर ग्राफिक्स और बिटमैप दोनों घटक सम्मिलित हो सकते हैं। यह एसवीजी फाइलों की तरह ही कार्य करता है। WMF फ़ाइलों को बाद में एन्हांस्ड मेटाफ़ाइल्स (EMF फ़ाइलें) द्वारा प्रतिस्थापित किया गया, जो डिवाइस की स्वतंत्रता प्रदान करती थी। EMF फ़ाइलों को फिर EMF+ फ़ाइलों के माध्यम से बढ़ाया गया।
अनिवार्य रूप से, एक मेटाफ़ाइल स्क्रीन पर एक छवि प्रदर्शित करने के लिए ड्राइंग कमांड, प्रॉपर्टी परिभाषा और ग्राफिक्स ऑब्जेक्ट से युक्त रिकॉर्ड की एक सूची संग्रहीत करता है।[1] उपयोग किए गए ड्राइंग कमांड माइक्रोसॉफ्ट विंडोज़ में ड्राइंग के लिए उपयोग किए जाने वाले ग्राफिक्स डिवाइस इंटरफ़ेस (जीडीआई) एपीआई के कमांड से निकटता से संबंधित हैं।
मेटाफ़ाइल्स के तीन प्रमुख प्रकार हैं - WMF एक 16-बिट प्रारूप है जिसे विंडोज़ 3.0 में प्रस्तुत किया गया है। यह वर्ड, पावर पॉइंट और प्रकाशक जैसे माइक्रोसॉफ़्ट ऑफिस अनुप्रयोगों के लिए मूल वेक्टर प्रारूप है। 2017 के अनुसार विंडोज मेटाफ़ाइल प्रारूप विनिर्देश का संशोधन 14 ऑनलाइन पढ़ने या पीडीएफ के रूप में डाउनलोड करने के लिए उपलब्ध है।[2] ईएमएफ फाइलें, जिन्होंने डब्लूएमएफ फाइलों को प्रतिस्थापित किया, उसी सिद्धांत पर काम करती हैं, केवल यह एक 32-बिट फ़ाइल प्रारूप है जो "टिप्पणी" रिकॉर्ड के भीतर निजी डेटा को एम्बेड करने की भी अनुमति देता है।[3] ईएमएफ+ ईएमएफ फाइलों का एक विस्तार है और इन टिप्पणी रिकॉर्ड में एम्बेडेड है, जो विंडोज़ जीडीआई+ के समान कमांड, ऑब्जेक्ट और गुणों का उपयोग करके छवियों और टेक्स्ट की अनुमति देता है।[4]
इतिहास
मूल 16-बिट WMF फ़ाइल स्वरूप 1992 के विंडोज़ 3.1 एसडीके प्रलेखन के खंड 4 में पूरी तरह से निर्दिष्ट किया गया था[5] (कम से कम यदि अन्य खंडों में व्यक्तिगत कार्यों और संरचनाओं के विवरण के साथ जोड़ा जाए), लेकिन वह विनिर्देश कुछ विवरणों के बारे में अस्पष्ट था। इन मैनुअलों को किताबों की दुकानों में उपलब्ध मुद्रित पुस्तकों के रूप में प्रकाशित किया गया था, जिसमें कोई क्लिक-थ्रू ईयूएलए या अन्य असामान्य लाइसेंसिंग प्रतिबंध नहीं थे (केवल एक सामान्य चेतावनी है कि यदि सॉफ्टवेयर बंडल के हिस्से के रूप में खरीदा जाता है, तो सॉफ्टवेयर एक के अधीन होगा)।
समय के साथ उस ऐतिहासिक विनिर्देश के अस्तित्व को काफी हद तक भुला दिया गया और कुछ वैकल्पिक कार्यान्वयनों ने मौजूदा WMF फ़ाइलों से फ़ाइल प्रारूप का पता लगाने के लिए रिवर्स इंजीनियरिंग का सहारा लिया, जो कठिन और त्रुटि प्रवण था।[6] सितंबर 2006 में, माइक्रोसॉफ़्ट ने WMF फ़ाइल प्रारूप विनिर्देश को अधिक पूर्ण रूप में फिर से प्रकाशित किया[7] माइक्रोसॉफ्ट ओपन विशिष्टता वादा के संदर्भ में, फ़ाइल प्रारूप कार्यान्वयनकर्ताओं पर पेटेंट अधिकारों का दावा नहीं करने का वादा किया गया है।[8]
माइक्रोसॉफ्ट ने बाद में 32-बिट ईएमएफ फाइलों के पक्ष में डब्लूएमएफ फाइलों को खारिज कर दिया क्योंकि डब्लूएमएफ फाइलों में डिवाइस स्वतंत्रता के साथ वास्तविक समस्याएं थीं, प्लेसेबल फ़ाइल हेडर के उपयोग के बावजूद जो मूलभूत डिवाइस स्वतंत्रता प्रदान करती थी। माइक्रोसॉफ्ट ने पाया कि जो डेवलपर्स प्रारूप का उपयोग करते हैं, वे मेटाफ़ाइल्स में एप्लिकेशन, स्थान, या स्केलिंग टिप्पणियां [एम्बेडिंग] कर रहे थे... अन्य ने मेटाफ़ाइल में हेडर जोड़े जो विभिन्न एप्लिकेशन-विशिष्ट जानकारी प्रदान करते थे, जिससे प्रमुख संगतता समस्याएं पैदा हुईं। एक प्रारूप जो Win32 API पर आधारित था और जिसके साथ उन्होंने डिवाइस की स्वतंत्रता अंतर्निहित की थी। इन्हें एनटी मेटाफ़ाइल्स के रूप में भी जाना जाता था। विंडोज़ एक्सपी और जीडीआई+ की रिलीज़ के साथ, रिकॉर्ड्स के सेट को काफी बढ़ाना पड़ा और इसलिए माइक्रोसॉफ्ट ने मौजूदा ईएमएफ फ़ाइल प्रारूप के विस्तार के रूप में ईएमएफ+ प्रभावशील किया था।[9]
मेटाफ़ाइल संरचना
WMF, EMF और EMF+ फ़ाइलें सभी रिकॉर्ड की एक श्रृंखला से बनी होती हैं जिन्हें ग्राफिकल आउटपुट उत्पन्न करने के लिए चलाया जाता है। कुछ रिकॉर्ड वस्तुओं को परिभाषित करते हैं जो ग्राफिकल वस्तुओं को निर्दिष्ट कर सकते हैं जिनका उपयोग यह निर्धारित करने के लिए किया जाता है कि ग्राफिक्स कैसे बनाया जाना चाहिए (उदाहरण के लिए पेन लाइनों का रंग और चौड़ाई निर्दिष्ट करते हैं)। इनमें से प्रत्येक ऑब्जेक्ट को मेटाफ़ाइल्स में संग्रहीत किया जाता है और एक ऑब्जेक्ट तालिका में रखा जाता है, जो मेटाफ़ाइल को संसाधित करते समय ग्राफिक ऑब्जेक्ट्स के उपयोग को ट्रैक करता है। ऑब्जेक्ट तालिका मेटाफ़ाइल के भीतर परिभाषित ग्राफ़िकल ऑब्जेक्ट संरचनाओं के अनुक्रमितों की एक सहयोगी सरणी है।
WMF और EMF फ़ाइलें EMF फ़ाइलों में EMF+ रिकॉर्ड से भिन्न तरीके से ऑब्जेक्ट प्रोसेसिंग को संभालती हैं। चूंकि WMF और EMF फ़ाइल को संसाधित किया जा रहा है, किसी ऑब्जेक्ट को परिभाषित करने के बाद रिकॉर्ड्स को ऑब्जेक्ट तालिका में पढ़ा जाता है। यदि कोई ऑब्जेक्ट हटा दिया जाता है तो ऑब्जेक्ट को तालिका से मुक्त कर दिया जाता है और पहचानकर्ता का पुन: उपयोग किया जा सकता है। विशेष रूप से किसी ऑब्जेक्ट का उपयोग तब तक नहीं किया जाएगा जब तक कि इसे रिकॉर्ड प्लेबैक के दौरान विशेष रूप से नहीं चुना जाता है।[10][11] यह EMF+ फ़ाइलों के लिए भिन्न है, जो हैशमैप के माध्यम से एक सहयोगी सरणी का भी उपयोग करता है जो ऑब्जेक्ट को ऑब्जेक्ट पहचानकर्ता के साथ रिकॉर्ड करता है। हालाँकि, WMF और EMF फ़ाइलों के विपरीत, जो किसी ऑब्जेक्ट को हटा सकती हैं, जब एक नया ऑब्जेक्ट बनाया जाता है जिसका इंडेक्स मौजूदा ऑब्जेक्ट के समान होता है, तो तालिका में प्रविष्टि को नए ऑब्जेक्ट से बदल दिया जाता है। ईएमएफ फ़ाइल को उपयोग करने से पहले विशेष रूप से किसी ऑब्जेक्ट का चयन करने की आवश्यकता नहीं होती है।[12]
डब्लूएमएफ
Filename extension |
.wmf |
---|---|
Internet media type |
image/wmf[9] |
Uniform Type Identifier (UTI) | com.microsoft.wmf[9] |
Type of format | Vector graphics |
Extended to | EMF |
WMF फ़ाइलें मूल रूप से डिवाइस स्वतंत्र होने के लिए डिज़ाइन नहीं की गई थीं, जिसका अर्थ है कि आप फ़ाइल को आउटपुट डिवाइस पर प्लेबैक नहीं कर सकते थे जो मूल डिवाइस से भिन्न था जिस पर फ़ाइल रिकॉर्ड की गई थी। इस समस्या का आंशिक समाधान एल्डस कॉर्पोरेशन द्वारा आविष्कार किया गया था, जिसने एक अतिरिक्त प्लेसेबल हेडर जोड़ा, जिसे एपीएम हेडर कहा जाता है।[14] जिसमें एक बाउंडिंग आयत, एक मेटाफ़ाइल संस्करण, मेटाफ़ाइल आकार, मेटाफ़ाइल में ऑब्जेक्ट की संख्या और मेटाफ़ाइल में सबसे बड़े एकल रिकॉर्ड का आकार जोड़ा गया।[15][16] इसे बाद में माइक्रोसॉफ्ट द्वारा विंडोज 2000 में प्रारंभ करके WMF प्रारूप में सम्मिलित किया गया।[17]
WMF फ़ाइलें रिकॉर्ड की एक श्रृंखला द्वारा संरचित होती हैं, जो कई नियंत्रण रिकॉर्ड से प्रारंभ होती हैं: हेडर रिकॉर्ड,[15][18] उपर्युक्त वैकल्पिक स्थानयोग्य रिकॉर्ड, [19] और फ़ाइल रिकॉर्ड के अंत तक समाप्त हो गया।[15][20] नियंत्रण रिकॉर्ड द्वारा संपुटित वे रिकॉर्ड होते हैं जो स्वयं छवि बनाते हैं। ये रिकॉर्ड प्लेबैक डिवाइस संदर्भ के रूप में जाने जाते हैं, जो गुणों और वस्तुओं का संग्रह है जो डिवाइस के ग्राफिकल वातावरण को बनाते हैं क्योंकि मेटाफ़ाइल को इस आउटपुट डिवाइस पर वापस चलाया जा रहा है।[21] नियंत्रण रिकॉर्ड के अलावा अन्य रिकॉर्ड को बड़े पैमाने पर बिटमैप रिकॉर्ड, ड्राइंग रिकॉर्ड, ऑब्जेक्ट रिकॉर्ड, राज्य रिकॉर्ड और एस्केप रिकॉर्ड में समूहीकृत किया जा सकता है।
बिटमैप रिकॉर्ड
बिटमैप रिकॉर्ड बिटमैप छवियों का प्रबंधन और आउटपुट करते हैं।
नाम | विवरण |
---|---|
मेटा_बीआईटीबीएलटी | निर्दिष्ट करता है कि बिट ब्लॉक स्थानांतरण कैसे करें। ये रिकॉर्ड स्रोत या क्षेत्र के रूप में उपयोग करने के लिए एक बिटमैप निर्दिष्ट कर सकते हैं।[22] |
मेटा_डिब्बिट बी एल टी | निर्दिष्ट करता है कि डिवाइस-स्वतंत्र बिटमैप छवि का बिट ब्लॉक ट्रांसफर कैसे किया जाए। ये रिकॉर्ड स्रोत या क्षेत्र के रूप में उपयोग करने के लिए एक बिटमैप निर्दिष्ट कर सकते हैं।[23] |
मेटा_डिबSTRETCHBITBLT | यह निर्दिष्ट करता है कि डिवाइस-स्वतंत्र बिटमैप छवि का बिट ब्लॉक स्थानांतरण कैसे किया जाए, लेकिन छवि के विस्तार या संकुचन की अनुमति देता है। ये रिकॉर्ड स्रोत या क्षेत्र के रूप में उपयोग करने के लिए एक बिटमैप निर्दिष्ट कर सकते हैं।[24] |
मेटा_सेटडिबटोडेव | डिवाइस-स्वतंत्र बिटमैप छवि में पिक्सेल के ब्लॉक को सेट करने के लिए रंग निर्दिष्ट करता है। ये रिकॉर्ड स्रोत या क्षेत्र के रूप में उपयोग करने के लिए एक बिटमैप निर्दिष्ट कर सकते हैं।[25] |
मेटा_स्ट्रेचबीएलटी | निर्दिष्ट करता है कि बिट ब्लॉक ट्रांसफर कैसे किया जाए, लेकिन छवि के विस्तार या संकुचन की अनुमति देता है।[26] |
मेटा_स्ट्रेचडीआईबी | यह निर्दिष्ट करता है कि डिवाइस-स्वतंत्र बिटमैप छवि का बिट ब्लॉक स्थानांतरण कैसे किया जाए, लेकिन छवि के विस्तार या संकुचन की अनुमति देता है। ये रिकॉर्ड स्रोत या क्षेत्र के रूप में उपयोग करने के लिए एक बिटमैप निर्दिष्ट कर सकते हैं.[27] |
ड्राइंग रिकॉर्ड
ड्राइंग रिकॉर्ड ग्राफ़िक्स आउटपुट उत्पन्न करते हैं।
नाम | विवरण |
---|---|
मेटा_ARC | एक अण्डाकार चाप खींचता है[28] |
मेटा_कॉर्ड | एक कॉर्ड खींचता है[29] |
मेटा_एलिप्स | एक अण्डाकार चाप खींचता है[30] |
मेटा_एक्सफ़्लुडफ़िल | किसी क्षेत्र को ब्रश से भर देता है[31] |
मेटा_एक्सटेक्स्टआउट | प्लेबैक डिवाइस संदर्भ के फ़ॉन्ट, पृष्ठभूमि रंग और टेक्स्ट रंग के साथ टेक्स्ट बनाएं[32] |
मेटा_फिलरेजिओन | किसी क्षेत्र को निर्दिष्ट ब्रश से भरता है[33] |
मेटा_फ्लूडफिल | किसी क्षेत्र को ब्रश से भर देता है[34] |
मेटा_फ्रेमरीजन | ब्रश से पृष्ठ के एक क्षेत्र के चारों ओर बॉर्डर बनाता है[35] |
मेटा_इन्वर्टरीजन | ग्राफ़िक के एक क्षेत्र को उल्टे रंगों से पेंट करता है[36] |
मेटा_लिनेटो | प्लेबैक डिवाइस संदर्भ में परिभाषित ड्राइंग स्थिति से एक निर्दिष्ट बिंदु तक एक आधी खुली रेखा खींचता है[37] |
मेटा_पेंटरीजन | प्लेबैक डिवाइस संदर्भ में निर्दिष्ट वर्तमान ब्रश के साथ एक क्षेत्र को पेंट करें[38] |
मेटा_पीएटीबीएलटी | प्लेबैक डिवाइस संदर्भ में निर्दिष्ट वर्तमान ब्रश के साथ एक क्षेत्र को पेंट करें और फिर रैस्टर ऑपरेशन का उपयोग करके ब्रश के रंग और सतह के रंगों को संयोजित करें[39] |
मेटा_पाई | एक दीर्घवृत्त और दो रेडियल के प्रतिच्छेदन से घिरा पाई के आकार का पच्चर बनाएं - लाइन को प्लेबैक डिवाइस संदर्भ के माध्यम से पेन सेट के माध्यम से सेट किया जाता है, और पाई आकार से घिरा क्षेत्र प्लेबैक डिवाइस के वर्तमान ब्रश द्वारा भरा जाता है[40] |
मेटा_पॉलीलाइन | एक निर्दिष्ट सरणी में बिंदुओं को जोड़कर रेखाखंडों की एक श्रृंखला बनाता है[41] |
मेटा_पॉलीगॉन | सीधी रेखाओं से जुड़े दो या दो से अधिक शीर्षों वाले बहुभुज को पेंट करता है । बहुभुज को पेन का उपयोग करके रेखांकित किया जाता है और ब्रश और बहुभुज भरण मोड का उपयोग करके भरा जाता है जो प्लेबैक डिवाइस संदर्भ में परिभाषित होते हैं[42] |
मेटा_पॉलीपॉलीगॉन | बंद बहुभुजों की एक श्रृंखला को पेंट करता है, जो ओवरलैप हो सकते हैं। प्रत्येक बहुभुज को पेन का उपयोग करके रेखांकित किया जाता है और ब्रश और बहुभुज भरण मोड का उपयोग करके भरा जाता है जो प्लेबैक डिवाइस संदर्भ में परिभाषित होते हैं[43] |
मेटा_रेक्टेंगल | एक आयत को पेंट करता है, जिसे पेन का उपयोग करके रेखांकित किया जाता है और ब्रश का उपयोग करके भरा जाता है और प्लेबैक डिवाइस संदर्भ में परिभाषित ब्रश का उपयोग करके भरा जाता है[44] |
मेटा_राउंडरेक्ट | गोल कोनों वाले एक आयत को पेंट करता है। आयत को पेन का उपयोग करके रेखांकित किया जाता है और ब्रश का उपयोग करके भरा जाता है और प्लेबैक डिवाइस संदर्भ में परिभाषित ब्रश का उपयोग करके भरा जाता है[45] |
मेटा_सेटपिक्सेल | निर्दिष्ट निर्देशांक पर पिक्सेल को निर्दिष्ट रंग पर सेट करता है।[46] |
मेटा_टेक्स्टआउट | प्लेबैक डिवाइस संदर्भ में परिभाषित फ़ॉन्ट, पृष्ठभूमि रंग और टेक्स्ट रंग का उपयोग करके निर्दिष्ट स्थान पर एक वर्ण स्ट्रिंग आउटपुट करता है[47] |
ऑब्जेक्ट रिकॉर्ड
ऑब्जेक्ट रिकॉर्ड ग्राफ़िक्स ऑब्जेक्ट बनाते और प्रबंधित करते हैं। WMF फ़ाइलों में ऑब्जेक्ट की दो व्यापक श्रेणियाँ हैं - ग्राफ़िक्स ऑब्जेक्ट और संरचना ऑब्जेक्ट। WMF में संरचना वस्तुएं स्पष्ट रूप से बनाई या हटाई नहीं जाती हैं, वे जटिल संरचनाओं के बजाय होती हैं। उदाहरण के लिए, BitmapCoreHeader में डिवाइस-स्वतंत्र बिटमैप के आयाम और रंग प्रारूप के बारे में जानकारी होती है,[48] जो स्वयं एक डिवाइस इंडिपेंडेंट बिटमैप ऑब्जेक्ट का हिस्सा है।[49] हालाँकि, एक ग्राफ़िक्स ऑब्जेक्ट, ग्राफ़िक्स आउटपुट के लिए पैरामीटर निर्दिष्ट करता है और WMF के प्लेबैक के दौरान यह प्लेबैक डिवाइस संदर्भ सेट करता है।[50] ग्राफ़िक्स ऑब्जेक्ट ब्रश हो सकते हैं (ब्रश की शैली, रंग और पैटर्न को परिभाषित करता है जो ग्राफ़िक के एक क्षेत्र को कैसे पेंट करना है परिभाषित करता है), फ़ॉन्ट (गुणों को परिभाषित करता है जो टेक्स्ट को प्रदर्शित करने के तरीके को प्रभावित करता है), पैलेट (रंगों को डिवाइस-स्वतंत्र मान के रूप में निर्दिष्ट करता है), एक एप्लिकेशन द्वारा परिभाषित), पेन (एक रेखा की ग्राफिकल विशेषताओं को निर्दिष्ट करता है), और क्षेत्र (जो रेखा और वक्र खंडों को निर्दिष्ट करते हैं जो एक आकृति को परिभाषित करते हैं)।[50]
नाम | विवरण |
---|---|
मेटा_क्रिएटब्रशइंडिरेक्ट | लॉगब्रश (तार्किक ब्रश) ऑब्जेक्ट से एक ब्रश ऑब्जेक्ट बनाता है[51] |
मेटा_क्रिएटफ्रंटइंडिरेक्ट | फ़ॉन्ट ऑब्जेक्ट से ब्रश ऑब्जेक्ट बनाता है[52] |
मेटा_क्रिएटपैलेट | एक पैलेट ऑब्जेक्ट बनाता है |
मेटा_क्रिएटपेटर्नब्रश[53] | लॉगब्रश (तार्किक ब्रश) ऑब्जेक्ट से एक ब्रश ऑब्जेक्ट बनाता है[54] |
मेटा_क्रिएटपेनइंडिरेक्ट | पेन ऑब्जेक्ट बनाता है[55] |
मेटा_क्रिएटरीजन | एक क्षेत्र वस्तु बनाता है.[56] |
मेटा_डिलीटऑब्जेक्ट | किसी ऑब्जेक्ट को हटाएँ[57] |
मेटा_क्रिएटब्रशइंडिरेक्ट | लॉगब्रश (तार्किक ब्रश) ऑब्जेक्ट से एक ब्रश ऑब्जेक्ट बनाता है[58] |
मेटा_डिबक्रिएटपेटर्नब्रश | डिवाइस-स्वतंत्र बिटमैप से ब्रश ऑब्जेक्ट बनाता है[59] |
मेटा_सेलेक्टक्लिपरीजन | उस क्षेत्र ऑब्जेक्ट को निर्दिष्ट करता है जो वर्तमान क्लिपिंग क्षेत्र होगा[60] |
मेटा_सेलेक्टऑब्जेक्ट | उस ऑब्जेक्ट का चयन करता है जो प्लेबैक डिवाइस संदर्भ के लिए वर्तमान ऑब्जेक्ट होगा, जो पैलेट ऑब्जेक्ट को छोड़कर सभी ग्राफिक्स ऑब्जेक्ट पर काम करता है, जिसे मेटा_सेलेक्टपैलेट के साथ सेट किया जाना चाहिए[61] |
मेटा_सेलेक्टपैलेट | प्लेबैक डिवाइस संदर्भ के लिए तार्किक पैलेट का चयन करता है[62] |
राज्य अभिलेख
राज्य रिकॉर्ड प्लेबैक डिवाइस संदर्भ के ग्राफ़िक्स गुणों का प्रबंधन करते हैं।[63]
नाम | विवरण |
---|---|
मेटा_ एनिमेटपैलेट | निर्दिष्ट पैलेट ऑब्जेक्ट के साथ प्लेबैक डिवाइस संदर्भ में परिभाषित तार्किक पैलेट में प्रविष्टियों को फिर से परिभाषित करता है |
मेटा_ एक्सक्लुडेक्लिप्रेक्ट | प्लेबैक डिवाइस संदर्भ में परिभाषित क्लिपिंग क्षेत्र को निर्दिष्ट आयत को घटाकर मौजूदा क्लिपिंग क्षेत्र पर सेट करता है |
मेटा_ इंटरसेक्टक्लिप्रेक्ट | प्लेबैक डिवाइस संदर्भ में परिभाषित क्लिपिंग क्षेत्र को मौजूदा क्लिपिंग क्षेत्र और एक निर्दिष्ट आयत के प्रतिच्छेदन पर सेट करता है |
मेटा_ मोवेटो | प्लेबैक डिवाइस संदर्भ में आउटपुट स्थिति को एक निर्दिष्ट बिंदु पर सेट करता है |
मेटा_ ऑफसेटक्लिप्रगन | निर्दिष्ट ऑफसेट द्वारा प्लेबैक डिवाइस संदर्भ में परिभाषित क्लिपिंग क्षेत्र को स्थानांतरित करता है |
मेटा_ ऑफ़सेटव्यूपोर्टोर्ग | निर्दिष्ट क्षैतिज और ऊर्ध्वाधर ऑफसेट द्वारा प्लेबैक डिवाइस संदर्भ में व्यूपोर्ट मूल को स्थानांतरित करता है |
मेटा_ ऑफ़सेटविंडोवॉर्ग | निर्दिष्ट क्षैतिज और ऊर्ध्वाधर ऑफसेट द्वारा आउटपुट विंडो मूल को प्लेबैक डिवाइस संदर्भ में ले जाता है |
मेटा_ रियलाइज़ेप्लेट | तार्किक पैलेट से प्रविष्टियों को मैप करता है जिसे प्लेबैक डिवाइस संदर्भ में सिस्टम पैलेट में परिभाषित किया गया है |
मेटा_ आकार बदलने वाला पैलेट | प्लेबैक डिवाइस संदर्भ में परिभाषित तार्किक पैलेट के आकार को फिर से परिभाषित करता है |
मेटा_ रीस्टोरेडसी | पहले से सहेजे गए डिवाइस संदर्भ से प्लेबैक डिवाइस संदर्भ को पुनर्स्थापित करता है |
मेटा_ सेवडीसी | बाद में पुनर्प्राप्ति के लिए प्लेबैक डिवाइस संदर्भ को सहेजता है |
मेटा_ स्केलव्यूपोर्टटेक्स्ट | निर्दिष्ट गुणकों और विभाजकों द्वारा गठित अनुपातों का उपयोग करके प्लेबैक डिवाइस संदर्भ में परिभाषित व्यूपोर्ट के क्षैतिज और ऊर्ध्वाधर विस्तार को मापता है |
मेटा_ स्केलविंडोटेक्स्ट | आउटपुट विंडो के क्षैतिज और ऊर्ध्वाधर विस्तार को मापता है जिसे निर्दिष्ट गुणकों और विभाजकों द्वारा गठित अनुपातों का उपयोग करके प्लेबैक डिवाइस संदर्भ में परिभाषित किया गया है |
मेटा_ सेटबीकेकलर | प्लेबैक डिवाइस संदर्भ में पृष्ठभूमि रंग को एक निर्दिष्ट रंग पर सेट करता है |
मेटा_ सेटबीकेमोड | प्लेबैक डिवाइस संदर्भ में बैकग्राउंड मिक्स मोड सेट करता है |
मेटा_ सेटलेआउट | प्लेबैक डिवाइस संदर्भ में लेआउट ओरिएंटेशन को परिभाषित करता है |
मेटा_ सेटमैपमोड | प्लेबैक डिवाइस संदर्भ में मैपिंग मोड को परिभाषित करता है |
मेटा_ सेटमैपरफ्लैग्स | उस एल्गोरिदम को परिभाषित करता है जिसका उपयोग फ़ॉन्ट मैपर तब करता है जब वह तार्किक फ़ॉन्ट को भौतिक फ़ॉन्ट में मैप करता है |
मेटा_ सेटपालेंट्रीज़ | तार्किक पैलेट में प्रविष्टियों की एक श्रृंखला में आरजीबी रंग मानों को परिभाषित करता है जिसे प्लेबैक डिवाइस संदर्भ में परिभाषित किया गया है |
मेटा_ सेटपॉलीफ़िलमोड | बहुभुज भरने वाले ग्राफ़िक्स संचालन के लिए प्लेबैक डिवाइस संदर्भ में बहुभुज भरण मोड को परिभाषित करता है |
मेटा_ सेट्रेलैब्स | अप्रयुक्त रिकार्ड |
मेटा_ सेटरोप2 | प्लेबैक डिवाइस संदर्भ में अग्रभूमि रैस्टर ऑपरेशन मिक्सिंग मोड को परिभाषित करता है |
मेटा_ सेटस्ट्रेचबीएलटीमोड | प्लेबैक डिवाइस संदर्भ में बिटमैप स्ट्रेचिंग मोड को परिभाषित करता है |
मेटा_ सेटटेक्स्टलाइन | प्लेबैक डिवाइस संदर्भ में टेक्स्ट-संरेखण मानों को परिभाषित करता है |
मेटा_ सेटटेक्सचरएक्सट्रा | प्लेबैक डिवाइस संदर्भ में पाठ औचित्य के लिए अंतर-वर्ण रिक्ति को परिभाषित करता है |
मेटा_ सेटटेक्स्टकलर | प्लेबैक डिवाइस संदर्भ में टेक्स्ट अग्रभूमि रंग को परिभाषित करता है |
मेटा_ सेटटेक्स्टजस्टिफिकेशन | उचित पाठ की एक स्ट्रिंग में वर्णों को तोड़ने के लिए जोड़े जाने वाले स्थान की मात्रा को परिभाषित करता है। |
मेटा_ सेटव्यूपोर्टटेक्स्ट | प्लेबैक डिवाइस संदर्भ में व्यूपोर्ट के क्षैतिज और ऊर्ध्वाधर विस्तार को परिभाषित करता है। |
मेटा_ सेटव्यूपोर्टओआरजी | प्लेबैक डिवाइस संदर्भ में व्यूपोर्ट मूल को परिभाषित करता है |
मेटा_ सेटविंडोटेक्स्ट | प्लेबैक डिवाइस संदर्भ में आउटपुट विंडो के क्षैतिज और ऊर्ध्वाधर विस्तार को परिभाषित करता है |
मेटा_ सेटविंडोवॉर्ग | प्लेबैक डिवाइस संदर्भ में आउटपुट विंडो मूल को परिभाषित करता है |
एस्केप रिकॉर्ड
एस्केप रिकॉर्ड उन रिकॉर्ड्स के माध्यम से मेटाफ़ाइल कार्यक्षमता को बढ़ाने का एक साधन है जिन्हें अन्यथा WMF रिकॉर्ड प्रकार के रूप में परिभाषित नहीं किया गया है। प्रत्येक एस्केप रिकॉर्ड में एक रिकॉर्ड फ़ंक्शन, एक एस्केप फ़ंक्शन और संभावित रूप से एस्केप डेटा होता है।
निम्नलिखित एस्केप रिकॉर्ड एक WMF फ़ाइल बनाते हैं।
नाम | विवरण |
---|---|
ABORTDOC | वर्तमान आलेख को संसाधित करना बंद कर देता है[64] |
BEGIN_PATH | एक रास्ता खोलता है[65] |
CHECK_JPEGFORMAT | निर्धारित करता है कि यह दी गई JPEG छवि को संभाल सकता है या नहीं[66] |
CHECK_PNGFORMAT | निर्धारित करता है कि यह दी गई पीएनजी छवि को संभाल सकता है या नहीं[67] |
CLIP_TO_PATH | किसी फ़ंक्शन को वर्तमान पोस्टस्क्रिप्ट क्लिपिंग पथ पर लागू करता है[68] |
CLOSE_CHANNEL | ENDDOC के समान[69] |
DOWNLOAD_FACE | आउटपुट डिवाइस पर फ़ॉन्ट फेस नाम सेट करता है[70] |
DOWNLOAD_HEADER | पोस्टस्क्रिप्ट प्रक्रियाओं के सेट डाउनलोड करें[71] |
DRAW_PATTERNRECT | एक परिभाषित पैटर्न के साथ एक आयत बनाता है[72] |
ENCAPSULATED_POSTSCRIPT | मनमाना इनकैप्सुलेटेड पोस्टस्क्रिप्ट (ईपीएस) डेटा सीधे प्रिंटर ड्राइवर को भेजता है[73] |
END_PATH | एक रास्ता ख़त्म हो जाता है[74] |
ENDDOC | प्रिंटर ड्राइवर को सूचित करता है कि नया प्रिंट कार्य समाप्त हो रहा है[75] |
EPS_PRINTING | ईपीएस प्रिंटिंग की प्रारंभ और समाप्ति को दर्शाता है[76] |
EXTTEXTOUT | वर्तमान में चयनित फ़ॉन्ट, पृष्ठभूमि रंग और टेक्स्ट रंग का उपयोग करके टेक्स्ट बनाता है[77] |
GET_COLORTABLE | प्रिंटर ड्राइवर से रंग तालिका मान प्राप्त करता है[78] |
GET_DEVICEUNITS | आउटपुट डिवाइस पर वर्तमान में कॉन्फ़िगर की गई डिवाइस इकाइयों को प्राप्त करता है[79] |
GET_EXTENDED_TEXTMETRICS | विस्तारित टेक्स्ट मेट्रिक्स प्राप्त करता है जो वर्तमान में प्रिंटर ड्राइवर पर कॉन्फ़िगर किया गया है[80] |
GET_FACENAME | वर्तमान में आउटपुट डिवाइस पर कॉन्फ़िगर किया गया फ़ॉन्ट फेस नाम प्राप्त करता है[81] |
GET_PAIRKERNTABLE | आउटपुट डिवाइस पर वर्तमान में परिभाषित फ़ॉन्ट कर्न तालिका प्राप्त करता है[82] |
GET_PHYSPAGESIZE | आउटपुट डिवाइस पर वर्तमान में चयनित भौतिक पृष्ठ आकार को पुनः प्राप्त करता है[83] |
GET_PRINTINGOFFSET | भौतिक पृष्ठ के ऊपरी-बाएँ कोने से ऑफ़सेट पुनर्प्राप्त करता है जहाँ वास्तविक मुद्रण या ड्राइंग शुरू होती है[84] |
GET_PS_FEATURESETTING | आउटपुट डिवाइस पर समर्थित पोस्टस्क्रिप्ट सुविधाओं के बारे में जानकारी के लिए प्रिंटर ड्राइवर से पूछताछ करें[85] |
GET_SCALINGFACTOR | प्रिंटर के x-अक्ष और y-अक्ष के लिए स्केलिंग कारक पुनर्प्राप्त करता है[86] |
META_ESCAPE_ENHANCED_METAFILE | WMF मेटाफ़ाइल के भीतर EMF मेटाफ़ाइल को एम्बेड करने के लिए उपयोग किया जाता है[87] |
METAFILE_DRIVER | आउटपुट डिवाइस पर मेटाफ़ाइल्स के लिए इसके समर्थन के बारे में प्रिंटर ड्राइवर से पूछताछ करें[88] |
NEWFRAME | प्रिंटर ड्राइवर को सूचित करता है कि एप्लिकेशन ने एक पृष्ठ पर लिखना समाप्त कर दिया है<[89] |
NEXTBAND | प्रिंटर ड्राइवर को सूचित करता है कि एप्लिकेशन ने बैंड पर लिखना समाप्त कर दिया है[90] |
PASSTHROUGH | प्रिंटर ड्राइवर को मनमाना डेटा भेजता है[91] |
POSTSCRIPT_DATA | आउटपुट डिवाइस पर मनमाना पोस्टस्क्रिप्ट डेटा भेजता है[92] |
POSTSCRIPT_IDENTIFY | प्रिंटर ड्राइवर को या तो पोस्टस्क्रिप्ट-केंद्रित या GDI-केंद्रित मोड पर सेट करता है[93] |
POSTSCRIPT_IGNORE | पोस्टस्क्रिप्ट डेटा को अनदेखा करने के लिए आउटपुट डिवाइस को सूचित करता है[94] |
POSTSCRIPT_INJECTION | पोस्टस्क्रिप्ट स्ट्रीम में कच्चे डेटा का एक ब्लॉक सम्मिलित करता है[95] |
POSTSCRIPT_PASSTHROUGH | मनमाना डेटा सीधे एक प्रिंटर ड्राइवर को भेजता है, जिससे उम्मीद की जाती है कि वह इस डेटा को केवल पोस्टस्क्रिप्ट मोड में ही संसाधित करेगा[96] |
OPEN_CHANNEL | STARTDOC के समान कार्य करता है, एक NULL आलेख और आउटपुट फ़ाइल नाम और कच्चे मोड में डेटा के साथ[97] |
QUERY_DIBSUPPORT | आउटपुट डिवाइस पर DIB के लिए उसके समर्थन के बारे में प्रिंटर ड्राइवर से पूछताछ करता है[98] |
QUERY_ESCSUPPORT | यह निर्धारित करने के लिए प्रिंटर ड्राइवर से पूछताछ करें कि आउटपुट डिवाइस पर एक विशिष्ट WMF एस्केप फ़ंक्शन समर्थित है या नहीं[99] |
SET_COLORTABLE | रंग तालिका मान सेट करता है[100] |
SET_COPYCOUNT | प्रतियों की संख्या निर्धारित करता है[101] |
SET_LINECAP | आउटपुट डिवाइस पर ड्राइंग में उपयोग करने के लिए लाइन-एंडिंग मोड निर्दिष्ट करता है[102] |
SET_LINEJOIN | आउटपुट डिवाइस पर ड्राइंग में उपयोग करने के लिए लाइन-ज्वाइनिंग मोड निर्दिष्ट करता है[103] |
SET_MITERLIMIT | आउटपुट डिवाइस पर ड्राइंग में उपयोग के लिए मेटर जॉइन की लंबाई की सीमा निर्धारित करता है[104] |
SPCLPASSTHROUGH2 | आलेखों को आलेखों में निजी प्रक्रियाओं और अन्य मनमाने डेटा को शामिल करने में सक्षम बनाता है[105] |
STARTDOC | प्रिंटर ड्राइवर को सूचित करता है कि एक नया प्रिंट कार्य प्रारंभ हो रहा है।[106] |
एबॉर्ट एस्केप रिकॉर्ड के आसपास एस्केप रिकॉर्ड में एक विंडोज़ मेटाफ़ाइल भेद्यता पाई गई थी, जो एबॉर्ट प्रक्रिया कोड को रिकॉर्ड के भीतर ही संग्रहीत करता है। इससे विंडोज़ सिस्टम प्रभावित हुआ (देखें)। CVE-2005-4560) और वाइन (सॉफ़्टवेयर) (देखें CVE-2006-0106). सिकुनिया के अनुसार, भेद्यता विशेष रूप से तैयार किए गए सेटबोर्टप्रोक 'एस्केप' रिकॉर्ड वाले विंडोज मेटाफ़ाइल फ़ाइलों ('.wmf') को संभालने में त्रुटि के कारण होती है। WMF फ़ाइल का रेंडरिंग विफल होने पर ऐसे रिकॉर्ड मनमाने उपयोगकर्ता-परिभाषित फ़ंक्शन को निष्पादित करने की अनुमति देते हैं।[107] विंडोज़ 3.1 SDK प्रलेखन के अनुसार, WMF भेद्यता की खोज से बहुत पहले, सेटबोर्टप्रोक एस्केप अप्रचलित हो गया था और विंडोज़ 3.1 में उसी नाम के फ़ंक्शन द्वारा प्रतिस्थापित कर दिया गया था।[108] हालाँकि, अप्रचलित एस्केप कोड को विंडोज 3.0 के लिए लिखे गए (या कम से कम बैकवर्ड संगत) 16 बिट प्रोग्राम के साथ संगतता के लिए बरकरार रखा गया था। यह परिवर्तन लगभग उसी समय हुआ जब माइक्रोसॉफ़्ट विंडोज़ NT के लिए GDI का 32 बिट पुनः कार्यान्वयन बना रहा था, और यह संभावना है कि इस प्रयास के दौरान भेद्यता उत्पन्न हुई।
स्टीव गिब्सन (कंप्यूटर प्रोग्रामर) द्वारा माइक्रोसॉफ्ट पर जानबूझकर उनके कोड में पिछले दरवाजे (कंप्यूटिंग) को लागू करने का आरोप लगाने के बाद,[109][110] मार्क रुसिनोविच ने एक खंडन प्रदान किया, और कहा कि:
...things were different when the format was architected. In the Windows 3.1 “large” memory model code is inherently location-independent and Windows was never patched, so both Windows and an application could simply copy an application function into the WMF file and assume it would work when played back by the same application in a later run session. In any case, its not clear that the developers envisioned applications creating on-disk metafiles with abort procedures. Also, as Microsoft’s Stephen Toulouse pointed out in Microsoft’s rebuttal to Steve’s claims, the security landscape in the early 1990s was very different than today and all code, including that stored in a WMF file, was inherently trusted.[111]
...जब प्रारूप तैयार किया गया था तो चीजें अलग थीं। विंडोज़ 3.1 में "बड़ी" मेमोरी मॉडल कोड स्वाभाविक रूप से स्थान-स्वतंत्र है और विंडोज़ को कभी भी पैच नहीं किया गया था, इसलिए विंडोज़ और एक एप्लिकेशन दोनों बस एक एप्लिकेशन फ़ंक्शन को डब्लूएमएफ फ़ाइल में कॉपी कर सकते हैं और मान सकते हैं कि यह उसी एप्लिकेशन द्वारा चलाए जाने पर काम करेगा। बाद में चलने वाला सत्र। किसी भी मामले में, यह स्पष्ट नहीं है कि डेवलपर्स ने निरस्त प्रक्रियाओं के साथ ऑन-डिस्क मेटाफ़ाइल्स बनाने वाले अनुप्रयोगों की कल्पना की थी। इसके अलावा, जैसा कि माइक्रोसॉफ्ट के स्टीफन टूलूज़ ने [https://web.archive.org/web/20060116042756/http://blogs.technet.com/msrc/archive/2006/01/13/417431.aspx माइक्रोसॉफ्ट के खंडन में बताया है स्टीव के दावों के अनुसार, 1990 के दशक की प्रारम्भ में सुरक्षा परिदृश्य आज की तुलना में बहुत अलग था और WMF फ़ाइल में संग्रहीत सहित सभी कोड, स्वाभाविक रूप से भरोसेमंद थे
सिमेंटेक सिक्योरिटी रिस्पांस, यूएसए के पीटर फेरी भी गिब्सन से असहमत थे, उन्होंने कहा:
Gibson claimed that a thread is created to run the SetAbortProc handler. In fact, no thread is created to run the handler – it is a callback, which is called by the parser, and the parser has to wait until the callback returns, otherwise the whole point of the function (to abort the printing) is lost. By his own admission, Gibson did not read the documentation (in fact, he claimed that he couldn’t find it, although it is freely available on Microsoft’s Web site), and he claimed that the device context is not available to the function handler. Of course the device context is available to the function handler — it is one of the two parameters that is passed to it (see above), and it is required in order to abort the printing. Finally, Gibson claimed that the control flow could not return to Windows. It is simply a matter of the function returning and discarding the parameters that were passed on the stack. If the record is well formed, Windows will continue to parse the file, as before. ... Gibson admits that he was guessing about a number of things. Unfortunately, he guessed poorly. I guess we know better now.[112]
गिब्सन ने दावा किया कि SetAbortProc हैंडलर को चलाने के लिए एक थ्रेड बनाया गया है। वास्तव में, हैंडलर को चलाने के लिए कोई थ्रेड नहीं बनाया गया है - यह एक कॉलबैक है, जिसे पार्सर द्वारा कॉल किया जाता है, और पार्सर को कॉलबैक वापस आने तक इंतजार करना पड़ता है, अन्यथा फ़ंक्शन का पूरा बिंदु (प्रिंटिंग को रद्द करने के लिए) खो जाता है . अपने स्वयं के प्रवेश से, गिब्सन ने दस्तावेज़ नहीं पढ़ा (वास्तव में, उन्होंने दावा किया कि वह इसे नहीं ढूंढ सके, हालांकि यह माइक्रोसॉफ्ट की वेब साइट पर मुफ्त में उपलब्ध है), और उन्होंने दावा किया कि डिवाइस संदर्भ फ़ंक्शन हैंडलर के लिए उपलब्ध नहीं है . बेशक डिवाइस संदर्भ फ़ंक्शन हैंडलर के लिए उपलब्ध है — यह उन दो मापदंडों में से एक है जो इसे पास किया गया है (ऊपर देखें), और प्रिंटिंग को रद्द करने के लिए यह आवश्यक है। अंत में, गिब्सन ने दावा किया कि नियंत्रण प्रवाह विंडोज़ पर वापस नहीं आ सका। यह केवल फ़ंक्शन के लौटने और स्टैक पर पारित किए गए पैरामीटर को त्यागने का मामला है। यदि रिकॉर्ड अच्छी तरह से बना है, तो विंडोज़ पहले की तरह फ़ाइल को पार्स करना जारी रखेगा। ... गिब्सन स्वीकार करते हैं कि वह कई चीजों के बारे में अनुमान लगा रहे थे। दुर्भाग्य से, उसने ख़राब अनुमान लगाया। मुझे लगता है कि हम अब बेहतर जानते हैं
ईएमएफ
Filename extension |
.emf |
---|---|
Internet media type |
image/emf[9] |
Uniform Type Identifier (UTI) | com.microsoft.emf[9] |
Type of format | Vector graphics |
Extended from | WMF |
Extended to | EMF+ |
ईएमएफ फाइलों में हेडर के तीन संभावित संस्करण हैं। मूल हेडर केवल छवियों के लिए एक कंटेनर है, दूसरा और तीसरा संस्करण मूल हेडर को समाहित करता है और इसमें एक पिक्सेल प्रारूप रिकॉर्ड और ओपनजीएल रिकॉर्ड के लिए समर्थन सम्मिलित है, और तीसरा संस्करण दूसरे हेडर एक्सटेंशन को समाहित करता है और ईएमएफ की सटीकता और स्केलेबिलिटी को बढ़ाता है। मीट्रिक प्रणाली का उपयोग करके डिवाइस की सतहों की दूरी मापने की क्षमता जोड़ता है।[113]
प्रत्येक EMF हेडर एक EMR_HEADER रिकॉर्ड से प्रारंभ होता है, और उस डिवाइस के प्रासंगिक गुणों को रिकॉर्ड करता है जिस पर मेटाफ़ाइल छवि रिकॉर्ड की गई थी। मूल ईएमएफ हेडर में 80 बाइट हेडर और एक वैकल्पिक चर लंबाई विवरण स्ट्रिंग है।[114] अन्य मेटाफ़ाइलों में एक्सटेंशन फ़ील्ड होते हैं, जो मूल हेडर को समाहित करते हैं। EmfमेटाfileHeaderExtension1
एक रिकॉर्ड है जो सीधे मूल ईएमएफ हेडर के बाद डाला जाता है, यह निर्दिष्ट करता है कि हेडर के भीतर एक पिक्सेल प्रारूप डिस्क्रिप्टर और डिस्क्रिप्टर ऑब्जेक्ट का ऑफसेट है या नहीं, साथ ही एक फ़ील्ड जो निर्दिष्ट करता है कि मेटाफ़ाइल में ओपनजीएल रिकॉर्ड मौजूद हैं या नहीं।[115] पिक्सेल प्रारूप डिस्क्रिप्टर ड्राइंग सतह की क्षमताओं को निर्दिष्ट करता है और क्या पिक्सेल आरजीबीए रंग मॉडल में एन्कोड किया गया है या रंग तालिका में एक सूचकांक है।[116] EmfमेटाfileHeaderExtension2
एक रिकॉर्ड है जो सीधे इसके बाद डाला जाता है EmfमेटाfileHeaderExtension1
रिकॉर्ड करें, और इसमें डिवाइस की सतह को माइक्रोमीटर में मापने के लिए X और Y मान वाले दो फ़ील्ड सम्मिलित हैं।[117]
WMF फ़ाइलों की तरह, रिकॉर्ड को फ़ंक्शन द्वारा वर्गीकृत किया जा सकता है, हालाँकि WMF फ़ाइलों की तुलना में EMF फ़ाइलों में अधिक रिकॉर्ड प्रकार होते हैं। रिकॉर्ड्स को नियंत्रण, बिटमैप, क्लिपिंग, टिप्पणी, ड्राइंग, एस्केप, ऑब्जेक्ट निर्माण, ऑब्जेक्ट हेरफेर, ओपनजीएल, पथ ब्रैकेट, स्थिति और ट्रांसफ़ॉर्म रिकॉर्ड के रूप में वर्गीकृत किया जा सकता है।
ईएमएफ+
विंडोज़ XP की रिलीज़ के साथ, उन्नत मेटाफ़ाइल प्रारूप प्लस एक्सटेंशन (EMF+) प्रारूप प्रस्तुत किया गया था। EMF+ GDI+ API पर कॉल को उसी तरह क्रमबद्ध करने का एक तरीका प्रदान करता है जैसे WMF/EMF GDI पर कॉल को संग्रहीत करता है।
विंडोज़ मेटाफ़ाइल्स के संपीड़ित संस्करण भी हैं जिन्हें संपीड़ित विंडोज़ मेटाफ़ाइल (डब्लूएमजेड) और संपीड़ित विंडोज़ एन्हांस्ड मेटाफ़ाइल (ईएमजेड) के रूप में जाना जाता है।[118] जो मूल रूप से gzip संपीड़ित WMF और EMF फ़ाइलें हैं।
कार्यान्वयन
WMF प्रारूप को छवि को पुनर्स्थापित करने के लिए विंडोज़ GDI परत द्वारा निष्पादित करने के लिए डिज़ाइन किया गया था, लेकिन चूंकि WMF बाइनरी फ़ाइलों में GDI ग्राफिक प्राइमेटिव की परिभाषा होती है जो इस छवि का निर्माण करती है, इसलिए वैकल्पिक पुस्तकालयों को डिज़ाइन करना संभव है जो WMF बाइनरी प्रस्तुत करते हैं फ़ाइलें या उन्हें अन्य ग्राफ़िक प्रारूपों में परिवर्तित करें।
यह भी देखें
- परिशिष्ट भाग
- वेक्टर मार्कअप भाषा (VML)
- स्केलेबल वेक्टर ग्राफिक्स (एसवीजी)
संदर्भ
- ↑ Windows Metafile Format (PDF), Microsoft, p. 16
- ↑ "[MS-WMF]: Windows Metafile Format". MSDN. 2015-06-30. Retrieved 2015-07-26.
- ↑ [MS-EMF]: Enhanced Metafile Format (PDF), Microsoft, p. 17
- ↑ [MS-EMFPLUS]: Enhanced Metafile Format Plus Extensions (PDF), Microsoft, p. 19
- ↑ Microsoft Windows 3.1 Programmers Reference, Volume 4 Resources, Microsoft Press 1992, ISBN 1-55615-494-1, chapter 3 pp. 21-45
- ↑ Caolan McNamara. "विंडो मेटाफ़ाइल (डब्ल्यूएमएफ) संदर्भ". Retrieved 2008-06-01.
ये ऑपकोड लागू नहीं किए गए हैं, इस कारण से कि मुझे नहीं पता कि वे क्या हैं, कोई ज्ञात दस्तावेज नहीं है
- ↑ "[MS-WMF]: Windows Metafile Format Specification". Retrieved 2008-06-01.
- ↑ "माइक्रोसॉफ्ट ओपन विशिष्टता वादा". Microsoft. Retrieved 2008-06-01.
- ↑ 9.0 9.1 9.2 9.3 9.4 Leonard, Sean (September 2016). "Windows Metafiles". Windows Image Media Types. IETF. p. 1. doi:10.17487/RFC7903. ISSN 2070-1721. RFC 7903. Retrieved February 8, 2020.
- ↑ "3.1.4.1 WMF Object Table", [MS-WMF]: Enhanced Metafile Format (PDF), Microsoft, p. 187
- ↑ "3.1.1.1 EMF Object Table", [MS-EMF]: Windows Metafile Format Specification (PDF), Microsoft, p. 212-214
- ↑ [MS-EMFPLUS]: Enhanced Metafile Format Plus Extensions (PDF), Microsoft, pp. 204–205
- ↑ "Figure 1: Structures of original and placeable Windows metafiles", Windows Metafile Format (PDF), Microsoft, p. 17
- ↑ Q66949: INFO: Windows Metafile Functions & Aldus Placeable Metafiles, Microsoft – via KnowledgeBase Archive: An Archive of Early Microsoft KnowledgeBase
- ↑ 15.0 15.1 15.2 "1.3.1 Metafile Structure", Windows Metafile Format (PDF), Microsoft, p. 17
- ↑ "2.3.2.3 META_PLACEABLE Record", Windows Metafile Format (PDF), Microsoft, p. 115
- ↑ Windows Metafile Format (PDF), Microsoft, p. 55,
<55> Section 2.3.2.3: Windows NT 3.1, Windows NT 3.5, Windows NT 3.51, and Windows 95: This feature is not supported.
- ↑ "2.3.2.2 MTF_HEADERRECORD Record", Windows Metafile Format (PDF), Microsoft, p. 114
- ↑ "2.3.2.2 MTF_HEADERRECORD Record", Windows Metafile Format (PDF), Microsoft, p. 114
- ↑ "2.3.2.1 MTF_EOF Record", Windows Metafile Format (PDF), Microsoft, p. 114
- ↑ "1.1 Glossary", [MS-WMF]: Windows Metafile Format Specification (PDF), Microsoft, p. 13, retrieved 2020-01-24
- ↑ "2.3.1.1 META_BITBLT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 101–103, retrieved 2020-01-24
- ↑ "2.3.1.2 META_DIBBITBLT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), Microsoft, p. 103-106, retrieved 2020-01-24
- ↑ "2.3.1.3 META_DIBSTRETCHBITBLT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), Microsoft, p. 106-108, retrieved 2020-01-24
- ↑ "2.3.1.4 META_SETDIBTODEV Record", [MS-WMF]: Windows Metafile Format Specification (PDF), Microsoft, p. 108-109, retrieved 2020-01-24
- ↑ "2.3.1.5 META_STRETCHBLT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), Microsoft, p. 109-110, retrieved 2020-01-24
- ↑ "2.3.1.6 META_STRETCHDIB Record", [MS-WMF]: Windows Metafile Format Specification (PDF), Microsoft, p. 103-106, retrieved 2020-01-24
- ↑ "2.3.3.1 META_ARC Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 101–103, retrieved 2020-01-24
- ↑ "2.3.3.2 META_CHORD Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 117–118, retrieved 2020-01-24
- ↑ "2.3.3.3 META_ELLIPSE Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 119, retrieved 2020-01-24
- ↑ "2.3.3.4 META_EXTFLOODFILL Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 119–120, retrieved 2020-01-24
- ↑ "2.3.3.5 META_EXTTEXTOUT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 119–120, retrieved 2020-01-24
- ↑ "2.3.3.6 META_FILLREGION Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 121, retrieved 2020-01-24
- ↑ "2.3.3.7 META_FLOODFILL Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 119–120, retrieved 2020-01-24
- ↑ "2.3.3.8 META_FRAMEREGION Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 122–123, retrieved 2020-01-24
- ↑ "2.3.3.9 META_INVERTREGION Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 123, retrieved 2020-01-24
- ↑ "2.3.3.10 META_LINETO Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 123–124, retrieved 2020-01-24
- ↑ "2.3.3.11 META_PAINTREGION Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 124, retrieved 2020-01-24
- ↑ "2.3.3.12 META_PATBLT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 124–125, retrieved 2020-01-24
- ↑ "2.3.3.13 META_PIE Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 125–126, retrieved 2020-01-24
- ↑ "2.3.3.14 META_POLYLINE Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 126, retrieved 2020-01-24
- ↑ "2.3.3.15 META_POLYGON Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 127, retrieved 2020-01-24
- ↑ "2.3.3.16 META_POLYPOLYGON Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 127–128, retrieved 2020-01-24
- ↑ "2.3.3.17 META_RECTANGLE Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 127–128, retrieved 2020-01-24
- ↑ "2.3.3.18 META_ROUNDRECT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 128–129, retrieved 2020-01-24
- ↑ "2.3.3.19 META_SETPIXEL Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 129–130, retrieved 2020-01-24
- ↑ "2.3.3.20 META_TEXTOUT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 130, retrieved 2020-01-24
- ↑ "2.2.2.2. BitmapCoreHeader Object", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 85, retrieved 2020-01-25
- ↑ "2.2.2.9. DeviceIndependentBitmap Object", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 91, retrieved 2020-01-25
- ↑ 50.0 50.1 "2.2.1. Graphics Objects", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 79, retrieved 2020-01-25
- ↑ "2.3.4.1 META_CREATEBRUSHINDIRECT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 131–132, retrieved 2020-01-25
- ↑ "2.3.4.2 META_CREATEFONTINDIRECT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 132, retrieved 2020-01-25
- ↑ "2.3.4.4 META_CREATEPATTERNBRUSH Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 133–135, retrieved 2020-01-25
- ↑ "2.3.4.3 META_CREATEPALETTE Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 132–133, retrieved 2020-01-25
- ↑ "2.3.4.5 META_CREATEPENINDIRECT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 134–135, retrieved 2020-01-25
- ↑ "2.3.4.6 META_CREATEREGION Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 135, retrieved 2020-01-25
- ↑ "2.3.4.7 META_DELETEOBJECT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 135, retrieved 2020-01-25
- ↑ "2.3.4.8 META_CREATEBRUSHINDIRECT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 135–136, retrieved 2020-01-25
- ↑ "2.3.4.9 META_DIBCREATEPATTERNBRUSH Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 136–137, retrieved 2020-01-25
- ↑ "2.3.4.10 META_SELECTCLIPREGION Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 137, retrieved 2020-01-25
- ↑ "2.3.4.11 META_SELECTOBJECT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 137–138, retrieved 2020-01-25
- ↑ "2.3.4.11 META_SELECTPLAETTE Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 139, retrieved 2020-01-25
- ↑ "2.3.5 State Record Types", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 138, retrieved 2020-01-28
- ↑ "2.3.6.2. ABORTDOC Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 158–159, retrieved 2020-01-28
- ↑ "2.3.6.3. BEGIN_PATH Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 159, retrieved 2020-01-28
- ↑ "2.3.6.4. CHECK_JPEGFORMAT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 159–160, retrieved 2020-01-28
- ↑ "2.3.6.5. CHECK_PNGFORMAT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 160, retrieved 2020-01-28
- ↑ "2.3.6.6. CLIP_TO_PATH Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 160, retrieved 2020-01-28
- ↑ "2.3.6.7. CLOSE_CHANNEL Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 162, retrieved 2020-01-28
- ↑ "2.3.6.8. DOWNLOAD_FACE Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 162–163, retrieved 2020-01-28
- ↑ "2.3.6.9. DOWNLOAD_HEADER Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 158–159, retrieved 2020-01-28
- ↑ "2.3.6.10. DRAW_PATTERNRECT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 163–164, retrieved 2020-01-28
- ↑ "2.3.6.11. ENCAPSULATED_POSTSCRIPT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 164, retrieved 2020-01-28
- ↑ "2.3.6.12. END_PATH Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 164–165, retrieved 2020-01-28
- ↑ "2.3.6.13. ENDDOC Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 165, retrieved 2020-01-28
- ↑ "2.3.6.14. EPS_PRINTING Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 165–166, retrieved 2020-01-28
- ↑ "2.3.6.15. EXTTEXTOUT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 166–167, retrieved 2020-01-28
- ↑ "2.3.6.16. GET_COLORTABLE Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 167–168, retrieved 2020-01-28
- ↑ "2.3.6.17. GET_DEVICEUNITS Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 168, retrieved 2020-01-28
- ↑ "2.3.6.18. GET_EXTENDED_TEXTMETRICS Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 168–169, retrieved 2020-01-28
- ↑ "2.3.6.19. GET_FACENAME Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 169, retrieved 2020-01-28
- ↑ "2.3.6.20. GET_PAIRKERNTABLE Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 169–170, retrieved 2020-01-28
- ↑ "2.3.6.21. GET_PHYSPAGESIZE Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 170, retrieved 2020-01-28
- ↑ "2.3.6.22. GET_PRINTINGOFFSET Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 170–171, retrieved 2020-01-28
- ↑ "2.3.6.23. GET_PS_FEATURESETTING Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 171, retrieved 2020-01-28
- ↑ "2.3.6.24. GET_SCALINGFACTOR Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 171–172, retrieved 2020-01-28
- ↑ "2.3.6.25. META_ESCAPE_ENHANCED_METAFILE Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 172–173, retrieved 2020-01-28
- ↑ "2.3.6.26. METAFILE_DRIVER Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 173–174, retrieved 2020-01-28
- ↑ "2.3.6.27. NEWFRAME Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 174–175, retrieved 2020-01-28
- ↑ "2.3.6.28. NEXTBAND Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 174–175, retrieved 2020-01-28
- ↑ "2.3.6.29. PASSTHROUGH Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 175, retrieved 2020-01-28
- ↑ "2.3.6.30. POSTSCRIPT_DATA Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 176, retrieved 2020-01-28
- ↑ "2.3.6.31. POSTSCRIPT_IDENTIFY Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 176–177, retrieved 2020-01-28
- ↑ "2.3.6.32. POSTSCRIPT_IGNORE Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 177, retrieved 2020-01-28
- ↑ "2.3.6.33. POSTSCRIPT_INJECTION Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 177–178, retrieved 2020-01-28
- ↑ "2.3.6.34. POSTSCRIPT_PASSTHROUGH Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 178, retrieved 2020-01-28
- ↑ "2.3.6.35. OPEN_CHANNEL Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 179, retrieved 2020-01-28
- ↑ "2.3.6.36. QUERY_DIBSUPPORT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 179–180, retrieved 2020-01-28
- ↑ "2.3.6.37. QUERY_ESCSUPPORT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 180, retrieved 2020-01-28
- ↑ "2.3.6.38. SET_COLORTABLE Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 180–181, retrieved 2020-01-28
- ↑ "2.3.6.39. SET_COPYCOUNT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 181, retrieved 2020-01-28
- ↑ "2.3.6.40. SET_LINECAP Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 181–182, retrieved 2020-01-28
- ↑ "2.3.6.41. SET_LINEJOIN Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 182–183, retrieved 2020-01-28
- ↑ "2.3.6.42. SET_MITERLIMIT Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 183, retrieved 2020-01-28
- ↑ "2.3.6.43. SPCLPASSTHROUGH2 Record", [MS-WMF]: Windows Metafile Format Specification (PDF), pp. 183–184, retrieved 2020-01-28
- ↑ "2.3.6.44. STARTDOC Record", [MS-WMF]: Windows Metafile Format Specification (PDF), p. 184, retrieved 2020-01-28
- ↑ "Microsoft Windows WMF "SETABORTPROC" मनमाना कोड निष्पादन". Secunia. Secunia Advisory: SA18255. Archived from the original on January 2, 2006.
- ↑ Pscript-Supported Escapes, Microsoft, retrieved 2020-01-28
- ↑ "The Windows MetaFile Backdoor?". GRC Security Now! (Podcast). Gibson Research Corporation. January 12, 2006. Retrieved 2020-01-28.
- ↑ Gibson, Steve (January 12, 2006), "Re: You won't want to miss tonight's Security Now!, #22", grc.news.feedback, retrieved 2020-01-28
- ↑ Russinovich, Mark (January 18, 2006), "Inside the WMF Backdoor", TechNet, Microsoft – via Microsoft Tech Community
- ↑ Ferrie, Peter (February 2, 2006), Inside the Windows Meta File Format (PDF), Virus Bulletin, retrieved 2020-01-24 – via Symantec
- ↑ "1.3.1. Metafile Structure", [MS-EMF]: Enhanced Metafile Format (PDF), Microsoft, pp. 17–18
- ↑ "2.3.4.2.1 EmfMetafileHeader Record", [MS-EMF]: Enhanced Metafile Format (PDF), Microsoft, p. 120
- ↑ "2.2.10 HeaderExtension1 Object", [MS-EMF]: Enhanced Metafile Format (PDF), Microsoft, pp. 57–58
- ↑ "2.2.22 PixelFormatDescriptor Object", [MS-EMF]: Enhanced Metafile Format (PDF), Microsoft, pp. 68–71
- ↑ "2.3.4.2.3 EmfMetafileHeaderExtension2 Record", [MS-EMF]: Enhanced Metafile Format (PDF), Microsoft, pp. 122–124
- ↑ "जब आप मैक प्रेजेंटेशन के लिए पावरपॉइंट में एक चित्र सम्मिलित करने का प्रयास करते हैं तो आपको "यह फ़ाइल एक असमर्थित ग्राफ़िक प्रारूप है" त्रुटि संदेश प्राप्त होता है". Microsoft. Archived from the original on 2014-04-19. Retrieved 2014-04-19.