مشكلة تمديد شل تصحيح الأخطاء في Vista (Ishellfolder)

StackOverflow https://stackoverflow.com/questions/623799

  •  05-07-2019
  •  | 
  •  

سؤال

لقد قمت بإنشاء امتداد Windows Shell باستخدام ATL (Visual Studio 2008). يحتوي على الوحدات التالية وكل وحدة عبارة عن كائن ATL بسيط منفصل مع ملف .rgs الخاص به للتسجيل:-

  1. Ishellfolder/Ishellview -> للحصول على محرك أقراص افتراضي في Windows Explorer
  2. icontextmenu/ishellextinit -> لملفات القائمة المنبثقة والمجلدات
  3. Ishelliconoverlayidentifier - لعرض أيقونات تراكب على الملفات والمجلدات
  4. ISHELLPROPSHEETEXT/ISHELLEXTINIT -> للحصول على صفحة خاصية مخصصة في خصائص الملف والمجلد

ما سبق يعمل بشكل جيد في WinXP وأنا قادر على تصحيح تمديد شل هذا في WinXP. ولكن بمجرد التبديل إلى Vista ، أحصل على مكالمات الطريقة فقط لـ (2) و (4). يتم إنشاء محرك الأقراص في Windows Explorer ولكن لا يتم استدعاء الطرق الأساسية عند النقر عليه. على الرغم من أنني عند النقر بزر الماوس الأيمن ، فأنا أتصل بـ (2) وعندما أقوم بتحديد "خصائص" لملف أو مجلد ، أحصل على الكود لـ (4).

هل هناك بعض الواجهة التي أفتقدها لـ (1) و (3) على Vista. لم أتمكن من العثور على وثائق كاملة ومفصلة حول كتابة ملحقات Shell لـ Vista على MSDN. لقد مررت بالفعل بمقالات CodeProject على امتدادات shell.

هل كانت مفيدة؟

المحلول

كانت المشكلة بسبب استخدام مؤشر XML الذكي. كان لديه مشاكل عندما تم استدعاء الإصدار ().

تحقق من هذا الرابطتعطل Internet Explorer عندما يتم استدعاء MSXML2 :: IXMLDOMDOCINAPTPTR -> الإصدار ()

نصائح أخرى

تأكد من أن ملحقاتك تتعامل مع التهيئة بشكل صحيح ، وإلا فلن يسمح verclsid.exe بامتدادك. verclsid.exe يقوم أولاً بتحميل ملحقات shell ويقوم بفحص سريع عليها قبل أن يرسل "موافق" إلى القشرة مما يشير إلى أنه من الآمن تحميل الامتداد.

نرى هنا للحصول على بعض التفاصيل حول verclsid.exe.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top