عدم الحصول على وسيطات الحدث في معالج أحداث IHTMLlement

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

سؤال

لقد قمت بإضافة رد اتصال إلى مثيل IHTMLlement ولكن عندما يتم استدعاء IDispatch::Invocation للحدث، لا توجد أية وسيطات (على سبيل المثال.pDispParams->cArgs وpDispParams->cNamedArgs تكون دائمًا 0).على سبيل المثال، أقوم بإضافة رد اتصال لحدث onmouseup.مما يمكنني قوله، من المفترض أن يتلقى رد الاتصال لهذا الحدث كائن MouseEvent.هل هذا صحيح؟إذا كان الأمر كذلك، ما الذي يجب علي فعله لضمان حدوث ذلك؟

يتم ذلك باستخدام MSHTML لـ IE 6 sp2 (أو أفضل) على نظام التشغيل Windows XP SP2.

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

المحلول

وسيطات الأحداث لجميع أحداث DOM بما في ذلك onmouseup يتم تخزينها في النافذة الأم event ملكية (IHTMLWindow2::event)

إذا لم تكن النافذة الرئيسية مخزنة مؤقتًا بالفعل، IHTMLElement لديه document الخاصية التي ترجع IHTMLDocument واجهه المستخدم.ومن ذلك يمكنك الاستعلام عن IHTMLDocument2 الذي لديه parentWindow ملكية.ال IHTMLWindow2 الذي تم إرجاعه لديه event العقار الذي تبحث عنه.يجب أن تكون قادرًا على الاستعلام عن واجهة الحدث من هناك.

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