فشلت طريقة الإقلاع عن طريق iwebbrowser2 مع نتيجة E_FAIL

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

  •  18-09-2019
  •  | 
  •  

سؤال

أنا أستضيف التحكم في متصفح الويب في نافذتي الخاصة. فيما يلي الخطوات ذات الصلة:

CoGetClassObject(CLSID_WebBrowser, 
                 CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER, 
                 NULL, IID_IClassFactory, (void **)&pClassFactory);

pClassFactory->CreateInstance(0, IID_IOleObject, (void **)&pObject);

pClassFactory->Release(); 

pObject->SetClientSite((IOleClientSite *)impl)
OleSetContainedObject((struct IUnknown *)pObject, true)
pObject->DoVerb(OLEIVERB_SHOW, NULL, (IOleClientSite *)impl, 0, hHpsWnd, &rect);

pWB->put_Visible(VARIANT_FALSE);

hr=pWB->Quit();

في البيان الأخير أعلاه قيمة الإرجاع HR E_FAIL. وبعد النتيجة النهائية لهذا الفشل في التعليمات البرمجية تسريب مجموعة من الموارد. ماذا أفعل بشكل غير صحيح؟

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

المحلول

قراءة documenation. هنا ينص كائن WebBrowser (أي CLSID_WEBBrowser) بإرجاع خطأ من طريقة الإقلاع عن التدخين لأنها لا معنى لها في السياق. سيتم إنهاء طريقة الإقلاع عن الإصدار الخارجي من IE والتي تستخدم أيضا نفس الواجهة للتواصل.

الشيء الوحيد الذي يمكنني اقتراحه هو التحقق المزدوج الذي تقوم بإصدار كائن COM المتعلق بالمتصفح.

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