多个IWebBrowser2不释放内存

时间:2014-08-28 13:46:06

标签: c++ memory-leaks iwebbrowser2

我是一个很简单的c ++项目,我实现了一个webbrowser控件(这个想法来自https://github.com/Tobbe)。

我使用AddCustomObject注入了一些外部方法。问题是当我需要处理一个包含许多对象(tinymce,jquery ecc)的大页面(1.9KB)进行本地编辑时...每次打开页面时内存都会增加。

我搜索过,用Google搜索,引发了网页,联系了原来的开发者......不。

在close方法中,代码是:

      if (ibrowser != 0) {
        IConnectionPointContainer *cpc = 0;
        ibrowser->QueryInterface(IID_IConnectionPointContainer, (void**)&cpc);

        if (cpc != 0) {
            IConnectionPoint *cp = 0;
            cpc->FindConnectionPoint(DIID_DWebBrowserEvents2, &cp);

            if (cp != 0) {
                cp->Unadvise(cookie);
                cp->Release();
            }

            cpc->Release();
        }

        IOleObject *iole = 0;
        ibrowser->QueryInterface(IID_IOleObject, (void**)&iole);

        /*ibrowser->Stop();
        ibrowser->ExecWB(OLECMDID_CLOSE, OLECMDEXECOPT_DONTPROMPTUSER, 0, 0);
        ibrowser->put_Visible(VARIANT_FALSE);*/
        UINT refCount = ibrowser->Release();
        ibrowser = 0;


        if (iole != 0) {
            iole->Close(OLECLOSE_NOSAVE);
            iole->Release();
        }
    }

在Vs2008中进行调试我看到很多CustomObject :: AddRef和Release可能是由于setTimeout

我不知道如何解决这个问题......需要帮助!

感谢'!小号

安德烈

0 个答案:

没有答案