summaryrefslogtreecommitdiff
path: root/embedserv/source
diff options
context:
space:
mode:
Diffstat (limited to 'embedserv/source')
-rwxr-xr-xembedserv/source/embed/ed_ioleobject.cxx25
1 files changed, 21 insertions, 4 deletions
diff --git a/embedserv/source/embed/ed_ioleobject.cxx b/embedserv/source/embed/ed_ioleobject.cxx
index 239f336d82ce..eb811339082d 100755
--- a/embedserv/source/embed/ed_ioleobject.cxx
+++ b/embedserv/source/embed/ed_ioleobject.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: ed_ioleobject.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: mav $ $Date: 2003-03-10 16:10:22 $
+ * last change: $Author: mav $ $Date: 2003-03-11 13:02:14 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -78,9 +78,26 @@ STDMETHODIMP EmbedDocument_Impl::SetHostNames( LPCOLESTR szContainerApp, LPCOLES
return S_OK;
}
-STDMETHODIMP EmbedDocument_Impl::Close( DWORD dwSaveOption)
+STDMETHODIMP EmbedDocument_Impl::Close( DWORD dwSaveOption )
{
- return S_OK;
+ HRESULT hr = S_OK;
+
+ if ( dwSaveOption && m_pClientSite )
+ hr = m_pClientSite->SaveObject();
+
+ if ( m_pDAdviseHolder )
+ m_pDAdviseHolder->SendOnDataChange( (IDataObject*)this, 0, ADVF_DATAONSTOP );
+
+ if ( m_pClientSite )
+ m_pClientSite->OnShowWindow( FALSE );
+
+ for ( AdviseSinkHashMapIterator iAdvise = m_aAdviseHashMap.begin(); iAdvise != m_aAdviseHashMap.end(); iAdvise++ )
+ {
+ if ( iAdvise->second )
+ iAdvise->second->OnClose();
+ }
+
+ return hr;
}
STDMETHODIMP EmbedDocument_Impl::SetMoniker( DWORD dwWhichMoniker, IMoniker *pmk )