كيفية الحصول على مرجع COM إلى مثيل Internet Explorer مضمن في تطبيق آخر

يعرض المكون الإضافي Dynamics لـ Outlook المحتوى عبر نافذة مضمنة في Internet Explorer. أحاول العثور على طريقة للحصول على كائن COM SHDocVw.InternetExplorer لتلك النافذة المضمنة. يعمل التطبيق الخاص بنا قائمة بذاتها (وهي ليست وظيفة إضافية في Outlook أو IE) ولا نتحكم أبدًا في إنشاء نافذة IE المدمجة.

عندما أستخدم:

Dim SWs As SHDocVw.ShellWindows
Set SWs = New SHDocVw.ShellWindows

لا تحتوي مجموعة SWs على مرجع إلى المتصفح المضمن في Outlook (على الرغم من أنني أحصل على مراجع إلى نوافذ المتصفح العادية).

باستخدام Spy ++ ، أرى التسلسل الهرمي للنافذة التالية لإطار Outlook المضمن:

Window "xxxxxx" WindowsForms10.Window.8.app.0.5c39d4_r64_ad2
  - "" Shell Embedding
    - "" Shell DocObject View
      - "" Internet Explorer_Server

آخر نسختين في التسلسل الهرمي (Shell DocObject View و Internet Explorer_Server) هي نفسها تمامًا بالنسبة إلى العارض المضمن في مثيل Internet Explorer قيد التشغيل.

يبدو أنه يجب أن يكون هناك طريقة للحصول على مرجع COM إلى هذه المتصفحات المضمنة - أي مساعدة أو أفكار سيكون موضع تقدير كبير.

0

1 إجابة

راجع KB 249232 . يمكنك الحصول على مؤشر IHTMLDocument2 من نافذة Internet Explorer_Server باستخدام عناصر إمكانية الوصول. إنها ليست جميلة ، ولن تعمل إذا كنت تعمل بمستوى تكامل مختلف عن العملية المستهدفة.

استنادًا إلى ما تفعله ، قد تفسد التطبيق المستهدف ، لذا كن حذرًا. ويجب أن تضع في اعتبارها التنظيم.

0
وأضاف
حظا طيبا وفقك الله. لا شيء سهلاً كما يبدو مع هذه الأشياء. :)
وأضاف المؤلف i_am_jorf, مصدر
لقد صنعت يومًا لي - سيعمل هذا بطريقة محطمة. شكر! سوف أعطي هذا دوامة يوم الاثنين وبعد الظهر أخبار النجاح.
وأضاف المؤلف Kevin Day, مصدر
عملت هذه التقنية بالضبط حسب الحاجة - شكرا مرة أخرى.
وأضاف المؤلف Kevin Day, مصدر