سؤال

وعلى DISPID_DOCUMENTCOMPLETE إذا أرفق على معالج عند النقر على عنصر معين في DOM من ترابط، ثم لم يتم الحصول على تشغيل الحدث أثناء النقر عليه، ما قد يكون السبب؟ هذا يسير على ما يرام إذا أرفق معالج الحدث من موضوع الرئيسي، ولكن أريد أن تفعل أشياء بشكل غير متزامن.

وأستخدمه CoMarshalInterThreadInterfaceInStream وCoGetInterfaceAndReleaseStream لتمرير مؤشر IID_IWebBrowser2 بين المواضيع.

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

المحلول

ما هو ترابط الخاص به، وما هو النموذج خيوط من معالج الحدث؟ إذا كان طراز مؤشر الترابط هو STA، ثم يحتاج ترابط إما دوريا ضخ الرسائل، أو إذا كان ينتظر تزامن ثم ينبغي أن استخدام وظائف CoWaitFor...، للتأكد من أنه سيتم معالجة الرسائل COM. أو، يمكنك تجميع marshaller ترابط حر، ولكن تأكد من وجوه الخاص بك هو الخيط آمنة، ولا يدعو إلى أية واجهات COM الأخرى التي قد تعطيك خطأ طراز مؤشر الترابط إذا قمت بذلك.

وعلى الأرجح، عنصر تحكم مستعرض ويب غير متوافق مع MTA، لذلك سوف لن تكون قادرة على وضعه في ذلك. في أي حال، فإن MTA غير متوافق مع موضوع واجهة المستخدم بحيث يحكم إلى ذلك.

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