描述:
请问如何在VC中操作WORD,当然能够嵌入WORD中更好,请给出相关的参考资料,多多益善
解决方案1:
http://202.113.13.168/netclass/computer/textinfo.php?myid=384
http://www.pconline.com.cn/pcedu/empolder/gj/vc/10309/216622.html
http://www.topstudy.com.cn/topbbs/dispbbs.asp?boardID=184&RootID=23049&ID=23049
http://www.cesdn.net/document/show.asp?id=988
void CWebOfficeView::EmbedAutomateDoc(void)
{
BeginWaitCursor();
CDC* pDC;
pDC=GetDC();
COleVariant vTrue((short)TRUE),vFalse((short)FALSE),vOpt((long)DISP_E_PARAMNOTFOUND,VT_ERROR);
CWebOfficeOleClientItem* pItem=NULL;
TRY
{
CWebOfficeDoc* pDoc=GetDocument();
ASSERT_VALID(pDoc);
pItem=new CWebOfficeOleClientItem(pDoc);
ASSERT_VALID(pItem);
CLSID clsid;
if(FAILED(::CLSIDFromProgID(L"Word.Document.8",&clsid)))
AfxThrowMemoryException();
if(m_FileName.GetLength()==8)
{
if(!pItem->CreateNewItem(clsid))
AfxThrowMemoryException();
}
else
{
if(m_FileName.Find("Http://",0)!=-1)
{
//AfxMessageBox(DownTemplate(m_FileName),MB_ICONINFORMATION);
if(!pItem->CreateFromFile(DownTemplate(m_FileName),clsid))
{
AfxThrowMemoryException();
}
}
else
{
if(!pItem->CreateFromFile(DownTemplate(m_FileName),clsid))
{
AfxThrowMemoryException();
}
}
}
ASSERT_VALID(pItem);
pItem->DoVerb(OLEIVERB_SHOW,this);
m_pSelection=pItem;
lpDisp=pItem->GetIDispatch();
_Application_Word m_WordApp;
_Document_Word m_WordDoc;
m_WordDoc.AttachDispatch(lpDisp,TRUE);
//m_WordDoc.Activate();
m_WordApp=m_WordDoc.GetApplication();
Window_Word m_WordWindow;
m_WordWindow=m_WordDoc.GetActiveWindow();
m_WordWindow.SetDisplayHorizontalScrollBar(TRUE);
m_WordWindow.SetDisplayVerticalScrollBar(TRUE);
m_WordWindow.SetDisplayRulers(TRUE);
Pane_Word m_WordPane;
m_WordPane=m_WordWindow.GetActivePane();
View_Word m_WordView;
m_WordView=m_WordPane.GetView();
Zoom_Word m_WordZoom;
m_WordZoom=m_WordView.GetZoom();
m_WordZoom.SetPercentage((long)75);
m_WordDoc.SetTrackRevisions(TRUE);
m_WordZoom.ReleaseDispatch();
m_WordView.ReleaseDispatch();
m_WordPane.ReleaseDispatch();
m_WordWindow.ReleaseDispatch();
m_WordDoc.ReleaseDispatch();
m_WordApp.ReleaseDispatch();
pDoc->UpdateAllViews(NULL);
}
CATCH(CException,e)
{
if (pItem!=NULL)
{
ASSERT_VALID(pItem);
pItem->Delete();
}
}
END_CATCH
EndWaitCursor();
}