妖哥在不在,帮忙看个office问题啊
代码模仿你的
void CMyDialog::OnBnClickedButton1()
{
CApplication objWordApp; //word对象
COleVariant ovTrue((short)TRUE); //true
COleVariant ovFalse((short)FALSE); //false
COleVariant ovOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
//创建一个IDispatch指针
if (!objWordApp.CreateDispatch("Word.Application"))
{
AfxMessageBox("Couldn't get Word object.");
return;
}
objWordApp.put_Visible(TRUE); //显示应用程序
objWordApp.put_DisplayAlerts(FALSE);
CDocuments docs(objWordApp.get_Documents()); //word文档
CDocument0 docPrint; //word文档
COleVariant FileName(LPCTSTR(_T("f:\\3.doc")));
COleVarianttempFormat(long(wdOpenFormatDocument),VT_I4);
//打开文件
docPrint=docs.Open(FileName, ovFalse,
ovTrue, ovFalse,
ovOptional,ovOptional,
&ovOptional, &ovOptional,
&ovOptional,&tempFormat, //
ovOptional,ovFalse,
ovFalse, &ovOptional,
ovTrue, &ovOptional);
docPrint.Repaginate();
CDocument0 NewDoc=docs.Add(ovOptional,ovOptional,ovOptional,ovOptional);//产生一个新页
docPrint.Activate();
CSelection sel=objWordApp.get_Selection();
COleVariant What((long)1);
COleVariant Which((long)2);
COleVariant Count((long)1);
COleVariant Name((long)2);
sel.GoTo(What, Which, Count, Name); //第2页
COleVariant Unit((long)6);
COleVariant Extend((long)1);
sel.EndKey(Unit,Extend);//结束改页(选中)
sel.Copy();//拷贝到剪贴板中
NewDoc.Activate();
COleVariant vPlacement(long(0),VT_I4);
COleVariant vDtaType(long(9),VT_I4);//wdPasteEnhancedMetafile
sel.PasteSpecial(ovOptional,ovFalse,vPlacement,ovFalse,vDtaType,ovOptional,ovOptional);//从剪贴中粘贴到新页面
CinlineShapesinlineShapes=NewDoc.get_InlineShapes();
CinlineShapeinlineShape=inlineShapes.Item(0);//这句崩溃了,集合所要求的成员不存在
inlineShape.Select();
sel.Copy();//从新页面拷贝到剪贴板