Internet Explorer 用のカスタム ツールバー (ツールバー ボタンを 1 つ追加) を開発しています。COMでコードを書きました。ユーザーがツールバーのボタンをクリックすると、新しいタブで URL を開く必要があります。以下のようにナビゲート関数を作成しました。この関数は、新しいタブで URL を開くことができず、常に E_FAIL を返します。
HRESUTL Navigate(CString csUrl) {
ATLASSERT(0 <= Url.Length());
ATLASSERT(m_pWebBrowser);
if (m_pWebBrowser == NULL) {
return E_FAIL;
}
m_pWebBrowser->Stop();
VARIANT vUrl;
vUrl.vt = VT_BSTR;
vUrl.bstrVal = csUrl.AllocSysString();
VARIANT vFlag;
vFlag.vt = VT_I4;
vFlag.intVal = navOpenInNewTab;
VARIANT vEmpty;
VariantInit(&vEmpty);
HRESULT hr = m_pWebBrowser->Navigate2(&vUrl, &vFlag, &vEmpty, &vEmpty, &vEmpty);
if (hr == E_OUTOFMEMORY)
MessageBox(NULL, L"Out of Memory.", L"Navigate", MB_OK);
else if (hr == E_INVALIDARG || hr == E_FAIL)
MessageBox(NULL, L"Failed to navigate.", L"Navigate", MB_OK);
::SysFreeString(vUrl.bstrVal);
ATLASSERT(SUCCEEDED(hr));
return hr; }
新しいタブで URL を開くために「Navigate2」メソッドに渡す必要があるパラメーター。
これについて私に提案してください。
よろしく、サントッシュ