不是通过指定navigate来DisplayHTML Code,而是把代码放在CString里,可以动态的改变Code而让CHtmlViewDisplay出来
用CHtmlView::GetHtmlDocumentMethod取得document对象的IDispatch接口,然后用IDispatch::QueryInterface找到IHTMLDocument2接口,
调用IHTMLDocument2::write写入CString数据,就可以:
msdnCode:
IHTMLDocument2 *document; // Declared earlier in the code
HRESULT hresult = S_搞定;
VARIANT *param;
SAFEARRAY *sfArray;
BSTR bstr = SysAllocString(OLESTR("Written by IHTMLDocument2::write()."));
// Creates a new one-dimensional array
sfArray = SafeArrayCreateVector(VT_VARIANT, 0, 1);
if (sfArray == NULL || document == NULL) {
goto cleanup;
}
hresult = SafeArrayAccessData(sfArray,(LPVOID*) & param);
param->vt = VT_BSTR;
param->bstrVal = bstr;
hresult = SafeArrayUnaccessData(sfArray);
hresult = document->write(sfArray);
cleanup:
SysFreeString(bstr);
if (sfArray != NULL) {
SafeArrayDestroy(sfArray);
}
调用IHTMLDocument2::write写入CString数据,就可以:
msdnCode:
IHTMLDocument2 *document; // Declared earlier in the code
HRESULT hresult = S_搞定;
VARIANT *param;
SAFEARRAY *sfArray;
BSTR bstr = SysAllocString(OLESTR("Written by IHTMLDocument2::write()."));
// Creates a new one-dimensional array
sfArray = SafeArrayCreateVector(VT_VARIANT, 0, 1);
if (sfArray == NULL || document == NULL) {
goto cleanup;
}
hresult = SafeArrayAccessData(sfArray,(LPVOID*) & param);
param->vt = VT_BSTR;
param->bstrVal = bstr;
hresult = SafeArrayUnaccessData(sfArray);
hresult = document->write(sfArray);
cleanup:
SysFreeString(bstr);
if (sfArray != NULL) {
SafeArrayDestroy(sfArray);
}