COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOpt((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
_Application app;
Documents oDocs;
//_Document oDoc;
Selection oSel;
oDocs.ReleaseDispatch();
oSel.ReleaseDispatch();
app.m_bAutoRelease=true;
if(!app.CreateDispatch("Word.Application",NULL))
{
AfxMessageBox("CreateDispatch failed.", MB_OK | MB_SETFOREGROUND);
return;
}
app.SetVisible(TRUE);
COleVariant varFilePath("d:\\table.doc");
COleVariant varstrNull("");
COleVariant varZero((short)0,VT_BOOL);
COleVariant varTrue((short)1,VT_BOOL);
COleVariant varFalse((short)0,VT_BOOL);
oDocs.AttachDispatch(app.GetDocuments());
oDocs.Open(varFilePath,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt,vOpt);
oSel.AttachDispatch(app.GetSelection());
oSel.MoveStart(COleVariant((short)2),COleVariant((short)1));
oSel.TypeText("12345");
//这是一种方式,不过不太好控制;尤其是那些moveright等的参数设置,至今未明白
//另一种方式,比较容易理解
Tables tabs=oActiveDoc.GetTables();
Table tab=tabs.Item(1);
Cell cel=tab.Cell(70,3);
cel.Select();
oSel.TypeText("fuck!!!!");
tab=tabs.Item(2);
cel=tab.Cell(2,3);
cel.Select();
oSel.TypeText("shit!!!");
_Document oActiveDoc;
oActiveDoc=app.GetActiveDocument();
oActiveDoc.SaveAs(COleVariant("d:\\doc2.doc"),COleVariant((short)0),vFalse,COleVariant(""),vTrue,COleVariant(""),vFalse,vFalse,vFalse,vFalse,vFalse,vFalse,vFalse,vFalse,vFalse,vFalse);
AfxMessageBox("word to be closed.", MB_OK | MB_SETFOREGROUND);
oDocs.ReleaseDispatch();
oSel.ReleaseDispatch();
app.Quit(vOpt,vOpt,vOpt);
app.ReleaseDispatch();