فشلت طريقة الإقلاع عن طريق iwebbrowser2 مع نتيجة E_FAIL
-
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 المتعلق بالمتصفح.
لا تنتمي إلى StackOverflow