我想在CDHtmlDialog中创建行和单元格。这是我写的代码:
void CHtmlTableTestDlg::OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR szUrl)
{
IHTMLTable* table;
this->GetElement(_T("Table"),(IHTMLElement**)&table);
IDispatch* dispatch;
table->insertRow(1,&dispatch);
}
这是表格的html:
<table id="Table">
<tr>
<th>Column</th>
</tr>
</table>
我调试项目并在执行“table-&gt; insertRow(1,&amp; dispatch)”
时收到以下错误HtmlTableTest.exe中0x3fa53780处的未处理异常:0xC0000005:访问冲突写入位置0x00000001。
我上传了我的测试项目: http://top720.com/Temp/HtmlTableTest.zip
如何根据CDHtmlDialog创建行和单元格?
感谢您提前提供任何帮助。
答案 0 :(得分:0)
您不能在IHTMLElement
和IHTMLTable
之间进行投射。试试这个:
IHTMLElement* element;
if(S_OK == this->GetElement(_T("Table"),(IHTMLElement**)&element)) {
IHTMLTable* table;
if(S_OK == element->QueryInterface(&table)) {
IDispatch* dispatch;
table->insertRow(1,&dispatch);
table->Release();
table = NULL;
}
}
还值得阅读introduction to COM。