描述:
接口里面的代码是:
STDMETHODIMP CDsoFramerControl::insertReplaceText()
{
IDispatch * lDisp = m_pDocDispatch;
if(!lDisp)
{
get_ActiveDocument(&lDisp);
}
if(!lDisp){
return S_OK;
}
HRESULT hr;
USES_CONVERSION;
try{
switch(m_nOriginalFileType){
case FILE_TYPE_WORD:
{
CComQIPtr<MSWord::_Document> spDoc(lDisp);
if(!spDoc)
return S_OK;
CComQIPtr<MSWord::Tables> tbs=spDoc->GetTables();
CComQIPtr<MSWord::Table> tb=NULL;
CComQIPtr<MSWord::Rows> rs=NULL;
// tbs->Item(1);
tb=tbs->Item(1);//取第一个表格
rs=tb->GetRows();
VARIANT beforeRow;
beforeRow.vt=VT_ERROR;
// beforeRow.lVal=2147614724;
beforeRow.lVal=0x80020004L;
rs->Add(&beforeRow);//增加一行
spDoc->Save();
rs.Release();
tb.Release();
tbs.Release();
spDoc.Release();
}
break;
case FILE_TYPE_EXCEL:
{
CComQIPtr<MSExcel::_Workbook> spDoc(lDisp);
if(!spDoc)
break;
}
break;
case FILE_TYPE_PPT:
{
}
break;
case FILE_TYPE_PDF:
case FILE_TYPE_UNK:
default:
break;
}
}catch(...){
}
return S_OK;
}
外面测试程序:
this.axFramerControl2.insertReplaceText();
错误信息:
System.Runtime.interopServices.SEHException的类型的错误出现在System.Windows.Forms.Dll中。