void CSRWOnlineView::OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR lpszUrl)
{
// make sure the main frame has the new URL. This call also stops the animation
((CChildFrame*)GetParentFrame())->SetAddress(lpszUrl);
CString strURL(lpszUrl);
CComQIPtr<IWebBrowser2> pWebBrowser2(pDisp);
CHTMLCodeDlg HTMLCodeDlg;
if(pWebBrowser2){
CComQIPtr<IDispatch> pqiDisp;
pWebBrowser2->get_Document(&pqiDisp);
HTMLCodeDlg.m_pdocument=pqiDisp;
}
HTMLCodeDlg.DoModal();
}
BOOL CHTMLCodeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
USES_CONVERSION;
if (m_pdocument){
CComQIPtr<IHTMLElement> pBody;
HRESULT hr = m_pdocument->get_body(&pBody);
if (FAILED(hr))
return FALSE;
CComBSTR bstrHTMLText;
hr = pBody->get_outerHTML(&bstrHTMLText);
if (FAILED(hr))
return FALSE;
// Convert the text from Unicode to ANSI
m_strText=OLE2T(bstrHTMLText);
}
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CHTMLCodeDlg::OnApply()
{
if(!UpdateData())return;
USES_CONVERSION;
if (m_pdocument){
CComQIPtr<IHTMLElement> pBody;
HRESULT hr = m_pdocument->get_body(&pBody);
if (FAILED(hr))
return ;
CComBSTR bstrHTMLText((LPCTSTR)m_strText);
pBody->put_innerHTML(bstrHTMLText);
// Convert the text from Unicode to ANSI
}
OnOK();
}
去找本COM书啃啃先
void CSRWOnlineView::OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR lpszUrl)
{
// make sure the main frame has the new URL. This call also stops the animation
((CChildFrame*)GetParentFrame())->SetAddress(lpszUrl);
CString strURL(lpszUrl);
CComQIPtr<IWebBrowser2> pWebBrowser2(pDisp);
CHTMLCodeDlg HTMLCodeDlg;
if(pWebBrowser2){
CComQIPtr<IDispatch> pqiDisp;
pWebBrowser2->get_Document(&pqiDisp);
HTMLCodeDlg.m_pdocument=pqiDisp;
}
HTMLCodeDlg.DoModal();
}
BOOL CHTMLCodeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
USES_CONVERSION;
if (m_pdocument){
CComQIPtr<IHTMLElement> pBody;
HRESULT hr = m_pdocument->get_body(&pBody);
if (FAILED(hr))
return FALSE;
CComBSTR bstrHTMLText;
hr = pBody->get_outerHTML(&bstrHTMLText);
if (FAILED(hr))
return FALSE;
// Convert the text from Unicode to ANSI
m_strText=OLE2T(bstrHTMLText);
}
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CHTMLCodeDlg::OnApply()
{
if(!UpdateData())return;
USES_CONVERSION;
if (m_pdocument){
CComQIPtr<IHTMLElement> pBody;
HRESULT hr = m_pdocument->get_body(&pBody);
if (FAILED(hr))
return ;
CComBSTR bstrHTMLText((LPCTSTR)m_strText);
pBody->put_innerHTML(bstrHTMLText);
// Convert the text from Unicode to ANSI
}
OnOK();
}
void CSRWOnlineView::OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR lpszUrl)
{
// make sure the main frame has the new URL. This call also stops the animation
((CChildFrame*)GetParentFrame())->SetAddress(lpszUrl);
CString strURL(lpszUrl);
CComQIPtr<IWebBrowser2> pWebBrowser2(pDisp);
CHTMLCodeDlg HTMLCodeDlg;
if(pWebBrowser2){
CComQIPtr<IDispatch> pqiDisp;
pWebBrowser2->get_Document(&pqiDisp);
HTMLCodeDlg.m_pdocument=pqiDisp;
}
HTMLCodeDlg.DoModal();
}
BOOL CHTMLCodeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
USES_CONVERSION;
if (m_pdocument){
CComQIPtr<IHTMLElement> pBody;
HRESULT hr = m_pdocument->get_body(&pBody);
if (FAILED(hr))
return FALSE;
CComBSTR bstrHTMLText;
hr = pBody->get_outerHTML(&bstrHTMLText);
if (FAILED(hr))
return FALSE;
// Convert the text from Unicode to ANSI
m_strText=OLE2T(bstrHTMLText);
}
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CHTMLCodeDlg::OnApply()
{
if(!UpdateData())return;
USES_CONVERSION;
if (m_pdocument){
CComQIPtr<IHTMLElement> pBody;
HRESULT hr = m_pdocument->get_body(&pBody);
if (FAILED(hr))
return ;
CComBSTR bstrHTMLText((LPCTSTR)m_strText);
pBody->put_innerHTML(bstrHTMLText);
// Convert the text from Unicode to ANSI
}
OnOK();
}
two way to get HTML interfaces
1 call CWnd::GetControlUnknown to get IWebbrowser2 Interface
LPUNKNOWN lpUnk = m_wndBrowser.GetControlUnknown();
HRESULT hr = lpUnk->QueryInterface(IID_IWebBrowser2, (void**) &m_pBrowserApp);