现在需要做一个ActiveX控件将Word嵌入到网页,谁做过类似的请提供下思路. 项目是一个 OA系统需要实现留痕\盖章,请大家提一下解决思路.感谢~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在控件中使用office提供的开发接口可以实现此功能 http://docs.rinet.ru/VB/ch16.htmhttp://support.microsoft.com/default.aspx?scid=kb;EN-US;311765 呵呵,ms的例子比较经典,研究了很长时间了http://support.microsoft.com/default.aspx?scid=kb;EN-US;311765 up!我觉得xdljf(hunter)提供的ms例子很好! 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) { CString m_DocPath=DownTemplate(m_FileName); if(!pItem->CreateFromFile(m_DocPath,clsid)) { AfxThrowMemoryException(); } DeleteFile(m_DocPath); } else { //if(!pItem->CreateFromFile(DownTemplate(m_FileName),clsid)) if(!pItem->CreateFromFile(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); if(m_VersionTrack.Find("VersionTrack",0)!=-1) { m_WordDoc.SetTrackRevisions(FALSE); } else { m_WordDoc.SetTrackRevisions(TRUE); } /* if(m_DocStatus.Find("DocStatus",0)!=-1) { pItem->DeactivateUI(); } else { // } */ m_WordZoom.ReleaseDispatch(); m_WordView.ReleaseDispatch(); m_WordPane.ReleaseDispatch(); m_WordWindow.ReleaseDispatch(); m_WordDoc.ReleaseDispatch(); m_WordApp.ReleaseDispatch(); pDoc->UpdateAllViews(NULL); } CATCH(COleException,e) { char strErrorBuf[255]; e->GetErrorMessage(strErrorBuf,255,NULL); AfxMessageBox(strErrorBuf,MB_ICONINFORMATION); if (pItem!=NULL) { ASSERT_VALID(pItem); pItem->Delete(); } } END_CATCH EndWaitCursor();} 请教,如何实现在软件里设置软件的背景图片 一个对可配置字体的对话框界面的讨论 vc++ Tab Control控件的使用 VC++文件简单的读写问题 请教,如何设置clistctrl的行高 怎样改变edit控件的背景颜色 问vc中字符串类的使用问题 类似资源管理器的目录树控件怎么做呀? 有谁知道XP下SOFTICE是如何激活的 vc中怎么访问.ini文件? MFC中全局变量如何访问? 请问怎么在单文档程序中使用串口控件,如不能如何实现串口功能?(100分)
http://support.microsoft.com/default.aspx?scid=kb;EN-US;311765
http://support.microsoft.com/default.aspx?scid=kb;EN-US;311765
我觉得xdljf(hunter)提供的ms例子很好!
{
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)
{
CString m_DocPath=DownTemplate(m_FileName);
if(!pItem->CreateFromFile(m_DocPath,clsid))
{
AfxThrowMemoryException();
}
DeleteFile(m_DocPath);
}
else
{
//if(!pItem->CreateFromFile(DownTemplate(m_FileName),clsid))
if(!pItem->CreateFromFile(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);
if(m_VersionTrack.Find("VersionTrack",0)!=-1)
{
m_WordDoc.SetTrackRevisions(FALSE);
}
else
{
m_WordDoc.SetTrackRevisions(TRUE);
}
/*
if(m_DocStatus.Find("DocStatus",0)!=-1)
{
pItem->DeactivateUI();
}
else
{
//
}
*/
m_WordZoom.ReleaseDispatch();
m_WordView.ReleaseDispatch();
m_WordPane.ReleaseDispatch();
m_WordWindow.ReleaseDispatch();
m_WordDoc.ReleaseDispatch();
m_WordApp.ReleaseDispatch();
pDoc->UpdateAllViews(NULL);
}
CATCH(COleException,e)
{
char strErrorBuf[255];
e->GetErrorMessage(strErrorBuf,255,NULL);
AfxMessageBox(strErrorBuf,MB_ICONINFORMATION);
if (pItem!=NULL)
{
ASSERT_VALID(pItem);
pItem->Delete();
}
}
END_CATCH
EndWaitCursor();
}