什么是IWebBrowser :: Navigate2等效于window.open(...)?

时间:2010-12-23 16:51:24

标签: c# c++ com

我需要等同于

window.open('url to open','window name','toolbar = no');

in c#,或C ++ - no metter

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

只需使用IHTMLWindow2::open

BOOL OpenWindow(IWebBrowser2* pWebBrowser, CString strUrl, CString strName, CString strFeatures)
{
    if(pWebBrowser != NULL)
    {
        CComDispatchDriver pDocDisp;
        if(SUCCEEDED(pWebBrowser->get_Document(&pDocDisp)))
        {   
            CComQIPtr<IHTMLDocument2> pDoc = pDocDisp;
            if(pDoc != NULL)
            {
                CComPtr<IHTMLWindow2> pWindow;
                if(SUCCEEDED(pDoc->get_parentWindow(&pWindow)))
                {
                    CComPtr<IHTMLWindow2> pWindowResult;
                    return SUCCEEDED(pWindow->open(CComBSTR(strUrl), CComBSTR(strName), CComBSTR(strFeatures), VARIANT_FALSE, &pWindowResult));
                }
            }
        }           
    }
    return FALSE;
}

答案 1 :(得分:1)

如果您有指向IWebBrowser2接口的指针,则可以调用IWebBrowser2::get_document并检索IDispatch接口。然后,您可以查询IHTMLDocument2。一旦你有这个电话IHtmlDocument2::get_parentWindow。在返回的IHTMLWindow2界面中,您可以调用IHTMLWindow2::execScript,然后您可以将javascript直接传递给该函数并执行该操作。