在浏览器的IE进程(会话)中,我要继承在IE进程(会话)中创建的浏览器

时间:2018-12-28 00:24:14

标签: c++ mfc iwebbrowser2

IWebBrowser2创建一个新的IE浏览器窗口。但是,此浏览器将被预先生成的IE的主进程(会话)继承。

如果浏览器中有多个进程(会话),则希望被所需浏览器的进程(会话)继承。

要对浏览器(会话)进行分组,通常可以双击IE快捷方式。如果您以管理员权限打开它,则可以在IE浏览器窗口中将其作为文件->新部分打开。

我想通过IWebBrowser2创建一个新的浏览器,并继承在现有浏览器的IE进程(会话)中创建的浏览器。

如果您提供了解决此问题的基本示例文件,我们将通过PayPal支持$ 500。

void NewWindows(HWND hHandle, CString strUrl, int x, int y, int cx, int cy)
{
    CoInitialize(NULL);

    HRESULT hr = NULL;
    IWebBrowser2* pWebBrowser = NULL;

    hr = CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER, IID_IWebBrowser2, (LPVOID*)&pWebBrowser);

    if (SUCCEEDED(hr) && (pWebBrowser != NULL))
    {
        pWebBrowser->get_HWND((long*)&m_bNewWindowsHandle);

        if (x >= 0) pWebBrowser->put_Left(x);
        if (y >= 0) pWebBrowser->put_Top(y);
        if (cx >= 0) pWebBrowser->put_Width(cx);
        if (cy >= 0) pWebBrowser->put_Height(cy);

        VARIANT vtUrl;
        VariantInit(&vtUrl);
        vtUrl.vt = VT_BSTR;
        vtUrl.bstrVal = strUrl.AllocSysString();

        pWebBrowser->Navigate2(&vtUrl, NULL, NULL, NULL, NULL);
        pWebBrowser->put_Visible(bShow ? VARIANT_TRUE : VARIANT_FALSE);

        VariantClear(&vtUrl);
    }
    else
    {
        if (pWebBrowser)
        pWebBrowser->Release();
    }

    CoUninitialize();
}

我想继承我想要的浏览器的进程(会话)。

0 个答案:

没有答案