IWebBrowser2.Document 没有返回 IHTMLDocument2
IWebBrowser2.Document not returning IHTMLDocument2
我正在尝试将 IWebBrowser2 COM 对象转换为 IHTMLDocument2,以便我可以操作 IE 网络浏览器的内容。
这是我的代码的开头:
int main()
{
if (SUCCEEDED(OleInitialize(NULL)))
{
CComQIPtr<IWebBrowser2> pBrowser2;
CComQIPtr<IDispatch> pDispatch;
CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER,
IID_IWebBrowser2, (void**)&pBrowser2);
if (pBrowser2)
{
//Here, pDispatch remains null and hr == E_FAIL
HRESULT hr = pBrowser2->get_Document(&pDispatch);
}
OleUninitialize();
}
}
在调用 IWebBrowser2::get_Document() 时,pDispatch 变量保持为空,返回的 HRESULT 为 E_FAIL。
我需要做什么才能从 IWebBrowser2 获取 IHTMLDocument2 对象?
先调用Navigate
打开一个网页。否则没有文件可取。
if (pBrowser2)
{
VARIANT vEmpty;
VariantInit(&vEmpty);
BSTR str = SysAllocString(L"http://google.com");
HRESULT hr = pBrowser2->Navigate(str , &vEmpty, &vEmpty, &vEmpty, &vEmpty);
if (SUCCEEDED(hr))
{
//optional: show the explorer window
//pBrowser2->put_Visible(VARIANT_TRUE);
hr = pBrowser2->get_Document(&pDispatch);
if (hr == S_OK)
OutputDebugStringW(L"okay\n");
}
SysFreeString(str);
pBrowser2->Quit();
}
我正在尝试将 IWebBrowser2 COM 对象转换为 IHTMLDocument2,以便我可以操作 IE 网络浏览器的内容。
这是我的代码的开头:
int main()
{
if (SUCCEEDED(OleInitialize(NULL)))
{
CComQIPtr<IWebBrowser2> pBrowser2;
CComQIPtr<IDispatch> pDispatch;
CoCreateInstance(CLSID_InternetExplorer, NULL, CLSCTX_LOCAL_SERVER,
IID_IWebBrowser2, (void**)&pBrowser2);
if (pBrowser2)
{
//Here, pDispatch remains null and hr == E_FAIL
HRESULT hr = pBrowser2->get_Document(&pDispatch);
}
OleUninitialize();
}
}
在调用 IWebBrowser2::get_Document() 时,pDispatch 变量保持为空,返回的 HRESULT 为 E_FAIL。
我需要做什么才能从 IWebBrowser2 获取 IHTMLDocument2 对象?
先调用Navigate
打开一个网页。否则没有文件可取。
if (pBrowser2)
{
VARIANT vEmpty;
VariantInit(&vEmpty);
BSTR str = SysAllocString(L"http://google.com");
HRESULT hr = pBrowser2->Navigate(str , &vEmpty, &vEmpty, &vEmpty, &vEmpty);
if (SUCCEEDED(hr))
{
//optional: show the explorer window
//pBrowser2->put_Visible(VARIANT_TRUE);
hr = pBrowser2->get_Document(&pDispatch);
if (hr == S_OK)
OutputDebugStringW(L"okay\n");
}
SysFreeString(str);
pBrowser2->Quit();
}