描述:
我做了个东西把word嵌入mfc中,嵌入没有问题了,但是保存的时候出现的问题是:当打开(嵌入)多个word文档分别进行修改后,却只能保存第一次嵌入的哪个文档???以下是我的代码.对接口一点也不懂!谢谢! 程序是在网上找的代码做的.
//这个是得到IDispatch函数.
LPDISPATCH CEmbed_WordCntrItem::GetIDispatch()
{
ASSERT_VALID(this);
ASSERT(m_lpObject != NULL);
LPUNKNOWN lpUnk = m_lpObject;
Run();
LPOLELINK lpOleLink = NULL;
if(m_lpObject->QueryInterface(IID_IOleLink,(LPVOID FAR*)&lpOleLink)== NOERROR)
{
ASSERT(lpOleLink != NULL);
lpUnk = NULL;
if(lpOleLink->GetBoundSource(&lpUnk) != NOERROR)
{
TRACE0("Warning: Link is not connected!\n");
lpOleLink->Release();
}
ASSERT(lpUnk != NULL);
}
LPDISPATCH lpDispatch = NULL;
if(lpUnk->QueryInterface(IID_IDispatch,(LPVOID FAR*)&lpDispatch) != NOERROR)
{
TRACE0("Waring: does not support IDispatch!\n");
return NULL;
}
ASSERT(lpDispatch != NULL);
return lpDispatch;
}
//这个是嵌入函数
void CEmbed_WordView::EmbedAutomateWord1() //可以直接打开的哪个东西
{
BeginWaitCursor();
CEmbed_WordCntrItem* pItem = NULL;
TRY
{
CEmbed_WordDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pItem = new CEmbed_WordCntrItem(pDoc);
ASSERT_VALID(pItem);
CLSID clsid;
if (FAILED(::CLSIDFromProgID(L"Word.document", &clsid)))
AfxThrowMemoryException();
if (!pItem->CreateFromFile(m_sPath, clsid))
AfxThrowMemoryException();
pItem->DoVerb(OLEIVERB_SHOW, this);
m_pSelection = pItem;
pDoc->UpdateAllViews(NULL);
LPDISPATCH lpDisp;
lpDisp = pItem->GetIDispatch();
}
CATCH(CException, e)
{
if (pItem != NULL)
&

