CreateWindowEx फंक्शन को समझना
विंडोज एप्लिकेशन, जिनमें .NET एप्लिकेशन शामिल हैं जो विंडोज फॉर्म्स या विंडोज प्रेजेंटेशन फाउंडेशन (WPF) का उपयोग करते हैं, CreateWindowExA या CreateWindowExW फंक्शन को कॉल करके अपनी विंडो बनाते हैं।
दोनों फंक्शन आंतरिक रूप से एक सामान्य USER32 फंक्शन को कॉल करते हैं जो कुछ पैरामीटर सत्यापन करेगा, जैसे कॉल में निर्दिष्ट विंडो स्टाइल और हैंडल, यदि WS_EX_MDICHILD एक्सटेंडेड विंडो स्टाइल निर्दिष्ट है तो MDI चाइल्ड विंडो बनाने को हैंडल करें, और कॉलिंग थ्रेड के लिए वर्तमान एक्टिवेशन कॉन्टेक्स्ट को प्रोसेस करें। यदि USER32-साइड के CreateWindowEx कॉल पर सब ठीक है, तो यह CreateWindowEx के कर्नेल-मोड (WIN32K) कार्यान्वयन में कॉल करता है।
नई विंडो ऑब्जेक्ट बनाने का प्रयास करते समय CreateWindowEx निम्नलिखित कार्य करेगा:
- निर्धारित करें कि नई विंडो ऑब्जेक्ट के लिए हैंडल बनाना कॉलिंग प्रोसेस के लिए यूजर हैंडल कोटा सीमा को पार करेगा या नहीं।
- डेक्सटॉप के हीप से नई विंडो ऑब्जेक्ट के लिए मेमोरी आवंटित करें।
- नई विंडो ऑब्जेक्ट के लिए मेमोरी इनिशियलाइज़ करें।
- यूजर हैंडल टेबल में नई विंडो ऑब्जेक्ट के लिए एक हैंडल बनाएं।
CreateWindowEx विफलताओं के कारण
कुछ शर्तें जो CreateWindowEx फंक्शन समस्या को ट्रिगर कर सकती हैं, नीचे दी गई हैं:
- निर्दिष्ट विंडो क्लास मौजूद नहीं है।
- अमान्य विंडो स्टाइल या एक्सटेंडेड विंडो स्टाइल का उपयोग करना।
- अमान्य यूजर हैंडल का उपयोग करना, जैसे विंडो हैंडल और मेनू हैंडल।
- पैरेंट विंडो निर्दिष्ट किए बिना चाइल्ड विंडो बनाने का प्रयास करना।
- चाइल्ड या ओन्ड विंडो बनाने का प्रयास करना और निर्दिष्ट पैरेंट/ओनर कॉलिंग थ्रेड से अलग डेस्कटॉप से संबंधित है।
- चाइल्ड या ओन्ड विंडो बनाने से नेस्टेड विंडो सीमा पार हो जाएगी।
- नई विंडो ऑब्जेक्ट बनाने से कॉलिंग प्रोसेस के लिए हैंडल कोटा पार हो जाएगा।
- डेक्सटॉप के हीप में नई विंडो ऑब्जेक्ट के लिए मेमोरी आवंटित करने के लिए अपर्याप्त हीप उपलब्ध है।
- यूजर हैंडल टेबल में कोई उपलब्ध एंट्री नहीं है।
विंडोज 10 में 32-बिट ऐप्स के लिए CreateWindowEx फंक्शन समस्याएं ठीक करें
माइक्रोसॉफ्ट ने CreateWindowEx फंक्शन समस्याओं के लिए एक वर्कअराउंड प्रदान किया है।
इस समस्या को हल करने के लिए, आपको अपने विंडोज 10 इंस्टॉलेशन को पिछले संस्करण पर वापस रोल करना होगा।
विंडोज 10 में रोलबैक विकल्प आपके विंडोज 10 इंस्टॉलेशन को अपग्रेड करने के बाद 10 दिनों के लिए उपलब्ध है (अधिकांश मामलों में)।
यह ऑपरेशन आपकी व्यक्तिगत फाइलों को रखता है, लेकिन अपग्रेड के बाद इंस्टॉल किए गए एप्लिकेशन और ड्राइवरों को हटा देता है, और आपके द्वारा सेटिंग्स में किए गए किसी भी परिवर्तन को उलट देता है।
यदि रोल बैक विकल्प उपलब्ध नहीं है - अपनी व्यक्तिगत फाइलों का बैकअप लें, फिर आप अपने आईटी समर्थन या हेल्पडेस्क या माइक्रोसॉफ्ट सपोर्ट से संपर्क करके अपने डिवाइस को पिछले विंडोज 10 संस्करण पर पुनर्स्थापित करने में मदद ले सकते हैं।
बस इतना ही!
नोट: माइक्रोसॉफ्ट एक समाधान पर काम कर रहा है और विंडोज 10 के आगामी रिलीज में एक अपडेट प्रदान करेगा।