मैंने एटीएल (विजुअल स्टूडियो 2008) का उपयोग करके एक विंडोज शेल एक्सटेंशन बनाया है। इसमें निम्नलिखित मॉड्यूल हैं और प्रत्येक मॉड्यूल पंजीकरण के लिए अपनी स्वयं की .rgs फ़ाइल के साथ एक अलग ATL सरल वस्तु है: -
- IShellFolder / IShellView -> विंडोज़ एक्सप्लोरर में एक आभासी ड्राइव के लिए
- IContextMenu / IShellExtInit -> एक पॉपअप मेनू फ़ाइलों और फ़ोल्डरों के लिए
- IShellIconOverlayIdentifier - फ़ाइलों और फ़ोल्डरों पर ओवरले आइकन प्रदर्शित करने के लिए
- IShellPropSheetExt / IShellExtInit -> फ़ाइल और फ़ोल्डर के गुणों में एक कस्टम संपत्ति पृष्ठ के लिए
WinXP में उपरोक्त कार्य ठीक है और मैं करने में सक्षम हूंWinXP में इस शेल एक्सटेंशन को डीबग करें। लेकिन जैसे ही मैं विस्टा पर स्विच करता हूं, मुझे केवल (2) और (4) के लिए मेथड कॉल मिलते हैं। ड्राइव विंडोज एक्सप्लोरर में बनाई जाती है, लेकिन जब मैं इसे क्लिक करता हूं तो अंतर्निहित तरीकों को नहीं बुलाया जाता है। हालाँकि जब मैं राइट क्लिक करता हूं तो मुझे (2) के लिए बुलाया जाता है और जब मैं किसी फ़ाइल या फ़ोल्डर के लिए "गुण" का चयन करता हूं तो मुझे कोड (4) मिल जाता है।
क्या कुछ इंटरफ़ेस है जो मुझे याद आ रहा है (1)और (3) विस्टा पर। मुझे MSDN पर Vista के लिए शैल एक्सटेंशन लिखने पर पूर्ण और विस्तृत दस्तावेज़ नहीं मिल सका। मैं पहले से ही शेल एक्सटेंशन पर कोडप्रोजेक्ट लेखों के माध्यम से चला गया था।
उत्तर:
उत्तर № 1 के लिए 1समस्या एक Xml स्मार्ट सूचक उपयोग के कारण थी। जब रिलीज हुई (तब इस पर कॉल किया गया था) इसमें समस्याएं थीं।
इस लिंक को जांचें MSXML2 :: IXMLDOMDocumentPtr -> रिलीज़ () कहा जाता है जब इंटरनेट एक्सप्लोरर क्रैश
जवाब के लिए 0 № 2
सुनिश्चित करें कि आपके एक्सटेंशन संभाल रहे हैंठीक से आरंभीकरण, अन्यथा verclsid.exe जीता "टी अपने विस्तार लोड हो रहा है। verclsid.exe पहले शेल एक्सटेंशन को लोड करता है और शेल पर "ओके" भेजने से पहले उन पर एक त्वरित जांच करता है जो यह दर्शाता है कि एक्सटेंशन को लोड करना सुरक्षित है।
देख यहाँ verclsid.exe के बारे में कुछ विवरणों के लिए।