विंडोज़ मेटाफ़ाइल
विंडोज़ मेटाफ़ाइल (डब्लूएमएफ) एक इमेज फाइल फॉर्मेट है जिसे मूल रूप से 1990 के दशक में माइक्रोसॉफ्ट विंडोज़ के लिए डिज़ाइन किया गया था। मूल विंडोज़ मेटाफ़ाइल प्रारूप डिवाइस-स्वतंत्र नहीं था (हालांकि प्लेसमेंट हेडर के साथ इसे और अधिक बनाया जा सकता था) और इसमें वेक्टर ग्राफिक्स और बिटमैप दोनों घटक शामिल हो सकते हैं। यह एसवीजी फाइलों की तरह ही कार्य करता है। WMF फ़ाइलों को बाद में एन्हांस्ड मेटाफ़ाइल्स (EMF फ़ाइलें) द्वारा प्रतिस्थापित किया गया, जो डिवाइस की स्वतंत्रता प्रदान करती थी। EMF फ़ाइलों को फिर EMF+ फ़ाइलों के माध्यम से बढ़ाया गया।
अनिवार्य रूप से, एक मेटाफ़ाइल स्क्रीन पर एक छवि प्रदर्शित करने के लिए ड्राइंग कमांड, प्रॉपर्टी परिभाषा और ग्राफिक्स ऑब्जेक्ट से युक्त रिकॉर्ड की एक सूची संग्रहीत करता है।[1] उपयोग किए गए ड्राइंग कमांड माइक्रोसॉफ्ट विंडोज़ में ड्राइंग के लिए उपयोग किए जाने वाले ग्राफिक्स डिवाइस इंटरफ़ेस (जीडीआई) एपीआई के कमांड से निकटता से संबंधित हैं।
मेटाफ़ाइल्स के तीन प्रमुख प्रकार हैं - WMF एक 16-बिट प्रारूप है जिसे विंडोज़ 3.0 में पेश किया गया है। यह Word, PowerPoint और प्रकाशक जैसे Microsoft Office अनुप्रयोगों के लिए मूल वेक्टर प्रारूप है। 2017 के अनुसार विंडोज मेटाफ़ाइल प्रारूप विनिर्देश का संशोधन 14 ऑनलाइन पढ़ने या पीडीएफ के रूप में डाउनलोड करने के लिए उपलब्ध है।[2] ईएमएफ फाइलें, जिन्होंने डब्लूएमएफ फाइलों को प्रतिस्थापित किया, उसी सिद्धांत पर काम करती हैं, केवल यह एक 32-बिट फ़ाइल प्रारूप है जो "टिप्पणी" रिकॉर्ड के भीतर निजी डेटा को एम्बेड करने की भी अनुमति देता है।[3] ईएमएफ+ ईएमएफ फाइलों का एक विस्तार है और इन टिप्पणी रिकॉर्ड में एम्बेडेड है, जो विंडोज़ जीडीआई+ के समान कमांड, ऑब्जेक्ट और गुणों का उपयोग करके छवियों और टेक्स्ट की अनुमति देता है।[4]
इतिहास
मूल 16-बिट WMF फ़ाइल स्वरूप 1992 के विंडोज़ 3.1 एसडीके दस्तावेज़ीकरण के खंड 4 में पूरी तरह से निर्दिष्ट किया गया था[5] (कम से कम यदि अन्य खंडों में व्यक्तिगत कार्यों और संरचनाओं के विवरण के साथ जोड़ा जाए), लेकिन वह विनिर्देश कुछ विवरणों के बारे में अस्पष्ट था। इन मैनुअलों को किताबों की दुकानों में उपलब्ध मुद्रित पुस्तकों के रूप में प्रकाशित किया गया था, जिसमें कोई क्लिक-थ्रू ईयूएलए या अन्य असामान्य लाइसेंसिंग प्रतिबंध नहीं थे (केवल एक सामान्य चेतावनी है कि यदि सॉफ्टवेयर बंडल के हिस्से के रूप में खरीदा जाता है, तो सॉफ्टवेयर एक के अधीन होगा)।
समय के साथ उस ऐतिहासिक विनिर्देश के अस्तित्व को काफी हद तक भुला दिया गया और कुछ वैकल्पिक कार्यान्वयनों ने मौजूदा WMF फ़ाइलों से फ़ाइल प्रारूप का पता लगाने के लिए रिवर्स इंजीनियरिंग का सहारा लिया, जो कठिन और त्रुटि प्रवण था।[6] सितंबर 2006 में, Microsoft ने WMF फ़ाइल प्रारूप विनिर्देश को अधिक पूर्ण रूप में फिर से प्रकाशित किया[7] माइक्रोसॉफ्ट ओपन विशिष्टता वादा के संदर्भ में, फ़ाइल प्रारूप कार्यान्वयनकर्ताओं पर पेटेंट अधिकारों का दावा नहीं करने का वादा किया गया है।[8]
माइक्रोसॉफ्ट ने बाद में 32-बिट ईएमएफ फाइलों के पक्ष में डब्लूएमएफ फाइलों को खारिज कर दिया क्योंकि डब्लूएमएफ फाइलों में डिवाइस स्वतंत्रता के साथ वास्तविक समस्याएं थीं, प्लेसेबल फ़ाइल हेडर के उपयोग के बावजूद जो बुनियादी डिवाइस स्वतंत्रता प्रदान करती थी। माइक्रोसॉफ्ट ने पाया कि जो डेवलपर्स प्रारूप का उपयोग करते हैं, वे मेटाफ़ाइल्स में एप्लिकेशन, स्थान, या स्केलिंग टिप्पणियां [एम्बेडिंग] कर रहे थे... अन्य ने मेटाफ़ाइल में हेडर जोड़े जो विभिन्न एप्लिकेशन-विशिष्ट जानकारी प्रदान करते थे, जिससे प्रमुख संगतता समस्याएं पैदा हुईं। एक प्रारूप जो Win32 API पर आधारित था और जिसके साथ उन्होंने डिवाइस की स्वतंत्रता अंतर्निहित की थी। इन्हें एनटी मेटाफ़ाइल्स के रूप में भी जाना जाता था। विंडोज़ एक्सपी और जीडीआई+ की रिलीज़ के साथ, रिकॉर्ड्स के सेट को काफी बढ़ाना पड़ा और इसलिए माइक्रोसॉफ्ट ने मौजूदा ईएमएफ फ़ाइल प्रारूप के विस्तार के रूप में ईएमएफ+ प्रभावशील किया था।
मेटाफ़ाइल संरचना
WMF, EMF और EMF+ फ़ाइलें सभी रिकॉर्ड की एक श्रृंखला से बनी होती हैं जिन्हें ग्राफिकल आउटपुट उत्पन्न करने के लिए चलाया जाता है। कुछ रिकॉर्ड वस्तुओं को परिभाषित करते हैं जो ग्राफिकल वस्तुओं को निर्दिष्ट कर सकते हैं जिनका उपयोग यह निर्धारित करने के लिए किया जाता है कि ग्राफिक्स कैसे बनाया जाना चाहिए (उदाहरण के लिए पेन लाइनों का रंग और चौड़ाई निर्दिष्ट करते हैं)। इनमें से प्रत्येक ऑब्जेक्ट को मेटाफ़ाइल्स में संग्रहीत किया जाता है और एक ऑब्जेक्ट तालिका में रखा जाता है, जो मेटाफ़ाइल को संसाधित करते समय ग्राफिक ऑब्जेक्ट्स के उपयोग को ट्रैक करता है। ऑब्जेक्ट तालिका मेटाफ़ाइल के भीतर परिभाषित ग्राफ़िकल ऑब्जेक्ट संरचनाओं के अनुक्रमितों की एक सहयोगी सरणी है।
WMF और EMF फ़ाइलें EMF फ़ाइलों में EMF+ रिकॉर्ड से भिन्न तरीके से ऑब्जेक्ट प्रोसेसिंग को संभालती हैं। चूंकि WMF और EMF फ़ाइल को संसाधित किया जा रहा है, किसी ऑब्जेक्ट को परिभाषित करने के बाद रिकॉर्ड्स को ऑब्जेक्ट तालिका में पढ़ा जाता है। यदि कोई ऑब्जेक्ट हटा दिया जाता है तो ऑब्जेक्ट को तालिका से मुक्त कर दिया जाता है और पहचानकर्ता का पुन: उपयोग किया जा सकता है। विशेष रूप से किसी ऑब्जेक्ट का उपयोग तब तक नहीं किया जाएगा जब तक कि इसे रिकॉर्ड प्लेबैक के दौरान विशेष रूप से नहीं चुना जाता है।[9][10] यह EMF+ फ़ाइलों के लिए भिन्न है, जो हैशमैप के माध्यम से एक सहयोगी सरणी का भी उपयोग करता है जो ऑब्जेक्ट को ऑब्जेक्ट पहचानकर्ता के साथ रिकॉर्ड करता है। हालाँकि, WMF और EMF फ़ाइलों के विपरीत, जो किसी ऑब्जेक्ट को हटा सकती हैं, जब एक नया ऑब्जेक्ट बनाया जाता है जिसका इंडेक्स मौजूदा ऑब्जेक्ट के समान होता है, तो तालिका में प्रविष्टि को नए ऑब्जेक्ट से बदल दिया जाता है। ईएमएफ फ़ाइल को उपयोग करने से पहले विशेष रूप से किसी ऑब्जेक्ट का चयन करने की आवश्यकता नहीं होती है।[11]
डब्लूएमएफ
Filename extension |
.wmf |
---|---|
Internet media type |
image/wmf[12] |
Uniform Type Identifier (UTI) | com.microsoft.wmf[12] |
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 फ़ाइल बनाते हैं।
Name | Description |
---|---|
ABORTDOC | Stops processing the current document. [64] |
BEGIN_PATH | Oपेनs a path.[65] |
CHECK_JPEGFORMAT | Determines whether it can handle the given JPEG image.[66] |
CHECK_PNGFORMAT | Determines whether it can handle the given PNG image.[67] |
क्लिप_TO_PATH | Applies a function to the current PostScript क्लिपping path.[68] |
CLOSE_CHANNEL | Same as ENDDOC.[69] |
DOWNLOAD_FACE | Sets the फ्रंट face name on the output device.[70] |
DOWNLOAD_HEADER | Downloads sets of PostScript procedures.[71] |
DRAW_पेटर्नRECT | Draws a रेक्टेंगल with a defined पेटर्न.[72] |
ENCAPSULATED_POSTSCRIPT | Sends arbitrary encapsulated PostScript (EPS) data directly to the printer driver.[73] |
END_PATH | Ends a path.[74] |
ENDDOC | Notifies the printer driver that a new print job is ending.[75] |
EPS_PRINTING | Indicates the start and end of EPS printing.[76] |
एक्सटेक्स्टआउट | Draws text using the currently सेलेक्टed फ्रंट, background color, and text color.[77] |
GET_COLORTABLE | Gets color table values from the printer driver.[78] |
GET_DEVICEUNITS | Gets the device units currently configured on the output device.[79] |
GET_EXTENDED_TEXTMETRICS | Gets the extended text metrics that are currently configured on the printer driver.[80] |
GET_FACENAME | Gets the फ्रंट face name currently configured on the output device.[81] |
GET_PAIRKERNTABLE | Gets the फ्रंट kern table currently defined on the output device.[82] |
GET_PHYSPAGESIZE | Retrieves the physical page size currently सेलेक्टed on the output device.[83] |
GET_PRINTINGOFFSET | Retrieves the offset from the upper-left corner of the physical page where the actual printing or drawing begins.[84] |
GET_PS_FEATURESETTING | Queries the printer driver for information about PostScript features supported on the output device.[85] |
GET_SCALINGFACTOR | Retrieves the scaling factors for the x-axis and the y-axis of a printer.[86] |
मेटा_ESCAPE_ENHANCED_मेटाFILE | Used to embed an EMF मेटाfile within a WMF मेटाfile.[87] |
मेटाFILE_DRIVER | Queries the printer driver about its support for मेटाfiles on the output device.[88] |
NEWFRAME | Notifies the printer driver that the application has finished writing to a page.[89] |
NEXTBAND | Notifies the printer driver that the application has finished writing to a band.[90] |
PASSTHROUGH | Passes through arbitrary data to the printer driver.[91] |
POSTSCRIPT_DATA | Sends arbitrary PostScript data to the output device.[92] |
POSTSCRIPT_IDENTIFY | Sets the printer driver to either PostScript-centric or GDI-centric mode.[93] |
POSTSCRIPT_IGNORE | Notifies the output device to ignore PostScript data.[94] |
POSTSCRIPT_INJECTION | Inserts a block of raw data into a PostScript stream.[95] |
POSTSCRIPT_PASSTHROUGH | Sends arbitrary data directly to a printer driver, which is expected to process this data only when in PostScript mode.[96] |
Oपेन_CHANNEL | Acts the same as STARTDOC, with a NULL document and output filename, and data in raw mode.[97] |
QUERY_डिबSUPPORT | Queries the printer driver about its support for डिबs on the output device.[98] |
QUERY_ESCSUPPORT | Queries the printer driver to determine whether a specific WMF escape function is supported on the output device.[99] |
SET_COLORTABLE | Sets color table values.[100] |
SET_COPYCOUNT | Sets the number of coपाईs.[101] |
SET_LINECAP | Specifies the line-ending mode to use in drawing to the output device.[102] |
SET_LINEJOIN | Specifies the line-joining mode to use in drawing to the output device.[103] |
SET_MITERLIMIT | Sets the limit for the length of miter joins to use in drawing to the output device.[104] |
SPCLPASSTHROUGH2 | Enables documents to include private procedures and other arbitrary data in documents.[105] |
STARTDOC | Notifies the printer driver that a new print job is starting.[106] |
एबॉर्ट एस्केप रिकॉर्ड के आसपास एस्केप रिकॉर्ड में एक विंडोज़ मेटाफ़ाइल भेद्यता पाई गई थी, जो एबॉर्ट प्रक्रिया कोड को रिकॉर्ड के भीतर ही संग्रहीत करता है। इससे विंडोज़ सिस्टम प्रभावित हुआ (देखें)। CVE-2005-4560) और वाइन (सॉफ़्टवेयर) (देखें CVE-2006-0106). सिकुनिया के अनुसार, भेद्यता विशेष रूप से तैयार किए गए SETABORTPROC 'एस्केप' रिकॉर्ड वाले विंडोज मेटाफ़ाइल फ़ाइलों ('.wmf') को संभालने में त्रुटि के कारण होती है। WMF फ़ाइल का रेंडरिंग विफल होने पर ऐसे रिकॉर्ड मनमाने उपयोगकर्ता-परिभाषित फ़ंक्शन को निष्पादित करने की अनुमति देते हैं।[107] Windows 3.1 SDK दस्तावेज़ के अनुसार, WMF भेद्यता की खोज से बहुत पहले, SETABORTPROC एस्केप अप्रचलित हो गया था और Windows 3.1 में उसी नाम के फ़ंक्शन द्वारा प्रतिस्थापित कर दिया गया था।[108] हालाँकि, अप्रचलित एस्केप कोड को विंडोज 3.0 के लिए लिखे गए (या कम से कम बैकवर्ड संगत) 16 बिट प्रोग्राम के साथ संगतता के लिए बरकरार रखा गया था। यह परिवर्तन लगभग उसी समय हुआ जब Microsoft Windows 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]
सिमेंटेक सिक्योरिटी रिस्पांस, यूएसए के पीटर फेरी भी गिब्सन से असहमत थे, उन्होंने कहा:
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]
ईएमएफ
Filename extension |
.emf |
---|---|
Internet media type |
image/emf[12] |
Uniform Type Identifier (UTI) | com.microsoft.emf[12] |
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 फ़ाइलों में अधिक रिकॉर्ड प्रकार होते हैं। रिकॉर्ड्स को नियंत्रण, बिटमैप, क्लिपिंग, टिप्पणी, ड्राइंग, एस्केप, ऑब्जेक्ट निर्माण, ऑब्जेक्ट हेरफेर, ओपनजीएल, पथ ब्रैकेट, स्थिति और ट्रांसफ़ॉर्म रिकॉर्ड के रूप में वर्गीकृत किया जा सकता है।
ईएमएफ+
Windows XP की रिलीज़ के साथ, उन्नत मेटाफ़ाइल प्रारूप प्लस एक्सटेंशन (EMF+) प्रारूप पेश किया गया था। EMF+ GDI+ API पर कॉल को उसी तरह क्रमबद्ध करने का एक तरीका प्रदान करता है जैसे WMF/EMF GDI पर कॉल को संग्रहीत करता है।
विंडोज़ मेटाफ़ाइल्स के संपीड़ित संस्करण भी हैं जिन्हें संपीड़ित विंडोज़ मेटाफ़ाइल (डब्लूएमजेड) और संपीड़ित विंडोज़ एन्हांस्ड मेटाफ़ाइल (ईएमजेड) के रूप में जाना जाता है।[118] जो मूल रूप से gzip संपीड़ित WMF और EMF फ़ाइलें हैं।
कार्यान्वयन
WMF प्रारूप को छवि को पुनर्स्थापित करने के लिए Windows 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.
- ↑ "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
- ↑ 12.0 12.1 12.2 12.3 Cite error: Invalid
<ref>
tag; no text was provided for refs namedrfc7903
- ↑ "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.