summaryrefslogtreecommitdiff
path: root/embedserv/source
diff options
context:
space:
mode:
Diffstat (limited to 'embedserv/source')
-rw-r--r--embedserv/source/embed/docholder.cxx1533
-rw-r--r--embedserv/source/embed/ed_idataobj.cxx327
-rw-r--r--embedserv/source/embed/ed_iinplace.cxx103
-rw-r--r--embedserv/source/embed/ed_ioleobject.cxx506
-rw-r--r--embedserv/source/embed/ed_ipersiststr.cxx1020
-rw-r--r--embedserv/source/embed/esdll.cxx94
-rw-r--r--embedserv/source/embed/guid.cxx216
-rw-r--r--embedserv/source/embed/iipaobj.cxx133
-rw-r--r--embedserv/source/embed/intercept.cxx592
-rwxr-xr-xembedserv/source/embed/makefile.mk79
-rw-r--r--embedserv/source/embed/register.cxx102
-rw-r--r--embedserv/source/embed/servprov.cxx308
-rw-r--r--embedserv/source/embed/stdafx.cpp16
-rw-r--r--embedserv/source/embed/syswinwrapper.cxx480
-rw-r--r--embedserv/source/embed/tracker.cxx841
-rw-r--r--embedserv/source/embed/xwin.cxx349
-rw-r--r--embedserv/source/inc/common.h59
-rw-r--r--embedserv/source/inc/docholder.hxx292
-rw-r--r--embedserv/source/inc/embeddoc.hxx211
-rw-r--r--embedserv/source/inc/embeddocaccess.hxx86
-rw-r--r--embedserv/source/inc/embservconst.h83
-rw-r--r--embedserv/source/inc/iipaobj.hxx76
-rw-r--r--embedserv/source/inc/intercept.hxx198
-rw-r--r--embedserv/source/inc/servprov.hxx101
-rw-r--r--embedserv/source/inc/stdafx.h44
-rw-r--r--embedserv/source/inc/syswinwrapper.hxx180
-rw-r--r--embedserv/source/inc/xwin.hxx255
-rw-r--r--embedserv/source/inprocserv/advisesink.cxx184
-rw-r--r--embedserv/source/inprocserv/advisesink.hxx97
-rw-r--r--embedserv/source/inprocserv/dllentry.cxx351
-rw-r--r--embedserv/source/inprocserv/exports.dxp5
-rw-r--r--embedserv/source/inprocserv/inprocembobj.cxx1816
-rw-r--r--embedserv/source/inprocserv/inprocembobj.h244
-rw-r--r--embedserv/source/inprocserv/makefile.mk80
-rw-r--r--embedserv/source/inprocserv/smartpointer.hxx185
35 files changed, 0 insertions, 11246 deletions
diff --git a/embedserv/source/embed/docholder.cxx b/embedserv/source/embed/docholder.cxx
deleted file mode 100644
index f18f43c7e..000000000
--- a/embedserv/source/embed/docholder.cxx
+++ /dev/null
@@ -1,1533 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#if defined(_MSC_VER) && (_MSC_VER > 1310)
-#pragma warning(disable : 4917 4555)
-#endif
-
-
-#include "xwin.hxx"
-#include "docholder.hxx"
-#include "embeddoc.hxx"
-#include "intercept.hxx"
-#include "syswinwrapper.hxx"
-#include "iipaobj.hxx"
-
-#include "common.h"
-#include <Windows.h>
-#include <com/sun/star/lang/SystemDependent.hpp>
-#include <com/sun/star/awt/XSystemChildFactory.hpp>
-#include <com/sun/star/awt/XSystemDependentWindowPeer.hpp>
-#include <com/sun/star/awt/XSystemDependentMenuPeer.hpp>
-#include <com/sun/star/ui/XUIElement.hpp>
-#include <com/sun/star/awt/WindowAttribute.hpp>
-#include <com/sun/star/awt/XWindow.hpp>
-#include <com/sun/star/frame/XComponentLoader.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/util/XCloseBroadcaster.hpp>
-#include <com/sun/star/util/XCloseAble.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-#include <com/sun/star/beans/XPropertySet.hpp>
-#include <com/sun/star/frame/XModel.hpp>
-#include <com/sun/star/frame/XDesktop.hpp>
-#include <com/sun/star/frame/XFramesSupplier.hpp>
-#include <com/sun/star/frame/FrameSearchFlag.hpp>
-#include <com/sun/star/frame/XStatusListener.hpp>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/frame/XDispatchProviderInterception.hpp>
-#include <com/sun/star/awt/XTopWindow.hpp>
-#include <com/sun/star/awt/PosSize.hpp>
-#include <com/sun/star/awt/XView.hpp>
-#include <com/sun/star/bridge/XBridgeSupplier2.hpp>
-#include <com/sun/star/bridge/ModelDependent.hpp>
-#include <com/sun/star/embed/EmbedMapUnits.hpp>
-#include <com/sun/star/embed/XVisualObject.hpp>
-#include <com/sun/star/document/MacroExecMode.hpp>
-#include <com/sun/star/task/XInteractionHandler.hpp>
-#include <osl/diagnose.h>
-#include <rtl/process.h>
-
-using namespace ::com::sun::star;
-
-extern ::rtl::OUString getFilterNameFromGUID_Impl( GUID* );
-
-// add mutex locking ???
-
-DocumentHolder::DocumentHolder(
- const uno::Reference<lang::XMultiServiceFactory >& xFactory,
- const ::rtl::Reference< EmbeddedDocumentInstanceAccess_Impl >& xOleAccess )
- :
- m_bAllowInPlace(true),
- m_pIOleIPSite(0),
- m_pIOleIPFrame(0),
- m_pIOleIPUIWindow(0),
- m_pCHatchWin(0),
- m_xOleAccess( xOleAccess ),
- m_pInterceptor(0),
- m_xFactory( xFactory ),
- m_bOnDeactivate(false),
- m_hWndxWinParent(NULL),
- m_hWndxWinCont(NULL),
- m_nMenuHandle(NULL),
- m_nMenuShared(NULL),
- m_nOLEMenu(NULL),
- m_nMacroExecMode( document::MacroExecMode::USE_CONFIG ),
- m_bLink( sal_False )
-{
- static const ::rtl::OUString aServiceName (
- RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.frame.Desktop" ) );
- uno::Reference< frame::XDesktop > xDesktop(
- m_xFactory->createInstance( aServiceName ),
- uno::UNO_QUERY );
- if ( xDesktop.is() )
- xDesktop->addTerminateListener( (frame::XTerminateListener*)this );
-}
-
-
-DocumentHolder::~DocumentHolder()
-{
- delete m_pCHatchWin;
-
- ClearInterceptorInternally();
-}
-
-
-void DocumentHolder::LoadDocInFrame( sal_Bool bPluginMode )
-{
- uno::Reference<frame::XComponentLoader> xComponentLoader(
- m_xFrame,uno::UNO_QUERY);
- if( xComponentLoader.is() && m_xDocument.is() )
- {
- uno::Reference< task::XInteractionHandler > xHandler(
- m_xFactory->createInstance(
- ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.task.InteractionHandler" ) ) ),
- uno::UNO_QUERY );
-
- uno::Any aAny;
- sal_Int32 nLen = 3;
- uno::Sequence<beans::PropertyValue> aSeq( nLen );
-
- aAny <<= uno::Reference<uno::XInterface>(
- m_xDocument, uno::UNO_QUERY);
- aSeq[0] = beans::PropertyValue(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("Model")),
- -1,
- aAny,
- beans::PropertyState_DIRECT_VALUE);
-
- aAny <<= sal_False;
- aSeq[1] = beans::PropertyValue(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("ReadOnly")),
- -1,
- aAny,
- beans::PropertyState_DIRECT_VALUE);
-
- aAny <<= (sal_Bool) sal_True;
- aSeq[2] = beans::PropertyValue(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("NoAutoSave")),
- -1,
- aAny,
- beans::PropertyState_DIRECT_VALUE);
-
- if ( bPluginMode )
- {
- aSeq.realloc( ++nLen );
- aAny <<= (sal_Int16) 3;
- aSeq[nLen-1] = beans::PropertyValue(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("PluginMode")),
- -1,
- aAny,
- beans::PropertyState_DIRECT_VALUE);
- }
-
- if ( xHandler.is() )
- {
- aSeq.realloc( nLen+=2 );
- aAny <<= xHandler;
- aSeq[nLen-2] = beans::PropertyValue(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("InteractionHandler")),
- -1,
- aAny,
- beans::PropertyState_DIRECT_VALUE);
-
- aAny <<= m_nMacroExecMode;
- aSeq[nLen-1] = beans::PropertyValue(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("MacroExecutionMode")),
- -1,
- aAny,
- beans::PropertyState_DIRECT_VALUE);
- }
-
- xComponentLoader->loadComponentFromURL(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("private:object")),
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("_self")),
- 0,
- aSeq);
-
- uno::Sequence< beans::PropertyValue > aResArgs = m_xDocument->getArgs();
- for ( int nInd = 0; nInd < aResArgs.getLength(); nInd++ )
- if ( aResArgs[nInd].Name.equals( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "MacroExecutionMode" ) ) ) )
- {
- aResArgs[nInd].Value >>= m_nMacroExecMode;
- break;
- }
- }
-}
-
-void DocumentHolder::OnPosRectChanged(LPRECT lpRect) const
-{
- lpRect->left += m_aBorder.left;
- lpRect->right -= m_aBorder.right;
- lpRect->top += m_aBorder.top;
- lpRect->bottom -= m_aBorder.bottom;
- if(m_pIOleIPSite)
- m_pIOleIPSite->OnPosRectChange(lpRect);
-}
-
-
-
-void DocumentHolder::DisableInplaceActivation(BOOL b)
-{
- m_bAllowInPlace = ! b;
-}
-
-BOOL DocumentHolder::isActive() const
-{
- return m_pIOleIPSite != 0;
-}
-
-HRESULT DocumentHolder::InPlaceActivate(
- LPOLECLIENTSITE pActiveSite,
- BOOL fIncludeUI)
-{
- m_bOnDeactivate = false;
-
- if(!m_bAllowInPlace)
- return ERROR;
-
- HRESULT hr;
- HWND hWndSite;
- RECT rcPos;
- RECT rcClip;
- OLEINPLACEFRAMEINFO frameInfo;
-
- if (NULL==pActiveSite)
- return ResultFromScode(E_INVALIDARG);
-
- if (NULL!=m_pIOleIPSite)
- {
- if (fIncludeUI)
- UIActivate();
-
- return NOERROR;
- }
-
- if ( !m_xDocument.is() )
- return ERROR;
-
- //1. Initialization, obtaining interfaces, OnInPlaceActivate.
- hr=pActiveSite->QueryInterface(
- IID_IOleInPlaceSite,
- (void**) &m_pIOleIPSite);
-
- if (FAILED(hr))
- return hr;
-
- hr=m_pIOleIPSite->CanInPlaceActivate();
-
- if (NOERROR!=hr)
- {
- m_pIOleIPSite->Release(), m_pIOleIPSite=NULL;
- return ResultFromScode(E_FAIL);
- }
-
- m_pIOleIPSite->OnInPlaceActivate();
-
- //2. Get the site window
- //3. and determine container frame and
- // document window for tools and menus, as well
- // as frameInfo for accelerators
- m_pIOleIPSite->GetWindow(&hWndSite);
-
- frameInfo.cb=sizeof(OLEINPLACEFRAMEINFO);
- m_pIOleIPSite->GetWindowContext(
- &m_pIOleIPFrame,&m_pIOleIPUIWindow,&rcPos,&rcClip,&frameInfo);
-
- // initialize the office as, with hwnd as parentwindow
- uno::Any aAny;
- uno::Sequence<sal_Int8> aProcessIdent(16);
- rtl_getGlobalProcessId((sal_uInt8*)aProcessIdent.getArray());
-
- try
- {
- if(!m_xEditWindow.is())
- { // determine XWindow and window handle of parent
- HWND hWndxWinParent(0);
- uno::Reference<awt::XWindow> xWin;
-
- static const ::rtl::OUString aToolkitServiceName(
- RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.awt.Toolkit" ) );
- uno::Reference<awt::XSystemChildFactory> xToolkit(
- m_xFactory->createInstance(aToolkitServiceName ),uno::UNO_QUERY);
-
- if(xToolkit.is()) {
- // create system window wrapper for hwnd
- if( !m_pCHatchWin )
- m_pCHatchWin = new winwrap::CHatchWin(
- m_hInstance,this);
-
- if(m_pCHatchWin->Init(hWndSite,/*ID_HATCHWINDOW*/2000, NULL)) {
- m_pCHatchWin->RectsSet(&rcPos,&rcClip); //set visible area
- hWndxWinParent = m_pCHatchWin->Window();
- ShowWindow(hWndxWinParent,SW_SHOW); //Make visible.
- }
- else {
- // no success initializing hatch window
- delete m_pCHatchWin, m_pCHatchWin = 0;
- hWndxWinParent = hWndSite;
- }
-
- aAny <<= sal_Int32(hWndxWinParent);
- xWin = uno::Reference<awt::XWindow>(
- xToolkit->createSystemChild(
- aAny,
- aProcessIdent,
- lang::SystemDependent::SYSTEM_WIN32),
- uno::UNO_QUERY);
- }
-
- if(xWin.is()) {
- xWin->setPosSize(
- m_pCHatchWin ? HATCHWIN_BORDERWIDTHDEFAULT : 0,
- m_pCHatchWin ? HATCHWIN_BORDERWIDTHDEFAULT : 0,
- rcPos.right-rcPos.left,
- rcPos.bottom - rcPos.top,
- awt::PosSize::POSSIZE);
- xWin->setVisible(sal_True);
-
- m_xEditWindow = xWin;
- m_hWndxWinParent = hWndxWinParent;
- }
- else
- return ERROR;
- }
- else {
- if(m_hWndxWinParent) {
- SetParent(m_hWndxWinParent,hWndSite);
- ShowWindow(m_hWndxWinParent,SW_SHOW); //Make visible.
- }
-
- if ( !m_xFrame.is() )
- // initially set size to "empty", this guarantees that the final resize
- // is always executed (will be done by "SetObjectRects" after getting internal border)
- m_xEditWindow->setPosSize(
- 0,
- 0,
- 0,
- 0,
- awt::PosSize::POSSIZE);
- m_xEditWindow->setVisible(sal_True);
- }
-
- if(m_xContainerWindow.is()) {
- if(m_hWndxWinCont) {
- if(m_pIOleIPFrame) {
- HWND hWndCont;
- m_pIOleIPFrame->GetWindow(&hWndCont);
- SetParent(m_hWndxWinCont,hWndCont);
- ShowWindow(m_hWndxWinCont,SW_SHOW);
- }
- }
- m_xContainerWindow->setVisible(true);
- }
-
- if(m_xFrame.is())
- m_xFrame->activate();
- else {
- // create frame and initialize it with with the created window
- static const ::rtl::OUString aFrameServiceName(
- RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.frame.Frame" ) );
- m_xFrame = uno::Reference<frame::XFrame>(
- m_xFactory->createInstance(aFrameServiceName),
- uno::UNO_QUERY);
-
- if(!m_xFrame.is())
- return ERROR;
-
- m_xFrame->initialize(m_xEditWindow);
-
- uno::Reference<frame::XDispatchProviderInterception>
- xDPI(m_xFrame,uno::UNO_QUERY);
- if(xDPI.is())
- xDPI->registerDispatchProviderInterceptor( CreateNewInterceptor() );
-
- uno::Reference<beans::XPropertySet> xPS(m_xFrame,uno::UNO_QUERY);
- if( xPS.is() )
- {
- aAny = xPS->getPropertyValue(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("LayoutManager")));
- aAny >>= m_xLayoutManager;
- }
-
- if(m_xLayoutManager.is())
- m_xLayoutManager->setDockingAreaAcceptor(this);
-
- // load the model into the frame
- LoadDocInFrame( sal_True );
-
- static const ::rtl::OUString aDesktopServiceName (
- RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.frame.Desktop" ) );
- uno::Reference< frame::XFramesSupplier > xDesktop(
- m_xFactory->createInstance( aDesktopServiceName ),
- uno::UNO_QUERY );
- if(xDesktop.is())
- xDesktop->getFrames()->append(m_xFrame);
-
- // determine the menuhandle to get menutitems.
- if(m_xLayoutManager.is()) {
- uno::Reference< ::com::sun::star::ui::XUIElement > xUIEl(
- m_xLayoutManager->getElement(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
- "private:resource/menubar/menubar"))));
- OSL_ENSURE(xUIEl.is(),"no menubar");
- uno::Reference<awt::XSystemDependentMenuPeer> xSDMP(
- xUIEl->getRealInterface(),
- uno::UNO_QUERY);
- aAny = xSDMP->getMenuHandle(
- aProcessIdent,lang::SystemDependent::SYSTEM_WIN32);
- sal_Int32 tmp;
- if( aAny >>= tmp )
- m_nMenuHandle = HMENU(tmp);
- m_xLayoutManager->hideElement(
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(
- "private:resource/menubar/menubar" )));
- }
- }
-
- // TODO/cd: Workaround for status indicator bug. It always makes the
- // document window visible, when someone tries to use the status
- // indicator. As we save our document when we get the deactivation
- // from OLE this conflict to hide floating windows.
- if(m_xLayoutManager.is())
- m_xLayoutManager->setVisible(true);
-
- // get document border and resize rects according to border
- GetDocumentBorder( &m_aBorder );
- SetObjectRects( &rcPos, &rcClip );
-
- if ( m_xOleAccess.is() )
- {
- LockedEmbedDocument_Impl aDocLock = m_xOleAccess->GetEmbedDocument();
- if ( aDocLock.GetEmbedDocument() )
- aDocLock.GetEmbedDocument()->ShowObject();
- }
-
- // setTitle(m_aDocumentNamePart);
- if (fIncludeUI)
- hr=UIActivate();
-
- m_pIOleIPSite->DiscardUndoState();
- }
- catch( uno::Exception& )
- {
- hr = ERROR;
- }
-
- return hr;
-}
-
-
-void DocumentHolder::InPlaceDeactivate(void)
-{
- m_bOnDeactivate = true;
-
- UIDeactivate();
- if(m_xFrame.is()) m_xFrame->deactivate();
-
- if(m_xEditWindow.is()) {
- m_xEditWindow->setVisible(false);
- ShowWindow(m_hWndxWinParent,SW_HIDE);
- SetParent(m_hWndxWinParent,0);
- }
-
- if(m_xContainerWindow.is()) {
- m_xContainerWindow->setVisible(false);
- ShowWindow(m_hWndxWinCont,SW_HIDE);
- SetParent(m_hWndxWinCont,0);
- }
-
- // TODO/cd: Workaround for status indicator bug. It always makes the
- // document window visible, when someone tries to use the status
- // indicator. As we save our document when we get the deactivation
- // from OLE this conflict to hide floating windows.
- if (m_xLayoutManager.is())
- m_xLayoutManager->setVisible(false);
-
- if (NULL!=m_pIOleIPSite)
- m_pIOleIPSite->OnInPlaceDeactivate();
-
- if(m_pIOleIPFrame) m_pIOleIPFrame->Release(); m_pIOleIPFrame = 0;
- if(m_pIOleIPUIWindow) m_pIOleIPUIWindow->Release(); m_pIOleIPUIWindow = 0;
- if(m_pIOleIPSite) m_pIOleIPSite->Release(); m_pIOleIPSite = 0;
-
- if ( m_xOleAccess.is() )
- {
- LockedEmbedDocument_Impl aDocLock = m_xOleAccess->GetEmbedDocument();
- if ( aDocLock.GetEmbedDocument() )
- {
- aDocLock.GetEmbedDocument()->SaveObject();
- }
- }
-
- return;
-}
-
-
-HRESULT DocumentHolder::UIActivate()
-{
- // 1. Call IOleInPlaceSite::UIActivate
- if (NULL!=m_pIOleIPSite)
- m_pIOleIPSite->OnUIActivate();
-
- //2. Critical for accelerators to work initially.
- SetFocus(m_pCHatchWin->Window());
- // if(m_xEditWindow.is()) m_xEditWindow->setFocus();
-
- //3. Set the active object
-
- OLECHAR starOffice[] = {'S','t','a','r','O','f','f','i','c','e',0};
- CComPtr< IOleInPlaceActiveObject > pObj = new CIIAObj( this );
-
- if (NULL!=m_pIOleIPFrame)
- m_pIOleIPFrame->SetActiveObject(
- pObj, starOffice );
-
- if (NULL!=m_pIOleIPUIWindow)
- m_pIOleIPUIWindow->SetActiveObject(
- pObj, starOffice );
-
- //4. Create the shared menu.
- InPlaceMenuCreate();
-
- return NOERROR;
-}
-
-void DocumentHolder::UIDeactivate()
-{
- //1. Remove the shared menu.
- InPlaceMenuDestroy();
-
- if (NULL!=m_pIOleIPFrame)
- m_pIOleIPFrame->SetActiveObject(NULL, NULL);
-
- if (NULL!=m_pIOleIPUIWindow)
- m_pIOleIPUIWindow->SetActiveObject(NULL, NULL);
-
- //3. Call IOleInPlaceSite::OnUIDeactivate
- if (NULL!=m_pIOleIPSite)
- m_pIOleIPSite->OnUIDeactivate(FALSE);
-
- return;
-}
-
-void CopyToOLEMenu(HMENU hOrig,WORD origPos,HMENU hDest,WORD destPos)
-{
- HMENU subMenu(NULL);
- UINT uTemp = MF_BYPOSITION | MF_POPUP;
- char buffer[256];
-
- subMenu = GetSubMenu(hOrig,origPos);
- GetMenuString(hOrig,origPos,buffer,256,MF_BYPOSITION);
- InsertMenu(hDest,destPos,uTemp,
- (UINT)subMenu,LPCTSTR(buffer));
-
- MENUITEMINFOW mi;
- memset(&mi,0,sizeof(mi));
- mi.cbSize = sizeof(mi);
- mi.fMask = MIIM_DATA;
- if(GetMenuItemInfoW(hOrig,origPos,TRUE,&mi))
- SetMenuItemInfoW(hDest,(WORD)destPos,TRUE,&mi);
-}
-
-BOOL DocumentHolder::InPlaceMenuCreate(void)
-{
- HMENU hMenu;
- UINT i;
- OLEMENUGROUPWIDTHS mgw;
-
- for (i=0; i<6; i++)
- mgw.width[i]=0;
-
- //We already have popup menu handles in m_pFR->m_phMenu[]
-
- //Create the new shared menu and let container do its thing
- hMenu=CreateMenu();
- m_pIOleIPFrame->InsertMenus(hMenu,&mgw);
-
- int count = GetMenuItemCount(m_nMenuHandle);
- int help = count-1;
-
- // start with 1, because we don't include "File"
- WORD pos = (WORD)mgw.width[0];
- CopyToOLEMenu(m_nMenuHandle,1,hMenu,pos);
- mgw.width[1] = 1;
-
- // insert object menu here
- pos = ((WORD)(mgw.width[0] + mgw.width[1] + mgw.width[2]));
- for(WORD i = 2; i < help-1; ++i,++pos)
- CopyToOLEMenu(m_nMenuHandle,i,hMenu,pos);
- mgw.width[3] = help - 3;
-
- // insert help menu
- pos = (WORD)(mgw.width[0] + mgw.width[1] + mgw.width[2] +
- mgw.width[3] + mgw.width[4]);
- CopyToOLEMenu(m_nMenuHandle,WORD(help),hMenu,pos);
- mgw.width[5] = 1;
-
- m_nMenuShared = hMenu;
- m_nOLEMenu = OleCreateMenuDescriptor(m_nMenuShared,&mgw);
-
- uno::Reference<awt::XSystemDependentWindowPeer> xSysDepWin(m_xContainerWindow,uno::UNO_QUERY);
- if(xSysDepWin.is()) {
- uno::Sequence<sal_Int8> aProcessIdent(16);
- rtl_getGlobalProcessId((sal_uInt8*)aProcessIdent.getArray());
- uno::Any aAny = xSysDepWin->getWindowHandle(aProcessIdent,lang::SystemDependent::SYSTEM_WIN32);
- sal_Int32 tmp;
- aAny >>= tmp;
- HWND aHwnd = (HWND) tmp;
- m_pIOleIPFrame->SetMenu(
- m_nMenuShared,m_nOLEMenu,aHwnd);
- }
- else
- m_pIOleIPFrame->SetMenu(
- m_nMenuShared,m_nOLEMenu,::GetWindow(m_hWndxWinParent,GW_CHILD));
- return TRUE;
-}
-
-BOOL DocumentHolder::InPlaceMenuDestroy(void)
-{
- if( NULL == m_nMenuShared )
- return TRUE;
-
- m_pIOleIPFrame->SetMenu(NULL,NULL,NULL);
-
- OleDestroyMenuDescriptor(m_nOLEMenu),m_nOLEMenu = NULL;
- return TRUE;
-}
-
-void DocumentHolder::OpenIntoWindow(void)
-{
- // not implemented
-}
-
-BOOL DocumentHolder::Undo(void)
-{
- // not implemented
- return false;
-}
-
-
-void DocumentHolder::FreeOffice()
-{
- const ::rtl::OUString aServiceName(
- RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.frame.Desktop" ) );
- uno::Reference< frame::XDesktop > xDesktop(
- m_xFactory->createInstance( aServiceName ), uno::UNO_QUERY );
- if ( xDesktop.is() )
- {
- xDesktop->removeTerminateListener(
- (frame::XTerminateListener*)this );
- }
-}
-
-void DocumentHolder::DisconnectFrameDocument( sal_Bool bComplete )
-{
- try
- {
- uno::Reference< util::XModifyBroadcaster > xModifiable( m_xDocument, uno::UNO_QUERY_THROW );
- xModifiable->removeModifyListener( (util::XModifyListener*)this );
- }
- catch( uno::Exception& )
- {}
-
- try
- {
- uno::Reference< util::XCloseBroadcaster > xBroadcaster(
- m_xDocument, uno::UNO_QUERY_THROW );
- xBroadcaster->removeCloseListener( (util::XCloseListener*)this );
- }
- catch( uno::Exception& )
- {}
-
- try
- {
- uno::Reference< util::XCloseBroadcaster > xBroadcaster(
- m_xFrame, uno::UNO_QUERY_THROW );
- xBroadcaster->removeCloseListener( (util::XCloseListener*)this );
- }
- catch( uno::Exception& )
- {}
-
- if ( bComplete )
- {
- m_xFrame = uno::Reference< frame::XFrame>();
- m_pIDispatch = NULL;
- m_xDocument = uno::Reference< frame::XModel >();
- }
-}
-
-void DocumentHolder::CloseDocument()
-{
- DisconnectFrameDocument();
-
- uno::Reference< util::XCloseable > xCloseable(
- m_xDocument, uno::UNO_QUERY );
-
- if ( xCloseable.is() )
- {
- try
- {
- xCloseable->close( sal_True );
- }
- catch( uno::Exception& )
- {}
- }
-
- m_pIDispatch = NULL;
- m_xDocument = uno::Reference< frame::XModel >();
-}
-
-
-void DocumentHolder::CloseFrame()
-{
- try
- {
- uno::Reference< util::XCloseBroadcaster > xBroadcaster(
- m_xFrame, uno::UNO_QUERY_THROW );
- xBroadcaster->removeCloseListener( (util::XCloseListener*)this );
- }
- catch( uno::Exception& )
- {}
-
- uno::Reference<util::XCloseable> xCloseable(
- m_xFrame,uno::UNO_QUERY);
- if(xCloseable.is())
- try {
- xCloseable->close(sal_True);
- }
- catch( const uno::Exception& ) {
- }
- else {
- uno::Reference<lang::XComponent> xComp(m_xFrame,uno::UNO_QUERY);
- if(xComp.is())
- xComp->dispose();
- }
-
- m_xFrame = uno::Reference< frame::XFrame >();
-}
-
-void DocumentHolder::SetDocument( const uno::Reference< frame::XModel >& xDoc, sal_Bool bLink )
-{
- if ( m_xDocument.is() )
- CloseDocument();
-
- m_xDocument = xDoc;
- m_bLink = bLink;
-
- uno::Reference< util::XCloseBroadcaster > xBroadcaster(
- m_xDocument, uno::UNO_QUERY );
-
- if ( xBroadcaster.is() )
- xBroadcaster->addCloseListener( (util::XCloseListener*)this );
-
- if ( m_xDocument.is() && !m_bLink )
- {
- // set the document mode to embedded
- uno::Sequence< beans::PropertyValue > aSeq(1);
- aSeq[0].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "SetEmbedded" ));
- aSeq[0].Value <<= sal_True;
- m_xDocument->attachResource(::rtl::OUString(),aSeq);
- }
-}
-
-sal_Bool DocumentHolder::ExecuteSuspendCloseFrame()
-{
- if ( m_xFrame.is() && m_xFactory.is() )
- {
- try
- {
- uno::Reference< frame::XController > xController = m_xFrame->getController();
- if ( xController.is() )
- {
- if ( !xController->suspend( sal_True ) )
- return sal_False;
-
- FreeOffice();
- try
- {
- uno::Reference<util::XCloseable> xCloseable( m_xFrame, uno::UNO_QUERY );
- if ( xCloseable.is() )
- xCloseable->close(sal_True);
- else
- {
- uno::Reference<lang::XComponent> xComp( m_xFrame, uno::UNO_QUERY_THROW );
- if( xComp.is() )
- xComp->dispose();
- }
- }
- catch( const util::CloseVetoException& )
- {
- // should be called if the frame could not be closed
- xController->suspend( sal_False );
- }
- }
- }
- catch( uno::Exception& )
- {
- }
-
- m_xFrame = uno::Reference< frame::XFrame >();
- }
-
- return sal_True;
-}
-
-uno::Reference< frame::XFrame > DocumentHolder::DocumentFrame()
-{
- if(! m_xFrame.is() )
- {
- rtl::OUString aDesktopSrvNm(
- RTL_CONSTASCII_USTRINGPARAM("com.sun.star.frame.Desktop"));
-
- uno::Reference<frame::XDesktop> xDesktop(
- m_xFactory->createInstance(aDesktopSrvNm),
- uno::UNO_QUERY);
-
- uno::Reference<frame::XFrame> xFrame(
- xDesktop,uno::UNO_QUERY);
-
- // the frame will be registered on desktop here, later when the document
- // is loaded into the frame in ::show() method the terminate listener will be removed
- // this is so only for outplace activation
- if( xFrame.is() )
- m_xFrame = xFrame->findFrame(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("_blank")),0);
-
- uno::Reference< util::XCloseBroadcaster > xBroadcaster(
- m_xFrame, uno::UNO_QUERY );
-
- if ( xBroadcaster.is() )
- {
- xBroadcaster->addCloseListener( (util::XCloseListener*)this );
- FreeOffice(); // the frame is part of the desktop
- }
- }
-
- if( m_xFrame.is() )
- {
- // intercept
- uno::Reference<frame::XDispatchProviderInterception>
- xDPI(m_xFrame,uno::UNO_QUERY);
- if(xDPI.is())
- xDPI->registerDispatchProviderInterceptor( CreateNewInterceptor() );
- }
-
- return m_xFrame;
-}
-
-
-uno::Reference< frame::XDispatchProviderInterceptor > DocumentHolder::CreateNewInterceptor()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
-
- ClearInterceptorInternally();
-
- uno::Reference< frame::XDispatchProviderInterceptor > xInterceptor( m_pInterceptor = new Interceptor( m_xOleAccess, this, m_bLink ) );
- m_xInterceptorLocker = xInterceptor;
- return xInterceptor;
-}
-
-void DocumentHolder::ClearInterceptorInternally()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- uno::Reference< frame::XDispatchProviderInterceptor > xInterceptor( m_xInterceptorLocker );
- if ( xInterceptor.is() && m_pInterceptor )
- m_pInterceptor->DisconnectDocHolder();
-
- m_xInterceptorLocker = uno::Reference< frame::XDispatchProviderInterceptor >();
- m_pInterceptor = 0;
-}
-
-void DocumentHolder::ClearInterceptor()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- m_xInterceptorLocker = uno::Reference< frame::XDispatchProviderInterceptor >();
- m_pInterceptor = 0;
-}
-
-
-void DocumentHolder::show()
-{
- try
- {
- if(m_xFrame.is())
- {
- m_xFrame->activate();
- uno::Reference<awt::XTopWindow> xTopWindow(
- m_xFrame->getContainerWindow(),uno::UNO_QUERY);
- if(xTopWindow.is())
- xTopWindow->toFront();
- }
- else if( DocumentFrame().is() )
- {
- LoadDocInFrame( sal_False );
-
- // get rid of second closer if it is there
- uno::Reference< beans::XPropertySet > xProps( m_xFrame, uno::UNO_QUERY );
- if ( xProps.is() )
- {
- uno::Reference< frame::XLayoutManager > xLayoutManager;
- xProps->getPropertyValue( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "LayoutManager" )) ) >>= xLayoutManager;
- uno::Reference< beans::XPropertySet > xLMProps( xLayoutManager, uno::UNO_QUERY );
- if ( xLMProps.is() )
- {
- xLMProps->setPropertyValue( ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "MenuBarCloser" )),
- uno::makeAny( uno::Reference< frame::XStatusListener >() ) );
- }
- }
-
- if ( !m_bLink )
- {
- try
- {
- uno::Reference< util::XModifyBroadcaster > xModifiable( m_xDocument, uno::UNO_QUERY_THROW );
- xModifiable->addModifyListener( (util::XModifyListener*)this );
- }
- catch( uno::Exception& )
- {}
- }
-
- if ( !m_bLink )
- setTitle(m_aDocumentNamePart);
- }
- }
- catch( uno::Exception& )
- {
- OSL_FAIL( "Can not show the frame!\n" );
- }
-
-}
-
-void DocumentHolder::resizeWin( const SIZEL& rNewSize )
-{
- LockedEmbedDocument_Impl aDocLock;
-
- if ( m_xOleAccess.is() )
- aDocLock = m_xOleAccess->GetEmbedDocument();
-
- if ( m_xFrame.is() && aDocLock.GetEmbedDocument() )
- {
- uno::Reference< awt::XWindow > xWindow(
- m_xFrame->getContainerWindow(), uno::UNO_QUERY );
- uno::Reference< awt::XView > xView( xWindow, uno::UNO_QUERY );
-
- if ( xWindow.is() && xView.is() )
- {
- float fScale = 1;
- xView->setZoom( fScale, fScale );
-
- SIZEL aOldSize;
- GetExtent( &aOldSize );
-
- if ( aOldSize.cx != rNewSize.cx || aOldSize.cy != rNewSize.cy )
- {
- HDC hdc = GetDC( NULL );
- SetMapMode( hdc, MM_HIMETRIC );
-
- POINT aOldOffset;
- aOldOffset.x = aOldSize.cx;
- aOldOffset.y = aOldSize.cy;
- BOOL bIsOk = LPtoDP( hdc, &aOldOffset, 1 );
-
- POINT aNewOffset;
- aNewOffset.x = rNewSize.cx;
- aNewOffset.y = rNewSize.cy;
- bIsOk = LPtoDP( hdc, &aNewOffset, 1 );
-
- ReleaseDC( NULL, hdc );
-
- awt::Rectangle aWinRect = xWindow->getPosSize();
-
- sal_Int32 aWidthDelta = aWinRect.Width - aOldOffset.x;
- sal_Int32 aHeightDelta = aWinRect.Height - aOldOffset.y;
-
- if ( aWidthDelta > 0 && aHeightDelta > 0 )
- xWindow->setPosSize(0,
- 0,
- aNewOffset.x + aWidthDelta,
- aNewOffset.y + aHeightDelta,
- awt::PosSize::SIZE );
- }
- }
- }
-}
-
-void DocumentHolder::setTitle(const rtl::OUString& aDocumentName)
-{
- if(m_xFrame.is())
- {
- if(m_aFilterName.getLength() == 0)
- {
- rtl::OUString aFilterName;
- uno::Sequence<beans::PropertyValue> aSeq;
- if(m_xDocument.is())
- {
- aSeq =
- m_xDocument->getArgs();
- for(sal_Int32 j = 0; j < aSeq.getLength(); ++j)
- {
- if(aSeq[j].Name ==
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("FilterName")))
- {
- aSeq[j].Value >>= aFilterName;
- break;
- }
- }
- }
-
- if(aFilterName.getLength())
- {
- uno::Reference<container::XNameAccess> xNameAccess(
- m_xFactory->createInstance(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(
- "com.sun.star.document.FilterFactory"))),
- uno::UNO_QUERY);
- try {
- if(xNameAccess.is() &&
- (xNameAccess->getByName(aFilterName) >>= aSeq))
- {
- for(sal_Int32 j = 0; j < aSeq.getLength(); ++j)
- if(aSeq[j].Name ==
- rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("UIName")))
- {
- aSeq[j].Value >>= m_aFilterName;
- break;
- }
- }
- }
- catch(const uno::Exception& ) {
- // nothing better to do here
- m_aFilterName = aFilterName;
- }
- }
- }
- // set the title
- uno::Reference<beans::XPropertySet> xPropSet(
- m_xFrame,uno::UNO_QUERY);
- if(xPropSet.is()) {
- uno::Any aAny;
- static const sal_Unicode u[] = { ' ','(',0 };
- static const sal_Unicode c[] = { ')',0 };
- rtl::OUString aTotalName(m_aFilterName);
- aTotalName += rtl::OUString(u);
- aTotalName += aDocumentName;
- aTotalName += rtl::OUString(c);
- aAny <<= aTotalName;
- try {
- xPropSet->setPropertyValue(
- rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("Title")),
- aAny);
- }
- catch( const uno::Exception& ) {
- }
- }
- }
-
- m_aDocumentNamePart = aDocumentName;
-
- if(m_pInterceptor)
- {
- ::osl::ClearableMutexGuard aGuard( m_aMutex );
-
- Interceptor* pTmpInter = NULL;
- uno::Reference< frame::XDispatchProviderInterceptor > xLock( m_xInterceptorLocker );
- if ( xLock.is() && m_pInterceptor )
- pTmpInter = m_pInterceptor;
-
- aGuard.clear();
-
- if ( pTmpInter )
- pTmpInter->generateFeatureStateEvent();
- }
-}
-
-
-void DocumentHolder::setContainerName(const rtl::OUString& aContainerName)
-{
- m_aContainerName = aContainerName;
-}
-
-
-void DocumentHolder::hide()
-{
- if(m_xFrame.is()) m_xFrame->deactivate();
-
- //todo: sendadvise
- // after hiding the window it is always allowed to InPlaceActivate it
- m_bAllowInPlace = true;
-}
-
-IDispatch* DocumentHolder::GetIDispatch()
-{
- if ( !m_pIDispatch && m_xDocument.is() )
- {
- const ::rtl::OUString aServiceName (
- RTL_CONSTASCII_USTRINGPARAM (
- "com.sun.star.bridge.OleBridgeSupplier2" ) );
- uno::Reference< bridge::XBridgeSupplier2 > xSupplier(
- m_xFactory->createInstance( aServiceName ), uno::UNO_QUERY );
-
- if ( xSupplier.is() )
- {
- uno::Sequence< sal_Int8 > aProcId( 16 );
- rtl_getGlobalProcessId( (sal_uInt8*)aProcId.getArray() );
-
- try {
- uno::Any anyResult = xSupplier->createBridge(
- uno::makeAny( m_xDocument ),
- aProcId,
- bridge::ModelDependent::UNO,
- bridge::ModelDependent::OLE );
-
- if ( anyResult.getValueTypeClass() ==
- getCppuType((sal_uInt32*) 0).getTypeClass() )
- {
- VARIANT* pVariant = *(VARIANT**)anyResult.getValue();
- if ( pVariant->vt == VT_DISPATCH )
- m_pIDispatch = pVariant->pdispVal;
-
- VariantClear( pVariant );
- CoTaskMemFree( pVariant );
- }
- }
- catch ( uno::Exception& )
- {}
- }
- }
-
- return m_pIDispatch;
-}
-
-HRESULT DocumentHolder::GetDocumentBorder( RECT *pRect )
-{
- if ( pRect && m_xDocument.is() )
- {
- uno::Sequence< beans::PropertyValue > aArgs = m_xDocument->getArgs();
- for ( sal_Int32 nInd = 0; nInd < aArgs.getLength(); nInd++ )
- if ( aArgs[nInd].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "DocumentBorder" ) ) )
- {
- uno::Sequence< sal_Int32 > aRect;
- if ( ( aArgs[nInd].Value >>= aRect ) && aRect.getLength() == 4 )
- {
- pRect->left = aRect[0];
- pRect->top = aRect[1];
- pRect->right = aRect[2];
- pRect->bottom = aRect[3];
-
- return S_OK;
- }
-
- break;
- }
- }
-
- return E_FAIL;
-}
-
-HRESULT DocumentHolder::SetExtent( const SIZEL *pSize )
-{
- if ( pSize )
- {
- uno::Reference< embed::XVisualObject > xVisObj( m_xDocument, uno::UNO_QUERY );
- if ( xVisObj.is() )
- {
- try
- {
- awt::Size aNewSize( pSize->cx, pSize->cy );
-
- sal_Int32 aMapMode = xVisObj->getMapUnit( DVASPECT_CONTENT );
-
- // TODO/LATER: in future UNO API should be used for the conversion, currently there is no
- if ( aMapMode == embed::EmbedMapUnits::TWIP )
- {
- // convertion from ONE_100TH_MM
- aNewSize.Width = aNewSize.Width * 144 / 254;
- aNewSize.Height = aNewSize.Height * 144 / 254;
- }
-
-
- xVisObj->setVisualAreaSize( DVASPECT_CONTENT, aNewSize );
-
- return S_OK;
- }
- catch( uno::Exception& )
- {}
- }
- }
-
- return E_FAIL;
-}
-
-HRESULT DocumentHolder::GetExtent( SIZEL *pSize )
-{
- if ( pSize )
- {
- uno::Reference< embed::XVisualObject > xVisObj( m_xDocument, uno::UNO_QUERY );
- if ( xVisObj.is() )
- {
- try
- {
- awt::Size aDocSize = xVisObj->getVisualAreaSize( DVASPECT_CONTENT );
-
- sal_Int32 aMapMode = xVisObj->getMapUnit( DVASPECT_CONTENT );
-
- // TODO/LATER: in future UNO API should be used for the conversion, currently there is no
- if ( aMapMode == embed::EmbedMapUnits::TWIP )
- {
- // convertion to ONE_100TH_MM
- aDocSize.Width = aDocSize.Width * 254 / 144;
- aDocSize.Height = aDocSize.Height * 254 / 144;
- }
-
- pSize->cx = aDocSize.Width;
- pSize->cy = aDocSize.Height;
-
- return S_OK;
- }
- catch( uno::Exception& )
- {}
- }
- }
-
- return E_FAIL;
-}
-
-
-HRESULT DocumentHolder::SetContRects(LPCRECT aRect)
-{
- if(m_xContainerWindow.is()) {
- RECT wi;
- memset(&wi,0,sizeof(wi));
- if(m_pIOleIPFrame) {
- m_pIOleIPFrame->GetBorder((LPRECT)&wi);
- m_xContainerWindow->setPosSize(
- 0,0,
- wi.right - wi.left,
- wi.bottom - wi.top,
- awt::PosSize::POSSIZE);
- }
- else
- m_xContainerWindow->setPosSize(
- 0,0,
- aRect->right - aRect->left,
- aRect->bottom - aRect->top,
- awt::PosSize::POSSIZE);
- return NOERROR;
- }
- else {
- return ERROR;
- }
-}
-
-
-HRESULT DocumentHolder::SetObjectRects(LPCRECT aRect, LPCRECT aClip)
-{
- ((LPRECT)aRect)->left -= m_aBorder.left;
- ((LPRECT)aRect)->right += m_aBorder.right;
- ((LPRECT)aRect)->top -= m_aBorder.top;
- ((LPRECT)aRect)->bottom += m_aBorder.bottom;
- ((LPRECT)aClip)->left -= m_aBorder.left;
- ((LPRECT)aClip)->right += m_aBorder.right;
- ((LPRECT)aClip)->top -= m_aBorder.top;
- ((LPRECT)aClip)->bottom += m_aBorder.bottom;
-
- if(m_pCHatchWin)
- m_pCHatchWin->RectsSet((LPRECT)aRect, (LPRECT)aClip);
- if(m_xEditWindow.is()) {
- m_xEditWindow->setVisible(false);
- m_xEditWindow->setPosSize(
- m_pCHatchWin ? HATCHWIN_BORDERWIDTHDEFAULT : 0,
- m_pCHatchWin ? HATCHWIN_BORDERWIDTHDEFAULT : 0,
- aRect->right - aRect->left,
- aRect->bottom - aRect->top,
- awt::PosSize::POSSIZE);
- m_xEditWindow->setVisible(true);
- }
- return NOERROR;
-}
-
-
-::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XWindow> SAL_CALL
-DocumentHolder::getContainerWindow(
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
- if(m_xContainerWindow.is())
- return m_xContainerWindow;
-
- uno::Reference<awt::XWindow> xWin(0);
-
- static const ::rtl::OUString aToolkitServiceName(
- RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.awt.Toolkit" ) );
- uno::Reference<awt::XSystemChildFactory> xToolkit(
- m_xFactory->createInstance(aToolkitServiceName ),uno::UNO_QUERY);
-
- if(xToolkit.is() && m_pIOleIPFrame) {
- HWND hWnd;
- m_pIOleIPFrame->GetWindow(&hWnd);
-
- uno::Sequence<sal_Int8> aProcessIdent(16);
- rtl_getGlobalProcessId((sal_uInt8*)aProcessIdent.getArray());
-
- uno::Any aAny;
- aAny <<= sal_Int32(hWnd);
- xWin = uno::Reference<awt::XWindow>(
- xToolkit->createSystemChild(
- aAny,
- aProcessIdent,
- lang::SystemDependent::SYSTEM_WIN32),
- uno::UNO_QUERY);
-
- RECT wi;
- memset(&wi,0,sizeof(wi));
- if(xWin.is() && m_pIOleIPFrame->GetBorder((LPRECT)&wi) == NOERROR) {
- xWin->setVisible(true);
- xWin->setPosSize(
- 0,0,
- wi.right-wi.left,
- wi.bottom - wi.top,
- awt::PosSize::POSSIZE);
-
- uno::Reference<awt::XSystemDependentWindowPeer> xSysWin(
- xWin,uno::UNO_QUERY);
- if(xSysWin.is()) {
- aAny = xSysWin->getWindowHandle(
- aProcessIdent,lang::SystemDependent::SYSTEM_WIN32);
- sal_Int32 tmp;
- if( aAny >>= tmp )
- SetContainerWindowHandle((HWND) tmp);
- }
- }
- }
-
- m_xContainerWindow= xWin;
- return xWin;
-}
-
-
-
-sal_Bool SAL_CALL
-DocumentHolder::requestDockingAreaSpace(
- const ::com::sun::star::awt::Rectangle& RequestedSpace
-)
- throw(
- ::com::sun::star::uno::RuntimeException
- )
-{
- if(m_bOnDeactivate)
- return sal_True;
-
- BORDERWIDTHS bw;
- SetRect((LPRECT)&bw,
- RequestedSpace.X,RequestedSpace.Y,
- RequestedSpace.Width,RequestedSpace.Height);
- if( m_pIOleIPFrame )
- return m_pIOleIPFrame->RequestBorderSpace(&bw) == NOERROR ;
- else
- return sal_Bool(false);
-}
-
-
-void SAL_CALL
-DocumentHolder::setDockingAreaSpace(
- const ::com::sun::star::awt::Rectangle& BorderSpace
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
- if(m_bOnDeactivate)
- return;
-
- BORDERWIDTHS bw;
- SetRect((LPRECT)&bw,
- BorderSpace.X,BorderSpace.Y,
- BorderSpace.Width,BorderSpace.Height);
- if( m_pIOleIPFrame ) {
- RECT aRect;
- GetClientRect(m_hWndxWinCont,&aRect);
- HRGN hrgn1 = CreateRectRgn(
- 0,0,
- aRect.right,BorderSpace.Y);
- HRGN hrgn2 = CreateRectRgn(aRect.right-BorderSpace.Width,0,aRect.right,aRect.bottom);
- CombineRgn(hrgn1,hrgn1,hrgn2,RGN_OR);
- DeleteObject(hrgn2);
- hrgn2 = CreateRectRgn(0,aRect.bottom-BorderSpace.Height,aRect.right,aRect.bottom);
- CombineRgn(hrgn1,hrgn1,hrgn2,RGN_OR);
- DeleteObject(hrgn2);
- hrgn2 = CreateRectRgn(0,0,BorderSpace.X,aRect.bottom);
- CombineRgn(hrgn1,hrgn1,hrgn2,RGN_OR);
- DeleteObject(hrgn2);
-
- SetWindowRgn(m_hWndxWinCont,hrgn1,true);
- // not:: DeleteObject(hrgn1);
- m_pIOleIPFrame->SetBorderSpace(&bw);
- }
-}
-
-
-void SAL_CALL
-DocumentHolder::disposing(
- const com::sun::star::lang::EventObject& aSource
-)
- throw( uno::RuntimeException )
-{
- if ( m_xDocument.is() && m_xDocument == aSource.Source )
- {
- m_pIDispatch = NULL;
- m_xDocument = uno::Reference< frame::XModel >();
- }
-
- if( m_xFrame.is() && m_xFrame == aSource.Source )
- m_xFrame = uno::Reference< frame::XFrame >();
-}
-
-
-void SAL_CALL
-DocumentHolder::queryClosing(
- const lang::EventObject& aSource,
- sal_Bool /*bGetsOwnership*/
-)
- throw(
- util::CloseVetoException
- )
-{
- if ( !m_bLink
- && ( m_xDocument.is() && m_xDocument == aSource.Source || m_xFrame.is() && m_xFrame == aSource.Source ) )
- throw util::CloseVetoException();
-}
-
-
-void SAL_CALL
-DocumentHolder::notifyClosing(
- const lang::EventObject& aSource )
- throw( uno::RuntimeException )
-{
- try
- {
- uno::Reference< util::XCloseBroadcaster > xEventBroadcaster(
- aSource.Source, uno::UNO_QUERY_THROW );
- xEventBroadcaster->removeCloseListener( (util::XCloseListener*)this );
- }
- catch( uno::Exception& )
- {}
-
- if ( m_xDocument.is() && m_xDocument == aSource.Source )
- {
- // can happen only in case of links
- m_pIDispatch = NULL;
- m_xDocument = uno::Reference< frame::XModel >();
- m_xFrame = uno::Reference< frame::XFrame >();
-
- LockedEmbedDocument_Impl aDocLock = m_xOleAccess->GetEmbedDocument();
- if ( aDocLock.GetEmbedDocument() )
- aDocLock.GetEmbedDocument()->OLENotifyClosing();
- }
- else if( m_xFrame.is() && m_xFrame == aSource.Source )
- m_xFrame = uno::Reference< frame::XFrame >();
-}
-
-void SAL_CALL
-DocumentHolder::queryTermination(
- const lang::EventObject& /*aSource*/
-)
- throw(
- frame::TerminationVetoException
- )
-{
- if ( m_xDocument.is() )
- throw frame::TerminationVetoException();
-}
-
-void SAL_CALL
-DocumentHolder::notifyTermination(
- const lang::EventObject& aSource
-)
- throw( uno::RuntimeException )
-{
- OSL_ENSURE( !m_xDocument.is(), "Just a disaster..." );
- uno::Reference< frame::XDesktop > xDesktop(
- aSource.Source, uno::UNO_QUERY );
-
- if ( xDesktop.is() )
- xDesktop->removeTerminateListener( (frame::XTerminateListener*)this );
-}
-
-
-
-void SAL_CALL DocumentHolder::modified( const lang::EventObject& /*aEvent*/ )
- throw (uno::RuntimeException)
-{
- if ( m_xOleAccess.is() )
- {
- LockedEmbedDocument_Impl aDocLock = m_xOleAccess->GetEmbedDocument();
- if ( aDocLock.GetEmbedDocument() )
- aDocLock.GetEmbedDocument()->notify();
- }
-}
-
-// Fix strange warnings about some
-// ATL::CAxHostWindow::QueryInterface|AddRef|Releae functions.
-// warning C4505: 'xxx' : unreferenced local function has been removed
-#if defined(_MSC_VER)
-#pragma warning(disable: 4505)
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/embed/ed_idataobj.cxx b/embedserv/source/embed/ed_idataobj.cxx
deleted file mode 100644
index 73e1ed629..000000000
--- a/embedserv/source/embed/ed_idataobj.cxx
+++ /dev/null
@@ -1,327 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#if defined(_MSC_VER) && (_MSC_VER > 1310)
-#pragma warning(disable : 4917 4555)
-#endif
-
-// actually this workaround should be in presys.h!
-//#define UINT64 USE_WIN_UINT64
-//#define INT64 USE_WIN_INT64
-//#define UINT32 USE_WIN_UINT32
-//#define INT32 USE_WIN_INT32
-
-#include "embeddoc.hxx"
-
-//#undef UINT64
-//#undef INT64
-//#undef UINT32
-//#undef INT32
-
-
-#include <com/sun/star/uno/Any.h>
-#include <com/sun/star/uno/Exception.hpp>
-#include <com/sun/star/datatransfer/XTransferable.hpp>
-
-
-#include <osl/thread.h>
-
-using namespace ::com::sun::star;
-
-//===============================================================================
-// EmbedDocument_Impl
-//===============================================================================
-
-sal_uInt64 EmbedDocument_Impl::getMetaFileHandle_Impl( sal_Bool isEnhMeta )
-{
- sal_uInt64 pResult = NULL;
-
- uno::Reference< datatransfer::XTransferable > xTransferable( m_pDocHolder->GetDocument(), uno::UNO_QUERY );
- if ( xTransferable.is() )
- {
- uno::Sequence< sal_Int8 > aMetaBuffer;
- datatransfer::DataFlavor aFlavor;
-
- if ( isEnhMeta )
- {
- aFlavor.MimeType = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
- "application/x-openoffice-emf;windows_formatname=\"Image EMF\"" ) );
- aFlavor.HumanPresentableName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Enhanced Windows MetaFile" ) );
- }
- else
- {
- aFlavor.MimeType = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM(
- "application/x-openoffice-wmf;windows_formatname=\"Image WMF\"" ) );
- aFlavor.HumanPresentableName = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "Windows GDIMetaFile" ) );
- }
-
- aFlavor.DataType = getCppuType( (const sal_uInt64*) 0 );
-
- uno::Any aAny = xTransferable->getTransferData( aFlavor );
- aAny >>= pResult;
- }
-
- return pResult;
-}
-
-//-------------------------------------------------------------------------------
-// IDataObject
-
-STDMETHODIMP EmbedDocument_Impl::GetData( FORMATETC * pFormatetc, STGMEDIUM * pMedium )
-{
- if ( !pFormatetc )
- return DV_E_FORMATETC;
-
- if ( !pMedium )
- return STG_E_MEDIUMFULL;
-
- if ( pFormatetc->dwAspect == DVASPECT_THUMBNAIL
- || pFormatetc->dwAspect == DVASPECT_ICON
- || pFormatetc->dwAspect == DVASPECT_DOCPRINT )
- return DV_E_DVASPECT;
-
- if ( pFormatetc->cfFormat == CF_ENHMETAFILE )
- {
- if ( !( pFormatetc->tymed & TYMED_ENHMF ) )
- return DV_E_TYMED;
-
- HENHMETAFILE hMeta = reinterpret_cast<HENHMETAFILE>( getMetaFileHandle_Impl( sal_True ) );
-
- if ( hMeta )
- {
- pMedium->tymed = TYMED_ENHMF;
- pMedium->hEnhMetaFile = hMeta;
- pMedium->pUnkForRelease = NULL;
-
- return S_OK;
- }
-
- return STG_E_MEDIUMFULL;
- }
- else if ( pFormatetc->cfFormat == CF_METAFILEPICT )
- {
- if ( !( pFormatetc->tymed & TYMED_MFPICT ) )
- return DV_E_TYMED;
-
- HGLOBAL hMeta = reinterpret_cast<HGLOBAL>( getMetaFileHandle_Impl( sal_False ) );
-
- if ( hMeta )
- {
- pMedium->tymed = TYMED_MFPICT;
- pMedium->hMetaFilePict = hMeta;
- pMedium->pUnkForRelease = NULL;
-
- return S_OK;
- }
-
- return STG_E_MEDIUMFULL;
- }
- else
- {
- CLIPFORMAT cf_embSource = (CLIPFORMAT)RegisterClipboardFormatA( "Embed Source" );
- CLIPFORMAT cf_embObj = (CLIPFORMAT)RegisterClipboardFormatA( "Embedded Object" );
- if ( pFormatetc->cfFormat == cf_embSource || pFormatetc->cfFormat == cf_embObj )
- {
- if ( !( pFormatetc->tymed & TYMED_ISTORAGE ) )
- return DV_E_TYMED;
-
- CComPtr< IStorage > pNewStg;
- HRESULT hr = StgCreateDocfile( NULL, STGM_CREATE | STGM_READWRITE | STGM_DELETEONRELEASE, 0, &pNewStg );
- if ( FAILED( hr ) || !pNewStg ) return STG_E_MEDIUMFULL;
-
- hr = SaveTo_Impl( pNewStg );
- if ( FAILED( hr ) ) return STG_E_MEDIUMFULL;
-
- pMedium->tymed = TYMED_ISTORAGE;
- pMedium->pstg = pNewStg;
- pMedium->pstg->AddRef();
- pMedium->pUnkForRelease = ( IUnknown* )pNewStg;
-
- return S_OK;
- }
- }
-
- return DV_E_FORMATETC;
-}
-
-STDMETHODIMP EmbedDocument_Impl::GetDataHere( FORMATETC * pFormatetc, STGMEDIUM * pMedium )
-{
- if ( !pFormatetc )
- return DV_E_FORMATETC;
-
- if ( !pMedium )
- return STG_E_MEDIUMFULL;
-
- if ( pFormatetc->dwAspect == DVASPECT_THUMBNAIL
- || pFormatetc->dwAspect == DVASPECT_ICON
- || pFormatetc->dwAspect == DVASPECT_DOCPRINT )
- return DV_E_DVASPECT;
-
- CLIPFORMAT cf_embSource = (CLIPFORMAT)RegisterClipboardFormatA( "Embed Source" );
- CLIPFORMAT cf_embObj = (CLIPFORMAT)RegisterClipboardFormatA( "Embedded Object" );
-
- if ( pFormatetc->cfFormat == cf_embSource || pFormatetc->cfFormat == cf_embObj )
- {
- if ( !( pFormatetc->tymed & TYMED_ISTORAGE ) )
- return DV_E_TYMED;
-
- if ( !pMedium->pstg ) return STG_E_MEDIUMFULL;
-
- HRESULT hr = SaveTo_Impl( pMedium->pstg );
- if ( FAILED( hr ) ) return STG_E_MEDIUMFULL;
-
- pMedium->tymed = TYMED_ISTORAGE;
- pMedium->pUnkForRelease = NULL;
-
- return S_OK;
- }
-
- return DV_E_FORMATETC;
-}
-
-STDMETHODIMP EmbedDocument_Impl::QueryGetData( FORMATETC * pFormatetc )
-{
- if ( pFormatetc )
- {
- if ( pFormatetc->dwAspect == DVASPECT_THUMBNAIL
- || pFormatetc->dwAspect == DVASPECT_ICON
- || pFormatetc->dwAspect == DVASPECT_DOCPRINT )
- return DV_E_DVASPECT;
-
- if ( pFormatetc->cfFormat == CF_ENHMETAFILE )
- {
- if ( !( pFormatetc->tymed & TYMED_ENHMF ) )
- return DV_E_TYMED;
-
- return S_OK;
- }
- else if ( pFormatetc->cfFormat == CF_METAFILEPICT )
- {
- if ( !( pFormatetc->tymed & TYMED_MFPICT ) )
- return DV_E_TYMED;
-
- return S_OK;
- }
- else
- {
- CLIPFORMAT cf_embSource = (CLIPFORMAT)RegisterClipboardFormatA( "Embed Source" );
- CLIPFORMAT cf_embObj = (CLIPFORMAT)RegisterClipboardFormatA( "Embedded Object" );
- if ( pFormatetc->cfFormat == cf_embSource || pFormatetc->cfFormat == cf_embObj )
- {
- if ( !( pFormatetc->tymed & TYMED_ISTORAGE ) )
- return DV_E_TYMED;
-
- return S_OK;
- }
- }
- }
-
- return DV_E_FORMATETC;
-
-}
-
-STDMETHODIMP EmbedDocument_Impl::GetCanonicalFormatEtc( FORMATETC * pFormatetcIn, FORMATETC * pFormatetcOut )
-{
- if ( !pFormatetcIn || !pFormatetcOut )
- return DV_E_FORMATETC;
-
- pFormatetcOut->ptd = NULL;
- pFormatetcOut->cfFormat = pFormatetcIn->cfFormat;
- pFormatetcOut->dwAspect = DVASPECT_CONTENT;
-
- if ( pFormatetcIn->cfFormat == CF_ENHMETAFILE )
- {
- pFormatetcOut->tymed = TYMED_ENHMF;
- return S_OK;
- }
- else if ( pFormatetcIn->cfFormat == CF_METAFILEPICT )
- {
- pFormatetcOut->tymed = TYMED_MFPICT;
- return S_OK;
- }
- else
- {
- CLIPFORMAT cf_embSource = (CLIPFORMAT)RegisterClipboardFormatA( "Embed Source" );
- CLIPFORMAT cf_embObj = (CLIPFORMAT)RegisterClipboardFormatA( "Embedded Object" );
- if ( pFormatetcIn->cfFormat == cf_embSource || pFormatetcIn->cfFormat == cf_embObj )
- {
- pFormatetcOut->tymed = TYMED_ISTORAGE;
- return S_OK;
- }
- }
-
- return DV_E_FORMATETC;
-}
-
-STDMETHODIMP EmbedDocument_Impl::SetData( FORMATETC * /*pFormatetc*/, STGMEDIUM * /*pMedium*/, BOOL /*fRelease*/ )
-{
- return E_NOTIMPL;
-}
-
-STDMETHODIMP EmbedDocument_Impl::EnumFormatEtc( DWORD dwDirection, IEnumFORMATETC ** /*ppFormatetc*/ )
-{
- if ( dwDirection == DATADIR_GET )
- return OLE_S_USEREG;
-
- return E_NOTIMPL;
-}
-
-STDMETHODIMP EmbedDocument_Impl::DAdvise( FORMATETC * pFormatetc, DWORD advf, IAdviseSink * pAdvSink, DWORD * pdwConnection )
-{
- if ( !m_pDAdviseHolder )
- if ( !SUCCEEDED( CreateDataAdviseHolder( &m_pDAdviseHolder ) ) || !m_pDAdviseHolder )
- return E_OUTOFMEMORY;
-
- return m_pDAdviseHolder->Advise( (IDataObject*)this, pFormatetc, advf, pAdvSink, pdwConnection );
-}
-
-STDMETHODIMP EmbedDocument_Impl::DUnadvise( DWORD dwConnection )
-{
- if ( !m_pDAdviseHolder )
- if ( !SUCCEEDED( CreateDataAdviseHolder( &m_pDAdviseHolder ) ) || !m_pDAdviseHolder )
- return E_OUTOFMEMORY;
-
- return m_pDAdviseHolder->Unadvise( dwConnection );
-}
-
-STDMETHODIMP EmbedDocument_Impl::EnumDAdvise( IEnumSTATDATA ** ppenumAdvise )
-{
- if ( !m_pDAdviseHolder )
- if ( !SUCCEEDED( CreateDataAdviseHolder( &m_pDAdviseHolder ) ) || !m_pDAdviseHolder )
- return E_OUTOFMEMORY;
-
- return m_pDAdviseHolder->EnumAdvise( ppenumAdvise );
-}
-
-// Fix strange warnings about some
-// ATL::CAxHostWindow::QueryInterface|AddRef|Releae functions.
-// warning C4505: 'xxx' : unreferenced local function has been removed
-#if defined(_MSC_VER)
-#pragma warning(disable: 4505)
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/embed/ed_iinplace.cxx b/embedserv/source/embed/ed_iinplace.cxx
deleted file mode 100644
index 7e696463f..000000000
--- a/embedserv/source/embed/ed_iinplace.cxx
+++ /dev/null
@@ -1,103 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "embeddoc.hxx"
-#include <osl/diagnose.h>
-
-
-STDMETHODIMP EmbedDocument_Impl::GetWindow(HWND *hWnd)
-{
- OSL_ENSURE(m_pDocHolder,"no document for inplace activation");
-
- *hWnd = m_pDocHolder->GetTopMostWinHandle();
- if(*hWnd != NULL)
- return NOERROR;
- else
- return ERROR;
-}
-
-STDMETHODIMP EmbedDocument_Impl::ContextSensitiveHelp(BOOL)
-{
- return NOERROR;
-}
-
-STDMETHODIMP EmbedDocument_Impl::InPlaceDeactivate(void)
-{
- // no locking is used since the OLE must use the same thread always
- if ( m_bIsInVerbHandling )
- return E_UNEXPECTED;
-
- BooleanGuard_Impl aGuard( m_bIsInVerbHandling );
-
- m_pDocHolder->InPlaceDeactivate();
-
- // the inplace object needs the notification after the storing ( on deactivating )
- // if it happens before the storing the replacement might not be updated
- notify();
-
- return NOERROR;
-}
-
-STDMETHODIMP EmbedDocument_Impl::UIDeactivate(void)
-{
- // no locking is used since the OLE must use the same thread always
- if ( m_bIsInVerbHandling )
- return E_UNEXPECTED;
-
- BooleanGuard_Impl aGuard( m_bIsInVerbHandling );
-
-
- m_pDocHolder->UIDeactivate();
-
- // the inplace object needs the notification after the storing ( on deactivating )
- // if it happens before the storing the replacement might not be updated
- notify();
-
- return NOERROR;
-}
-
-STDMETHODIMP EmbedDocument_Impl::SetObjectRects(LPCRECT aRect, LPCRECT aClip)
-{
- OSL_ENSURE(m_pDocHolder,"no document for inplace activation");
-
- return m_pDocHolder->SetObjectRects(aRect,aClip);
-}
-
-STDMETHODIMP EmbedDocument_Impl::ReactivateAndUndo(void)
-{
- return E_NOTIMPL;
-}
-
-// Fix strange warnings about some
-// ATL::CAxHostWindow::QueryInterface|AddRef|Releae functions.
-// warning C4505: 'xxx' : unreferenced local function has been removed
-#if defined(_MSC_VER)
-#pragma warning(disable: 4505)
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/embed/ed_ioleobject.cxx b/embedserv/source/embed/ed_ioleobject.cxx
deleted file mode 100644
index 4910dca3d..000000000
--- a/embedserv/source/embed/ed_ioleobject.cxx
+++ /dev/null
@@ -1,506 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "embeddoc.hxx"
-#include <osl/diagnose.h>
-#include <com/sun/star/frame/XController.hpp>
-#include <com/sun/star/beans/PropertyValue.hpp>
-
-
-using namespace ::com::sun::star;
-
-
-extern ::rtl::OUString getFilterNameFromGUID_Impl( GUID* );
-
-//-------------------------------------------------------------------------------
-// IOleObject
-
-
-STDMETHODIMP EmbedDocument_Impl::SetClientSite( IOleClientSite* pSite )
-{
- m_pClientSite = pSite;
- return S_OK;
-}
-
-STDMETHODIMP EmbedDocument_Impl::GetClientSite( IOleClientSite** pSite )
-{
- *pSite = m_pClientSite;
- return S_OK;
-}
-
-STDMETHODIMP EmbedDocument_Impl::SetHostNames( LPCOLESTR szContainerApp, LPCOLESTR szContainerObj )
-{
- // the code should be ignored for links
- if ( !m_aFileName.getLength() )
- {
- m_pDocHolder->setTitle(
- rtl::OUString(
- (sal_Unicode*)szContainerObj));
- m_pDocHolder->setContainerName(
- rtl::OUString(
- (sal_Unicode*)szContainerApp));
- }
-
- return S_OK;
-}
-
-STDMETHODIMP EmbedDocument_Impl::Close( DWORD dwSaveOption )
-{
- HRESULT hr = S_OK;
-
- if ( m_pDocHolder->HasFrame() )
- {
- if ( dwSaveOption == 2 && m_aFileName.getLength() )
- {
- // ask the user about saving
- if ( m_pDocHolder->ExecuteSuspendCloseFrame() )
- {
- m_pDocHolder->CloseDocument();
- return S_OK;
- }
- else
- return OLE_E_PROMPTSAVECANCELLED;
- }
-
- if ( dwSaveOption != 1 )
- hr = SaveObject(); // ADVF_DATAONSTOP);
-
- m_pDocHolder->CloseFrame();
- OLENotifyDeactivation();
- }
-
- m_pDocHolder->FreeOffice();
- m_pDocHolder->CloseDocument();
-
- OLENotifyClosing();
-
- return hr;
-}
-
-
-HRESULT EmbedDocument_Impl::OLENotifyClosing()
-{
- HRESULT hr = S_OK;
-
- AdviseSinkHashMap aAHM(m_aAdviseHashMap);
-
- for ( AdviseSinkHashMapIterator iAdvise = aAHM.begin();
- iAdvise != aAHM.end(); iAdvise++ )
- {
- if ( iAdvise->second )
- iAdvise->second->OnClose();
- }
-
- return hr;
-
-}
-
-STDMETHODIMP EmbedDocument_Impl::SetMoniker( DWORD /*dwWhichMoniker*/, IMoniker * /*pmk*/ )
-{
- return E_NOTIMPL;
-}
-
-STDMETHODIMP EmbedDocument_Impl::GetMoniker( DWORD /*dwAssign*/, DWORD /*dwWhichMoniker*/, IMoniker ** /*ppmk*/ )
-{
- return E_NOTIMPL;
-}
-
-STDMETHODIMP EmbedDocument_Impl::InitFromData( IDataObject * /*pDataObject*/, BOOL /*fCreation*/, DWORD /*dwReserved*/ )
-{
- return E_NOTIMPL;
-}
-
-STDMETHODIMP EmbedDocument_Impl::GetClipboardData( DWORD /*dwReserved*/, IDataObject ** /*ppDataObject*/ )
-{
- return E_NOTIMPL;
-}
-
-/**
- * Well, this is a not so very inefficient way to deliver
- *
- */
-
-STDMETHODIMP EmbedDocument_Impl::DoVerb(
- LONG iVerb,
- LPMSG,
- IOleClientSite *pActiveSite,
- LONG,
- HWND,
- LPCRECT )
-{
- // no locking is used since the OLE must use the same thread always
- if ( m_bIsInVerbHandling )
- return OLEOBJ_S_CANNOT_DOVERB_NOW;
-
- // an object can not handle any Verbs in Hands off mode
- if ( m_pMasterStorage == NULL || m_pOwnStream == NULL )
- return OLE_E_CANT_BINDTOSOURCE;
-
-
- BooleanGuard_Impl aGuard( m_bIsInVerbHandling );
-
- if ( iVerb == OLEIVERB_PRIMARY )
- {
- if ( m_aFileName.getLength() )
- {
- // that should be a link
- iVerb = OLEIVERB_OPEN;
- }
- else
- iVerb = OLEIVERB_SHOW;
- }
-
- try
- {
- switch(iVerb) {
- case OLEIVERB_DISCARDUNDOSTATE:
- // free any undostate?
- break;
- case OLEIVERB_INPLACEACTIVATE:
- OSL_ENSURE(m_pDocHolder,"no document for inplace activation");
-
- return m_pDocHolder->InPlaceActivate(pActiveSite,FALSE);
- break;
- case OLEIVERB_UIACTIVATE:
- OSL_ENSURE(m_pDocHolder,"no document for inplace activation");
-
- return m_pDocHolder->InPlaceActivate(pActiveSite,TRUE);
- break;
- case OLEIVERB_PRIMARY:
- case OLEIVERB_SHOW:
- OSL_ENSURE(m_pDocHolder,"no document for inplace activation");
-
- if(m_pDocHolder->isActive())
- return NOERROR; //Already active
-
- if(SUCCEEDED(
- m_pDocHolder->InPlaceActivate(
- pActiveSite,TRUE)))
- return NOERROR;
-
- // intended fall trough
- case OLEIVERB_OPEN:
- OSL_ENSURE(m_pDocHolder,"no document to open");
-
- // the commented code could be usefull in case
- // outer window would be resized depending from inner one
- // RECTL aEmbArea;
- // m_pDocHolder->GetVisArea( &aEmbArea );
- // m_pDocHolder->show();
- // m_pDocHolder->SetVisArea( &aEmbArea );
-
- if(m_pDocHolder->isActive())
- {
- m_pDocHolder->InPlaceDeactivate();
- m_pDocHolder->DisableInplaceActivation(true);
- }
-
- SIZEL aEmbSize;
- m_pDocHolder->GetExtent( &aEmbSize );
- m_pDocHolder->show();
- m_pDocHolder->resizeWin( aEmbSize );
-
- if ( m_pClientSite )
- m_pClientSite->OnShowWindow( TRUE );
-
- notify();
- break;
- case OLEIVERB_HIDE:
- OSL_ENSURE(m_pDocHolder,"no document to hide");
-
- if(m_pDocHolder->isActive())
- m_pDocHolder->InPlaceDeactivate();
- else {
- m_pDocHolder->hide();
-
- if( m_pClientSite )
- m_pClientSite->OnShowWindow(FALSE);
- }
- break;
- default:
- break;
- }
- }
- catch( uno::Exception& )
- {
- return OLEOBJ_S_CANNOT_DOVERB_NOW;
- }
-
- return NOERROR;
-}
-
-
-
-STDMETHODIMP EmbedDocument_Impl::EnumVerbs( IEnumOLEVERB ** /*ppEnumOleVerb*/ )
-{
- return OLE_S_USEREG;
-}
-
-STDMETHODIMP EmbedDocument_Impl::Update()
-{
- return S_OK;
-// HRESULT hr = CACHE_E_NOCACHE_UPDATED;
-// return hr;
-}
-
-STDMETHODIMP EmbedDocument_Impl::IsUpToDate()
-{
- return S_OK;
-}
-
-STDMETHODIMP EmbedDocument_Impl::GetUserClassID( CLSID *pClsid )
-{
- return GetClassID( pClsid );
-}
-
-STDMETHODIMP EmbedDocument_Impl::GetUserType( DWORD /*dwFormOfTypeUe*/, LPOLESTR * /*pszUserType*/ )
-{
- return OLE_S_USEREG;
-}
-
-STDMETHODIMP EmbedDocument_Impl::SetExtent( DWORD /*dwDrawAspect*/, SIZEL *psizel )
-{
- if ( !psizel )
- return E_FAIL;
-
- m_pDocHolder->SetExtent( psizel );
-
- return S_OK;
-}
-
-STDMETHODIMP EmbedDocument_Impl::GetExtent( DWORD /*dwDrawAspect*/, SIZEL * psizel )
-{
- if ( !psizel )
- return E_INVALIDARG;
-
- if ( FAILED( m_pDocHolder->GetExtent( psizel ) ) )
- {
- // return default values
- psizel->cx = 500;
- psizel->cy = 500;
- }
-
- return S_OK;
-}
-
-STDMETHODIMP EmbedDocument_Impl::Advise( IAdviseSink *pAdvSink, DWORD *pdwConnection )
-{
- if ( m_nAdviseNum == 0xFFFFFFFF )
- return E_OUTOFMEMORY;
-
- pAdvSink->AddRef();
- m_aAdviseHashMap.insert( ::std::pair< DWORD, IAdviseSink* >( m_nAdviseNum, pAdvSink ) );
- *pdwConnection = m_nAdviseNum++;
-
- return S_OK;
-}
-
-STDMETHODIMP EmbedDocument_Impl::Unadvise( DWORD dwConnection )
-{
- AdviseSinkHashMapIterator iAdvise = m_aAdviseHashMap.find( dwConnection );
- if ( iAdvise != m_aAdviseHashMap.end() )
- {
- iAdvise->second->Release();
- m_aAdviseHashMap.erase( iAdvise );
- }
- else
- return OLE_E_NOCONNECTION;
-
- return S_OK;
-}
-
-STDMETHODIMP EmbedDocument_Impl::EnumAdvise( IEnumSTATDATA ** /*ppenumAdvise*/ )
-{
- return E_NOTIMPL;
-}
-
-STDMETHODIMP EmbedDocument_Impl::GetMiscStatus( DWORD /*dwAspect*/, DWORD * /*pdwStatus*/ )
-{
- return OLE_S_USEREG;
-}
-
-STDMETHODIMP EmbedDocument_Impl::SetColorScheme( LOGPALETTE * /*pLogpal*/ )
-{
- return E_NOTIMPL;
-}
-
-//-------------------------------------------------------------------------------
-// IDispatch
-
-STDMETHODIMP EmbedDocument_Impl::GetTypeInfoCount( unsigned int FAR* pctinfo )
-{
- if ( m_pDocHolder->GetIDispatch() )
- return m_pDocHolder->GetIDispatch()->GetTypeInfoCount( pctinfo );
-
- return E_NOTIMPL;
-}
-
-STDMETHODIMP EmbedDocument_Impl::GetTypeInfo( unsigned int iTInfo, LCID lcid, ITypeInfo FAR* FAR* ppTInfo )
-{
- if ( m_pDocHolder->GetIDispatch() )
- return m_pDocHolder->GetIDispatch()->GetTypeInfo( iTInfo, lcid, ppTInfo );
-
- return DISP_E_BADINDEX; // the only error that can be returned
-}
-
-STDMETHODIMP EmbedDocument_Impl::GetIDsOfNames( REFIID riid,
- OLECHAR FAR* FAR* rgszNames,
- unsigned int cNames,
- LCID lcid,
- DISPID FAR* rgDispId )
-{
- if ( m_pDocHolder->GetIDispatch() )
- return m_pDocHolder->GetIDispatch()->GetIDsOfNames( riid, rgszNames, cNames, lcid, rgDispId );
-
- for ( unsigned int ind = 0; ind < cNames; ind++ )
- rgDispId[ind] = DISPID_UNKNOWN;
-
- return DISP_E_UNKNOWNNAME;
-}
-
-STDMETHODIMP EmbedDocument_Impl::Invoke( DISPID dispIdMember,
- REFIID riid,
- LCID lcid,
- WORD wFlags,
- DISPPARAMS FAR* pDispParams,
- VARIANT FAR* pVarResult,
- EXCEPINFO FAR* pExcepInfo,
- unsigned int FAR* puArgErr )
-{
- if ( m_pDocHolder->GetIDispatch() )
- return m_pDocHolder->GetIDispatch()->Invoke( dispIdMember,
- riid,
- lcid,
- wFlags,
- pDispParams,
- pVarResult,
- pExcepInfo,
- puArgErr );
-
- return DISP_E_MEMBERNOTFOUND;
-}
-
-//-------------------------------------------------------------------------------
-// IExternalConnection
-
-DWORD STDMETHODCALLTYPE EmbedDocument_Impl::AddConnection( DWORD , DWORD )
-{
- return AddRef();
-}
-
-DWORD STDMETHODCALLTYPE EmbedDocument_Impl::ReleaseConnection( DWORD , DWORD , BOOL )
-{
- return Release();
-}
-
-// C++ - methods
-
-HRESULT EmbedDocument_Impl::SaveObject()
-{
- HRESULT hr = S_OK;
-
- if(m_pClientSite) {
- hr = m_pClientSite->SaveObject();
-
- for ( AdviseSinkHashMapIterator iAdvise =
- m_aAdviseHashMap.begin();
- iAdvise != m_aAdviseHashMap.end();
- iAdvise++ )
- if ( iAdvise->second )
- iAdvise->second->OnSave( );
- }
- else if ( m_aFileName.getLength() && IsDirty() == S_OK )
- {
- ::rtl::OUString aPreservFileName = m_aFileName;
-
- // in case of links the containers does not provide client site sometimes
- hr = Save( (LPCOLESTR)NULL, FALSE ); // triggers saving to the link location
- SaveCompleted( (LPCOLESTR)aPreservFileName.getStr() );
- }
-
- notify( false );
-
- return hr;
-}
-
-
-HRESULT EmbedDocument_Impl::ShowObject()
-{
- HRESULT hr = S_OK;
-
- if(m_pClientSite)
- hr = m_pClientSite->ShowObject();
-
- return hr;
-}
-
-
-void EmbedDocument_Impl::notify( bool bDataChanged )
-{
- for ( AdviseSinkHashMapIterator iAdvise =
- m_aAdviseHashMap.begin();
- iAdvise != m_aAdviseHashMap.end();
- iAdvise++ )
- if ( iAdvise->second )
- iAdvise->second->OnViewChange( DVASPECT_CONTENT, -1 );
-
- if ( m_pDAdviseHolder && bDataChanged )
- m_pDAdviseHolder->SendOnDataChange( (IDataObject*)this, 0, 0 );
-}
-
-void EmbedDocument_Impl::Deactivate()
-{
- HRESULT hr = S_OK;
-
- if ( m_pDocHolder->HasFrame() )
- {
- hr = SaveObject();
- m_pDocHolder->CloseFrame();
- OLENotifyDeactivation();
- }
-}
-
-HRESULT EmbedDocument_Impl::OLENotifyDeactivation()
-{
- HRESULT hr = S_OK;
-
- if ( m_pClientSite )
- hr = m_pClientSite->OnShowWindow( FALSE );
-
- return hr;
-
-}
-
-// Fix strange warnings about some
-// ATL::CAxHostWindow::QueryInterface|AddRef|Releae functions.
-// warning C4505: 'xxx' : unreferenced local function has been removed
-#if defined(_MSC_VER)
-#pragma warning(disable: 4505)
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/embed/ed_ipersiststr.cxx b/embedserv/source/embed/ed_ipersiststr.cxx
deleted file mode 100644
index 7a762f0ed..000000000
--- a/embedserv/source/embed/ed_ipersiststr.cxx
+++ /dev/null
@@ -1,1020 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#if defined(_MSC_VER) && (_MSC_VER > 1310)
-#pragma warning(disable : 4917 4555)
-#endif
-
-#include "embeddoc.hxx"
-#include <com/sun/star/uno/Any.h>
-#include <com/sun/star/uno/Exception.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/lang/XComponent.hpp>
-#include <com/sun/star/io/XInputStream.hpp>
-#include <com/sun/star/io/XOutputStream.hpp>
-#include <com/sun/star/io/XSeekable.hpp>
-#include <com/sun/star/frame/XModel.hpp>
-#include <com/sun/star/frame/XLoadable.hpp>
-#include <com/sun/star/util/XModifiable.hpp>
-#include <com/sun/star/frame/XStorable.hpp>
-#include <com/sun/star/frame/XComponentLoader.hpp>
-#include <com/sun/star/util/XUrlTransformer.hpp>
-
-
-#include <osl/mutex.hxx>
-#include <osl/diagnose.h>
-
-#include <string.h>
-
-#define EXT_STREAM_LENGTH 16
-
-using namespace ::com::sun::star;
-
-extern ::rtl::OUString getStorageTypeFromGUID_Impl( GUID* guid );
-extern ::rtl::OUString getServiceNameFromGUID_Impl( GUID* );
-extern ::rtl::OUString getFilterNameFromGUID_Impl( GUID* );
-// extern CLIPFORMAT getClipFormatFromGUID_Impl( GUID* );
-::rtl::OUString getTestFileURLFromGUID_Impl( GUID* guid );
-
-const ::rtl::OUString aOfficeEmbedStreamName( RTL_CONSTASCII_USTRINGPARAM ( "package_stream" ) );
-const ::rtl::OUString aExtentStreamName( RTL_CONSTASCII_USTRINGPARAM ( "properties_stream" ) );
-
-uno::Reference< io::XInputStream > createTempXInStreamFromIStream(
- uno::Reference< lang::XMultiServiceFactory > xFactory,
- IStream *pStream )
-{
- uno::Reference< io::XInputStream > xResult;
-
- if ( !pStream )
- return xResult;
-
- const ::rtl::OUString aServiceName ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.io.TempFile" ) );
- uno::Reference < io::XOutputStream > xTempOut = uno::Reference < io::XOutputStream > (
- xFactory->createInstance ( aServiceName ),
- uno::UNO_QUERY );
- if ( xTempOut.is() )
- {
- ULARGE_INTEGER nNewPos;
- LARGE_INTEGER aZero = { 0L, 0L };
- HRESULT hr = pStream->Seek( aZero, STREAM_SEEK_SET, &nNewPos );
- if ( FAILED( hr ) ) return xResult;
-
- STATSTG aStat;
- hr = pStream->Stat( &aStat, STATFLAG_NONAME );
- if ( FAILED( hr ) ) return xResult;
-
- sal_uInt32 nSize = (sal_uInt32)aStat.cbSize.QuadPart;
- sal_uInt32 nCopied = 0;
- uno::Sequence< sal_Int8 > aBuffer( nConstBufferSize );
- try
- {
- sal_uInt32 nRead = 0;
- do
- {
- pStream->Read( (void*)aBuffer.getArray(), nConstBufferSize, &nRead );
-
- if ( nRead < nConstBufferSize )
- aBuffer.realloc( nRead );
-
- xTempOut->writeBytes( aBuffer );
- nCopied += nRead;
- } while( nRead == nConstBufferSize );
-
- if ( nCopied == nSize )
- {
- uno::Reference < io::XSeekable > xTempSeek ( xTempOut, uno::UNO_QUERY );
- if ( xTempSeek.is() )
- {
- xTempSeek->seek ( 0 );
- xResult = uno::Reference< io::XInputStream >( xTempOut, uno::UNO_QUERY );
- }
- }
- }
- catch( uno::Exception& )
- {
- }
- }
-
- return xResult;
-}
-
-HRESULT copyXTempOutToIStream( uno::Reference< io::XOutputStream > xTempOut, IStream* pStream )
-{
- if ( !xTempOut.is() || !pStream )
- return E_FAIL;
-
- uno::Reference < io::XSeekable > xTempSeek ( xTempOut, uno::UNO_QUERY );
- if ( !xTempSeek.is() )
- return E_FAIL;
-
- xTempSeek->seek ( 0 );
-
- uno::Reference< io::XInputStream > xTempIn ( xTempOut, uno::UNO_QUERY );
- if ( !xTempSeek.is() )
- return E_FAIL;
-
- // Seek to zero and truncate the stream
- ULARGE_INTEGER nNewPos;
- LARGE_INTEGER aZero = { 0L, 0L };
- HRESULT hr = pStream->Seek( aZero, STREAM_SEEK_SET, &nNewPos );
- if ( FAILED( hr ) ) return E_FAIL;
- ULARGE_INTEGER aUZero = { 0L, 0L };
- hr = pStream->SetSize( aUZero );
- if ( FAILED( hr ) ) return E_FAIL;
-
- uno::Sequence< sal_Int8 > aBuffer( nConstBufferSize );
- sal_uInt32 nReadBytes = 0;
-
- do
- {
- try {
- nReadBytes = xTempIn->readBytes( aBuffer, nConstBufferSize );
- }
- catch( uno::Exception& )
- {
- return E_FAIL;
- }
-
- sal_uInt32 nWritten = 0;
- HRESULT hr = pStream->Write( (void*)aBuffer.getArray(), nReadBytes, &nWritten );
- if ( !SUCCEEDED( hr ) || nWritten != nReadBytes )
- return E_FAIL;
-
- } while( nReadBytes == nConstBufferSize );
-
- return S_OK;
-}
-
-
-//===============================================================================
-// EmbedDocument_Impl
-//===============================================================================
-
-EmbedDocument_Impl::EmbedDocument_Impl( const uno::Reference< lang::XMultiServiceFactory >& xFactory, const GUID* guid )
-: m_refCount( 0L )
-, m_xFactory( xFactory )
-, m_guid( *guid )
-, m_bIsDirty( sal_False )
-, m_nAdviseNum( 0 )
-, m_bIsInVerbHandling( sal_False )
-//, m_bLoadedFromFile( sal_False )
-{
- m_xOwnAccess = new EmbeddedDocumentInstanceAccess_Impl( this );
- m_pDocHolder = new DocumentHolder( xFactory, m_xOwnAccess );
- m_pDocHolder->acquire();
-}
-
-EmbedDocument_Impl::~EmbedDocument_Impl()
-{
- m_pDocHolder->FreeOffice();
-
- if ( m_pDocHolder->HasFrame() && m_pDocHolder->IsLink() )
- {
- // a link with frame should be only disconnected, not closed
- m_pDocHolder->DisconnectFrameDocument( sal_True );
- }
- else
- {
- m_pDocHolder->CloseDocument();
- m_pDocHolder->CloseFrame();
- }
-
- m_pDocHolder->release();
-}
-
-uno::Sequence< beans::PropertyValue > EmbedDocument_Impl::fillArgsForLoading_Impl( uno::Reference< io::XInputStream > xStream, DWORD /*nStreamMode*/, LPCOLESTR pFilePath )
-{
- uno::Sequence< beans::PropertyValue > aArgs( 3 );
-
- sal_Int32 nInd = 0; // must not be bigger than the preset size
- aArgs[nInd].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "FilterName" ) );
- aArgs[nInd++].Value <<= getFilterNameFromGUID_Impl( &m_guid );
-
- if ( xStream.is() )
- {
- aArgs[nInd].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "InputStream" ) );
- aArgs[nInd++].Value <<= xStream;
- aArgs[nInd].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "URL" ) );
- aArgs[nInd++].Value <<= ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "private:stream" ) );
- }
- else
- {
- aArgs[nInd].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "URL" ) );
-
- rtl::OUString sDocUrl;
- if ( pFilePath )
- {
- ::rtl::OUString aServiceName( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.util.URLTransformer" ) );
- uno::Reference< util::XURLTransformer > aTransformer( m_xFactory->createInstance( aServiceName ),
- uno::UNO_QUERY );
- if ( aTransformer.is() )
- {
- util::URL aURL;
-
- aURL.Complete = ::rtl::OUString( reinterpret_cast<const sal_Unicode*>(pFilePath) );
-
- if ( aTransformer->parseSmart( aURL, ::rtl::OUString() ) )
- sDocUrl = aURL.Complete;
- }
- }
-
- aArgs[nInd++].Value <<= sDocUrl;
- }
-
- aArgs.realloc( nInd );
-
- // aArgs[].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "ReadOnly" ) );
- // aArgs[].Value <<= sal_False; //( ( nStreamMode & ( STGM_READWRITE | STGM_WRITE ) ) ? sal_True : sal_False );
-
- return aArgs;
-}
-
-uno::Sequence< beans::PropertyValue > EmbedDocument_Impl::fillArgsForStoring_Impl( uno::Reference< io::XOutputStream > xStream)
-{
- uno::Sequence< beans::PropertyValue > aArgs( xStream.is() ? 2 : 1 );
-
- aArgs[0].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "FilterName" ) );
- aArgs[0].Value <<= getFilterNameFromGUID_Impl( &m_guid );
-
- if ( xStream.is() )
- {
- aArgs[1].Name = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "OutputStream" ) );
- aArgs[1].Value <<= xStream;
- }
-
- return aArgs;
-}
-
-HRESULT EmbedDocument_Impl::SaveTo_Impl( IStorage* pStg )
-{
- if ( !pStg || pStg == m_pMasterStorage )
- return E_FAIL;
-
- // for saveto operation the master storage
- // should not enter NoScribble mode
- CComPtr< IStream > pOrigOwn = m_pOwnStream;
- CComPtr< IStream > pOrigExt = m_pExtStream;
- HRESULT hr = Save( pStg, sal_False );
- pStg->Commit( STGC_ONLYIFCURRENT );
- m_pOwnStream = pOrigOwn;
- m_pExtStream = pOrigExt;
-
- return hr;
-}
-
-//-------------------------------------------------------------------------------
-// IUnknown
-
-STDMETHODIMP EmbedDocument_Impl::QueryInterface( REFIID riid, void FAR* FAR* ppv )
-{
- if(IsEqualIID(riid, IID_IUnknown))
- {
- AddRef();
- *ppv = (IUnknown*) (IPersistStorage*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IPersist))
- {
- AddRef();
- *ppv = (IPersist*) (IPersistStorage*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IExternalConnection))
- {
- AddRef();
- *ppv = (IExternalConnection*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IPersistStorage))
- {
- AddRef();
- *ppv = (IPersistStorage*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IDataObject))
- {
- AddRef();
- *ppv = (IDataObject*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IOleObject))
- {
- AddRef();
- *ppv = (IOleObject*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IOleWindow))
- {
- AddRef();
- *ppv = (IOleWindow*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IOleInPlaceObject))
- {
- AddRef();
- *ppv = (IOleInPlaceObject*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IPersistFile))
- {
- AddRef();
- *ppv = (IPersistFile*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IDispatch))
- {
- AddRef();
- *ppv = (IDispatch*) this;
- return S_OK;
- }
-
- *ppv = NULL;
- return ResultFromScode(E_NOINTERFACE);
-}
-
-STDMETHODIMP_(ULONG) EmbedDocument_Impl::AddRef()
-{
- return osl_incrementInterlockedCount( &m_refCount);
-}
-
-STDMETHODIMP_(ULONG) EmbedDocument_Impl::Release()
-{
- // if there is a time when the last reference is destructed, that means that only internal pointers are alive
- // after the following call either the refcount is increased or the pointers are empty
- if ( m_refCount == 1 )
- m_xOwnAccess->ClearEmbedDocument();
-
- sal_Int32 nCount = osl_decrementInterlockedCount( &m_refCount );
- if ( nCount == 0 )
- delete this;
- return nCount;
-}
-
-//-------------------------------------------------------------------------------
-// IPersist
-
-STDMETHODIMP EmbedDocument_Impl::GetClassID( CLSID* pClassId )
-{
- *pClassId = *&m_guid;
- return S_OK;
-}
-
-//-------------------------------------------------------------------------------
-// IPersistStorage
-
-STDMETHODIMP EmbedDocument_Impl::IsDirty()
-{
- // the link modified state is controlled by the document
- if ( m_bIsDirty && !m_aFileName.getLength() )
- return S_OK;
-
- uno::Reference< util::XModifiable > xMod( m_pDocHolder->GetDocument(), uno::UNO_QUERY );
- if ( xMod.is() )
- return xMod->isModified() ? S_OK : S_FALSE;
- return S_FALSE;
-}
-
-STDMETHODIMP EmbedDocument_Impl::InitNew( IStorage *pStg )
-{
- HRESULT hr = CO_E_ALREADYINITIALIZED;
-
- if ( !m_pDocHolder->GetDocument().is() )
- {
-
- STATSTG aStat;
- hr = pStg->Stat( &aStat, STATFLAG_NONAME );
- if ( FAILED( hr ) ) return E_FAIL;
-
- DWORD nStreamMode = aStat.grfMode;
-
- hr = E_FAIL;
- if ( m_xFactory.is() && pStg )
- {
- uno::Reference< frame::XModel > aDocument(
- m_xFactory->createInstance( getServiceNameFromGUID_Impl( &m_guid ) ),
- uno::UNO_QUERY );
- if ( aDocument.is() )
- {
- m_pDocHolder->SetDocument( aDocument );
-
- uno::Reference< frame::XLoadable > xLoadable( m_pDocHolder->GetDocument(), uno::UNO_QUERY );
- if( xLoadable.is() )
- {
- try
- {
- xLoadable->initNew();
- // xLoadable->load( fillArgsForLoading_Impl( uno::Reference< io::XInputStream >(), nStreamMode ) );
- hr = S_OK;
- }
- catch( uno::Exception& )
- {
- }
- }
-
- if ( hr == S_OK )
- {
- ::rtl::OUString aCurType = getStorageTypeFromGUID_Impl( &m_guid ); // ???
- CLIPFORMAT cf = (CLIPFORMAT)RegisterClipboardFormatA( "Embedded Object" );
- hr = WriteFmtUserTypeStg( pStg,
- cf, // ???
- reinterpret_cast<LPWSTR>(( sal_Unicode* )aCurType.getStr()) );
-
- if ( hr == S_OK )
- {
- hr = pStg->CreateStream( reinterpret_cast<LPCWSTR>(aOfficeEmbedStreamName.getStr()),
- STGM_CREATE | ( nStreamMode & 0x73 ),
- 0,
- 0,
- &m_pOwnStream );
-
- if ( hr == S_OK && m_pOwnStream )
- {
- hr = pStg->CreateStream( reinterpret_cast<LPCWSTR>(aExtentStreamName.getStr()),
- STGM_CREATE | ( nStreamMode & 0x73 ),
- 0,
- 0,
- &m_pExtStream );
-
- if ( hr == S_OK && m_pExtStream )
- {
-
- m_pMasterStorage = pStg;
- m_bIsDirty = sal_True;
- }
- else
- hr = E_FAIL;
- }
- else
- hr = E_FAIL;
- }
- else
- hr = E_FAIL;
- }
-
- if ( hr != S_OK )
- m_pDocHolder->CloseDocument();
- }
- }
- }
-
- return hr;
-}
-
-STDMETHODIMP EmbedDocument_Impl::Load( IStorage *pStg )
-{
- if ( m_pDocHolder->GetDocument().is() )
- return CO_E_ALREADYINITIALIZED;
-
- if ( !m_xFactory.is() || !pStg )
- return E_FAIL;
-
- HRESULT hr = E_FAIL;
-
- STATSTG aStat;
- hr = pStg->Stat( &aStat, STATFLAG_NONAME );
- if ( FAILED( hr ) ) return E_FAIL;
-
- DWORD nStreamMode = aStat.grfMode;
- hr = pStg->OpenStream( reinterpret_cast<LPCWSTR>(aOfficeEmbedStreamName.getStr()),
- 0,
- nStreamMode & 0x73,
- 0,
- &m_pOwnStream );
- if ( !m_pOwnStream ) hr = E_FAIL;
-
- if ( SUCCEEDED( hr ) )
- {
- hr = pStg->OpenStream( reinterpret_cast<LPCWSTR>(aExtentStreamName.getStr()),
- 0,
- nStreamMode & 0x73,
- 0,
- &m_pExtStream );
- if ( !m_pExtStream ) hr = E_FAIL;
- }
-
- // RECTL aRectToSet;
- SIZEL aSizeToSet;
- if ( SUCCEEDED( hr ) )
- {
- ULARGE_INTEGER nNewPos;
- LARGE_INTEGER aZero = { 0L, 0L };
- hr = m_pExtStream->Seek( aZero, STREAM_SEEK_SET, &nNewPos );
- if ( SUCCEEDED( hr ) )
- {
- sal_uInt32 nRead;
- sal_Int8 aInf[EXT_STREAM_LENGTH];
- hr = m_pExtStream->Read( (void*)aInf, EXT_STREAM_LENGTH, &nRead );
- if ( nRead != EXT_STREAM_LENGTH ) hr = E_FAIL;
-
- if ( SUCCEEDED( hr ) )
- {
- // aRectToSet.left = *((sal_Int32*)aInf);
- // aRectToSet.top = *((sal_Int32*)&aInf[4]);
- // aRectToSet.right = *((sal_Int32*)&aInf[8]);
- // aRectToSet.bottom = *((sal_Int32*)&aInf[12]);
- aSizeToSet.cx = *((sal_Int32*)&aInf[8]) - *((sal_Int32*)aInf);
- aSizeToSet.cy = *((sal_Int32*)&aInf[12]) - *((sal_Int32*)&aInf[4]);
- }
- }
- }
-
- if ( SUCCEEDED( hr ) )
- {
- hr = E_FAIL;
-
- uno::Reference < io::XInputStream > xTempIn = createTempXInStreamFromIStream( m_xFactory, m_pOwnStream );
- if ( xTempIn.is() )
- {
- uno::Reference< frame::XModel > aDocument(
- m_xFactory->createInstance( getServiceNameFromGUID_Impl( &m_guid ) ),
- uno::UNO_QUERY );
- if ( aDocument.is() )
- {
- m_pDocHolder->SetDocument( aDocument );
-
- uno::Reference< frame::XLoadable > xLoadable( m_pDocHolder->GetDocument(), uno::UNO_QUERY );
- if( xLoadable.is() )
- {
- try
- {
- xLoadable->load( fillArgsForLoading_Impl( xTempIn, nStreamMode ) );
- m_pMasterStorage = pStg;
- hr = m_pDocHolder->SetExtent( &aSizeToSet );
- // hr = m_pDocHolder->SetVisArea( &aRectToSet );
- }
- catch( uno::Exception& )
- {
- }
- }
-
- if ( FAILED( hr ) )
- m_pDocHolder->CloseDocument();
- }
- }
- }
-
- if ( FAILED( hr ) )
- {
- m_pOwnStream = CComPtr< IStream >();
- m_pExtStream = CComPtr< IStream >();
- hr = pStg->DestroyElement( reinterpret_cast<LPCWSTR>(aOfficeEmbedStreamName.getStr()) );
- hr = pStg->DestroyElement( reinterpret_cast<LPCWSTR>(aExtentStreamName.getStr()) );
-
- OSL_ENSURE( SUCCEEDED( hr ), "Can not destroy created stream!\n" );
- if ( FAILED( hr ) )
- hr = E_FAIL;
- }
-
- return hr;
-}
-
-STDMETHODIMP EmbedDocument_Impl::Save( IStorage *pStgSave, BOOL fSameAsLoad )
-{
- if ( !m_pDocHolder->GetDocument().is() || !m_xFactory.is() || !pStgSave || !m_pOwnStream || !m_pExtStream )
- return E_FAIL;
-
- CComPtr< IStream > pTargetStream;
- CComPtr< IStream > pNewExtStream;
-
- if ( !fSameAsLoad && pStgSave != m_pMasterStorage )
- {
- OSL_ENSURE( m_pMasterStorage, "How could the document be initialized without storage!??\n" );
- HRESULT hr = m_pMasterStorage->CopyTo( NULL, NULL, NULL, pStgSave );
- if ( FAILED( hr ) ) return E_FAIL;
-
- STATSTG aStat;
- hr = pStgSave->Stat( &aStat, STATFLAG_NONAME );
- if ( FAILED( hr ) ) return E_FAIL;
-
- DWORD nStreamMode = aStat.grfMode;
- hr = pStgSave->CreateStream( reinterpret_cast<LPCWSTR>(aOfficeEmbedStreamName.getStr()),
- STGM_CREATE | ( nStreamMode & 0x73 ),
- 0,
- 0,
- &pTargetStream );
- if ( FAILED( hr ) || !pTargetStream ) return E_FAIL;
-
- hr = pStgSave->CreateStream( reinterpret_cast<LPCWSTR>(aExtentStreamName.getStr()),
- STGM_CREATE | ( nStreamMode & 0x73 ),
- 0,
- 0,
- &pNewExtStream );
- if ( FAILED( hr ) || !pNewExtStream ) return E_FAIL;
- }
- else
- {
- pTargetStream = m_pOwnStream;
- pNewExtStream = m_pExtStream;
- }
-
- HRESULT hr = E_FAIL;
-
- const ::rtl::OUString aServiceName ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.io.TempFile" ) );
- uno::Reference < io::XOutputStream > xTempOut = uno::Reference < io::XOutputStream > (
- m_xFactory->createInstance ( aServiceName ),
- uno::UNO_QUERY );
-
- if ( xTempOut.is() )
- {
- uno::Reference< frame::XStorable > xStorable( m_pDocHolder->GetDocument(), uno::UNO_QUERY );
- if( xStorable.is() )
- {
- try
- {
- xStorable->storeToURL( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "private:stream" ) ),
- fillArgsForStoring_Impl( xTempOut ) );
- hr = copyXTempOutToIStream( xTempOut, pTargetStream );
- if ( SUCCEEDED( hr ) )
- {
- // no need to truncate the stream, the size of the stream is always the same
- ULARGE_INTEGER nNewPos;
- LARGE_INTEGER aZero = { 0L, 0L };
- hr = pNewExtStream->Seek( aZero, STREAM_SEEK_SET, &nNewPos );
- if ( SUCCEEDED( hr ) )
- {
- SIZEL aSize;
- hr = m_pDocHolder->GetExtent( &aSize );
-
- if ( SUCCEEDED( hr ) )
- {
- sal_uInt32 nWritten;
- sal_Int8 aInf[EXT_STREAM_LENGTH];
- *((sal_Int32*)aInf) = 0;
- *((sal_Int32*)&aInf[4]) = 0;
- *((sal_Int32*)&aInf[8]) = aSize.cx;
- *((sal_Int32*)&aInf[12]) = aSize.cy;
-
- hr = pNewExtStream->Write( (void*)aInf, EXT_STREAM_LENGTH, &nWritten );
- if ( nWritten != EXT_STREAM_LENGTH ) hr = E_FAIL;
-
- if ( SUCCEEDED( hr ) )
- {
- m_pOwnStream = CComPtr< IStream >();
- m_pExtStream = CComPtr< IStream >();
- if ( fSameAsLoad || pStgSave == m_pMasterStorage )
- {
- uno::Reference< util::XModifiable > xMod( m_pDocHolder->GetDocument(), uno::UNO_QUERY );
- if ( xMod.is() )
- xMod->setModified( sal_False );
- m_bIsDirty = sal_False;
- }
- }
- }
- }
- }
- }
- catch( uno::Exception& )
- {
- }
- }
- }
-
- return hr;
-}
-
-STDMETHODIMP EmbedDocument_Impl::SaveCompleted( IStorage *pStgNew )
-{
- // m_pOwnStream == NULL && m_pMasterStorage != NULL means the object is in NoScribble mode
- // m_pOwnStream == NULL && m_pMasterStorage == NULL means the object is in HandsOff mode
-
- if ( m_pOwnStream || m_pExtStream )
- return E_UNEXPECTED;
-
- if ( !m_pMasterStorage && !pStgNew )
- return E_INVALIDARG;
-
- if ( pStgNew )
- m_pMasterStorage = pStgNew;
-
- STATSTG aStat;
- HRESULT hr = m_pMasterStorage->Stat( &aStat, STATFLAG_NONAME );
- if ( FAILED( hr ) ) return E_OUTOFMEMORY;
-
- DWORD nStreamMode = aStat.grfMode;
- hr = m_pMasterStorage->OpenStream( reinterpret_cast<LPCWSTR>(aOfficeEmbedStreamName.getStr()),
- 0,
- nStreamMode & 0x73,
- 0,
- &m_pOwnStream );
- if ( FAILED( hr ) || !m_pOwnStream ) return E_OUTOFMEMORY;
-
- hr = m_pMasterStorage->OpenStream( reinterpret_cast<LPCWSTR>(aExtentStreamName.getStr()),
- 0,
- nStreamMode & 0x73,
- 0,
- &m_pExtStream );
- if ( FAILED( hr ) || !m_pExtStream ) return E_OUTOFMEMORY;
-
- sal_Bool bModified = sal_False;
- uno::Reference< util::XModifiable > xMod( m_pDocHolder->GetDocument(), uno::UNO_QUERY );
- if ( xMod.is() )
- bModified = xMod->isModified();
-
- for ( AdviseSinkHashMapIterator iAdvise = m_aAdviseHashMap.begin(); iAdvise != m_aAdviseHashMap.end(); iAdvise++ )
- {
- if ( iAdvise->second )
- iAdvise->second->OnSave();
- }
-
- if ( xMod.is() )
- bModified = xMod->isModified();
-
- return S_OK;
-}
-
-STDMETHODIMP EmbedDocument_Impl::HandsOffStorage()
-{
- m_pMasterStorage = CComPtr< IStorage >();
- m_pOwnStream = CComPtr< IStream >();
- m_pExtStream = CComPtr< IStream >();
-
- return S_OK;
-}
-
-//-------------------------------------------------------------------------------
-// IPersistFile
-
-STDMETHODIMP EmbedDocument_Impl::Load( LPCOLESTR pszFileName, DWORD /*dwMode*/ )
-{
- if ( m_pDocHolder->GetDocument().is() )
- return CO_E_ALREADYINITIALIZED;
-
- if ( !m_xFactory.is() )
- return E_FAIL;
-
- DWORD nStreamMode = STGM_CREATE | STGM_READWRITE | STGM_DELETEONRELEASE | STGM_SHARE_EXCLUSIVE;
- HRESULT hr = StgCreateDocfile( NULL,
- nStreamMode ,
- 0,
- &m_pMasterStorage );
-
- if ( FAILED( hr ) || !m_pMasterStorage ) return E_FAIL;
-
- ::rtl::OUString aCurType = getServiceNameFromGUID_Impl( &m_guid ); // ???
- CLIPFORMAT cf = (CLIPFORMAT)RegisterClipboardFormatA( "Embedded Object" );
- hr = WriteFmtUserTypeStg( m_pMasterStorage,
- cf, // ???
- reinterpret_cast<LPWSTR>(( sal_Unicode* )aCurType.getStr()) );
- if ( FAILED( hr ) ) return E_FAIL;
-
- hr = m_pMasterStorage->SetClass( m_guid );
- if ( FAILED( hr ) ) return E_FAIL;
-
- hr = m_pMasterStorage->CreateStream( reinterpret_cast<LPCWSTR>(aOfficeEmbedStreamName.getStr()),
- STGM_CREATE | ( nStreamMode & 0x73 ),
- 0,
- 0,
- &m_pOwnStream );
- if ( FAILED( hr ) || !m_pOwnStream ) return E_FAIL;
-
- hr = m_pMasterStorage->CreateStream( reinterpret_cast<LPCWSTR>(aExtentStreamName.getStr()),
- STGM_CREATE | ( nStreamMode & 0x73 ),
- 0,
- 0,
- &m_pExtStream );
- if ( FAILED( hr ) || !m_pExtStream ) return E_FAIL;
-
-
- uno::Reference< frame::XModel > aDocument(
- m_xFactory->createInstance( getServiceNameFromGUID_Impl( &m_guid ) ),
- uno::UNO_QUERY );
- if ( aDocument.is() )
- {
- m_pDocHolder->SetDocument( aDocument, sal_True );
-
- uno::Reference< frame::XLoadable > xLoadable( m_pDocHolder->GetDocument(), uno::UNO_QUERY );
- if( xLoadable.is() )
- {
- try
- {
- xLoadable->load( fillArgsForLoading_Impl( uno::Reference< io::XInputStream >(),
- STGM_READWRITE,
- pszFileName ) );
- hr = S_OK;
-
- m_aFileName = ::rtl::OUString( reinterpret_cast<const sal_Unicode*>(pszFileName) );
- }
- catch( uno::Exception& )
- {
- }
- }
-
- if ( hr == S_OK )
- {
- ::rtl::OUString aCurType = getServiceNameFromGUID_Impl( &m_guid ); // ???
- CLIPFORMAT cf = (CLIPFORMAT)RegisterClipboardFormatA( "Embedded Object" );
- hr = WriteFmtUserTypeStg( m_pMasterStorage,
- cf, // ???
- reinterpret_cast<LPWSTR>(( sal_Unicode* )aCurType.getStr()) );
-
- if ( SUCCEEDED( hr ) )
- {
- // no need to truncate the stream, the size of the stream is always the same
- ULARGE_INTEGER nNewPos;
- LARGE_INTEGER aZero = { 0L, 0L };
- hr = m_pExtStream->Seek( aZero, STREAM_SEEK_SET, &nNewPos );
- if ( SUCCEEDED( hr ) )
- {
- SIZEL aSize;
- hr = m_pDocHolder->GetExtent( &aSize );
-
- if ( SUCCEEDED( hr ) )
- {
- sal_uInt32 nWritten;
- sal_Int8 aInf[EXT_STREAM_LENGTH];
- *((sal_Int32*)aInf) = 0;
- *((sal_Int32*)&aInf[4]) = 0;
- *((sal_Int32*)&aInf[8]) = aSize.cx;
- *((sal_Int32*)&aInf[12]) = aSize.cy;
-
- hr = m_pExtStream->Write( (void*)aInf, EXT_STREAM_LENGTH, &nWritten );
- if ( nWritten != EXT_STREAM_LENGTH ) hr = E_FAIL;
- }
- }
- }
-
- if ( SUCCEEDED( hr ) )
- m_bIsDirty = sal_True;
- else
- hr = E_FAIL;
- }
-
- if ( FAILED( hr ) )
- {
- m_pDocHolder->CloseDocument();
- m_pOwnStream = NULL;
- m_pExtStream = NULL;
- m_pMasterStorage = NULL;
- }
- }
-
- return hr;
-}
-
-STDMETHODIMP EmbedDocument_Impl::Save( LPCOLESTR pszFileName, BOOL fRemember )
-{
- if ( !m_pDocHolder->GetDocument().is() || !m_xFactory.is() )
- return E_FAIL;
-
- HRESULT hr = E_FAIL;
-
- // TODO/LATER: currently there is no hands off state implemented
- try
- {
- uno::Reference< frame::XStorable > xStorable( m_pDocHolder->GetDocument(), uno::UNO_QUERY_THROW );
-
- if ( !pszFileName )
- xStorable->store();
- else
- {
- util::URL aURL;
- aURL.Complete = ::rtl::OUString( reinterpret_cast<const sal_Unicode*>( pszFileName ) );
-
- ::rtl::OUString aServiceName( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.util.URLTransformer" ) );
- uno::Reference< util::XURLTransformer > aTransformer( m_xFactory->createInstance( aServiceName ),
- uno::UNO_QUERY_THROW );
-
- if ( aTransformer->parseSmart( aURL, ::rtl::OUString() ) && aURL.Complete.getLength() )
- {
- if ( fRemember )
- {
- xStorable->storeAsURL( aURL.Complete, fillArgsForStoring_Impl( uno::Reference< io::XOutputStream >() ) );
- m_aFileName = aURL.Complete;
- }
- else
- xStorable->storeToURL( aURL.Complete, fillArgsForStoring_Impl( uno::Reference< io::XOutputStream >() ) );
- }
- }
-
- hr = S_OK;
- }
- catch( uno::Exception& )
- {
- }
-
- return hr;
-}
-
-STDMETHODIMP EmbedDocument_Impl::SaveCompleted( LPCOLESTR pszFileName )
-{
- // the different file name would mean error here
- m_aFileName = ::rtl::OUString( reinterpret_cast<const sal_Unicode*>(pszFileName) );
- return S_OK;
-}
-
-STDMETHODIMP EmbedDocument_Impl::GetCurFile( LPOLESTR *ppszFileName )
-{
- CComPtr<IMalloc> pMalloc;
-
- HRESULT hr = CoGetMalloc( 1, &pMalloc );
- if ( FAILED( hr ) || !pMalloc ) return E_FAIL;
-
- *ppszFileName = (LPOLESTR)( pMalloc->Alloc( sizeof( sal_Unicode ) * ( m_aFileName.getLength() + 1 ) ) );
- wcsncpy( *ppszFileName, reinterpret_cast<LPCWSTR>(m_aFileName.getStr()), m_aFileName.getLength() + 1 );
-
- return m_aFileName.getLength() ? S_OK : S_FALSE;
-}
-
-// ===============================================
-
-LockedEmbedDocument_Impl EmbeddedDocumentInstanceAccess_Impl::GetEmbedDocument()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- return LockedEmbedDocument_Impl( m_pEmbedDocument );
-}
-
-void EmbeddedDocumentInstanceAccess_Impl::ClearEmbedDocument()
-{
- ::osl::MutexGuard aGuard( m_aMutex );
- m_pEmbedDocument = NULL;
-}
-
-// ===============================================
-
-LockedEmbedDocument_Impl::LockedEmbedDocument_Impl()
-: m_pEmbedDocument( NULL )
-{}
-
-LockedEmbedDocument_Impl::LockedEmbedDocument_Impl( EmbedDocument_Impl* pEmbedDocument )
-: m_pEmbedDocument( pEmbedDocument )
-{
- if ( m_pEmbedDocument )
- m_pEmbedDocument->AddRef();
-}
-
-LockedEmbedDocument_Impl::LockedEmbedDocument_Impl( const LockedEmbedDocument_Impl& aDocLock )
-: m_pEmbedDocument( aDocLock.m_pEmbedDocument )
-{
- if ( m_pEmbedDocument )
- m_pEmbedDocument->AddRef();
-}
-
-LockedEmbedDocument_Impl& LockedEmbedDocument_Impl::operator=( const LockedEmbedDocument_Impl& aDocLock )
-{
- if ( m_pEmbedDocument )
- m_pEmbedDocument->Release();
-
- m_pEmbedDocument = aDocLock.m_pEmbedDocument;
- if ( m_pEmbedDocument )
- m_pEmbedDocument->AddRef();
-
- return *this;
-}
-
-LockedEmbedDocument_Impl::~LockedEmbedDocument_Impl()
-{
- if ( m_pEmbedDocument )
- m_pEmbedDocument->Release();
-}
-
-void LockedEmbedDocument_Impl::ExecuteMethod( sal_Int16 nId )
-{
- if ( m_pEmbedDocument )
- {
- if ( nId == OLESERV_SAVEOBJECT )
- m_pEmbedDocument->SaveObject();
- else if ( nId == OLESERV_CLOSE )
- m_pEmbedDocument->Close( 0 );
- else if ( nId == OLESERV_NOTIFY )
- m_pEmbedDocument->notify();
- else if ( nId == OLESERV_NOTIFYCLOSING )
- m_pEmbedDocument->OLENotifyClosing();
- else if ( nId == OLESERV_SHOWOBJECT )
- m_pEmbedDocument->ShowObject();
- else if ( nId == OLESERV_DEACTIVATE )
- m_pEmbedDocument->Deactivate();
- }
-}
-
-// Fix strange warnings about some
-// ATL::CAxHostWindow::QueryInterface|AddRef|Releae functions.
-// warning C4505: 'xxx' : unreferenced local function has been removed
-#if defined(_MSC_VER)
-#pragma warning(disable: 4505)
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/embed/esdll.cxx b/embedserv/source/embed/esdll.cxx
deleted file mode 100644
index 582a3dcba..000000000
--- a/embedserv/source/embed/esdll.cxx
+++ /dev/null
@@ -1,94 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#define STRICT
-#define _WIN32_WINNT 0x0400
-#define _WIN32_DCOM
-#if defined(_MSC_VER) && (_MSC_VER >= 1300)
-#undef _DEBUG
-#endif
-#if defined(_MSC_VER) && (_MSC_VER > 1310)
-#pragma warning(disable : 4917 4555)
-#endif
-
-#ifdef __MINGW32__
-#define _INIT_ATL_COMMON_VARS
-#endif
-
-#include "stdafx.h"
-
-#include <atlbase.h>
-#ifdef _MSC_VER
-#pragma warning( push )
-#pragma warning( disable: 4710 )
-#endif
-CComModule _Module;
-#ifdef _MSC_VER
-#pragma warning( pop )
-#endif
-#include <atlcom.h>
-
-BEGIN_OBJECT_MAP(ObjectMap)
-END_OBJECT_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// DLL Entry Point
-
-
-#include "syswinwrapper.hxx"
-#include "docholder.hxx"
-
-
-HINSTANCE DocumentHolder::m_hInstance;
-
-extern "C"
-BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/)
-{
- DocumentHolder::m_hInstance = hInstance;
- if (!winwrap::HatchWindowRegister(hInstance))
- return FALSE;
-
- if (dwReason == DLL_PROCESS_ATTACH)
- {
- _Module.Init(ObjectMap, hInstance, NULL);
- DisableThreadLibraryCalls(hInstance);
- }
- else if (dwReason == DLL_PROCESS_DETACH)
- {
- _Module.Term();
- }
- return TRUE; // ok
-}
-
-// Fix strange warnings about some
-// ATL::CAxHostWindow::QueryInterface|AddRef|Releae functions.
-// warning C4505: 'xxx' : unreferenced local function has been removed
-#if defined(_MSC_VER)
-#pragma warning(disable: 4505)
-#endif
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/embed/guid.cxx b/embedserv/source/embed/guid.cxx
deleted file mode 100644
index 2737eec04..000000000
--- a/embedserv/source/embed/guid.cxx
+++ /dev/null
@@ -1,216 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#if defined(_MSC_VER) && (_MSC_VER > 1310)
-#pragma warning(disable : 4917 4555)
-#endif
-
-#include "common.h"
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/container/XNameAccess.hpp>
-
-::rtl::OUString getStorageTypeFromGUID_Impl( GUID* guid )
-{
- if ( *guid == OID_WriterTextServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "soffice.StarWriterDocument.6" ) );
-
- if ( *guid == OID_WriterOASISTextServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "opendocument.WriterDocument.1" ) );
-
- if ( *guid == OID_CalcServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "soffice.StarCalcDocument.6" ) );
-
- if ( *guid == OID_CalcOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "opendocument.CalcDocument.1" ) );
-
- if ( *guid == OID_DrawingServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "soffice.StarDrawDocument.6" ) );
-
- if ( *guid == OID_DrawingOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "opendocument.DrawDocument.1" ) );
-
- if ( *guid == OID_PresentationServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "soffice.StarImpressDocument.6" ) );
-
- if ( *guid == OID_PresentationOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "opendocument.ImpressDocument.1" ) );
-
- if ( *guid == OID_MathServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "soffice.StarMathDocument.6" ) );
-
- if ( *guid == OID_MathOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "opendocument.MathDocument.1" ) );
-
- return ::rtl::OUString();
-}
-
-::rtl::OUString getServiceNameFromGUID_Impl( GUID* guid )
-{
- if ( *guid == OID_WriterTextServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.TextDocument" ) );
-
- if ( *guid == OID_WriterOASISTextServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Writer.TextDocument" ) );
-
- if ( *guid == OID_CalcServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Calc.SpreadsheetDocument" ) );
-
- if ( *guid == OID_CalcOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Calc.SpreadsheetDocument" ) );
-
- if ( *guid == OID_DrawingServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Draw.DrawingDocument" ) );
-
- if ( *guid == OID_DrawingOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Draw.DrawingDocument" ) );
-
- if ( *guid == OID_PresentationServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Draw.PresentationDocument" ) );
-
- if ( *guid == OID_PresentationOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Draw.PresentationDocument" ) );
-
- if ( *guid == OID_MathServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Math.FormulaDocument" ) );
-
- if ( *guid == OID_MathOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.comp.Math.FormulaDocument" ) );
-
- return ::rtl::OUString();
-}
-
-::rtl::OUString getFilterNameFromGUID_Impl( GUID* guid )
-{
- if ( *guid == OID_WriterTextServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "StarOffice XML (Writer)" ) );
-
- if ( *guid == OID_WriterOASISTextServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "writer8" ) );
-
- if ( *guid == OID_CalcServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "StarOffice XML (Calc)" ) );
-
- if ( *guid == OID_CalcOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "calc8" ) );
-
- if ( *guid == OID_DrawingServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "StarOffice XML (Draw)" ) );
-
- if ( *guid == OID_DrawingOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "draw8" ) );
-
- if ( *guid == OID_PresentationServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "StarOffice XML (Impress)" ) );
-
- if ( *guid == OID_PresentationOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "impress8" ) );
-
- if ( *guid == OID_MathServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "StarOffice XML (Math)" ) );
-
- if ( *guid == OID_MathOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "math8" ) );
-
- return ::rtl::OUString();
-}
-
-::rtl::OUString getTestFileURLFromGUID_Impl( GUID* guid )
-{
- if ( *guid == OID_WriterTextServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "file:///d:/OLE_TEST/test.sxw" ) );
-
- if ( *guid == OID_WriterOASISTextServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "file:///d:/OLE_TEST/test.odt" ) );
-
- if ( *guid == OID_CalcServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "file:///d:/OLE_TEST/test.sxc" ) );
-
- if ( *guid == OID_CalcOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "file:///d:/OLE_TEST/test.ods" ) );
-
- if ( *guid == OID_DrawingServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "file:///d:/OLE_TEST/test.sxd" ) );
-
- if ( *guid == OID_DrawingOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "file:///d:/OLE_TEST/test.odg" ) );
-
- if ( *guid == OID_PresentationServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "file:///d:/OLE_TEST/test.sxi" ) );
-
- if ( *guid == OID_PresentationOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "file:///d:/OLE_TEST/test.odp" ) );
-
- if ( *guid == OID_MathServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "file:///d:/OLE_TEST/test.sxm" ) );
-
- if ( *guid == OID_MathOASISServer )
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM ( "file:///d:/OLE_TEST/test.odf" ) );
-
- return ::rtl::OUString();
-}
-
-/*
-::rtl::OUString getCurTypeNameFromGUID_Impl( const uno::Reference< lang::XMultiServiceFactory > xFactory, GUID* guid )
-{
- ::rtl::OUString aResult;
-
- const ::rtl::OUString aServiceName ( RTL_CONSTASCII_USTRINGPARAM ( "com.sun.star.document.FilterFactory" ) );
- uno::Reference < container::XNameAccess > xFilters = uno::Reference < io::XOutputStream > (
- xFactory->createInstance ( aServiceName ),
- uno::UNO_QUERY );
-
- if ( xFilters.is() )
- {
- ::rtl::OUString aFilterName = getFilterNameFromGUID_Impl( guid );
- if ( aFilterName.getLength() )
- {
- uno::Any aAnyProp = xFilters->getByName( aFilterName );
- uno::Sequence< beans::PropertyValue > aProperties;
- if ( aAnyProp >>= aProperties ) )
- {
- for ( sal_Int32 nInd = 0; nInd < aProperties.getLength; nInd++ )
- if ( aProperties[nInd].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "UIName" ) )
- {
- aProperties[nInd].Value >>= aResult;
- break;
- }
- }
- }
- }
-
- return aResult;
-}
-*/
-
-// Fix strange warnings about some
-// ATL::CAxHostWindow::QueryInterface|AddRef|Releae functions.
-// warning C4505: 'xxx' : unreferenced local function has been removed
-#if defined(_MSC_VER)
-#pragma warning(disable: 4505)
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/embed/iipaobj.cxx b/embedserv/source/embed/iipaobj.cxx
deleted file mode 100644
index d3d5ea77f..000000000
--- a/embedserv/source/embed/iipaobj.cxx
+++ /dev/null
@@ -1,133 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "iipaobj.hxx"
-#include "embeddoc.hxx"
-
-
-
-CIIAObj::CIIAObj(DocumentHolder* pDocHolder)
- : m_refCount( 0L ),
- m_rDocHolder( pDocHolder )
-{
-}
-
-
-CIIAObj::~CIIAObj()
-{
- return;
-}
-
-/* IUnknown methods */
-
-STDMETHODIMP CIIAObj::QueryInterface(REFIID riid, LPVOID FAR *ppv)
-{
- *ppv=NULL;
-
- if(IID_IUnknown==riid ||
- IID_IOleWindow==riid ||
- IID_IOleInPlaceActiveObject==riid)
- *ppv=this;
-
- //AddRef any interface we'll return.
- if (NULL!=*ppv)
- {
- ((LPUNKNOWN)*ppv)->AddRef();
- return NOERROR;
- }
-
- return ResultFromScode(E_NOINTERFACE);
-}
-
-
-STDMETHODIMP_(ULONG) CIIAObj::AddRef(void)
-{
- return osl_incrementInterlockedCount( &m_refCount);
-}
-
-STDMETHODIMP_(ULONG) CIIAObj::Release(void)
-{
- sal_Int32 nCount = osl_decrementInterlockedCount( &m_refCount);
- if ( nCount == 0 )
- delete this;
-
- return nCount;
-}
-
-/* IOleInPlaceActiveObject methods*/
-
-STDMETHODIMP CIIAObj::GetWindow(HWND *)
-{
- return NOERROR;
-}
-
-STDMETHODIMP CIIAObj::ContextSensitiveHelp(BOOL)
-{
- return NOERROR;
-}
-
-STDMETHODIMP CIIAObj::TranslateAccelerator(LPMSG)
-{
- return NOERROR;
-}
-
-STDMETHODIMP CIIAObj::OnFrameWindowActivate(BOOL)
-{
- return NOERROR;
-}
-
-STDMETHODIMP CIIAObj::OnDocWindowActivate(BOOL)
-{
- return NOERROR;
-}
-
-STDMETHODIMP CIIAObj::ResizeBorder(
- LPCRECT pRect,LPOLEINPLACEUIWINDOW,BOOL bFrame)
-{
- if(!bFrame) return NOERROR;
-
- if ( !m_rDocHolder.is() )
- return E_FAIL;
-
- return m_rDocHolder->SetContRects(pRect);
-}
-
-
-STDMETHODIMP CIIAObj::EnableModeless(BOOL)
-{
- return NOERROR;
-}
-
-// Fix strange warnings about some
-// ATL::CAxHostWindow::QueryInterface|AddRef|Releae functions.
-// warning C4505: 'xxx' : unreferenced local function has been removed
-#if defined(_MSC_VER)
-#pragma warning(disable: 4505)
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/embed/intercept.cxx b/embedserv/source/embed/intercept.cxx
deleted file mode 100644
index 02f575166..000000000
--- a/embedserv/source/embed/intercept.cxx
+++ /dev/null
@@ -1,592 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#include <cppuhelper/weak.hxx>
-
-#include <embeddoc.hxx>
-#include <docholder.hxx>
-#include <intercept.hxx>
-
-using namespace ::com::sun::star;
-
-
-
-#define IUL 6
-
-
-
-uno::Sequence< ::rtl::OUString > Interceptor::m_aInterceptedURL(IUL);
-
-
-
-
-struct equalOUString
-{
- bool operator()(
- const rtl::OUString& rKey1,
- const rtl::OUString& rKey2 ) const
- {
- return !!( rKey1 == rKey2 );
- }
-};
-
-
-struct hashOUString
-{
- size_t operator()( const rtl::OUString& rName ) const
- {
- return rName.hashCode();
- }
-};
-
-
-
-class StatusChangeListenerContainer
- : public ::cppu::OMultiTypeInterfaceContainerHelperVar<
-rtl::OUString,hashOUString,equalOUString>
-{
-public:
- StatusChangeListenerContainer( ::osl::Mutex& aMutex )
- : cppu::OMultiTypeInterfaceContainerHelperVar<
- rtl::OUString,hashOUString,equalOUString>(aMutex)
- {
- }
-};
-
-
-void SAL_CALL
-Interceptor::addEventListener(
- const uno::Reference<lang::XEventListener >& Listener )
- throw( uno::RuntimeException )
-{
- osl::MutexGuard aGuard( m_aMutex );
-
- if ( ! m_pDisposeEventListeners )
- m_pDisposeEventListeners =
- new cppu::OInterfaceContainerHelper( m_aMutex );
-
- m_pDisposeEventListeners->addInterface( Listener );
-}
-
-
-void SAL_CALL
-Interceptor::removeEventListener(
- const uno::Reference< lang::XEventListener >& Listener )
- throw( uno::RuntimeException )
-{
- osl::MutexGuard aGuard( m_aMutex );
-
- if ( m_pDisposeEventListeners )
- m_pDisposeEventListeners->removeInterface( Listener );
-}
-
-
-void SAL_CALL Interceptor::dispose()
- throw(::com::sun::star::uno::RuntimeException)
-{
- lang::EventObject aEvt;
- aEvt.Source = static_cast< frame::XDispatch* >( this );
-
- osl::MutexGuard aGuard(m_aMutex);
-
- if ( m_pDisposeEventListeners && m_pDisposeEventListeners->getLength() )
- m_pDisposeEventListeners->disposeAndClear( aEvt );
-
- if(m_pStatCL)
- m_pStatCL->disposeAndClear( aEvt );
-
- m_xSlaveDispatchProvider = 0;
- m_xMasterDispatchProvider = 0;
-}
-
-
-
-Interceptor::Interceptor(
- const ::rtl::Reference< EmbeddedDocumentInstanceAccess_Impl >& xOleAccess,
- DocumentHolder* pDocH,
- sal_Bool bLink )
- : m_xOleAccess( xOleAccess ),
- m_xDocHLocker( static_cast< ::cppu::OWeakObject* >( pDocH ) ),
- m_pDocH(pDocH),
- m_pStatCL(0),
- m_pDisposeEventListeners(0),
- m_bLink( bLink )
-{
- m_aInterceptedURL[0] = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(".uno:Save"));
- m_aInterceptedURL[1] = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(".uno:SaveAll"));
- m_aInterceptedURL[2] = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(".uno:CloseDoc"));
- m_aInterceptedURL[3] = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(".uno:CloseWin"));
- m_aInterceptedURL[4] = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(".uno:CloseFrame"));
- m_aInterceptedURL[5] = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM(".uno:SaveAs"));
-}
-
-
-Interceptor::~Interceptor()
-{
- if( m_pDisposeEventListeners )
- delete m_pDisposeEventListeners;
-
- if(m_pStatCL)
- delete m_pStatCL;
-
- DocumentHolder* pTmpDocH = NULL;
- uno::Reference< uno::XInterface > xLock;
- {
- osl::MutexGuard aGuard(m_aMutex);
- xLock = m_xDocHLocker.get();
- if ( xLock.is() )
- pTmpDocH = m_pDocH;
- }
-
- if ( pTmpDocH )
- pTmpDocH->ClearInterceptor();
-}
-
-void Interceptor::DisconnectDocHolder()
-{
- osl::MutexGuard aGuard(m_aMutex);
- m_xDocHLocker.clear();
- m_pDocH = NULL;
- m_xOleAccess = NULL;
-}
-
-//XDispatch
-void SAL_CALL
-Interceptor::dispatch(
- const util::URL& URL,
- const uno::Sequence<
- beans::PropertyValue >& Arguments )
- throw (uno::RuntimeException)
-{
- ::rtl::Reference< EmbeddedDocumentInstanceAccess_Impl > xOleAccess;
- {
- osl::MutexGuard aGuard(m_aMutex);
- xOleAccess = m_xOleAccess;
- }
-
- if ( xOleAccess.is() )
- {
- LockedEmbedDocument_Impl aDocLock = xOleAccess->GetEmbedDocument();
- if ( aDocLock.GetEmbedDocument() )
- {
- if( !m_bLink && URL.Complete == m_aInterceptedURL[0])
- aDocLock.GetEmbedDocument()->SaveObject();
- else if(!m_bLink
- && ( URL.Complete == m_aInterceptedURL[2] ||
- URL.Complete == m_aInterceptedURL[3] ||
- URL.Complete == m_aInterceptedURL[4] ) )
- aDocLock.GetEmbedDocument()->Close( 0 );
- else if ( URL.Complete == m_aInterceptedURL[5] )
- {
- uno::Sequence< beans::PropertyValue > aNewArgs = Arguments;
- sal_Int32 nInd = 0;
-
- while( nInd < aNewArgs.getLength() )
- {
- if ( aNewArgs[nInd].Name.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM( "SaveTo" ) ) )
- {
- aNewArgs[nInd].Value <<= sal_True;
- break;
- }
- nInd++;
- }
-
- if ( nInd == aNewArgs.getLength() )
- {
- aNewArgs.realloc( nInd + 1 );
- aNewArgs[nInd].Name = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "SaveTo" ));
- aNewArgs[nInd].Value <<= sal_True;
- }
-
- uno::Reference< frame::XDispatch > xDispatch = m_xSlaveDispatchProvider->queryDispatch(
- URL, ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM( "_self" )), 0 );
- if ( xDispatch.is() )
- xDispatch->dispatch( URL, aNewArgs );
- }
- }
- }
-}
-
-
-void Interceptor::generateFeatureStateEvent()
-{
- if( m_pStatCL )
- {
- DocumentHolder* pTmpDocH = NULL;
- uno::Reference< uno::XInterface > xLock;
- {
- osl::MutexGuard aGuard(m_aMutex);
- xLock = m_xDocHLocker.get();
- if ( xLock.is() )
- pTmpDocH = m_pDocH;
- }
-
- ::rtl::OUString aTitle;
- if ( pTmpDocH )
- aTitle = pTmpDocH->getTitle();
-
- for(int i = 0; i < IUL; ++i)
- {
- if( i == 1 || m_bLink && i != 5 )
- continue;
-
- cppu::OInterfaceContainerHelper* pICH =
- m_pStatCL->getContainer(m_aInterceptedURL[i]);
- uno::Sequence<uno::Reference<uno::XInterface> > aSeq;
- if(pICH)
- aSeq = pICH->getElements();
- if(!aSeq.getLength())
- continue;
-
- frame::FeatureStateEvent aStateEvent;
- aStateEvent.IsEnabled = sal_True;
- aStateEvent.Requery = sal_False;
- if(i == 0)
- {
-
- aStateEvent.FeatureURL.Complete = m_aInterceptedURL[0];
- aStateEvent.FeatureDescriptor = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("Update"));
- aStateEvent.State <<= (rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("($1) ")) +
- aTitle);
-
- }
- else if ( i == 5 )
- {
- aStateEvent.FeatureURL.Complete = m_aInterceptedURL[5];
- aStateEvent.FeatureDescriptor = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("SaveCopyTo"));
- aStateEvent.State <<= (rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("($3)")));
- }
- else
- {
- aStateEvent.FeatureURL.Complete = m_aInterceptedURL[i];
- aStateEvent.FeatureDescriptor = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("Close and Return"));
- aStateEvent.State <<= (rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("($2) ")) +
- aTitle);
-
- }
-
- for(sal_Int32 k = 0; k < aSeq.getLength(); ++k)
- {
- uno::Reference<frame::XStatusListener>
- Control(aSeq[k],uno::UNO_QUERY);
- if(Control.is())
- Control->statusChanged(aStateEvent);
-
- }
- }
- }
-}
-
-
-void SAL_CALL
-Interceptor::addStatusListener(
- const uno::Reference<
- frame::XStatusListener >& Control,
- const util::URL& URL )
- throw (
- uno::RuntimeException
- )
-{
- if(!Control.is())
- return;
-
- if( !m_bLink && URL.Complete == m_aInterceptedURL[0] )
- { // Save
- DocumentHolder* pTmpDocH = NULL;
- uno::Reference< uno::XInterface > xLock;
- {
- osl::MutexGuard aGuard(m_aMutex);
- xLock = m_xDocHLocker.get();
- if ( xLock.is() )
- pTmpDocH = m_pDocH;
- }
-
- ::rtl::OUString aTitle;
- if ( pTmpDocH )
- aTitle = pTmpDocH->getTitle();
-
- frame::FeatureStateEvent aStateEvent;
- aStateEvent.FeatureURL.Complete = m_aInterceptedURL[0];
- aStateEvent.FeatureDescriptor = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("Update"));
- aStateEvent.IsEnabled = sal_True;
- aStateEvent.Requery = sal_False;
- aStateEvent.State <<= (rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("($1) ")) +
- aTitle );
- Control->statusChanged(aStateEvent);
-
- {
- osl::MutexGuard aGuard(m_aMutex);
- if(!m_pStatCL)
- m_pStatCL =
- new StatusChangeListenerContainer(m_aMutex);
- }
-
- m_pStatCL->addInterface(URL.Complete,Control);
- return;
- }
-
- sal_Int32 i = 2;
- if ( !m_bLink
- && ( URL.Complete == m_aInterceptedURL[i] ||
- URL.Complete == m_aInterceptedURL[++i] ||
- URL.Complete == m_aInterceptedURL[++i] ) )
- { // Close and return
- DocumentHolder* pTmpDocH = NULL;
- uno::Reference< uno::XInterface > xLock;
- {
- osl::MutexGuard aGuard(m_aMutex);
- xLock = m_xDocHLocker.get();
- if ( xLock.is() )
- pTmpDocH = m_pDocH;
- }
-
- ::rtl::OUString aTitle;
- if ( pTmpDocH )
- aTitle = pTmpDocH->getTitle();
-
- frame::FeatureStateEvent aStateEvent;
- aStateEvent.FeatureURL.Complete = m_aInterceptedURL[i];
- aStateEvent.FeatureDescriptor = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("Close and Return"));
- aStateEvent.IsEnabled = sal_True;
- aStateEvent.Requery = sal_False;
- aStateEvent.State <<= (rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("($2) ")) +
- aTitle );
- Control->statusChanged(aStateEvent);
-
-
- {
- osl::MutexGuard aGuard(m_aMutex);
- if(!m_pStatCL)
- m_pStatCL =
- new StatusChangeListenerContainer(m_aMutex);
- }
-
- m_pStatCL->addInterface(URL.Complete,Control);
- return;
- }
-
- if(URL.Complete == m_aInterceptedURL[5])
- { // SaveAs
- frame::FeatureStateEvent aStateEvent;
- aStateEvent.FeatureURL.Complete = m_aInterceptedURL[5];
- aStateEvent.FeatureDescriptor = rtl::OUString(
- RTL_CONSTASCII_USTRINGPARAM("SaveCopyTo"));
- aStateEvent.IsEnabled = sal_True;
- aStateEvent.Requery = sal_False;
- aStateEvent.State <<= (rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("($3)")));
- Control->statusChanged(aStateEvent);
-
- {
- osl::MutexGuard aGuard(m_aMutex);
- if(!m_pStatCL)
- m_pStatCL =
- new StatusChangeListenerContainer(m_aMutex);
- }
-
- m_pStatCL->addInterface(URL.Complete,Control);
- return;
- }
-
-}
-
-
-void SAL_CALL
-Interceptor::removeStatusListener(
- const uno::Reference<
- frame::XStatusListener >& Control,
- const util::URL& URL )
- throw (
- uno::RuntimeException
- )
-{
- if(!(Control.is() && m_pStatCL))
- return;
- else {
- m_pStatCL->removeInterface(URL.Complete,Control);
- return;
- }
-}
-
-
-//XInterceptorInfo
-uno::Sequence< ::rtl::OUString >
-SAL_CALL
-Interceptor::getInterceptedURLs( )
- throw (
- uno::RuntimeException
- )
-{
- // now implemented as update
- if ( m_bLink )
- {
- uno::Sequence< ::rtl::OUString > aResult( 2 );
- aResult[0] = m_aInterceptedURL[1];
- aResult[1] = m_aInterceptedURL[5];
-
- return aResult;
- }
-
- return m_aInterceptedURL;
-}
-
-
-// XDispatchProvider
-
-uno::Reference< frame::XDispatch > SAL_CALL
-Interceptor::queryDispatch(
- const util::URL& URL,
- const ::rtl::OUString& TargetFrameName,
- sal_Int32 SearchFlags )
- throw (
- uno::RuntimeException
- )
-{
- osl::MutexGuard aGuard(m_aMutex);
- if( !m_bLink && URL.Complete == m_aInterceptedURL[0] )
- return (frame::XDispatch*)this;
- else if(URL.Complete == m_aInterceptedURL[1])
- return (frame::XDispatch*)0 ;
- else if( !m_bLink && URL.Complete == m_aInterceptedURL[2] )
- return (frame::XDispatch*)this;
- else if( !m_bLink && URL.Complete == m_aInterceptedURL[3] )
- return (frame::XDispatch*)this;
- else if( !m_bLink && URL.Complete == m_aInterceptedURL[4] )
- return (frame::XDispatch*)this;
- else if(URL.Complete == m_aInterceptedURL[5])
- return (frame::XDispatch*)this;
- else {
- if(m_xSlaveDispatchProvider.is())
- return m_xSlaveDispatchProvider->queryDispatch(
- URL,TargetFrameName,SearchFlags);
- else
- return uno::Reference<frame::XDispatch>(0);
- }
-}
-
-uno::Sequence< uno::Reference< frame::XDispatch > > SAL_CALL
-Interceptor::queryDispatches(
- const uno::Sequence<frame::DispatchDescriptor >& Requests )
- throw (
- uno::RuntimeException
- )
-{
- uno::Sequence< uno::Reference< frame::XDispatch > > aRet;
- osl::MutexGuard aGuard(m_aMutex);
- if(m_xSlaveDispatchProvider.is())
- aRet = m_xSlaveDispatchProvider->queryDispatches(Requests);
- else
- aRet.realloc(Requests.getLength());
-
- for(sal_Int32 i = 0; i < Requests.getLength(); ++i)
- if ( !m_bLink && m_aInterceptedURL[0] == Requests[i].FeatureURL.Complete )
- aRet[i] = (frame::XDispatch*) this;
- else if(m_aInterceptedURL[1] == Requests[i].FeatureURL.Complete)
- aRet[i] = (frame::XDispatch*) 0;
- else if( !m_bLink && m_aInterceptedURL[2] == Requests[i].FeatureURL.Complete )
- aRet[i] = (frame::XDispatch*) this;
- else if( !m_bLink && m_aInterceptedURL[3] == Requests[i].FeatureURL.Complete )
- aRet[i] = (frame::XDispatch*) this;
- else if( !m_bLink && m_aInterceptedURL[4] == Requests[i].FeatureURL.Complete )
- aRet[i] = (frame::XDispatch*) this;
- else if(m_aInterceptedURL[5] == Requests[i].FeatureURL.Complete)
- aRet[i] = (frame::XDispatch*) this;
-
- return aRet;
-}
-
-
-
-//XDispatchProviderInterceptor
-
-uno::Reference< frame::XDispatchProvider > SAL_CALL
-Interceptor::getSlaveDispatchProvider( )
- throw (
- uno::RuntimeException
- )
-{
- osl::MutexGuard aGuard(m_aMutex);
- return m_xSlaveDispatchProvider;
-}
-
-void SAL_CALL
-Interceptor::setSlaveDispatchProvider(
- const uno::Reference< frame::XDispatchProvider >& NewDispatchProvider )
- throw (
- uno::RuntimeException
- )
-{
- osl::MutexGuard aGuard(m_aMutex);
- m_xSlaveDispatchProvider = NewDispatchProvider;
-}
-
-
-uno::Reference< frame::XDispatchProvider > SAL_CALL
-Interceptor::getMasterDispatchProvider( )
- throw (
- uno::RuntimeException
- )
-{
- osl::MutexGuard aGuard(m_aMutex);
- return m_xMasterDispatchProvider;
-}
-
-
-void SAL_CALL
-Interceptor::setMasterDispatchProvider(
- const uno::Reference< frame::XDispatchProvider >& NewSupplier )
- throw (
- uno::RuntimeException
- )
-{
- osl::MutexGuard aGuard(m_aMutex);
- m_xMasterDispatchProvider = NewSupplier;
-}
-
-// Fix strange warnings about some
-// ATL::CAxHostWindow::QueryInterface|AddRef|Releae functions.
-// warning C4505: 'xxx' : unreferenced local function has been removed
-#if defined(_MSC_VER)
-#pragma warning(disable: 4505)
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/embed/makefile.mk b/embedserv/source/embed/makefile.mk
deleted file mode 100755
index a531858bc..000000000
--- a/embedserv/source/embed/makefile.mk
+++ /dev/null
@@ -1,79 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-
-PRJNAME=embedserv
-TARGET=emser
-
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(DISABLE_ATL)"==""
-
-LIBTARGET=NO
-USE_DEFFILE=NO
-
-INCPRE+= $(ATL_INCLUDE)
-
-# --- Files --------------------------------------------------------
-
-SLOFILES = \
- $(SLO)$/register.obj \
- $(SLO)$/servprov.obj \
- $(SLO)$/docholder.obj \
- $(SLO)$/ed_ipersiststr.obj \
- $(SLO)$/ed_idataobj.obj \
- $(SLO)$/ed_ioleobject.obj \
- $(SLO)$/ed_iinplace.obj \
- $(SLO)$/iipaobj.obj \
- $(SLO)$/guid.obj \
- $(SLO)$/esdll.obj \
- $(SLO)$/intercept.obj \
- $(SLO)$/syswinwrapper.obj \
- $(SLO)$/tracker.obj
-
-EXCEPTIONSFILES= \
- $(SLO)$/register.obj \
- $(SLO)$/docholder.obj \
- $(SLO)$/ed_ipersiststr.obj \
- $(SLO)$/ed_idataobj.obj \
- $(SLO)$/ed_iinplace.obj \
- $(SLO)$/ed_ioleobject.obj \
- $(SLO)$/iipaobj.obj \
- $(SLO)$/intercept.obj \
- $(SLO)$/syswinwrapper.obj \
- $(SLO)$/tracker.obj
-
-.ENDIF
-
-# --- Targets -------------------------------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/embedserv/source/embed/register.cxx b/embedserv/source/embed/register.cxx
deleted file mode 100644
index 841c9966f..000000000
--- a/embedserv/source/embed/register.cxx
+++ /dev/null
@@ -1,102 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#if defined(_MSC_VER) && (_MSC_VER > 1310)
-#pragma warning(disable : 4917 4555)
-#endif
-
-#ifdef __MINGW32__
-#define INITGUID
-#endif
-#include "servprov.hxx"
-#include <com/sun/star/lang/XSingleServiceFactory.hpp>
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <com/sun/star/registry/XRegistryKey.hpp>
-#include <com/sun/star/registry/InvalidRegistryException.hpp>
-#include <rtl/ustring.h>
-#include <cppuhelper/factory.hxx>
-
-
-using namespace ::com::sun::star;
-
-
-uno::Reference<uno::XInterface> SAL_CALL EmbedServer_createInstance(
- const uno::Reference<lang::XMultiServiceFactory> & xSMgr)
-throw (uno::Exception)
-{
- uno::Reference<uno::XInterface > xService = *new EmbedServer_Impl( xSMgr );
- return xService;
-}
-
-::rtl::OUString SAL_CALL EmbedServer_getImplementationName() throw()
-{
- return ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.ole.EmbedServer") );
-
-}
-
-uno::Sequence< ::rtl::OUString > SAL_CALL EmbedServer_getSupportedServiceNames() throw()
-{
- uno::Sequence< ::rtl::OUString > aServiceNames( 1 );
- aServiceNames[0] = ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( "com.sun.star.document.OleEmbeddedServerRegistration" ) );
- return aServiceNames;
-}
-
-extern "C" {
-
-SAL_DLLPUBLIC_EXPORT void * SAL_CALL component_getFactory( const sal_Char * pImplName, void * pServiceManager, void * /*pRegistryKey*/ )
-{
- void * pRet = 0;
-
- ::rtl::OUString aImplName( ::rtl::OUString::createFromAscii( pImplName ) );
- uno::Reference< lang::XSingleServiceFactory > xFactory;
-
- if(pServiceManager && aImplName.equals( EmbedServer_getImplementationName() ) )
- {
- xFactory= ::cppu::createOneInstanceFactory( reinterpret_cast< lang::XMultiServiceFactory*>(pServiceManager),
- EmbedServer_getImplementationName(),
- EmbedServer_createInstance,
- EmbedServer_getSupportedServiceNames() );
- }
-
- if (xFactory.is())
- {
- xFactory->acquire();
- pRet = xFactory.get();
- }
-
- return pRet;
-}
-
-} // extern "C"
-
-// Fix strange warnings about some
-// ATL::CAxHostWindow::QueryInterface|AddRef|Releae functions.
-// warning C4505: 'xxx' : unreferenced local function has been removed
-#if defined(_MSC_VER)
-#pragma warning(disable: 4505)
-#endif
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/embed/servprov.cxx b/embedserv/source/embed/servprov.cxx
deleted file mode 100644
index e21780903..000000000
--- a/embedserv/source/embed/servprov.cxx
+++ /dev/null
@@ -1,308 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#if defined(_MSC_VER) && (_MSC_VER > 1310)
-#pragma warning(disable : 4917 4555)
-#endif
-
-#include "stdafx.h"
-#include "servprov.hxx"
-#include "embeddoc.hxx"
-#include <com/sun/star/lang/XMultiServiceFactory.hpp>
-#include <cppuhelper/typeprovider.hxx>
-#include <osl/mutex.hxx>
-#include <osl/thread.h>
-
-using namespace com::sun::star;
-
-const GUID* guidList[ SUPPORTED_FACTORIES_NUM ] = {
- &OID_WriterTextServer,
- &OID_WriterOASISTextServer,
- &OID_CalcServer,
- &OID_CalcOASISServer,
- &OID_DrawingServer,
- &OID_DrawingOASISServer,
- &OID_PresentationServer,
- &OID_PresentationOASISServer,
- &OID_MathServer,
- &OID_MathOASISServer
-};
-
-class CurThreadData
-{
- public:
- CurThreadData();
- virtual ~CurThreadData();
-
- sal_Bool SAL_CALL setData(void *pData);
-
- void* SAL_CALL getData();
-
- protected:
- oslThreadKey m_hKey;
-};
-
-CurThreadData::CurThreadData()
-{
- m_hKey = osl_createThreadKey( (oslThreadKeyCallbackFunction)NULL );
-}
-
-CurThreadData::~CurThreadData()
-{
- osl_destroyThreadKey(m_hKey);
-}
-
-sal_Bool CurThreadData::setData(void *pData)
-{
- OSL_ENSURE( m_hKey, "No thread key!\n" );
- return (osl_setThreadKeyData(m_hKey, pData));
-}
-
-void *CurThreadData::getData()
-{
- OSL_ENSURE( m_hKey, "No thread key!\n" );
- return (osl_getThreadKeyData(m_hKey));
-}
-
-
-// CoInitializeEx *
-typedef DECLSPEC_IMPORT HRESULT (STDAPICALLTYPE *ptrCoInitEx)( LPVOID, DWORD);
-// CoInitialize *
-typedef DECLSPEC_IMPORT HRESULT (STDAPICALLTYPE *ptrCoInit)( LPVOID);
-
-void o2u_attachCurrentThread()
-{
- static CurThreadData oleThreadData;
-
- if ( oleThreadData.getData() != 0 )
- {
- HINSTANCE inst= LoadLibrary( _T("ole32.dll"));
- if( inst )
- {
- HRESULT hr;
- ptrCoInitEx initFuncEx= (ptrCoInitEx)GetProcAddress( inst, _T("CoInitializeEx"));
- if( initFuncEx)
- hr= initFuncEx( NULL, COINIT_MULTITHREADED);
- else
- {
- ptrCoInit initFunc= (ptrCoInit)GetProcAddress( inst,_T("CoInitialize"));
- if( initFunc)
- hr= initFunc( NULL);
- }
- }
- oleThreadData.setData((void*)sal_True);
- }
-}
-
-
-//===============================================================================
-// EmbedServer_Impl
-
-EmbedServer_Impl::EmbedServer_Impl( const uno::Reference<lang::XMultiServiceFactory>& xFactory):
- m_xFactory( xFactory)
-{
- for( int nInd = 0; nInd < SUPPORTED_FACTORIES_NUM; nInd++ )
- {
- m_pOLEFactories[nInd] = new EmbedProviderFactory_Impl( m_xFactory, guidList[nInd] );
- m_pOLEFactories[nInd]->registerClass();
- }
-}
-
-EmbedServer_Impl::~EmbedServer_Impl()
-{
- for( int nInd = 0; nInd < SUPPORTED_FACTORIES_NUM; nInd++ )
- {
- if ( m_pOLEFactories[nInd] )
- m_pOLEFactories[nInd]->deregisterClass();
- }
-}
-
-// XInterface --------------------------------------------------
-uno::Any SAL_CALL
-EmbedServer_Impl::queryInterface(
- const uno::Type& aType )
- throw(
- uno::RuntimeException
- )
-{
- uno::Any a=
- ::cppu::queryInterface(
- aType, static_cast<lang::XTypeProvider*>(this));
- if( a == uno::Any())
- return OWeakObject::queryInterface( aType);
- else
- return a;
-}
-
-void SAL_CALL EmbedServer_Impl::acquire( ) throw(uno::RuntimeException)
-{
- OWeakObject::acquire();
-}
-
-void SAL_CALL EmbedServer_Impl::release( ) throw (uno::RuntimeException)
-{
- OWeakObject::release();
-}
-
-
-// XTypeProvider --------------------------------------------------
-uno::Sequence< uno::Type > SAL_CALL
-EmbedServer_Impl::getTypes( )
- throw(
- uno::RuntimeException
- )
-{
- static ::cppu::OTypeCollection *pCollection = 0;
- if( ! pCollection )
- {
- ::osl::MutexGuard guard( ::osl::Mutex::getGlobalMutex() );
- if( ! pCollection )
- {
- static ::cppu::OTypeCollection collection(
- getCppuType(
- reinterpret_cast<uno::Reference< uno::XWeak>*>(0)),
- getCppuType(
- reinterpret_cast<
- uno::Reference< lang::XTypeProvider>*>(0)));
- pCollection = &collection;
- }
- }
- return (*pCollection).getTypes();
-}
-
-uno::Sequence< sal_Int8 > SAL_CALL EmbedServer_Impl::getImplementationId() throw(uno::RuntimeException)
-{
- static ::cppu::OImplementationId *pId = 0;
- if( ! pId )
- {
- ::osl::MutexGuard guard( ::osl::Mutex::getGlobalMutex() );
- if( ! pId )
- {
- static ::cppu::OImplementationId id( sal_False );
- pId = &id;
- }
- }
- return (*pId).getImplementationId();
-}
-
-//===============================================================================
-// EmbedProviderFactory_Impl
-
-EmbedProviderFactory_Impl::EmbedProviderFactory_Impl(const uno::Reference<lang::XMultiServiceFactory>& xFactory, const GUID* pGuid)
- : m_refCount( 0L )
- , m_xFactory( xFactory )
- , m_guid( *pGuid )
-{
-}
-
-EmbedProviderFactory_Impl::~EmbedProviderFactory_Impl()
-{
-}
-
-sal_Bool EmbedProviderFactory_Impl::registerClass()
-{
- HRESULT hresult;
-
- o2u_attachCurrentThread();
-
- hresult = CoRegisterClassObject(
- m_guid,
- this,
- CLSCTX_LOCAL_SERVER,
- REGCLS_MULTIPLEUSE,
- &m_factoryHandle);
-
- return (hresult == NOERROR);
-}
-
-sal_Bool EmbedProviderFactory_Impl::deregisterClass()
-{
- HRESULT hresult = CoRevokeClassObject( m_factoryHandle );
-
- return (hresult == NOERROR);
-}
-
-STDMETHODIMP EmbedProviderFactory_Impl::QueryInterface(REFIID riid, void FAR* FAR* ppv)
-{
- if(IsEqualIID(riid, IID_IUnknown))
- {
- AddRef();
- *ppv = (IUnknown*) (IClassFactory*) this;
- return NOERROR;
- }
- else if (IsEqualIID(riid, IID_IClassFactory))
- {
- AddRef();
- *ppv = (IClassFactory*) this;
- return NOERROR;
- }
-
- *ppv = NULL;
- return ResultFromScode(E_NOINTERFACE);
-}
-
-STDMETHODIMP_(ULONG) EmbedProviderFactory_Impl::AddRef()
-{
- return osl_incrementInterlockedCount( &m_refCount);
-}
-
-STDMETHODIMP_(ULONG) EmbedProviderFactory_Impl::Release()
-{
- ::osl::MutexGuard aGuard( ::osl::Mutex::getGlobalMutex());
- sal_Int32 nCount = --m_refCount;
- if ( nCount == 0 )
- {
- delete this;
- }
-
- return nCount;
-}
-
-STDMETHODIMP EmbedProviderFactory_Impl::CreateInstance(IUnknown FAR* punkOuter,
- REFIID riid,
- void FAR* FAR* ppv)
-{
- punkOuter = NULL;
-
- IUnknown* pEmbedDocument = (IUnknown*)(IPersistStorage*)( new EmbedDocument_Impl( m_xFactory, &m_guid ) );
-
- return pEmbedDocument->QueryInterface( riid, ppv );
-}
-
-STDMETHODIMP EmbedProviderFactory_Impl::LockServer( int /*fLock*/ )
-{
- return NOERROR;
-}
-
-// Fix strange warnings about some
-// ATL::CAxHostWindow::QueryInterface|AddRef|Releae functions.
-// warning C4505: 'xxx' : unreferenced local function has been removed
-#if defined(_MSC_VER)
-#pragma warning(disable: 4505)
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/embed/stdafx.cpp b/embedserv/source/embed/stdafx.cpp
deleted file mode 100644
index efb58b5d7..000000000
--- a/embedserv/source/embed/stdafx.cpp
+++ /dev/null
@@ -1,16 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-// stdafx1.cpp : source file that includes just the standard includes
-// stdafx1.pch will be the pre-compiled header
-// stdafx1.obj will contain the pre-compiled type information
-
-
-#include "stdafx2.h"
-
-#ifdef _ATL_STATIC_REGISTRY
-#include <statreg.h>
-#include <statreg.cpp>
-#endif
-
-#include <atlimpl.cpp>
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/embed/syswinwrapper.cxx b/embedserv/source/embed/syswinwrapper.cxx
deleted file mode 100644
index c247617d9..000000000
--- a/embedserv/source/embed/syswinwrapper.cxx
+++ /dev/null
@@ -1,480 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#if defined(_MSC_VER) && (_MSC_VER > 1310)
-#pragma warning(disable : 4917 4555)
-#endif
-
-#include "docholder.hxx"
-#include "syswinwrapper.hxx"
-
-/*
- * CWindow::CWindow
- * CWindow::~CWindow
- *
- * Constructor Parameters:
- * hInst HINSTANCE of the task owning us.
- */
-
-
-using namespace winwrap;
-
-
-#define HWWL_STRUCTURE 0
-
-//Notification codes for WM_COMMAND messages
-#define HWN_BORDERDOUBLECLICKED 1
-#define CBHATCHWNDEXTRA (sizeof(LONG))
-#define SZCLASSHATCHWIN TEXT("hatchwin")
-#define SendCommand(hWnd, wID, wCode, hControl) \
- SendMessage(hWnd, WM_COMMAND, MAKEWPARAM(wID, wCode) \
- , (LPARAM)hControl)
-
-
-typedef CHatchWin *PCHatchWin;
-
-
-void DrawShading(LPRECT prc, HDC hDC, UINT cWidth);
-
-
-
-winwrap::CWindow::CWindow(HINSTANCE hInst)
-{
- m_hInst=hInst;
- m_hWnd=NULL;
- return;
-}
-
-winwrap::CWindow::~CWindow(void)
-{
- if (IsWindow(m_hWnd))
- DestroyWindow(m_hWnd);
-
- return;
-}
-
-
-
-/*
- * CWindow::Window
- *
- * Purpose:
- * Returns the window handle associated with this object.
- *
- * Return Value:
- * HWND Window handle for this object
- */
-
-HWND winwrap::CWindow::Window(void)
-{
- return m_hWnd;
-}
-
-
-
-/*
- * CWindow::Instance
- *
- * Purpose:
- * Returns the instance handle associated with this object.
- *
- * Return Value:
- * HINSTANCE Instance handle of the module stored here.
- */
-
-HINSTANCE winwrap::CWindow::Instance(void)
-{
- return m_hInst;
-}
-
-
-
-
-
-//Hatch pattern brush bits
-static WORD g_wHatchBmp[]={0x11, 0x22, 0x44, 0x88, 0x11, 0x22, 0x44, 0x88};
-
-// void DrawShading(LPRECT, HDC, UINT);
-
-
-/*
- * HatchWindowRegister
- *
- * Purpose:
- * Registers the hatch window class for use with CHatchWin.
- *
- * Parameters:
- * hInst HINSTANCE under which to register.
- *
- * Return Value:
- * BOOL TRUE if successful, FALSE otherwise.
- */
-
-BOOL winwrap::HatchWindowRegister(HINSTANCE hInst)
-{
- WNDCLASS wc;
-
- //Must have CS_DBLCLKS for border!
- wc.style = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
- wc.hInstance = hInst;
- wc.cbClsExtra = 0;
- wc.lpfnWndProc = HatchWndProc;
- wc.cbWndExtra = CBHATCHWNDEXTRA;
- wc.hIcon = NULL;
- wc.hCursor = LoadCursor(NULL, IDC_ARROW);
- wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
- wc.lpszMenuName = NULL;
- wc.lpszClassName = SZCLASSHATCHWIN;
-
- return RegisterClass(&wc);
- return FALSE;
-}
-
-
-
-
-/*
- * CHatchWin:CHatchWin
- * CHatchWin::~CHatchWin
- *
- * Constructor Parameters:
- * hInst HINSTANCE of the application we're in.
- */
-
-CHatchWin::CHatchWin(HINSTANCE hInst,const DocumentHolder* pDocHolder)
- : CWindow(hInst),
- m_aTracker()
-{
- m_hWnd=NULL;
- m_hWndKid=NULL;
- m_hWndAssociate=NULL;
- m_uID=0;
-
- m_dBorderOrg=GetProfileInt(TEXT("windows")
- , TEXT("OleInPlaceBorderWidth")
- , HATCHWIN_BORDERWIDTHDEFAULT);
-
- m_dBorder=m_dBorderOrg;
- SetRect(&m_rcPos, 0, 0, 0, 0);
- SetRect(&m_rcClip, 0, 0, 0, 0);
-
- m_pDocHolder = pDocHolder;
- return;
-}
-
-
-CHatchWin::~CHatchWin(void)
-{
- /*
- * Chances are this was already destroyed when a document
- * was destroyed.
- */
- if (NULL!=m_hWnd && IsWindow(m_hWnd))
- DestroyWindow(m_hWnd);
-
- return;
-}
-
-
-
-/*
- * CHatchWin::Init
- *
- * Purpose:
- * Instantiates a hatch window within a given parent with a
- * default rectangle. This is not initially visible.
- *
- * Parameters:
- * hWndParent HWND of the parent of this window
- * uID UINT identifier for this window (send in
- * notifications to associate window).
- * hWndAssoc HWND of the initial associate.
- *
- * Return Value:
- * BOOL TRUE if the function succeeded, FALSE otherwise.
- */
-
-BOOL CHatchWin::Init(HWND hWndParent, UINT uID, HWND hWndAssoc)
-{
- m_hWndParent = hWndParent;
- m_hWnd=CreateWindowEx(
- WS_EX_NOPARENTNOTIFY, SZCLASSHATCHWIN
- , SZCLASSHATCHWIN, WS_CHILD | WS_CLIPSIBLINGS
- | WS_CLIPCHILDREN, 0, 0, 100, 100, hWndParent, (HMENU)uID
- , m_hInst, this);
-
- m_uID=uID;
- m_hWndAssociate=hWndAssoc;
-
- return (NULL!=m_hWnd);
-}
-
-
-void CHatchWin::SetTrans()
-{
- HRGN hrgn = CreateRectRgn(0,0,0,0);
- SetWindowRgn(m_hWnd,hrgn,true);
-}
-
-/*
- * CHatchWin::HwndAssociateSet
- * CHatchWin::HwndAssociateGet
- *
- * Purpose:
- * Sets (Set) or retrieves (Get) the associate window of the
- * hatch window.
- *
- * Parameters: (Set only)
- * hWndAssoc HWND to set as the associate.
- *
- * Return Value:
- * HWND Previous (Set) or current (Get) associate
- * window.
- */
-
-HWND CHatchWin::HwndAssociateSet(HWND hWndAssoc)
-{
- HWND hWndT=m_hWndAssociate;
-
- m_hWndAssociate=hWndAssoc;
- return hWndT;
-}
-
-
-HWND CHatchWin::HwndAssociateGet(void)
-{
- return m_hWndAssociate;
-}
-
-
-/*
- * CHatchWin::RectsSet
- *
- * Purpose:
- * Changes the size and position of the hatch window and the child
- * window within it using a position rectangle for the child and
- * a clipping rectangle for the hatch window and child. The hatch
- * window occupies prcPos expanded by the hatch border and clipped
- * by prcClip. The child window is fit to prcPos to give the
- * proper scaling, but it clipped to the hatch window which
- * therefore clips it to prcClip without affecting the scaling.
- *
- * Parameters:
- * prcPos LPRECT providing the position rectangle.
- * prcClip LPRECT providing the clipping rectangle.
- *
- * Return Value:
- * None
- */
-
-void CHatchWin::RectsSet(LPRECT prcPos, LPRECT prcClip)
-{
- RECT rc;
- RECT rcPos;
-
- m_rcPos=*prcPos;
- m_rcClip=*prcClip;
-
- //Calculate the rectangle for the hatch window, then clip it.
- rcPos=*prcPos;
- InflateRect(&rcPos, m_dBorder, m_dBorder);
- IntersectRect(&rc, &rcPos, prcClip);
-
- SetWindowPos(m_hWnd, NULL, rc.left, rc.top, rc.right-rc.left
- , rc.bottom-rc.top, SWP_NOZORDER | SWP_NOACTIVATE);
-
- /*
- * Set the rectangle of the child window to be at m_dBorder
- * from the top and left but with the same size as prcPos
- * contains. The hatch window will clip it.
- */
-// SetWindowPos(m_hWndKid, NULL, rcPos.left-rc.left+m_dBorder
-// , rcPos.top-rc.top+m_dBorder, prcPos->right-prcPos->left
-// , prcPos->bottom-prcPos->top, SWP_NOZORDER | SWP_NOACTIVATE);
-
- RECT newRC;
- GetClientRect(m_hWnd,&newRC);
- m_aTracker = Tracker(
- &newRC,
- Tracker::hatchInside |
- Tracker::hatchedBorder |
- Tracker::resizeInside
- );
-
- return;
-}
-
-
-
-/*
- * CHatchWin::ChildSet
- *
- * Purpose:
- * Assigns a child window to this hatch window.
- *
- * Parameters:
- * hWndKid HWND of the child window.
- *
- * Return Value:
- * None
- */
-
-void CHatchWin::ChildSet(HWND hWndKid)
-{
- m_hWndKid=hWndKid;
-
- if (NULL!=hWndKid)
- {
- SetParent(hWndKid, m_hWnd);
-
- //Insure this is visible when the hatch window becomes visible.
- ShowWindow(hWndKid, SW_SHOW);
- }
-
- return;
-}
-
-
-
-/*
- * CHatchWin::ShowHatch
- *
- * Purpose:
- * Turns hatching on and off; turning the hatching off changes
- * the size of the window to be exactly that of the child, leaving
- * everything else the same. The result is that we don't have
- * to turn off drawing because our own WM_PAINT will never be
- * called.
- *
- * Parameters:
- * fHatch BOOL indicating to show (TRUE) or hide (FALSE)
- the hatching.
- *
- * Return Value:
- * None
- */
-
-void CHatchWin::ShowHatch(BOOL fHatch)
-{
- /*
- * All we have to do is set the border to zero and
- * call SetRects again with the last rectangles the
- * child sent to us.
- */
- m_dBorder=fHatch ? m_dBorderOrg : 0;
- RectsSet(&m_rcPos, &m_rcClip);
- return;
-}
-
-
-
-/*
- * HatchWndProc
- *
- * Purpose:
- * Standard window procedure for the Hatch Window
- */
-
-LRESULT APIENTRY winwrap::HatchWndProc(
- HWND hWnd, UINT iMsg
- , WPARAM wParam, LPARAM lParam)
-{
- PCHatchWin phw;
- HDC hDC;
- PAINTSTRUCT ps;
-
- phw=(PCHatchWin)GetWindowLong(hWnd, HWWL_STRUCTURE);
- POINT ptMouse;
-
- switch (iMsg)
- {
- case WM_CREATE:
- phw=(PCHatchWin)((LPCREATESTRUCT)lParam)->lpCreateParams;
- SetWindowLong(hWnd, HWWL_STRUCTURE, (LONG)phw);
- break;
- case WM_PAINT:
- hDC=BeginPaint(hWnd,&ps);
- //Always draw the hatching.
- phw->m_aTracker.Draw(hDC);
- EndPaint(hWnd,&ps);
- break;
- case WM_LBUTTONDOWN:
- GetCursorPos(&ptMouse);
- ScreenToClient(hWnd,&ptMouse);
-
- // track in case we have to
- if(phw->m_aTracker.Track(hWnd,ptMouse,FALSE,GetParent(hWnd)))
- {
- RECT aRect = phw->m_aTracker.m_rect;
- TransformRect(&aRect,hWnd,GetParent(hWnd));
- phw->m_pDocHolder->OnPosRectChanged(&aRect);
- }
- break;
- case WM_LBUTTONUP:
- case WM_MOUSEMOVE:
- GetCursorPos(&ptMouse);
- ScreenToClient(hWnd,&ptMouse);
- phw->m_aTracker.SetCursor(hWnd,HTCLIENT);
- break;
- case WM_SETFOCUS:
- //We need this since the container will SetFocus to us.
- if (NULL!=phw->m_hWndKid)
- SetFocus(phw->m_hWndKid);
-
- break;
- case WM_LBUTTONDBLCLK:
- /*
- * If the double click was within m_dBorder of an
- * edge, send the HWN_BORDERDOUBLECLICKED notification.
- *
- * Because we're always sized just larger than our child
- * window by the border width, we can only *get* this
- * message when the mouse is on the border. So we can
- * just send the notification.
- */
- if (NULL!=phw->m_hWndAssociate)
- {
- SendCommand(phw->m_hWndAssociate, phw->m_uID
- , HWN_BORDERDOUBLECLICKED, hWnd);
- }
-
- break;
- default:
- return DefWindowProc(hWnd, iMsg, wParam, lParam);
- }
-
- return 0L;
-}
-
-// Fix strange warnings about some
-// ATL::CAxHostWindow::QueryInterface|AddRef|Releae functions.
-// warning C4505: 'xxx' : unreferenced local function has been removed
-#if defined(_MSC_VER)
-#pragma warning(disable: 4505)
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/embed/tracker.cxx b/embedserv/source/embed/tracker.cxx
deleted file mode 100644
index 4d7e7408a..000000000
--- a/embedserv/source/embed/tracker.cxx
+++ /dev/null
@@ -1,841 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-#if defined(_MSC_VER) && (_MSC_VER > 1310)
-#pragma warning(disable : 4917 4555)
-#endif
-
-#include "stdafx.h"
-#include <stddef.h>
-#include "syswinwrapper.hxx"
-
-
-HCURSOR _afxCursors[10] = { 0, };
-HBRUSH _afxHalftoneBrush = 0;
-
-
-// the struct below is used to determine the qualities of a particular handle
-struct AFX_HANDLEINFO
-{
- size_t nOffsetX; // offset within RECT for X coordinate
- size_t nOffsetY; // offset within RECT for Y coordinate
- int nCenterX; // adjust X by Width()/2 * this number
- int nCenterY; // adjust Y by Height()/2 * this number
- int nHandleX; // adjust X by handle size * this number
- int nHandleY; // adjust Y by handle size * this number
- int nInvertX; // handle converts to this when X inverted
- int nInvertY; // handle converts to this when Y inverted
-};
-
-// this array describes all 8 handles (clock-wise)
-const AFX_HANDLEINFO _afxHandleInfo[] =
-{
- // corner handles (top-left, top-right, bottom-right, bottom-left
- { offsetof(RECT, left), offsetof(RECT, top), 0, 0, 0, 0, 1, 3 },
- { offsetof(RECT, right), offsetof(RECT, top), 0, 0, -1, 0, 0, 2 },
- { offsetof(RECT, right), offsetof(RECT, bottom), 0, 0, -1, -1, 3, 1 },
- { offsetof(RECT, left), offsetof(RECT, bottom), 0, 0, 0, -1, 2, 0 },
-
- // side handles (top, right, bottom, left)
- { offsetof(RECT, left), offsetof(RECT, top), 1, 0, 0, 0, 4, 6 },
- { offsetof(RECT, right), offsetof(RECT, top), 0, 1, -1, 0, 7, 5 },
- { offsetof(RECT, left), offsetof(RECT, bottom), 1, 0, 0, -1, 6, 4 },
- { offsetof(RECT, left), offsetof(RECT, top), 0, 1, 0, 0, 5, 7 }
-};
-
-// the struct below gives us information on the layout of a RECT struct and
-// the relationship between its members
-struct AFX_RECTINFO
-{
- size_t nOffsetAcross; // offset of opposite point (ie. left->right)
- int nSignAcross; // sign relative to that point (ie. add/subtract)
-};
-
-// this array is indexed by the offset of the RECT member / sizeof(int)
-const AFX_RECTINFO _afxRectInfo[] =
-{
- { offsetof(RECT, right), +1 },
- { offsetof(RECT, bottom), +1 },
- { offsetof(RECT, left), -1 },
- { offsetof(RECT, top), -1 },
-};
-
-
-HBRUSH HalftoneBrush()
-{
- if (_afxHalftoneBrush == NULL)
- {
- WORD grayPattern[8];
- for (int i = 0; i < 8; i++)
- grayPattern[i] = (WORD)(0x5555 << (i & 1));
- HBITMAP grayBitmap = CreateBitmap(8, 8, 1, 1, &grayPattern);
- if (grayBitmap != NULL)
- {
- _afxHalftoneBrush = CreatePatternBrush(grayBitmap);
- DeleteObject(grayBitmap);
- }
- }
- return _afxHalftoneBrush;
-}
-
-
-
-void DrawDragRect(
- HDC hDC,LPRECT lpRect,SIZE size,
- LPRECT lpRectLast,SIZE sizeLast,
- HBRUSH hBrush = NULL,HBRUSH hBrushLast = NULL)
-{
- // first, determine the update region and select it
- HRGN rgnNew;
- HRGN rgnOutside,rgnInside;
- rgnOutside = CreateRectRgnIndirect(lpRect);
- RECT rect = *lpRect;
- InflateRect(&rect,-size.cx, -size.cy);
- IntersectRect(&rect,&rect,lpRect);
- rgnInside = CreateRectRgnIndirect(&rect);
- rgnNew = CreateRectRgn(0, 0, 0, 0);
- CombineRgn(rgnNew,rgnOutside,rgnInside,RGN_XOR);
-
- HBRUSH hBrushOld = NULL;
- if (hBrush == NULL)
- hBrush = HalftoneBrush();
- if (hBrushLast == NULL)
- hBrushLast = hBrush;
-
- HRGN rgnLast(NULL);
- HRGN rgnUpdate(NULL);
- if (lpRectLast != NULL)
- {
- // find difference between new region and old region
- rgnLast = CreateRectRgn(0, 0, 0, 0);
- SetRectRgn(
- rgnOutside,
- lpRectLast->left,
- lpRectLast->top,
- lpRectLast->right,
- lpRectLast->bottom);
- rect = *lpRectLast;
- InflateRect(&rect,-sizeLast.cx, -sizeLast.cy);
- IntersectRect(&rect,&rect, lpRectLast);
- SetRectRgn(rgnInside,rect.left,rect.top,rect.right,rect.bottom);
- CombineRgn(rgnLast,rgnOutside,rgnInside, RGN_XOR);
-
-// // only diff them if brushes are the same
- if (hBrush == hBrushLast)
- {
- rgnUpdate = CreateRectRgn(0, 0, 0, 0);
- CombineRgn(rgnUpdate,rgnLast,rgnNew, RGN_XOR);
- }
- }
- if (hBrush != hBrushLast && lpRectLast != NULL)
- {
- // brushes are different -- erase old region first
- SelectClipRgn(hDC,rgnLast);
- GetClipBox(hDC,&rect);
- hBrushOld = (HBRUSH)SelectObject(hDC,(HGDIOBJ)hBrushLast);
- PatBlt(hDC,rect.left,rect.top,(rect.right-rect.left),(rect.bottom-rect.top),PATINVERT);
-
- SelectObject(hDC,(HGDIOBJ)hBrushOld);
- hBrushOld = NULL;
- }
-
- // draw into the update/new region
- SelectClipRgn(hDC,rgnUpdate);
-
- GetClipBox(hDC,&rect);
- hBrushOld = (HBRUSH) SelectObject(hDC,(HGDIOBJ) hBrush);
- PatBlt(hDC,rect.left, rect.top,(rect.right-rect.left),(rect.bottom-rect.top), PATINVERT);
-
- // cleanup DC
- if (hBrushOld != NULL)
- SelectObject(hDC,(HGDIOBJ)hBrushOld);
- SelectClipRgn(hDC,NULL);
-}
-
-
-void winwrap::TransformRect(LPRECT rect,HWND pWnd,HWND pWndClipTo)
-{
- POINT pt;
- pt.x = rect->left;pt.y = rect->top;
- ClientToScreen(pWnd,&pt);
- ScreenToClient(pWndClipTo,&pt);
- rect->left = pt.x; rect->top = pt.y;
-
- pt.x = rect->right;pt.y = rect->bottom;
- ClientToScreen(pWnd,&pt);
- ScreenToClient(pWndClipTo,&pt);
- rect->right = pt.x; rect->bottom = pt.y;
-}
-
-
-void NormalizeRect(LPRECT rp)
-{
- if(rp->left > rp->right) {
- UINT tmp = rp->left;
- rp->left = rp->right;
- rp->right = tmp;
- }
-
- if(rp->top > rp->bottom) {
- UINT tmp = rp->top;
- rp->top = rp->bottom;
- rp->bottom = tmp;
- }
-}
-
-
-using namespace winwrap;
-
-
-Tracker::Tracker()
-{
-}
-
-
-Tracker::Tracker(LPCRECT lpSrcRect, UINT nStyle)
-{
- Construct();
- CopyRect(&m_rect,lpSrcRect);
- m_nStyle = nStyle;
-}
-
-HBRUSH _afxHatchBrush = 0;
-HPEN _afxBlackDottedPen = 0;
-int _afxHandleSize = 0;
-
-
-void Tracker::Construct()
-{
- static BOOL bInitialized = false;
- if (!bInitialized)
- {
- if (_afxHatchBrush == NULL)
- {
- // create the hatch pattern + bitmap
- WORD hatchPattern[8];
- WORD wPattern = 0x1111;
- for (int i = 0; i < 4; i++)
- {
- hatchPattern[i] = wPattern;
- hatchPattern[i+4] = wPattern;
- wPattern <<= 1;
- }
- HBITMAP hatchBitmap = CreateBitmap(8, 8, 1, 1,&hatchPattern);
-
- // create black hatched brush
- _afxHatchBrush = CreatePatternBrush(hatchBitmap);
- DeleteObject(hatchBitmap);
- }
-
- if (_afxBlackDottedPen == NULL)
- {
- // create black dotted pen
- _afxBlackDottedPen = CreatePen(PS_DOT, 0, RGB(0, 0, 0));
- }
-
- // get default handle size from Windows profile setting
- static const TCHAR szWindows[] = TEXT("windows");
- static const TCHAR szInplaceBorderWidth[] =
- TEXT("oleinplaceborderwidth");
- _afxHandleSize = GetProfileInt(szWindows, szInplaceBorderWidth, 4);
- bInitialized = TRUE;
-
- _afxCursors[0] = _afxCursors[2] = LoadCursor(0,IDC_SIZENWSE);
- _afxCursors[4] = _afxCursors[6] = LoadCursor(0,IDC_SIZENS);
- _afxCursors[1] = _afxCursors[3] = LoadCursor(0,IDC_SIZENESW);
- _afxCursors[5] = _afxCursors[7] = LoadCursor(0,IDC_SIZEWE);
- _afxCursors[8] = LoadCursor(0,IDC_SIZEALL);
- }
-
- m_nStyle = 0;
- m_nHandleSize = _afxHandleSize;
- m_sizeMin.cy = m_sizeMin.cx = m_nHandleSize*2;
-
- SetRectEmpty(&m_rectLast);
- m_sizeLast.cx = m_sizeLast.cy = 0;
- m_bErase = FALSE;
- m_bFinalErase = FALSE;
-}
-
-Tracker::~Tracker()
-{
-}
-
-
-int Tracker::HitTest(POINT point) const
-{
- TrackerHit hitResult = hitNothing;
-
- RECT rectTrue;
- GetTrueRect(&rectTrue);
- NormalizeRect(&rectTrue);
- if (PtInRect(&rectTrue,point))
- {
- if ((m_nStyle & (resizeInside|resizeOutside)) != 0)
- hitResult = (TrackerHit)HitTestHandles(point);
- else
- hitResult = hitMiddle;
- }
- return hitResult;
-}
-
-
-BOOL Tracker::SetCursor(HWND pWnd, UINT nHitTest) const
-{
- // trackers should only be in client area
- if (nHitTest != HTCLIENT)
- return FALSE;
-
- // convert cursor position to client co-ordinates
- POINT point;
- GetCursorPos(&point);
- ScreenToClient(pWnd,&point);
-
- // do hittest and normalize hit
- int nHandle = HitTestHandles(point);
- if (nHandle < 0)
- return FALSE;
-
- // need to normalize the hittest such that we get proper cursors
- nHandle = NormalizeHit(nHandle);
-
- // handle special case of hitting area between handles
- // (logically the same -- handled as a move -- but different cursor)
- if (nHandle == hitMiddle && !PtInRect(&m_rect,point))
- {
- // only for trackers with hatchedBorder (ie. in-place resizing)
- if (m_nStyle & hatchedBorder)
- nHandle = (TrackerHit)9;
- }
-
- ::SetCursor(_afxCursors[nHandle]);
- return TRUE;
-}
-
-
-
-BOOL Tracker::Track(HWND hWnd,POINT point,BOOL bAllowInvert,
- HWND hWndClipTo)
-{
- // perform hit testing on the handles
- int nHandle = HitTestHandles(point);
- if (nHandle < 0)
- {
- // didn't hit a handle, so just return FALSE
- return FALSE;
- }
-
- // otherwise, call helper function to do the tracking
- m_bAllowInvert = bAllowInvert;
- SetCursor(hWnd,nHandle);
- return TrackHandle(nHandle, hWnd, point, hWndClipTo);
-}
-
-
-BOOL Tracker::TrackHandle(int nHandle,HWND hWnd,POINT point,HWND hWndClipTo)
-{
- // don't handle if capture already set
- if (GetCapture() != NULL)
- return FALSE;
-
- // save original width & height in pixels
- int nWidth = m_rect.right - m_rect.left;
- int nHeight = m_rect.bottom - m_rect.top;
-
- // set capture to the window which received this message
- SetCapture(hWnd);
- UpdateWindow(hWnd);
- if (hWndClipTo != NULL)
- UpdateWindow(hWndClipTo);
- RECT rectSave = m_rect;
-
- // find out what x/y coords we are supposed to modify
- int *px, *py;
- int xDiff, yDiff;
- GetModifyPointers(nHandle, &px, &py, &xDiff, &yDiff);
- xDiff = point.x - xDiff;
- yDiff = point.y - yDiff;
-
- // get DC for drawing
- HDC hDrawDC;
- if (hWndClipTo != NULL)
- {
- // clip to arbitrary window by using adjusted Window DC
- hDrawDC = GetDCEx(hWndClipTo,NULL, DCX_CACHE);
- }
- else
- {
- // otherwise, just use normal DC
- hDrawDC = GetDC(hWnd);
- }
-
- RECT rectOld;
- BOOL bMoved = FALSE;
-
- // get messages until capture lost or cancelled/accepted
- for (;;)
- {
- MSG msg;
- GetMessage(&msg, NULL, 0, 0);
-
- if (GetCapture() != hWnd)
- break;
-
- switch (msg.message)
- {
- // handle movement/accept messages
- case WM_LBUTTONUP:
- case WM_MOUSEMOVE:
- rectOld = m_rect;
- // handle resize cases (and part of move)
- if (px != NULL)
- *px = (int)(short)LOWORD(msg.lParam) - xDiff;
- if (py != NULL)
- *py = (int)(short)HIWORD(msg.lParam) - yDiff;
-
- // handle move case
- if (nHandle == hitMiddle)
- {
- m_rect.right = m_rect.left + nWidth;
- m_rect.bottom = m_rect.top + nHeight;
- }
- // allow caller to adjust the rectangle if necessary
- AdjustRect(nHandle,&m_rect);
-
- // only redraw and callback if the rect actually changed!
- m_bFinalErase = (msg.message == WM_LBUTTONUP);
- if (!EqualRect(&rectOld,&m_rect) || m_bFinalErase)
- {
- if (bMoved)
- {
- m_bErase = TRUE;
- DrawTrackerRect(&rectOld,hWndClipTo,hDrawDC,hWnd);
- }
- OnChangedRect(rectOld);
- if (msg.message != WM_LBUTTONUP)
- bMoved = TRUE;
- }
- if (m_bFinalErase)
- goto ExitLoop;
-
- if (!EqualRect(&rectOld,&m_rect))
- {
- m_bErase = FALSE;
- DrawTrackerRect(&m_rect,hWndClipTo,hDrawDC,hWnd);
- }
- break;
-
- // handle cancel messages
- case WM_KEYDOWN:
- if (msg.wParam != VK_ESCAPE)
- break;
- case WM_RBUTTONDOWN:
- if (bMoved)
- {
- m_bErase = m_bFinalErase = TRUE;
- DrawTrackerRect(&m_rect, hWndClipTo, hDrawDC, hWnd);
- }
- m_rect = rectSave;
- goto ExitLoop;
-
- // just dispatch rest of the messages
- default:
- DispatchMessage(&msg);
- break;
- }
- }
-
- ExitLoop:
- if (hWndClipTo != NULL)
- ReleaseDC(hWndClipTo,hDrawDC);
- else
- ReleaseDC(hWnd,hDrawDC);
- ReleaseCapture();
-
- // restore rect in case bMoved is still FALSE
- if (!bMoved)
- m_rect = rectSave;
- m_bFinalErase = FALSE;
- m_bErase = FALSE;
-
- // return TRUE only if rect has changed
- return !EqualRect(&rectSave,&m_rect);
-}
-
-
-void Tracker::OnChangedRect(const RECT& /*rectOld*/)
-{
-}
-
-
-void Tracker::AdjustRect(int nHandle, LPRECT)
-{
- if(nHandle == hitMiddle)
- return;
-
- // convert the handle into locations within m_rect
- int *px, *py;
- GetModifyPointers(nHandle, &px, &py, NULL, NULL);
-
- // enforce minimum width
- int nNewWidth = m_rect.right - m_rect.left;
- int nAbsWidth = m_bAllowInvert ? abs(nNewWidth) : nNewWidth;
- if (px != NULL && nAbsWidth < m_sizeMin.cx)
- {
- nNewWidth = nAbsWidth != 0 ? nNewWidth / nAbsWidth : 1;
- const AFX_RECTINFO* pRectInfo =
- &_afxRectInfo[(int*)px - (int*)&m_rect];
- *px = *(int*)((BYTE*)&m_rect + pRectInfo->nOffsetAcross) +
- nNewWidth * m_sizeMin.cx * -pRectInfo->nSignAcross;
- }
-
- // enforce minimum height
- int nNewHeight = m_rect.bottom - m_rect.top;
- int nAbsHeight = m_bAllowInvert ? abs(nNewHeight) : nNewHeight;
- if (py != NULL && nAbsHeight < m_sizeMin.cy)
- {
- nNewHeight = nAbsHeight != 0 ? nNewHeight / nAbsHeight : 1;
- const AFX_RECTINFO* pRectInfo =
- &_afxRectInfo[(int*)py - (int*)&m_rect];
- *py = *(int*)((BYTE*)&m_rect + pRectInfo->nOffsetAcross) +
- nNewHeight * m_sizeMin.cy * -pRectInfo->nSignAcross;
- }
-}
-
-
-void Tracker::DrawTrackerRect(
- LPRECT lpRect,HWND pWndClipTo,HDC pDC,HWND pWnd)
-{
- // first, normalize the rectangle for drawing
- RECT rect = *lpRect;
- NormalizeRect(&rect);
-
- // convert to client coordinates
- if (pWndClipTo != NULL)
- TransformRect(&rect,pWnd,pWndClipTo);
-
- SIZE size;
- size.cx = 0; size.cy = 0;
- if (!m_bFinalErase)
- {
- // otherwise, size depends on the style
- if (m_nStyle & hatchedBorder)
- {
- size.cx = size.cy = max(1,GetHandleSize(&rect)-1);
- InflateRect(&rect,size.cx,size.cy);
- }
- else
- {
- size.cx = 1; // CX_BORDER;
- size.cy = 1; // CY_BORDER;
- }
- }
-
- // and draw it
- if (m_bFinalErase || !m_bErase)
- DrawDragRect(pDC,&rect,size,&m_rectLast,m_sizeLast);
-
- // remember last rectangles
- m_rectLast = rect;
- m_sizeLast = size;
-}
-
-
-void Tracker::Draw(HDC hDC) const
-{
- // set initial DC state
- SetMapMode(hDC,MM_TEXT);
- SetViewportOrgEx(hDC,0, 0,NULL);
- SetWindowOrgEx(hDC,0, 0,NULL);
-
- // get normalized rectangle
- RECT rect = m_rect;
- NormalizeRect(&rect);
-
- HPEN pOldPen = NULL;
- HBRUSH pOldBrush = NULL;
- HGDIOBJ pTemp;
- int nOldROP;
-
- // draw lines
- if ((m_nStyle & (dottedLine|solidLine)) != 0)
- {
- if (m_nStyle & dottedLine)
- pOldPen = (HPEN)SelectObject(hDC,_afxBlackDottedPen);
- else
- pOldPen = (HPEN)SelectObject(hDC,(HGDIOBJ)BLACK_PEN);
- pOldBrush = (HBRUSH)SelectObject(hDC,(HGDIOBJ)NULL_BRUSH);
- nOldROP = SetROP2(hDC,R2_COPYPEN);
- InflateRect(&rect,+1, +1); // borders are one pixel outside
- Rectangle(hDC,rect.left, rect.top, rect.right, rect.bottom);
- SetROP2(hDC,nOldROP);
- }
-
- // if hatchBrush is going to be used, need to unrealize it
- if ((m_nStyle & (hatchInside|hatchedBorder)) != 0)
- UnrealizeObject((HGDIOBJ)_afxHatchBrush);
-
- // hatch inside
- if ((m_nStyle & hatchInside) != 0)
- {
- pTemp = SelectObject(hDC,(HGDIOBJ)NULL_PEN);
- if (pOldPen == NULL)
- pOldPen = (HPEN)pTemp;
- pTemp = SelectObject(hDC,(HGDIOBJ)_afxHatchBrush);
- if (pOldBrush == NULL)
- pOldBrush = (HBRUSH)pTemp;
- SetBkMode(hDC,TRANSPARENT);
- nOldROP = SetROP2(hDC,R2_MASKNOTPEN);
- Rectangle(hDC,rect.left+1, rect.top+1, rect.right, rect.bottom);
- SetROP2(hDC,nOldROP);
- }
-
- // draw hatched border
- if ((m_nStyle & hatchedBorder) != 0)
- {
- pTemp = SelectObject(hDC,(HGDIOBJ)_afxHatchBrush);
- if (pOldBrush == NULL)
- pOldBrush = (HBRUSH)pTemp;
- SetBkMode(hDC,OPAQUE);
- RECT rectTrue;
- GetTrueRect(&rectTrue);
- PatBlt(hDC,rectTrue.left, rectTrue.top, rectTrue.right-rectTrue.left,
- rect.top-rectTrue.top, 0x000F0001 /* Pn */);
- PatBlt(hDC,rectTrue.left, rect.bottom,
- rectTrue.right-rectTrue.left,
- rectTrue.bottom-rect.bottom, 0x000F0001 /* Pn */);
- PatBlt(hDC,rectTrue.left, rect.top, rect.left-rectTrue.left,
- rect.bottom-rect.top, 0x000F0001 /* Pn */);
- PatBlt(hDC,rect.right, rect.top, rectTrue.right-rect.right,
- rect.bottom-rect.top, 0x000F0001 /* Pn */);
- }
-
- // draw resize handles
- if ((m_nStyle & (resizeInside|resizeOutside)) != 0)
- {
- UINT mask = GetHandleMask();
- HBRUSH hbrush = CreateSolidBrush(RGB(0,0,0));
- for (int i = 0; i < 8; ++i)
- {
- if (mask & (1<<i))
- {
- GetHandleRect((TrackerHit)i, &rect);
- // FillSolidRect(hDC,rect, RGB(0, 0, 0));
- FillRect(hDC,&rect,hbrush);
- }
- }
- DeleteObject(hbrush);
- }
-
- // cleanup pDC state
- if (pOldPen != NULL)
- SelectObject(hDC,pOldPen);
- if (pOldBrush != NULL)
- SelectObject(hDC,pOldBrush);
- RestoreDC(hDC,-1);
-}
-
-
-void Tracker::GetHandleRect(int nHandle,RECT* pHandleRect) const
-{
- // get normalized rectangle of the tracker
- RECT rectT = m_rect;
- NormalizeRect(&rectT);
- if ((m_nStyle & (solidLine|dottedLine)) != 0)
- InflateRect(&rectT,+1, +1);
-
- // since the rectangle itself was normalized, we also have to invert the
- // resize handles.
- nHandle = NormalizeHit(nHandle);
-
- // handle case of resize handles outside the tracker
- int size = GetHandleSize();
- if (m_nStyle & resizeOutside)
- InflateRect(&rectT,size-1, size-1);
-
- // calculate position of the resize handle
- int nWidth = rectT.right - rectT.left;
- int nHeight = rectT.bottom - rectT.top;
- RECT rect;
- const AFX_HANDLEINFO* pHandleInfo = &_afxHandleInfo[nHandle];
- rect.left = *(int*)((BYTE*)&rectT + pHandleInfo->nOffsetX);
- rect.top = *(int*)((BYTE*)&rectT + pHandleInfo->nOffsetY);
- rect.left += size * pHandleInfo->nHandleX;
- rect.top += size * pHandleInfo->nHandleY;
- rect.left += pHandleInfo->nCenterX * (nWidth - size) / 2;
- rect.top += pHandleInfo->nCenterY * (nHeight - size) / 2;
- rect.right = rect.left + size;
- rect.bottom = rect.top + size;
-
- *pHandleRect = rect;
-}
-
-
-int Tracker::GetHandleSize(LPRECT lpRect) const
-{
- if (lpRect == NULL)
- lpRect = (LPRECT)&m_rect;
-
- int size = m_nHandleSize;
- if (!(m_nStyle & resizeOutside))
- {
- // make sure size is small enough for the size of the rect
- int sizeMax = min(abs(lpRect->right - lpRect->left),
- abs(lpRect->bottom - lpRect->top));
- if (size * 2 > sizeMax)
- size = sizeMax / 2;
- }
- return size;
-}
-
-
-UINT Tracker::GetHandleMask() const
-{
- UINT mask = 0x0F; // always have 4 corner handles
- int size = m_nHandleSize*3;
- if (abs(m_rect.right - m_rect.left) - size > 4)
- mask |= 0x50;
- if (abs(m_rect.bottom - m_rect.top) - size > 4)
- mask |= 0xA0;
- return mask;
-}
-
-
-void Tracker::GetTrueRect(LPRECT lpTrueRect) const
-{
- RECT rect = m_rect;
- NormalizeRect(&rect);
- int nInflateBy = 0;
- if ((m_nStyle & (resizeOutside|hatchedBorder)) != 0)
- nInflateBy += GetHandleSize() - 1;
- if ((m_nStyle & (solidLine|dottedLine)) != 0)
- ++nInflateBy;
- InflateRect(&rect,nInflateBy, nInflateBy);
- *lpTrueRect = rect;
-}
-
-
-int Tracker::NormalizeHit(int nHandle) const
-{
- if (nHandle == hitMiddle || nHandle == hitNothing)
- return nHandle;
- const AFX_HANDLEINFO* pHandleInfo = &_afxHandleInfo[nHandle];
- if (m_rect.right - m_rect.left < 0)
- {
- nHandle = (TrackerHit)pHandleInfo->nInvertX;
- pHandleInfo = &_afxHandleInfo[nHandle];
- }
- if (m_rect.bottom - m_rect.top < 0)
- nHandle = (TrackerHit)pHandleInfo->nInvertY;
- return nHandle;
-}
-
-
-int Tracker::HitTestHandles(POINT point) const
-{
- RECT rect;
- UINT mask = GetHandleMask();
-
- // see if hit anywhere inside the tracker
- GetTrueRect(&rect);
- if (!PtInRect(&rect,point))
- return hitNothing; // totally missed
-
- // see if we hit a handle
- for (int i = 0; i < 8; ++i)
- {
- if (mask & (1<<i))
- {
- GetHandleRect((TrackerHit)i, &rect);
- if (PtInRect(&rect,point))
- return (TrackerHit)i;
- }
- }
-
- // last of all, check for non-hit outside of object, between resize handles
- if ((m_nStyle & hatchedBorder) == 0)
- {
- RECT rect = m_rect;
- NormalizeRect(&rect);
- if ((m_nStyle & dottedLine|solidLine) != 0)
- InflateRect(&rect,+1, +1);
- if (!PtInRect(&rect,point))
- return hitNothing; // must have been between resize handles
- }
- return hitMiddle; // no handle hit, but hit object (or object border)
-}
-
-
-
-void Tracker::GetModifyPointers(
- int nHandle, int** ppx, int** ppy, int* px, int* py)
-{
- if (nHandle == hitMiddle)
- nHandle = hitTopLeft; // same as hitting top-left
-
- *ppx = NULL;
- *ppy = NULL;
-
- // fill in the part of the rect that this handle modifies
- // (Note: handles that map to themselves along a given axis when that
- // axis is inverted don't modify the value on that axis)
-
- const AFX_HANDLEINFO* pHandleInfo = &_afxHandleInfo[nHandle];
- if (pHandleInfo->nInvertX != nHandle)
- {
- *ppx = (int*)((BYTE*)&m_rect + pHandleInfo->nOffsetX);
- if (px != NULL)
- *px = **ppx;
- }
- else
- {
- // middle handle on X axis
- if (px != NULL)
- *px = m_rect.left + (m_rect.left-m_rect.right) / 2;
- }
- if (pHandleInfo->nInvertY != nHandle)
- {
- *ppy = (int*)((BYTE*)&m_rect + pHandleInfo->nOffsetY);
- if (py != NULL)
- *py = **ppy;
- }
- else
- {
- // middle handle on Y axis
- if (py != NULL)
- *py = m_rect.top + (m_rect.top-m_rect.bottom) / 2;
- }
-}
-
-// Fix strange warnings about some
-// ATL::CAxHostWindow::QueryInterface|AddRef|Releae functions.
-// warning C4505: 'xxx' : unreferenced local function has been removed
-#if defined(_MSC_VER)
-#pragma warning(disable: 4505)
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/embed/xwin.cxx b/embedserv/source/embed/xwin.cxx
deleted file mode 100644
index 38840a7d7..000000000
--- a/embedserv/source/embed/xwin.cxx
+++ /dev/null
@@ -1,349 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "xwin.hxx"
-#include <com/sun/star/lang/SystemDependent.hpp>
-
-
-using namespace ::com::sun::star;
-
-
-ContainerWindowWrapper::ContainerWindowWrapper(HWND aHwnd)
- : m_aHwnd(aHwnd),
- m_pDisposeEventListeners(0)
-{
-}
-
-ContainerWindowWrapper::~ContainerWindowWrapper()
-{
- delete m_pDisposeEventListeners;
-}
-
-
-void SAL_CALL
-ContainerWindowWrapper::dispose(
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
- cppu::OInterfaceContainerHelper *pDisposeEventListeners(0);
-
- {
- osl::MutexGuard aGuard(m_aMutex);
- pDisposeEventListeners = m_pDisposeEventListeners;
- }
-
- if(pDisposeEventListeners) {
- lang::EventObject aEvt;
- aEvt.Source = static_cast< awt::XWindow* >(this);
-
- pDisposeEventListeners->disposeAndClear(aEvt);
- }
-}
-
-
-void SAL_CALL
-ContainerWindowWrapper::addEventListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::lang::XEventListener >& Listener
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
- cppu::OInterfaceContainerHelper *pDisposeEventListeners(0);
- {
- osl::MutexGuard aGuard(m_aMutex);
- pDisposeEventListeners = m_pDisposeEventListeners;
- }
-
- if(! pDisposeEventListeners)
- {
- osl::MutexGuard aGuard(m_aMutex);
- pDisposeEventListeners = m_pDisposeEventListeners =
- new cppu::OInterfaceContainerHelper(m_aMutex);
- }
-
- pDisposeEventListeners->addInterface( Listener );
-}
-
-
-void SAL_CALL
-ContainerWindowWrapper::removeEventListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::lang::XEventListener >& Listener
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
- cppu::OInterfaceContainerHelper *pDisposeEventListeners(0);
- {
- osl::MutexGuard aGuard(m_aMutex);
- pDisposeEventListeners = m_pDisposeEventListeners;
- }
- if( pDisposeEventListeners )
- pDisposeEventListeners->removeInterface( Listener );
-}
-
-
-
-// XSystemDependentWindowPeer
-
-::com::sun::star::uno::Any SAL_CALL
-ContainerWindowWrapper::getWindowHandle(
- const ::com::sun::star::uno::Sequence< sal_Int8 >& ProcessId,
- sal_Int16 SystemType
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
- if(SystemType == lang::SystemDependent::SYSTEM_WIN32 ||
- SystemType == lang::SystemDependent::SYSTEM_WIN16)
- {
- uno::Any aAny;
- sal_Int32 nHwnd = sal_Int32(m_aHwnd);
- aAny <<= nHwnd;
- return aAny;
- }
- else
- return uno::Any();
-}
-
-
-
-void SAL_CALL
-ContainerWindowWrapper::setPosSize(
- sal_Int32 X,
- sal_Int32 Y,
- sal_Int32 Width,
- sal_Int32 Height,
- sal_Int16 Flags
-)
- throw (
- ::com::sun::star::uno::RuntimeException)
-{
-
-}
-
-::com::sun::star::awt::Rectangle SAL_CALL
-ContainerWindowWrapper::getPosSize(
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
- return awt::Rectangle();
-}
-
-
-void SAL_CALL
-ContainerWindowWrapper::setVisible(
- sal_Bool Visible
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-
-void SAL_CALL
-ContainerWindowWrapper::setEnable(
- sal_Bool Enable
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-void SAL_CALL
-ContainerWindowWrapper::setFocus(
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-void SAL_CALL
-ContainerWindowWrapper::addWindowListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XWindowListener >& xListener
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-void SAL_CALL
-ContainerWindowWrapper::removeWindowListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XWindowListener >& xListener
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-
-void SAL_CALL
-ContainerWindowWrapper::addFocusListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XFocusListener >& xListener
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-
-void SAL_CALL
-ContainerWindowWrapper::removeFocusListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XFocusListener >& xListener
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-void SAL_CALL
-ContainerWindowWrapper::addKeyListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XKeyListener >& xListener
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-void SAL_CALL
-ContainerWindowWrapper::removeKeyListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XKeyListener >& xListener
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-
-void SAL_CALL
-ContainerWindowWrapper::addMouseListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XMouseListener >& xListener
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-
-void SAL_CALL
-ContainerWindowWrapper::removeMouseListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XMouseListener >& xListener
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-
-void SAL_CALL
-ContainerWindowWrapper::addMouseMotionListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XMouseMotionListener >& xListener
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-void SAL_CALL
-ContainerWindowWrapper::removeMouseMotionListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XMouseMotionListener >& xListener
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-void SAL_CALL
-ContainerWindowWrapper::addPaintListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XPaintListener >& xListener
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-void SAL_CALL
-ContainerWindowWrapper::removePaintListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XPaintListener >& xListener
-)
- throw (
- ::com::sun::star::uno::RuntimeException
- )
-{
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inc/common.h b/embedserv/source/inc/common.h
deleted file mode 100644
index e0d43c146..000000000
--- a/embedserv/source/inc/common.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _COMMON_H_
-#define _COMMON_H_
-
-#include "stdafx.h"
-#include <initguid.h>
-
-#include <rtl/ustring.hxx>
-#include <osl/interlck.h>
-#include <comphelper/classids.hxx>
-
-#include "embservconst.h"
-
-namespace com { namespace sun { namespace star {
- namespace lang {
- class XMultiServiceFactory;
- }
- namespace frame {
- class XModel;
- }
- namespace beans {
- struct PropertyValue;
- }
- namespace io {
- class XInputStream;
- class XOutputStream;
- }
-} } }
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inc/docholder.hxx b/embedserv/source/inc/docholder.hxx
deleted file mode 100644
index 3e51c7b6c..000000000
--- a/embedserv/source/inc/docholder.hxx
+++ /dev/null
@@ -1,292 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _DOCHOLDER_HXX_
-#define _DOCHOLDER_HXX_
-
-#include "common.h"
-#include <com/sun/star/frame/XLayoutManager.hpp>
-#include <com/sun/star/util/XCloseListener.hpp>
-#include <com/sun/star/frame/XTerminateListener.hpp>
-#include <com/sun/star/util/XModifyListener.hpp>
-#include <com/sun/star/frame/XFrame.hpp>
-#include <com/sun/star/frame/XDispatchProviderInterceptor.hpp>
-#include <cppuhelper/implbase4.hxx>
-
-#include <rtl/ref.hxx>
-
-#include "embeddocaccess.hxx"
-
-class EmbedDocument_Impl;
-class Interceptor;
-class CIIAObj;
-
-namespace winwrap {
- class CHatchWin;
-}
-
-
-class DocumentHolder :
- public ::cppu::WeakImplHelper4<
- ::com::sun::star::util::XCloseListener,
- ::com::sun::star::frame::XTerminateListener,
- ::com::sun::star::util::XModifyListener,
- ::com::sun::star::ui::XDockingAreaAcceptor>
-{
-private:
- ::osl::Mutex m_aMutex;
-
- BOOL m_bAllowInPlace;
- LPOLEINPLACESITE m_pIOleIPSite;
- LPOLEINPLACEFRAME m_pIOleIPFrame;
- LPOLEINPLACEUIWINDOW m_pIOleIPUIWindow;
- winwrap::CHatchWin* m_pCHatchWin;
-
- ::rtl::Reference< EmbeddedDocumentInstanceAccess_Impl > m_xOleAccess;
-
- ::com::sun::star::uno::WeakReference< ::com::sun::star::frame::XDispatchProviderInterceptor > m_xInterceptorLocker;
- Interceptor* m_pInterceptor;
-
- ::com::sun::star::uno::Reference<
- ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
-
- RECT m_aBorder;
-
- // contains top level system window data
- bool m_bOnDeactivate;
- HWND m_hWndxWinParent;
- HWND m_hWndxWinCont;
- HMENU m_nMenuHandle;
- HMENU m_nMenuShared;
- HOLEMENU m_nOLEMenu;
- com::sun::star::uno::Reference<
- com::sun::star::awt::XWindow> m_xEditWindow;
-
- com::sun::star::uno::Reference<
- com::sun::star::awt::XWindow> m_xContainerWindow;
-
- ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XModel > m_xDocument;
- sal_Int16 m_nMacroExecMode;
-
- ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XLayoutManager> m_xLayoutManager;
-
-
- ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XFrame > m_xFrame;
-
- ::rtl::OUString m_aContainerName,m_aDocumentNamePart,m_aFilterName;
-
- CComPtr< IDispatch > m_pIDispatch;
-
- sal_Bool m_bLink;
-
-
- ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XFrame > DocumentFrame();
-
-
- ::com::sun::star::uno::Reference< ::com::sun::star::frame::XDispatchProviderInterceptor >
- CreateNewInterceptor();
-
- void ClearInterceptorInternally();
-
- void LoadDocInFrame( sal_Bool bPluginMode );
-public:
-
-
- // the instance to which we belong
- static HINSTANCE m_hInstance;
-
- HWND GetEditWindowParentHandle() const
- {
- return m_hWndxWinParent;
- }
-
- void SetContainerWindowHandle(HWND hWndxWinCont)
- {
- m_hWndxWinCont = hWndxWinCont;
- }
-
- DocumentHolder(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::lang::XMultiServiceFactory >& xFactory,
- const ::rtl::Reference< EmbeddedDocumentInstanceAccess_Impl >& xOleAccess );
-
- ~DocumentHolder();
-
- // Methods for inplace activation
-
-
- BOOL isActive() const;
- void DisableInplaceActivation(BOOL);
- HRESULT InPlaceActivate(LPOLECLIENTSITE,BOOL);
- void InPlaceDeactivate(void);
- HRESULT UIActivate();
- void UIDeactivate();
- BOOL InPlaceMenuCreate(void);
- BOOL InPlaceMenuDestroy(void);
-
- void OpenIntoWindow(void);
- BOOL Undo(void);
-
- // further methods
-
- void SetDocument(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XModel >& xDoc,
- sal_Bool bLink = sal_False
- );
-
- sal_Bool ExecuteSuspendCloseFrame();
-
- void DisconnectFrameDocument( sal_Bool bComplete = sal_False );
- void CloseDocument();
- void CloseFrame();
- void ClearInterceptor();
- void FreeOffice();
-
- void resizeWin( const SIZEL& rNewSize );
-
- void setTitle(const rtl::OUString& aDocumentName);
- rtl::OUString getTitle() const { return m_aDocumentNamePart; }
-
- void setContainerName(const rtl::OUString& aContainerName);
- rtl::OUString getContainerName() const { return m_aContainerName; }
- void OnPosRectChanged(LPRECT lpRect) const;
- void show();
-
- sal_Bool HasFrame() { return m_xFrame.is(); }
- sal_Bool IsLink() { return m_bLink; }
-
- /** hides the document window, even in case of an external container
- * side managed window.
- */
-
- void hide();
-
- IDispatch* GetIDispatch();
-
- HRESULT GetDocumentBorder( RECT *pRect );
- // HRESULT SetVisArea( const RECTL *pRect );
- // HRESULT GetVisArea( RECTL *pRect );
- HRESULT SetExtent( const SIZEL *pSize );
- HRESULT GetExtent( SIZEL *pSize );
- // sets extension on the hatchwindow
- HRESULT SetContRects(LPCRECT pRect);
- HRESULT SetObjectRects(LPCRECT aRect, LPCRECT aClip);
-
- HWND GetTopMostWinHandle() const
- {
- return m_hWndxWinParent;
- }
-
- ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XModel >
- GetDocument() const
- {
- return m_xDocument;
- }
-
- // XEventListener
- virtual void SAL_CALL
- disposing( const com::sun::star::lang::EventObject& aSource )
- throw( ::com::sun::star::uno::RuntimeException );
-
- // XCloseListener
- virtual void SAL_CALL
- queryClosing(
- const com::sun::star::lang::EventObject& aSource,
- sal_Bool bGetsOwnership
- )
- throw(
- ::com::sun::star::util::CloseVetoException
- );
-
- virtual void SAL_CALL
- notifyClosing(
- const com::sun::star::lang::EventObject& aSource
- )
- throw( ::com::sun::star::uno::RuntimeException );
-
- // XTerminateListener
- virtual void SAL_CALL
- queryTermination(
- const com::sun::star::lang::EventObject& aSource
- )
- throw(
- ::com::sun::star::frame::TerminationVetoException
- );
-
- virtual void SAL_CALL
- notifyTermination(
- const com::sun::star::lang::EventObject& aSource
- )
- throw( ::com::sun::star::uno::RuntimeException );
-
-
- // XModifyListener
- virtual void SAL_CALL
- modified(
- const ::com::sun::star::lang::EventObject& aEvent
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- // XDockingAreaAcceptor
-
- virtual ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XWindow> SAL_CALL
- getContainerWindow(
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual sal_Bool SAL_CALL
- requestDockingAreaSpace(
- const ::com::sun::star::awt::Rectangle& RequestedSpace
- )
- throw(
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- setDockingAreaSpace(
- const ::com::sun::star::awt::Rectangle& BorderSpace
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inc/embeddoc.hxx b/embedserv/source/inc/embeddoc.hxx
deleted file mode 100644
index 61f2aedba..000000000
--- a/embedserv/source/inc/embeddoc.hxx
+++ /dev/null
@@ -1,211 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _EMBEDDOC_HXX_
-#define _EMBEDDOC_HXX_
-#if defined(_MSC_VER) && (_MSC_VER >= 1300)
-#undef _DEBUG
-#endif
-#if defined(_MSC_VER) && (_MSC_VER > 1310)
-#pragma warning(disable : 4917 4555)
-#endif
-
-#include "common.h"
-#include <oleidl.h>
-#include <objidl.h>
-
-#include <boost/unordered_map.hpp>
-#include <com/sun/star/uno/Reference.h>
-#include <com/sun/star/uno/SEQUENCE.h>
-
-#include "embeddocaccess.hxx"
-#include "docholder.hxx"
-
-typedef ::boost::unordered_map< DWORD, IAdviseSink* > AdviseSinkHashMap;
-typedef ::boost::unordered_map< DWORD, IAdviseSink* >::iterator AdviseSinkHashMapIterator;
-
-class GDIMetaFile;
-class CIIAObj;
-
-class EmbedDocument_Impl
- : public IPersistStorage,
- public IDataObject,
- public IOleObject,
- public IOleInPlaceObject,
- public IPersistFile,
- public IDispatch,
- public IExternalConnection
-{
-protected:
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >
- fillArgsForLoading_Impl( ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream > xStream,
- DWORD nStreamMode,
- LPCOLESTR pFilePath = NULL );
- ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >
- fillArgsForStoring_Impl( ::com::sun::star::uno::Reference< ::com::sun::star::io::XOutputStream > xStream );
-
- HRESULT SaveTo_Impl( IStorage* pStg );
-
- sal_uInt64 getMetaFileHandle_Impl( sal_Bool isEnhMeta );
-
-public:
- EmbedDocument_Impl( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& smgr,
- const GUID* guid );
- virtual ~EmbedDocument_Impl();
-
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(REFIID riid, LPVOID FAR * ppvObj);
- STDMETHOD_(ULONG, AddRef)();
- STDMETHOD_(ULONG, Release)();
-
- /* IPersistMethod */
- STDMETHOD(GetClassID)(CLSID *pClassID);
-
- /* IPersistStorage methods */
- STDMETHOD(IsDirty) ();
- STDMETHOD(InitNew) ( IStorage *pStg );
- STDMETHOD(Load) ( IStorage* pStr );
- STDMETHOD(Save) ( IStorage *pStgSave, BOOL fSameAsLoad );
- STDMETHOD(SaveCompleted) ( IStorage *pStgNew );
- STDMETHOD(HandsOffStorage) (void);
-
- /* IDataObject methods */
- STDMETHOD(GetData) ( FORMATETC * pFormatetc, STGMEDIUM * pMedium );
- STDMETHOD(GetDataHere) ( FORMATETC * pFormatetc, STGMEDIUM * pMedium );
- STDMETHOD(QueryGetData) ( FORMATETC * pFormatetc );
- STDMETHOD(GetCanonicalFormatEtc) ( FORMATETC * pFormatetcIn, FORMATETC * pFormatetcOut );
- STDMETHOD(SetData) ( FORMATETC * pFormatetc, STGMEDIUM * pMedium, BOOL fRelease );
- STDMETHOD(EnumFormatEtc) ( DWORD dwDirection, IEnumFORMATETC ** ppFormatetc );
- STDMETHOD(DAdvise) ( FORMATETC * pFormatetc, DWORD advf, IAdviseSink * pAdvSink, DWORD * pdwConnection );
- STDMETHOD(DUnadvise) ( DWORD dwConnection );
- STDMETHOD(EnumDAdvise) ( IEnumSTATDATA ** ppenumAdvise );
-
- /* IOleObject methods */
- STDMETHOD(SetClientSite) ( IOleClientSite* pSite );
- STDMETHOD(GetClientSite) ( IOleClientSite** pSite );
- STDMETHOD(SetHostNames) ( LPCOLESTR szContainerApp, LPCOLESTR szContainerObj );
- STDMETHOD(Close) ( DWORD dwSaveOption);
- STDMETHOD(SetMoniker) ( DWORD dwWhichMoniker, IMoniker *pmk );
- STDMETHOD(GetMoniker) ( DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk );
- STDMETHOD(InitFromData) ( IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved );
- STDMETHOD(GetClipboardData) ( DWORD dwReserved, IDataObject **ppDataObject );
- STDMETHOD(DoVerb) ( LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect );
- STDMETHOD(EnumVerbs) ( IEnumOLEVERB **ppEnumOleVerb );
- STDMETHOD(Update) ();
- STDMETHOD(IsUpToDate) ();
- STDMETHOD(GetUserClassID) ( CLSID *pClsid );
- STDMETHOD(GetUserType) ( DWORD dwFormOfType, LPOLESTR *pszUserType );
- STDMETHOD(SetExtent) ( DWORD dwDrawAspect, SIZEL *psizel );
- STDMETHOD(GetExtent) ( DWORD dwDrawAspect, SIZEL *psizel );
- STDMETHOD(Advise) ( IAdviseSink *pAdvSink, DWORD *pdwConnection );
- STDMETHOD(Unadvise) ( DWORD dwConnection );
- STDMETHOD(EnumAdvise) ( IEnumSTATDATA **ppenumAdvise );
- STDMETHOD(GetMiscStatus) ( DWORD dwAspect, DWORD *pdwStatus );
- STDMETHOD(SetColorScheme) ( LOGPALETTE *pLogpal );
-
- /* IOleInPlaceObject methods */
- STDMETHOD(GetWindow)(HWND *);
- STDMETHOD(ContextSensitiveHelp)(BOOL);
- STDMETHOD(InPlaceDeactivate)();
- STDMETHOD(UIDeactivate)();
- STDMETHOD(SetObjectRects)(LPCRECT, LPCRECT);
- STDMETHOD(ReactivateAndUndo)();
-
- /* IPersistFile methods */
- STDMETHOD(Load) ( LPCOLESTR pszFileName, DWORD dwMode );
- STDMETHOD(Save) ( LPCOLESTR pszFileName, BOOL fRemember );
- STDMETHOD(SaveCompleted) ( LPCOLESTR pszFileName );
- STDMETHOD(GetCurFile) ( LPOLESTR *ppszFileName );
-
- /* IDispatch methods */
- STDMETHOD(GetTypeInfoCount) ( unsigned int FAR* pctinfo );
- STDMETHOD(GetTypeInfo) ( unsigned int iTInfo, LCID lcid, ITypeInfo FAR* FAR* ppTInfo );
- STDMETHOD(GetIDsOfNames) ( REFIID riid, OLECHAR FAR* FAR* rgszNames, unsigned int cNames, LCID lcid, DISPID FAR* rgDispId );
- STDMETHOD(Invoke) ( DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS FAR* pDispParams, VARIANT FAR* pVarResult, EXCEPINFO FAR* pExcepInfo, unsigned int FAR* puArgErr );
-
- /* IExternalConnection methods */
- virtual DWORD STDMETHODCALLTYPE AddConnection( DWORD extconn, DWORD reserved);
- virtual DWORD STDMETHODCALLTYPE ReleaseConnection( DWORD extconn, DWORD reserved, BOOL fLastReleaseCloses);
-
- // c++ - methods
-
- void notify( bool bDataChanged = true );
- HRESULT SaveObject();
- HRESULT ShowObject();
- GUID GetGUID() const { return m_guid; }
- HRESULT OLENotifyClosing();
-
- void Deactivate();
- HRESULT OLENotifyDeactivation();
-
-protected:
- oslInterlockedCount m_refCount;
-
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
-
- DocumentHolder* m_pDocHolder;
- ::rtl::OUString m_aFileName;
-
- CComPtr< IStorage > m_pMasterStorage;
- CComPtr< IStream > m_pOwnStream;
- CComPtr< IStream > m_pExtStream;
- GUID m_guid;
-
- sal_Bool m_bIsDirty;
-
- CComPtr< IOleClientSite > m_pClientSite;
- CComPtr< IDataAdviseHolder > m_pDAdviseHolder;
-
- AdviseSinkHashMap m_aAdviseHashMap;
- DWORD m_nAdviseNum;
-
- ::rtl::Reference< EmbeddedDocumentInstanceAccess_Impl > m_xOwnAccess;
-
- sal_Bool m_bIsInVerbHandling;
-};
-
-class BooleanGuard_Impl
-{
- sal_Bool& m_bValue;
-
-public:
- BooleanGuard_Impl( sal_Bool& bValue )
- : m_bValue( bValue )
- {
- m_bValue = sal_True;
- }
-
- ~BooleanGuard_Impl()
- {
- m_bValue = sal_False;
- }
-};
-
-#endif //_EMBEDDOC_HXX_
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inc/embeddocaccess.hxx b/embedserv/source/inc/embeddocaccess.hxx
deleted file mode 100644
index 321bb3e7a..000000000
--- a/embedserv/source/inc/embeddocaccess.hxx
+++ /dev/null
@@ -1,86 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _EMBEDDOCACCESS_HXX_
-#define _EMBEDDOCACCESS_HXX_
-
-#define OLESERV_SAVEOBJECT 1
-#define OLESERV_CLOSE 2
-#define OLESERV_NOTIFY 3
-#define OLESERV_NOTIFYCLOSING 4
-#define OLESERV_SHOWOBJECT 5
-#define OLESERV_DEACTIVATE 6
-
-#include <oleidl.h>
-#ifndef __MINGW32__
-#if defined(_MSC_VER) && (_MSC_VER > 1310)
-#pragma warning(disable : 4265)
-#include <atldbcli.h>
-#else
-#include <atlcomcli.h>
-#endif
-#endif
-#include <cppuhelper/weak.hxx>
-
-class EmbedDocument_Impl;
-struct LockedEmbedDocument_Impl
-{
-private:
- EmbedDocument_Impl* m_pEmbedDocument;
-
-public:
- LockedEmbedDocument_Impl();
- LockedEmbedDocument_Impl( EmbedDocument_Impl* pEmbedDocument );
- LockedEmbedDocument_Impl( const LockedEmbedDocument_Impl& aDocLock );
-
- ~LockedEmbedDocument_Impl();
-
- LockedEmbedDocument_Impl& operator=( const LockedEmbedDocument_Impl& aDocLock );
-
- EmbedDocument_Impl* GetEmbedDocument() { return m_pEmbedDocument; }
-
- void ExecuteMethod( sal_Int16 nId );
-};
-
-class EmbeddedDocumentInstanceAccess_Impl : public ::cppu::OWeakObject
-{
- ::osl::Mutex m_aMutex;
- EmbedDocument_Impl* m_pEmbedDocument;
-
- public:
- EmbeddedDocumentInstanceAccess_Impl( EmbedDocument_Impl* pDoc )
- : m_pEmbedDocument( pDoc )
- {}
-
- LockedEmbedDocument_Impl GetEmbedDocument();
- void ClearEmbedDocument();
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inc/embservconst.h b/embedserv/source/inc/embservconst.h
deleted file mode 100644
index a952c56be..000000000
--- a/embedserv/source/inc/embservconst.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _EMBSERVCONST_H_
-#define _EMBSERVCONST_H_
-
-#include <guiddef.h>
-
-#ifndef _COMPHELPER_CLASSIDS_HXX
-#include <comphelper/classids.hxx>
-#endif
-
-#ifndef _SAL_TYPES_H_
-#include <sal/types.h>
-#endif
-
-const sal_Int32 nConstBufferSize = 32000;
-
-#define SUPPORTED_FACTORIES_NUM 10
-
-#ifdef __MINGW32__
-#define DECLSPEC_SELECTANY
-#endif
-#if defined(__MINGW32__) && !defined(INITGUID)
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_WriterTextServer;
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_WriterOASISTextServer;
-
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_CalcServer;
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_CalcOASISServer;
-
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_DrawingServer;
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_DrawingOASISServer;
-
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_PresentationServer;
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_PresentationOASISServer;
-
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_MathServer;
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_MathOASISServer;
-#else
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_WriterTextServer = { SO3_SW_OLE_EMBED_CLASSID_60 };
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_WriterOASISTextServer = { SO3_SW_OLE_EMBED_CLASSID_8 };
-
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_CalcServer = { SO3_SC_OLE_EMBED_CLASSID_60 };
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_CalcOASISServer = { SO3_SC_OLE_EMBED_CLASSID_8 };
-
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_DrawingServer = { SO3_SDRAW_OLE_EMBED_CLASSID_60 };
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_DrawingOASISServer = { SO3_SDRAW_OLE_EMBED_CLASSID_8 };
-
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_PresentationServer = { SO3_SIMPRESS_OLE_EMBED_CLASSID_60 };
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_PresentationOASISServer = { SO3_SIMPRESS_OLE_EMBED_CLASSID_8 };
-
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_MathServer = { SO3_SM_OLE_EMBED_CLASSID_60 };
-EXTERN_C const GUID DECLSPEC_SELECTANY OID_MathOASISServer = { SO3_SM_OLE_EMBED_CLASSID_8 };
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inc/iipaobj.hxx b/embedserv/source/inc/iipaobj.hxx
deleted file mode 100644
index 54dabed9e..000000000
--- a/embedserv/source/inc/iipaobj.hxx
+++ /dev/null
@@ -1,76 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _IIPAOBJ_HXX_
-#define _IIPAOBJ_HXX_
-#if defined(_MSC_VER) && (_MSC_VER > 1310)
-#pragma warning(disable : 4917 4555)
-#endif
-
-#include "stdafx.h"
-#include <oleidl.h>
-
-#include <osl/interlck.h>
-#include <rtl/ref.hxx>
-class EmbedDocument_Impl;
-class DocumentHolder;
-
-class CIIAObj
- : public IOleInPlaceActiveObject
-{
-
-public:
-
- CIIAObj( DocumentHolder * );
- virtual ~CIIAObj();
-
- /* IUnknown methods */
- STDMETHODIMP QueryInterface(REFIID, LPVOID FAR * ppvObj);
- STDMETHODIMP_(ULONG) AddRef(void);
- STDMETHODIMP_(ULONG) Release(void);
-
- /* IOleInPlaceActiveObject methods */
- STDMETHODIMP GetWindow(HWND *);
- STDMETHODIMP ContextSensitiveHelp(BOOL);
- STDMETHODIMP TranslateAccelerator(LPMSG);
- STDMETHODIMP OnFrameWindowActivate(BOOL);
- STDMETHODIMP OnDocWindowActivate(BOOL);
- STDMETHODIMP ResizeBorder(LPCRECT, LPOLEINPLACEUIWINDOW
- , BOOL);
- STDMETHODIMP EnableModeless(BOOL);
-
-
-private:
-
- oslInterlockedCount m_refCount;
- ::rtl::Reference< DocumentHolder > m_rDocHolder;
-};
-
-
-#endif
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inc/intercept.hxx b/embedserv/source/inc/intercept.hxx
deleted file mode 100644
index 09e7601bf..000000000
--- a/embedserv/source/inc/intercept.hxx
+++ /dev/null
@@ -1,198 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _INTERCEPT_HXX_
-#define _INTERCEPT_HXX_
-
-#include <osl/mutex.hxx>
-#include <cppuhelper/implbase3.hxx>
-#include <cppuhelper/interfacecontainer.hxx>
-#include <com/sun/star/frame/XDispatchProviderInterceptor.hpp>
-#include <com/sun/star/frame/XInterceptorInfo.hpp>
-#include <com/sun/star/frame/XDispatch.hpp>
-
-#include <rtl/ref.hxx>
-#include "embeddocaccess.hxx"
-
-
-class StatusChangeListenerContainer;
-class EmbedDocument_Impl;
-class DocumentHolder;
-
-class Interceptor
- : public ::cppu::WeakImplHelper3<
- ::com::sun::star::frame::XDispatchProviderInterceptor,
- ::com::sun::star::frame::XInterceptorInfo,
- ::com::sun::star::frame::XDispatch>
-{
-public:
-
- Interceptor(
- const ::rtl::Reference< EmbeddedDocumentInstanceAccess_Impl >& xOleAccess,
- DocumentHolder* pDocH,
- sal_Bool bLink );
-
- ~Interceptor();
-
- void DisconnectDocHolder();
-
- void generateFeatureStateEvent();
-
- // overwritten to release the statuslistner.
-
-
- // XComponent
- virtual void SAL_CALL
- addEventListener(
- const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& xListener )
- throw( com::sun::star::uno::RuntimeException );
-
- virtual void SAL_CALL
- removeEventListener( const com::sun::star::uno::Reference< com::sun::star::lang::XEventListener >& aListener )
- throw( com::sun::star::uno::RuntimeException );
-
- void SAL_CALL
- dispose() throw(::com::sun::star::uno::RuntimeException);
-
-
-
- //XDispatch
- virtual void SAL_CALL
- dispatch(
- const ::com::sun::star::util::URL& URL,
- const ::com::sun::star::uno::Sequence<
- ::com::sun::star::beans::PropertyValue >& Arguments )
- throw (::com::sun::star::uno::RuntimeException);
-
- virtual void SAL_CALL
- addStatusListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XStatusListener >& Control,
- const ::com::sun::star::util::URL& URL )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- removeStatusListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XStatusListener >& Control,
- const ::com::sun::star::util::URL& URL )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- //XInterceptorInfo
- virtual ::com::sun::star::uno::Sequence< ::rtl::OUString >
- SAL_CALL getInterceptedURLs( )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
-
- //XDispatchProvider ( inherited by XDispatchProviderInterceptor )
- virtual ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XDispatch > SAL_CALL
- queryDispatch(
- const ::com::sun::star::util::URL& URL,
- const ::rtl::OUString& TargetFrameName,
- sal_Int32 SearchFlags )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual ::com::sun::star::uno::Sequence<
- ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XDispatch > > SAL_CALL
- queryDispatches(
- const ::com::sun::star::uno::Sequence<
- ::com::sun::star::frame::DispatchDescriptor >& Requests )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
-
- //XDispatchProviderInterceptor
- virtual ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XDispatchProvider > SAL_CALL
- getSlaveDispatchProvider( )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- setSlaveDispatchProvider(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XDispatchProvider >& NewDispatchProvider )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XDispatchProvider > SAL_CALL
- getMasterDispatchProvider( )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- setMasterDispatchProvider(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XDispatchProvider >& NewSupplier )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
-
-private:
-
- osl::Mutex m_aMutex;
-
- ::rtl::Reference< EmbeddedDocumentInstanceAccess_Impl > m_xOleAccess;
-
- ::com::sun::star::uno::WeakReference< ::com::sun::star::uno::XInterface > m_xDocHLocker;
- DocumentHolder* m_pDocH;
-
- ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XDispatchProvider > m_xSlaveDispatchProvider;
-
- ::com::sun::star::uno::Reference<
- ::com::sun::star::frame::XDispatchProvider > m_xMasterDispatchProvider;
-
- static ::com::sun::star::uno::Sequence< ::rtl::OUString >
- m_aInterceptedURL;
-
- cppu::OInterfaceContainerHelper* m_pDisposeEventListeners;
- StatusChangeListenerContainer* m_pStatCL;
-
- sal_Bool m_bLink;
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inc/servprov.hxx b/embedserv/source/inc/servprov.hxx
deleted file mode 100644
index 4206148ee..000000000
--- a/embedserv/source/inc/servprov.hxx
+++ /dev/null
@@ -1,101 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _SERVPROV_HXX
-#define _SERVPROV_HXX
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1300)
-#undef _DEBUG
-#endif
-
-#include "common.h"
-#include <oleidl.h>
-#include <com/sun/star/uno/Reference.h>
-#include <com/sun/star/uno/Sequence.h>
-#include <com/sun/star/uno/XInterface.hpp>
-#include <com/sun/star/lang/XTypeProvider.hpp>
-#include <cppuhelper/weak.hxx>
-
-
-class EmbedProviderFactory_Impl;
-
-class EmbedServer_Impl : public ::cppu::OWeakObject, ::com::sun::star::lang::XTypeProvider
-{
-public:
- EmbedServer_Impl( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > &xFactory );
- virtual ~EmbedServer_Impl();
-
- // XInterface
- virtual ::com::sun::star::uno::Any SAL_CALL queryInterface( const ::com::sun::star::uno::Type& aType )
- throw(::com::sun::star::uno::RuntimeException);
- virtual void SAL_CALL acquire() throw ();
- virtual void SAL_CALL release() throw ();
-
- // XTypeProvider
- virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Type > SAL_CALL getTypes( )
- throw(::com::sun::star::uno::RuntimeException);
- virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId()
- throw(::com::sun::star::uno::RuntimeException);
-
-protected:
-
- CComPtr< EmbedProviderFactory_Impl > m_pOLEFactories[ SUPPORTED_FACTORIES_NUM ];
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
-};
-
-class EmbedProviderFactory_Impl : public IClassFactory
-{
-public:
-
- EmbedProviderFactory_Impl( const ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory >& xFactory, const GUID* pGuid);
- virtual ~EmbedProviderFactory_Impl();
-
- sal_Bool registerClass();
- sal_Bool deregisterClass();
-
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(REFIID riid, LPVOID FAR * ppvObj);
- STDMETHOD_(ULONG, AddRef)();
- STDMETHOD_(ULONG, Release)();
-
- /* IClassFactory methods */
- STDMETHOD(CreateInstance)(IUnknown FAR* punkOuter, REFIID riid, void FAR* FAR* ppv);
- STDMETHOD(LockServer)(int fLock);
-
-protected:
-
- oslInterlockedCount m_refCount;
- GUID m_guid;
- DWORD m_factoryHandle;
-
- ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > m_xFactory;
-};
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inc/stdafx.h b/embedserv/source/inc/stdafx.h
deleted file mode 100644
index b6e553e7f..000000000
--- a/embedserv/source/inc/stdafx.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-#if !defined(AFX_STDAFX_H_)
-#define AFX_STDAFX_H_
-
-#if _MSC_VER > 1000
-#pragma once
-#endif // _MSC_VER > 1000
-
-#define STRICT
-#ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x0403
-#endif
-#define _ATL_APARTMENT_THREADED
-// #define _ATL_STATIC_REGISTRY
-
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(push, 1)
-#pragma warning(disable: 4548)
-#pragma warning(disable: 4505)
-#endif
-#include <atlbase.h>
-//You may derive a class from CComModule and use it if you want to override
-//something, but do not change the name of _Module
-extern CComModule _Module;
-#ifdef __MINGW32__
-#include <algorithm>
-using ::std::min;
-using ::std::max;
-#endif
-#include <atlcom.h>
-#include <atlctl.h>
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
-
-#ifdef _MSC_VER
-#pragma warning(pop)
-#pragma warning(pop)
-#endif
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inc/syswinwrapper.hxx b/embedserv/source/inc/syswinwrapper.hxx
deleted file mode 100644
index 0eff8b5d0..000000000
--- a/embedserv/source/inc/syswinwrapper.hxx
+++ /dev/null
@@ -1,180 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-
-#include <windows.h>
-
-/**
- ** CWindow: Our basic window class.
- **/
-
-
-class DocumentHolder;
-
-
-namespace winwrap {
-
-
- void TransformRect(LPRECT rect,HWND pWnd,HWND pWndClipTo);
-
-
- LRESULT APIENTRY HatchWndProc(
- HWND hWnd, UINT iMsg
- , WPARAM wParam, LPARAM lParam);
-
-
- BOOL HatchWindowRegister(HINSTANCE hInst);
-
- class CWindow
- {
- protected:
- HINSTANCE m_hInst; //Task instance
- HWND m_hWnd; //Window handle of the window
-
- public:
- //Standard Class Functions
- CWindow(HINSTANCE);
- ~CWindow(void);
-
- //Just returns members. No need to modify
- HWND Window(void);
- HINSTANCE Instance(void);
- };
-
-
-
- class Tracker {
- public:
- // Constructors
- Tracker();
- Tracker(LPCRECT lpSrcRect, UINT nStyle);
-
- // Style Flags
- enum StyleFlags
- {
- solidLine = 1, dottedLine = 2, hatchedBorder = 4,
- resizeInside = 8, resizeOutside = 16, hatchInside = 32,
- };
-
- // Hit-Test codes
- enum TrackerHit
- {
- hitNothing = -1,
- hitTopLeft = 0, hitTopRight = 1,
- hitBottomRight = 2, hitBottomLeft = 3,
- hitTop = 4, hitRight = 5, hitBottom = 6,
- hitLeft = 7, hitMiddle = 8
- };
-
- // Attributes
- UINT m_nStyle; // current state
- RECT m_rect; // current position (always in pixels)
- SIZE m_sizeMin; // minimum X and Y size during track operation
- int m_nHandleSize; // size of resize handles (default from WIN.INI)
-
- // Operations
- void Draw(HDC hDC) const;
- void GetTrueRect(LPRECT lpTrueRect) const;
- BOOL SetCursor(HWND hWnd,UINT nHitTest) const;
- BOOL Track(HWND hWnd,POINT point,BOOL bAllowInvert = FALSE,
- HWND hWndClipTo = NULL);
-// BOOL TrackRubberBand(HWND hWnd,POINT point,BOOL bAllowInvert = TRUE);
- int HitTest(POINT point) const;
- int NormalizeHit(int nHandle) const;
-
- // Overridables
- virtual void DrawTrackerRect(
- LPRECT lpRect, HWND hWndClipTo,
- HDC hDC, HWND hWnd);
- virtual void AdjustRect(int nHandle, LPRECT lpRect);
- virtual void OnChangedRect(const RECT& rectOld);
- virtual UINT GetHandleMask() const;
-
-// Implementation
- public:
- virtual ~Tracker();
-
-protected:
- BOOL m_bAllowInvert; // flag passed to Track or TrackRubberBand
- RECT m_rectLast;
- SIZE m_sizeLast;
- BOOL m_bErase; // TRUE if DrawTrackerRect is called for erasing
- BOOL m_bFinalErase; // TRUE if DragTrackerRect called for final erase
-
- // implementation helpers
- int HitTestHandles(POINT point) const;
- void GetHandleRect(int nHandle,RECT* pHandleRect) const;
- void GetModifyPointers(
- int nHandle,int**ppx, int**ppy, int* px, int*py);
- virtual int GetHandleSize(LPRECT lpRect = NULL) const;
- BOOL TrackHandle(int nHandle,HWND hWnd,POINT point,HWND hWndClipTo);
- void Construct();
- };
-
-
-
-//Width of the border
-#define HATCHWIN_BORDERWIDTHDEFAULT 4
-
-
- class CHatchWin : public CWindow
- {
- friend LRESULT APIENTRY HatchWndProc(HWND, UINT, WPARAM, LPARAM);
-
- public:
-
- const DocumentHolder* m_pDocHolder;
- Tracker m_aTracker;
-
- int m_dBorder;
- int m_dBorderOrg;
- UINT m_uID;
- HWND m_hWndParent;
- HWND m_hWndKid;
- HWND m_hWndAssociate;
- RECT m_rcPos;
- RECT m_rcClip;
-
- public:
- CHatchWin(HINSTANCE,const DocumentHolder*);
- ~CHatchWin(void);
-
- BOOL Init(HWND, UINT, HWND);
-
- HWND HwndAssociateSet(HWND);
- HWND HwndAssociateGet(void);
-
- void RectsSet(LPRECT, LPRECT);
- void ChildSet(HWND);
- void ShowHatch(BOOL);
- void SetTrans();
- };
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inc/xwin.hxx b/embedserv/source/inc/xwin.hxx
deleted file mode 100644
index d6abfaa93..000000000
--- a/embedserv/source/inc/xwin.hxx
+++ /dev/null
@@ -1,255 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _XWIN_HXX_
-#define _XWIN_HXX_
-
-
-#include "common.h"
-#include <osl/mutex.hxx>
-#include <cppuhelper/interfacecontainer.h>
-#include <cppuhelper/implbase2.hxx>
-#include <com/sun/star/awt/XWindow.hpp>
-#include <com/sun/star/awt/XSystemDependentWindowPeer.hpp>
-
-
-class ContainerWindowWrapper:
- public ::cppu::WeakImplHelper2<
- ::com::sun::star::awt::XWindow,
- ::com::sun::star::awt::XSystemDependentWindowPeer>
-{
-public:
-
- ContainerWindowWrapper(HWND aHwnd);
-
- ~ ContainerWindowWrapper();
-
-
- // XComponent
-
- virtual void SAL_CALL
- dispose(
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- addEventListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::lang::XEventListener >& xListener
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- removeEventListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::lang::XEventListener >& aListener
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
-
- // XSystemDependentWindowPeer
-
- virtual ::com::sun::star::uno::Any SAL_CALL
- getWindowHandle(
- const ::com::sun::star::uno::Sequence< sal_Int8 >& ProcessId,
- sal_Int16 SystemType
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- // XWindow
-
- virtual void SAL_CALL
- setPosSize(
- sal_Int32 X,
- sal_Int32 Y,
- sal_Int32 Width,
- sal_Int32 Height,
- sal_Int16 Flags
- )
- throw (
- ::com::sun::star::uno::RuntimeException);
-
- virtual ::com::sun::star::awt::Rectangle SAL_CALL
- getPosSize(
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- setVisible(
- sal_Bool Visible
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- setEnable(
- sal_Bool Enable
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- setFocus(
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- addWindowListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XWindowListener >& xListener
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- removeWindowListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XWindowListener >& xListener
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- addFocusListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XFocusListener >& xListener
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- removeFocusListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XFocusListener >& xListener
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- addKeyListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XKeyListener >& xListener
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- removeKeyListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XKeyListener >& xListener
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- addMouseListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XMouseListener >& xListener
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- removeMouseListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XMouseListener >& xListener
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- addMouseMotionListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XMouseMotionListener >& xListener
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- removeMouseMotionListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XMouseMotionListener >& xListener
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- addPaintListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XPaintListener >& xListener
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
- virtual void SAL_CALL
- removePaintListener(
- const ::com::sun::star::uno::Reference<
- ::com::sun::star::awt::XPaintListener >& xListener
- )
- throw (
- ::com::sun::star::uno::RuntimeException
- );
-
-
-private:
-
- osl::Mutex m_aMutex;
- cppu::OInterfaceContainerHelper *m_pDisposeEventListeners;
-
- HWND m_aHwnd;
-};
-
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inprocserv/advisesink.cxx b/embedserv/source/inprocserv/advisesink.cxx
deleted file mode 100644
index 09b24e2c0..000000000
--- a/embedserv/source/inprocserv/advisesink.cxx
+++ /dev/null
@@ -1,184 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#pragma warning(disable : 4668)
-
-#include <advisesink.hxx>
-
-namespace inprocserv
-{
-
-OleWrapperAdviseSink::OleWrapperAdviseSink()
-: m_nRefCount( 0 )
-, m_pFormatEtc( NULL )
-, m_nAspect( DVASPECT_CONTENT )
-, m_nRegID( 0 )
-, m_bObjectAdvise( TRUE )
-, m_nDataRegFlag( 0 )
-, m_nViewRegFlag( 0 )
-, m_bHandleClosed( TRUE )
-, m_bClosed( FALSE )
-{
-}
-
-OleWrapperAdviseSink::OleWrapperAdviseSink( const ComSmart< IAdviseSink >& pListener )
-: m_nRefCount( 0 )
-, m_pListener( pListener )
-, m_pFormatEtc( NULL )
-, m_nAspect( DVASPECT_CONTENT )
-, m_nRegID( 0 )
-, m_bObjectAdvise( TRUE )
-, m_nDataRegFlag( 0 )
-, m_nViewRegFlag( 0 )
-, m_bHandleClosed( FALSE )
-, m_bClosed( FALSE )
-{
-}
-
-OleWrapperAdviseSink::OleWrapperAdviseSink( const ComSmart< IAdviseSink >& pListener, FORMATETC* pFormatEtc, DWORD nDataRegFlag )
-: m_nRefCount( 0 )
-, m_pListener( pListener )
-, m_pFormatEtc( NULL )
-, m_nAspect( DVASPECT_CONTENT )
-, m_nRegID( 0 )
-, m_bObjectAdvise( FALSE )
-, m_nDataRegFlag( nDataRegFlag )
-, m_nViewRegFlag( 0 )
-, m_bHandleClosed( FALSE )
-, m_bClosed( FALSE )
-{
- if ( pFormatEtc )
- {
- m_pFormatEtc = new FORMATETC;
- m_pFormatEtc->cfFormat = pFormatEtc->cfFormat;
- m_pFormatEtc->ptd = NULL;
- m_pFormatEtc->dwAspect = pFormatEtc->dwAspect;
- m_pFormatEtc->lindex = pFormatEtc->lindex;
- m_pFormatEtc->tymed = pFormatEtc->tymed;
- }
-}
-
-OleWrapperAdviseSink::OleWrapperAdviseSink( const ComSmart< IAdviseSink >& pListener, DWORD nAspect, DWORD nViewRegFlag )
-: m_nRefCount( 0 )
-, m_pListener( pListener )
-, m_pFormatEtc( NULL )
-, m_nAspect( nAspect )
-, m_nRegID( 0 )
-, m_bObjectAdvise( TRUE )
-, m_nDataRegFlag( 0 )
-, m_nViewRegFlag( nViewRegFlag )
-, m_bHandleClosed( FALSE )
-, m_bClosed( FALSE )
-{
-}
-
-OleWrapperAdviseSink::~OleWrapperAdviseSink()
-{
- if ( m_pFormatEtc )
- delete m_pFormatEtc;
-}
-
-STDMETHODIMP OleWrapperAdviseSink::QueryInterface( REFIID riid , void** ppv )
-{
- *ppv=NULL;
-
- if ( riid == IID_IUnknown )
- *ppv = (IUnknown*)this;
-
- if ( riid == IID_IAdviseSink )
- *ppv = (IAdviseSink*)this;
-
- if ( *ppv != NULL )
- {
- ((IUnknown*)*ppv)->AddRef();
- return S_OK;
- }
-
- return E_NOINTERFACE;
-}
-
-STDMETHODIMP_(ULONG) OleWrapperAdviseSink::AddRef()
-{
- return ++m_nRefCount;
-}
-
-STDMETHODIMP_(ULONG) OleWrapperAdviseSink::Release()
-{
- ULONG nReturn = --m_nRefCount;
- if ( m_nRefCount == 0 )
- delete this;
-
- return nReturn;
-}
-
-STDMETHODIMP_(void) OleWrapperAdviseSink::OnDataChange( LPFORMATETC pFetc, LPSTGMEDIUM pMedium )
-{
- if ( m_pListener )
- {
- m_pListener->OnDataChange( pFetc, pMedium );
- }
-}
-
-STDMETHODIMP_(void) OleWrapperAdviseSink::OnViewChange( DWORD dwAspect, LONG lindex )
-{
- if ( m_pListener )
- {
- m_pListener->OnViewChange( dwAspect, lindex );
- }
-}
-
-STDMETHODIMP_(void) OleWrapperAdviseSink::OnRename( LPMONIKER pMoniker )
-{
- if ( m_pListener )
- {
- m_pListener->OnRename( pMoniker );
- }
-}
-
-STDMETHODIMP_(void) OleWrapperAdviseSink::OnSave(void)
-{
- if ( m_pListener )
- {
- m_pListener->OnSave();
- }
-}
-
-STDMETHODIMP_(void) OleWrapperAdviseSink::OnClose(void)
-{
- if ( m_pListener )
- {
- m_pListener->OnClose();
- }
-
- if ( m_bHandleClosed )
- m_bClosed = TRUE;
-}
-
-} // namespace inprocserv
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inprocserv/advisesink.hxx b/embedserv/source/inprocserv/advisesink.hxx
deleted file mode 100644
index 22246b1ef..000000000
--- a/embedserv/source/inprocserv/advisesink.hxx
+++ /dev/null
@@ -1,97 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <windows.h>
-#include "smartpointer.hxx"
-
-namespace inprocserv {
-
-class OleWrapperAdviseSink : public IAdviseSink
-{
-protected:
- ULONG m_nRefCount;
-
- ComSmart< IAdviseSink > m_pListener;
- DWORD m_nListenerID;
-
- FORMATETC* m_pFormatEtc;
- DWORD m_nAspect;
-
- DWORD m_nRegID;
- DWORD m_bObjectAdvise;
- DWORD m_nDataRegFlag;
- DWORD m_nViewRegFlag;
-
- BOOL m_bHandleClosed;
- BOOL m_bClosed;
-
-public:
- // an AdviseSink for own needs, should be created always
- OleWrapperAdviseSink();
-
- // an AdviseSink for IOleObject interface
- OleWrapperAdviseSink( const ComSmart< IAdviseSink >& pListener );
-
- // an AdviseSink for IDataObject interface
- OleWrapperAdviseSink( const ComSmart< IAdviseSink >& pListener, FORMATETC* pFormatEtc, DWORD nDataRegFlag );
-
- // an AdviseSink for IViewObject interface
- OleWrapperAdviseSink( const ComSmart< IAdviseSink >& pListener, DWORD nAspect, DWORD nViewRegFlag );
-
- virtual ~OleWrapperAdviseSink();
-
- void SetRegID( DWORD nRegID ) { m_nRegID = nRegID; }
- DWORD GetRegID() { return m_nRegID; }
-
- BOOL IsOleAdvise() { return m_bObjectAdvise; }
- DWORD GetDataAdviseFlag() { return m_nDataRegFlag; }
- DWORD GetViewAdviseFlag() { return m_nViewRegFlag; }
-
- FORMATETC* GetFormatEtc() { return m_pFormatEtc; }
- DWORD GetAspect() { return m_nAspect; }
- ComSmart< IAdviseSink >& GetOrigAdvise() { return m_pListener; }
- void DisconnectOrigAdvise() { m_pListener = NULL; }
-
- void SetClosed() { m_bClosed = TRUE; }
- void UnsetClosed() { m_bClosed = FALSE; }
- BOOL IsClosed() { return m_bClosed; }
-
- STDMETHODIMP QueryInterface(REFIID, void**);
- STDMETHODIMP_(ULONG) AddRef(void);
- STDMETHODIMP_(ULONG) Release(void);
-
- STDMETHODIMP_(void) OnDataChange(LPFORMATETC, LPSTGMEDIUM);
- STDMETHODIMP_(void) OnViewChange(DWORD, LONG);
- STDMETHODIMP_(void) OnRename(LPMONIKER);
- STDMETHODIMP_(void) OnSave(void);
- STDMETHODIMP_(void) OnClose(void);
-};
-
-}; // namespace advisesink
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inprocserv/dllentry.cxx b/embedserv/source/inprocserv/dllentry.cxx
deleted file mode 100644
index acb94fd5e..000000000
--- a/embedserv/source/inprocserv/dllentry.cxx
+++ /dev/null
@@ -1,351 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <stdio.h>
-#include <inprocembobj.h>
-#ifdef __MINGW32__
-#define INITGUID
-#endif
-#include <embservconst.h>
-
-static const GUID* guidList[ SUPPORTED_FACTORIES_NUM ] = {
- &OID_WriterTextServer,
- &OID_WriterOASISTextServer,
- &OID_CalcServer,
- &OID_CalcOASISServer,
- &OID_DrawingServer,
- &OID_DrawingOASISServer,
- &OID_PresentationServer,
- &OID_PresentationOASISServer,
- &OID_MathServer,
- &OID_MathOASISServer
-};
-
-static HINSTANCE g_hInstance = NULL;
-static ULONG g_nObj = 0;
-static ULONG g_nLock = 0;
-
-
-namespace {
- void FillCharFromInt( int nValue, char* pBuf, int nLen )
- {
- int nInd = 0;
- while( nInd < nLen )
- {
- char nSign = ( nValue / ( 1 << ( ( nLen - nInd ) * 4 ) ) ) % 16;
- if ( nSign >= 0 && nSign <= 9 )
- pBuf[nInd] = nSign + '0';
- else if ( nSign >= 10 && nSign <= 15 )
- pBuf[nInd] = nSign - 10 + 'a';
-
- nInd++;
- }
- }
-
- int GetStringFromClassID( const GUID& guid, char* pBuf, int nLen )
- {
- // is not allowed to insert
- if ( nLen < 38 )
- return 0;
-
- pBuf[0] = '{';
- FillCharFromInt( guid.Data1, &pBuf[1], 8 );
- pBuf[9] = '-';
- FillCharFromInt( guid.Data2, &pBuf[10], 4 );
- pBuf[14] = '-';
- FillCharFromInt( guid.Data3, &pBuf[15], 4 );
- pBuf[19] = '-';
-
- int nInd = 0;
- for ( nInd = 0; nInd < 2 ; nInd++ )
- FillCharFromInt( guid.Data4[nInd], &pBuf[20 + 2*nInd], 2 );
- pBuf[24] = '-';
- for ( nInd = 2; nInd < 8 ; nInd++ )
- FillCharFromInt( guid.Data4[nInd], &pBuf[20 + 1 + 2*nInd], 2 );
- pBuf[37] = '}';
-
- return 38;
- }
-
- HRESULT WriteLibraryToRegistry( char* pLibrary, DWORD nLen )
- {
- HRESULT hRes = E_FAIL;
- if ( pLibrary && nLen )
- {
- HKEY hKey = NULL;
-
- hRes = S_OK;
- for ( int nInd = 0; nInd < SUPPORTED_FACTORIES_NUM; nInd++ )
- {
- char* pSubKey = "Software\\Classes\\CLSID\\.....................................\\InprocHandler32";
-
- int nGuidLen = GetStringFromClassID( *guidList[nInd], &pSubKey[23], 38 );
-
- BOOL bLocalSuccess = FALSE;
- if ( nGuidLen && nGuidLen == 38 )
- {
- if ( ERROR_SUCCESS == RegOpenKey( HKEY_LOCAL_MACHINE, pSubKey, &hKey ) )
- {
- if ( ERROR_SUCCESS == RegSetValueEx( hKey, "", 0, REG_SZ, (const BYTE*)pLibrary, nLen ) )
- bLocalSuccess = TRUE;
- }
-
- if ( hKey )
- {
- RegCloseKey( hKey );
- hKey = NULL;
- }
- }
-
- if ( !bLocalSuccess )
- hRes = E_FAIL;
- }
- }
-
- return hRes;
- }
-};
-
-// ===========================
-// InprocEmbedProvider_Impl declaration
-// ===========================
-
-namespace inprocserv
-{
-
-class InprocEmbedProvider_Impl : public IClassFactory, public InprocCountedObject_Impl
-{
-public:
-
- InprocEmbedProvider_Impl( const GUID& guid );
- virtual ~InprocEmbedProvider_Impl();
-
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(REFIID riid, LPVOID FAR * ppvObj);
- STDMETHOD_(ULONG, AddRef)();
- STDMETHOD_(ULONG, Release)();
-
- /* IClassFactory methods */
- STDMETHOD(CreateInstance)(IUnknown FAR* punkOuter, REFIID riid, void FAR* FAR* ppv);
- STDMETHOD(LockServer)(int fLock);
-
-protected:
-
- ULONG m_refCount;
- GUID m_guid;
-};
-}; // namespace inprocserv
-
-
-// ===========================
-// Entry points
-// ===========================
-
-// -------------------------------------------------------------------------------
-extern "C" BOOL WINAPI DllMain( HINSTANCE hInstance, DWORD dwReason, LPVOID /*lpReserved*/ )
-{
- if (dwReason == DLL_PROCESS_ATTACH)
- {
- g_hInstance = hInstance;
- }
- else if (dwReason == DLL_PROCESS_DETACH)
- {
- }
-
- return TRUE; // ok
-}
-
-// -------------------------------------------------------------------------------
-extern "C" STDAPI DllGetClassObject( REFCLSID rclsid, REFIID riid, LPVOID* ppv )
-{
- for( int nInd = 0; nInd < SUPPORTED_FACTORIES_NUM; nInd++ )
- if ( *guidList[nInd] == rclsid )
- {
- if ( !IsEqualIID( riid, IID_IUnknown ) && !IsEqualIID( riid, IID_IClassFactory ) )
- return E_NOINTERFACE;
-
- *ppv = new inprocserv::InprocEmbedProvider_Impl( rclsid );
- if ( *ppv == NULL )
- return E_OUTOFMEMORY;
-
- ((LPUNKNOWN)*ppv)->AddRef();
- return S_OK;
- }
-
- return E_FAIL;
-}
-
-// -------------------------------------------------------------------------------
-extern "C" STDAPI DllCanUnloadNow()
-{
- if ( !g_nObj && !g_nLock )
- return S_OK;
-
- return S_FALSE;
-}
-
-// -------------------------------------------------------------------------------
-STDAPI DllRegisterServer( void )
-{
- char aLibPath[1024];
- HMODULE aCurModule = GetModuleHandleA( "inprocserv.dll" );
- if( aCurModule )
- {
- DWORD nLen = GetModuleFileNameA( aCurModule, aLibPath, 1019 );
- if ( nLen && nLen < 1019 )
- {
- aLibPath[nLen++] = 0;
- return WriteLibraryToRegistry( aLibPath, nLen );
- }
- }
-
- return E_FAIL;
-}
-
-// -------------------------------------------------------------------------------
-STDAPI DllUnregisterServer( void )
-{
- return WriteLibraryToRegistry( "ole32.dll", 10 );
-}
-
-// ===========================
-// End of entry points
-// ===========================
-
-namespace inprocserv
-{
-
-// ===========================
-// InprocCountedObject_Impl implementation
-// ===========================
-
-// -------------------------------------------------------------------------------
-InprocCountedObject_Impl::InprocCountedObject_Impl()
-{
- g_nObj++;
-}
-
-// -------------------------------------------------------------------------------
-InprocCountedObject_Impl::~InprocCountedObject_Impl()
-{
- g_nObj--;
-}
-
-// ===========================
-// InprocEmbedProvider_Impl implementation
-// ===========================
-
-// -------------------------------------------------------------------------------
-InprocEmbedProvider_Impl::InprocEmbedProvider_Impl( const GUID& guid )
-: m_refCount( 0 )
-, m_guid( guid )
-{
-}
-
-// -------------------------------------------------------------------------------
-InprocEmbedProvider_Impl::~InprocEmbedProvider_Impl()
-{
-}
-
-// IUnknown
-// -------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedProvider_Impl::QueryInterface( REFIID riid, void FAR* FAR* ppv )
-{
- if(IsEqualIID(riid, IID_IUnknown))
- {
- AddRef();
- *ppv = (IUnknown*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IClassFactory))
- {
- AddRef();
- *ppv = (IClassFactory*) this;
- return S_OK;
- }
-
- *ppv = NULL;
- return E_NOINTERFACE;
-}
-
-// -------------------------------------------------------------------------------
-STDMETHODIMP_(ULONG) InprocEmbedProvider_Impl::AddRef()
-{
- return ++m_refCount;
-}
-
-// -------------------------------------------------------------------------------
-STDMETHODIMP_(ULONG) InprocEmbedProvider_Impl::Release()
-{
- sal_Int32 nCount = --m_refCount;
- if ( nCount == 0 )
- delete this;
- return nCount;
-}
-
-// -------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedProvider_Impl::CreateInstance(IUnknown FAR* punkOuter,
- REFIID riid,
- void FAR* FAR* ppv)
-{
- // TODO/LATER: should the aggregation be supported?
- // if ( punkOuter != NULL && riid != IID_IUnknown )
- // return E_NOINTERFACE;
- if ( punkOuter != NULL )
- return CLASS_E_NOAGGREGATION;
-
- InprocEmbedDocument_Impl* pEmbedDocument = new InprocEmbedDocument_Impl( m_guid );
- if ( !pEmbedDocument )
- return E_OUTOFMEMORY;
-
- pEmbedDocument->AddRef();
- HRESULT hr = pEmbedDocument->Init();
- if ( SUCCEEDED( hr ) )
- hr = pEmbedDocument->QueryInterface( riid, ppv );
- pEmbedDocument->Release();
-
- if ( !SUCCEEDED( hr ) )
- *ppv = NULL;
-
- return hr;
-}
-
-// -------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedProvider_Impl::LockServer( int fLock )
-{
- if ( fLock )
- g_nLock++;
- else
- g_nLock--;
-
- return S_OK;
-}
-
-}; // namespace inprocserv
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inprocserv/exports.dxp b/embedserv/source/inprocserv/exports.dxp
deleted file mode 100644
index 65a5126f1..000000000
--- a/embedserv/source/inprocserv/exports.dxp
+++ /dev/null
@@ -1,5 +0,0 @@
-DllGetClassObject
-DllCanUnloadNow
-DllMain
-DllRegisterServer
-DllUnregisterServer
diff --git a/embedserv/source/inprocserv/inprocembobj.cxx b/embedserv/source/inprocserv/inprocembobj.cxx
deleted file mode 100644
index d984e9994..000000000
--- a/embedserv/source/inprocserv/inprocembobj.cxx
+++ /dev/null
@@ -1,1816 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include <embservconst.h>
-#include "inprocembobj.h"
-
-namespace inprocserv
-{
-
-//-------------------------------------------------------------------------------
-BOOL StringsEqual( LPCOLESTR pszNameFromOutside, wchar_t* pOwnName )
-{
- BOOL bResult = TRUE;
-
- if ( pszNameFromOutside && pOwnName )
- {
- for ( int nInd = 0; pszNameFromOutside[nInd] != 0 || pOwnName[nInd] != 0; nInd++ )
- {
- if ( pszNameFromOutside[nInd] != pOwnName[nInd] )
- {
- bResult = FALSE;
- break;
- }
- }
- }
- else if ( pszNameFromOutside || pOwnName )
- bResult = FALSE;
-
- return bResult;
-}
-
-//-------------------------------------------------------------------------------
-HRESULT InprocEmbedDocument_Impl::Init()
-{
- return S_OK;
-}
-
-//-------------------------------------------------------------------------------
-void InprocEmbedDocument_Impl::SetName( LPCOLESTR pszNameFromOutside, wchar_t*& pOwnName )
-{
- if ( !pszNameFromOutside )
- return;
-
- // copy the string
- size_t nLen = 0;
- while( pszNameFromOutside[nLen] != 0 )
- nLen++;
-
- if ( pOwnName )
- {
- delete[] pOwnName;
- pOwnName = NULL;
- }
-
- pOwnName = new wchar_t[nLen+1];
- for ( size_t nInd = 0; nInd < nLen; nInd++ )
- pOwnName[nInd] = pszNameFromOutside[nInd];
- pOwnName[nLen] = 0;
-}
-
-//-------------------------------------------------------------------------------
-BOOL InprocEmbedDocument_Impl::CheckDefHandler()
-{
- // set the own listener
- if ( m_pOleAdvises[0] == NULL )
- {
- m_pOleAdvises[0] = new OleWrapperAdviseSink();
- }
- else
- {
- if ( m_pOleAdvises[0]->IsClosed() )
- {
- if ( m_pDefHandler )
- {
- // deregister all the listeners
-
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
- if ( SUCCEEDED( hr ) && pOleObject )
- {
- for ( DWORD nInd = 0; nInd < DEFAULT_ARRAY_LEN; nInd++ )
- if ( m_pOleAdvises[nInd] )
- {
- DWORD nID = m_pOleAdvises[nInd]->GetRegID();
- pOleObject->Unadvise( nID );
- m_pOleAdvises[nInd]->SetRegID( 0 );
- }
-
- pOleObject->SetClientSite( NULL );
- }
-
- ComSmart< IDataObject > pIDataObject;
- hr = m_pDefHandler->QueryInterface( IID_IDataObject, (void**)&pIDataObject );
- if ( SUCCEEDED( hr ) && pIDataObject )
- {
- for ( DWORD nInd = 0; nInd < DEFAULT_ARRAY_LEN; nInd++ )
- if ( m_pDataAdvises[nInd] )
- {
- DWORD nID = m_pDataAdvises[nInd]->GetRegID();
- pIDataObject->DUnadvise( nID );
- m_pDataAdvises[nInd]->SetRegID( 0 );
- }
- }
-
- ComSmart< IViewObject > pIViewObject;
- hr = m_pDefHandler->QueryInterface( IID_IViewObject, (void**)&pIViewObject );
- if ( SUCCEEDED( hr ) && pIViewObject )
- {
- if ( m_pViewAdvise )
- pIViewObject->SetAdvise( m_pViewAdvise->GetAspect(), m_pViewAdvise->GetViewAdviseFlag(), NULL );
- }
-
- ComSmart< IPersistStorage > pPersist;
- hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, (void**)&pPersist );
- if ( SUCCEEDED( hr ) && pPersist )
- {
- // disconnect the old wrapper from the storage
- pPersist->HandsOffStorage();
- }
-
- m_pDefHandler = NULL;
- }
-
- m_pOleAdvises[0]->UnsetClosed();
- }
- }
-
- if ( m_nCallsOnStack )
- return FALSE;
-
- if ( !m_pDefHandler )
- {
- // create a new default inprocess handler
- HRESULT hr = OleCreateDefaultHandler( m_guid, NULL, IID_IUnknown, (void**)&m_pDefHandler );
- if ( SUCCEEDED( hr ) )
- {
- {
- if ( m_nInitMode == INIT_FROM_STORAGE )
- {
- ComSmart< IPersistStorage > pPersist;
- hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, (void**)&pPersist );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pPersist && m_pStorage )
- hr = pPersist->InitNew( m_pStorage );
- }
- else if ( m_nInitMode == LOAD_FROM_STORAGE )
- {
- ComSmart< IPersistStorage > pPersist;
- hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, (void**)&pPersist );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pPersist && m_pStorage )
- hr = pPersist->Load( m_pStorage );
- }
- else if ( m_nInitMode == LOAD_FROM_FILE )
- {
- ComSmart< IPersistFile > pPersistFile;
- hr = m_pDefHandler->QueryInterface( IID_IPersistFile, (void**)&pPersistFile );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pPersistFile && m_pFileName )
- hr = pPersistFile->Load( m_pFileName, m_nFileOpenMode );
- }
- }
- }
-
- if ( !SUCCEEDED( hr ) || !m_pDefHandler )
- {
- m_pDefHandler = NULL;
- return FALSE;
- }
-
- // register all the listeners new
-
- ComSmart< IOleObject > pOleObject;
- hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
- if ( SUCCEEDED( hr ) && pOleObject )
- {
- if ( m_pClientSite )
- pOleObject->SetClientSite( m_pClientSite );
-
- for ( DWORD nInd = 0; nInd < DEFAULT_ARRAY_LEN; nInd++ )
- if ( m_pOleAdvises[nInd] )
- {
- DWORD nRegID = 0;
- if ( SUCCEEDED( pOleObject->Advise( m_pOleAdvises[nInd], &nRegID ) ) && nRegID > 0 )
- m_pOleAdvises[nInd]->SetRegID( nRegID );
- }
- }
-
- ComSmart< IDataObject > pIDataObject;
- hr = m_pDefHandler->QueryInterface( IID_IDataObject, (void**)&pIDataObject );
- if ( SUCCEEDED( hr ) && pIDataObject )
- {
- for ( DWORD nInd = 0; nInd < DEFAULT_ARRAY_LEN; nInd++ )
- if ( m_pDataAdvises[nInd] )
- {
- DWORD nRegID = 0;
- if ( SUCCEEDED( pIDataObject->DAdvise( m_pDataAdvises[nInd]->GetFormatEtc(), m_pDataAdvises[nInd]->GetDataAdviseFlag(), m_pDataAdvises[nInd], &nRegID ) ) && nRegID > 0 )
- m_pDataAdvises[nInd]->SetRegID( nRegID );
- }
- }
-
- ComSmart< IViewObject > pIViewObject;
- hr = m_pDefHandler->QueryInterface( IID_IViewObject, (void**)&pIViewObject );
- if ( SUCCEEDED( hr ) && pIViewObject )
- {
- if ( m_pViewAdvise )
- pIViewObject->SetAdvise( m_pViewAdvise->GetAspect(), m_pViewAdvise->GetViewAdviseFlag(), m_pViewAdvise );
- }
- }
-
-
- return TRUE;
-}
-
-//-------------------------------------------------------------------------------
-DWORD InprocEmbedDocument_Impl::InsertAdviseLinkToList( const ComSmart<OleWrapperAdviseSink>& pOwnAdvise, ComSmart< OleWrapperAdviseSink > pAdvises[] )
-{
- // the result should start from 1 in case of success, the element 0 can be used for own needs
- DWORD nResult = 0;
-
- if ( pOwnAdvise )
- {
- for ( DWORD nInd = 1; nInd < DEFAULT_ARRAY_LEN && nResult == 0; nInd++ )
- {
- if ( pAdvises[nInd] == pOwnAdvise )
- {
- nResult = nInd;
- }
- else if ( pAdvises[nInd] == NULL )
- {
- pAdvises[nInd] = pOwnAdvise;
- nResult = nInd;
- }
- }
- }
-
- return nResult;
-}
-
-//-------------------------------------------------------------------------------
-void InprocEmbedDocument_Impl::Clean()
-{
- m_pDefHandler = (IUnknown*)NULL;
-
- // no DisconnectOrigAdvise() call here, since it is no explicit disconnection
- for ( DWORD nInd = 0; nInd < DEFAULT_ARRAY_LEN; nInd++ )
- {
- if ( m_pOleAdvises[nInd] )
- {
- ComSmart< OleWrapperAdviseSink > pAdvise = m_pOleAdvises[nInd];
- m_pOleAdvises[nInd] = NULL;
- }
-
- if ( m_pDataAdvises[nInd] )
- {
- ComSmart< OleWrapperAdviseSink > pAdvise = m_pDataAdvises[nInd];
- m_pDataAdvises[nInd] = NULL;
- }
- }
-
- m_pViewAdvise = NULL;
-
- m_nInitMode = NOINIT;
- m_pStorage = NULL;
-
- if ( m_pOleContainer )
- {
- m_pOleContainer->LockContainer( FALSE );
- m_pOleContainer = NULL;
- }
-
- m_pClientSite = NULL;
-
- m_nFileOpenMode = 0;
- if ( m_pFileName )
- {
- delete m_pFileName;
- m_pFileName = NULL;
- }
-}
-
-// IUnknown
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::QueryInterface( REFIID riid, void FAR* FAR* ppv )
-{
- if(IsEqualIID(riid, IID_IUnknown))
- {
- AddRef();
- *ppv = (IUnknown*) (IPersistStorage*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IPersist))
- {
- AddRef();
- *ppv = (IPersist*) (IPersistStorage*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IPersistStorage))
- {
- AddRef();
- *ppv = (IPersistStorage*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IDataObject))
- {
- AddRef();
- *ppv = (IDataObject*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IOleObject))
- {
- AddRef();
- *ppv = (IOleObject*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IPersistFile))
- {
- AddRef();
- *ppv = (IPersistFile*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IRunnableObject))
- {
- AddRef();
- *ppv = (IRunnableObject*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IViewObject))
- {
- AddRef();
- *ppv = (IViewObject*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IViewObject2))
- {
- AddRef();
- *ppv = (IViewObject2*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IOleCache))
- {
- AddRef();
- *ppv = (IOleCache*) &m_aInternalCache;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IOleCache2))
- {
- AddRef();
- *ppv = (IOleCache2*) &m_aInternalCache;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IOleWindow))
- {
- AddRef();
- *ppv = (IOleWindow*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IOleInPlaceObject))
- {
- AddRef();
- *ppv = (IOleInPlaceObject*) this;
- return S_OK;
- }
- else if (IsEqualIID(riid, IID_IDispatch))
- {
- AddRef();
- *ppv = (IDispatch*) this;
- return S_OK;
- }
-
- *ppv = NULL;
- return ResultFromScode(E_NOINTERFACE);
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP_(ULONG) InprocEmbedDocument_Impl::AddRef()
-{
- return ++m_refCount;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP_(ULONG) InprocEmbedDocument_Impl::Release()
-{
- // unfortunately there are reentrance problems in mfc that have to be workarounded
- sal_Int32 nCount = m_refCount > 0 ? --m_refCount : 0;
- if ( nCount == 0 && !m_bDeleted )
- {
- // deleting of this object can trigger deleting of mfc objects that will try to delete this object one more time
- m_bDeleted = TRUE;
-
- Clean();
- delete this;
- }
- return nCount;
-}
-
-// IPersist
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetClassID( CLSID* pClassId )
-{
- *pClassId = *&m_guid;
- return S_OK;
-}
-
-// IPersistStorage
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::IsDirty()
-{
- if ( m_pDefHandler == NULL || m_pOleAdvises[0] == NULL || m_pOleAdvises[0]->IsClosed() )
- return S_FALSE;
-
- if ( CheckDefHandler() )
- {
- ComSmart< IPersistStorage > pPersist;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, (void**)&pPersist );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pPersist )
- return pPersist->IsDirty();
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::InitNew( IStorage *pStg )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IPersistStorage > pPersist;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, (void**)&pPersist );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pPersist )
- {
- hr = pPersist->InitNew( pStg );
- if ( SUCCEEDED( hr ) )
- {
- m_nInitMode = INIT_FROM_STORAGE;
- m_pStorage = pStg;
-
- m_nFileOpenMode = 0;
- if ( m_pFileName )
- {
- delete[] m_pFileName;
- m_pFileName = NULL;
- }
- }
-
- return hr;
- }
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::Load( IStorage *pStg )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IPersistStorage > pPersist;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, (void**)&pPersist );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pPersist )
- {
- hr = pPersist->Load( pStg );
- if ( SUCCEEDED( hr ) )
- {
- m_nInitMode = LOAD_FROM_STORAGE;
- m_pStorage = pStg;
-
- m_nFileOpenMode = 0;
- if ( m_pFileName )
- {
- delete[] m_pFileName;
- m_pFileName = NULL;
- }
- }
-
- return hr;
- }
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::Save( IStorage *pStgSave, BOOL fSameAsLoad )
-{
- if ( fSameAsLoad && ( m_pDefHandler == NULL || m_pOleAdvises[0] == NULL || m_pOleAdvises[0]->IsClosed() ) )
- return S_OK;
-
- if ( CheckDefHandler() )
- {
- ComSmart< IPersistStorage > pPersist;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, (void**)&pPersist );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pPersist )
- return pPersist->Save( pStgSave, fSameAsLoad );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::SaveCompleted( IStorage *pStgNew )
-{
- if ( m_pDefHandler == NULL || m_pOleAdvises[0] == NULL || m_pOleAdvises[0]->IsClosed() )
- {
- if ( pStgNew )
- m_pStorage = pStgNew;
-
- return S_OK;
- }
-
- if ( CheckDefHandler() )
- {
- ComSmart< IPersistStorage > pPersist;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, (void**)&pPersist );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pPersist )
- {
- hr = pPersist->SaveCompleted( pStgNew );
- if ( SUCCEEDED( hr ) )
- {
- m_nInitMode = LOAD_FROM_STORAGE;
- if ( pStgNew )
- {
- m_pStorage = pStgNew;
- }
-
- m_nFileOpenMode = 0;
- if ( m_pFileName )
- {
- delete[] m_pFileName;
- m_pFileName = NULL;
- }
- }
-
- return hr;
- }
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::HandsOffStorage()
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IPersistStorage > pPersist;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistStorage, (void**)&pPersist );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pPersist )
- {
- hr = pPersist->HandsOffStorage();
- if ( SUCCEEDED( hr ) )
- {
- m_pStorage = NULL;
- }
-
- return hr;
- }
- }
-
- return E_FAIL;
-}
-
-// IPersistFile
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::Load( LPCOLESTR pszFileName, DWORD dwMode )
-{
- if ( CheckDefHandler() && pszFileName )
- {
- ComSmart< IPersistFile > pPersist;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistFile, (void**)&pPersist );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pPersist )
- {
- hr = pPersist->Load( pszFileName, dwMode );
- if ( SUCCEEDED( hr ) )
- {
- m_nInitMode = LOAD_FROM_FILE;
- if ( m_pStorage )
- m_pStorage = NULL;
-
- m_nFileOpenMode = dwMode;
- // copy the string
- SetName( pszFileName, m_pFileName );
- }
-
- return hr;
- }
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::Save( LPCOLESTR pszFileName, BOOL fRemember )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IPersistFile > pPersist;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistFile, (void**)&pPersist );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pPersist )
- return pPersist->Save( pszFileName, fRemember );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::SaveCompleted( LPCOLESTR pszFileName )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IPersistFile > pPersist;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistFile, (void**)&pPersist );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pPersist )
- {
- hr = pPersist->SaveCompleted( pszFileName );
- if ( SUCCEEDED( hr ) )
- {
- m_nInitMode = LOAD_FROM_STORAGE;
- if ( m_pStorage )
- m_pStorage = NULL;
-
- m_nFileOpenMode = STGM_READWRITE; // was just written
- // copy the string
- SetName( pszFileName, m_pFileName );
- }
- }
-
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetCurFile( LPOLESTR *ppszFileName )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IPersistFile > pPersist;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IPersistFile, (void**)&pPersist );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pPersist )
- return pPersist->GetCurFile( ppszFileName );
- }
-
- return E_FAIL;
-}
-
-// IOleObject
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::SetClientSite( IOleClientSite* pSite )
-{
- if ( pSite == m_pClientSite )
- return S_OK;
-
- if ( !pSite )
- {
- m_pClientSite = NULL;
- if ( m_pOleContainer )
- {
- m_pOleContainer->LockContainer( FALSE );
- m_pOleContainer = NULL;
- }
- }
-
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- {
- HRESULT hr = pOleObject->SetClientSite( pSite );
- if ( SUCCEEDED( hr ) )
- {
- m_pClientSite = pSite;
-
- if ( m_pOleContainer )
- {
- m_pOleContainer->LockContainer( FALSE );
- m_pOleContainer = NULL;
- }
-
- m_pClientSite->GetContainer( &m_pOleContainer );
- if ( m_pOleContainer )
- m_pOleContainer->LockContainer( TRUE );
- }
-
- return hr;
- }
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetClientSite( IOleClientSite** pSite )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- return pOleObject->GetClientSite( pSite );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::SetHostNames( LPCOLESTR szContainerApp, LPCOLESTR szContainerObj )
-{
-
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- {
- hr = pOleObject->SetHostNames( szContainerApp, szContainerObj );
- }
- }
-
- return S_OK;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::Close( DWORD dwSaveOption )
-{
- if ( m_pDefHandler && CheckDefHandler() )
- {
- // no need to close if there is no default handler.
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- {
- hr = pOleObject->Close( dwSaveOption );
- hr = CoDisconnectObject( (IUnknown*)(IPersistStorage*)this, 0 );
- }
- }
-
- // if the object is closed from outside that means that it should go to uninitialized state
- Clean();
-
- return S_OK;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::SetMoniker( DWORD dwWhichMoniker, IMoniker * pmk )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- return pOleObject->SetMoniker( dwWhichMoniker, pmk );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetMoniker( DWORD dwAssign, DWORD dwWhichMoniker, IMoniker ** ppmk )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- return pOleObject->GetMoniker( dwAssign, dwWhichMoniker, ppmk );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::InitFromData( IDataObject * pDataObject, BOOL fCreation, DWORD dwReserved )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- return pOleObject->InitFromData( pDataObject, fCreation, dwReserved );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetClipboardData( DWORD dwReserved, IDataObject ** ppDataObject )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- return pOleObject->GetClipboardData( dwReserved, ppDataObject );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::DoVerb(
- LONG iVerb,
- LPMSG pMsg,
- IOleClientSite *pActiveSite,
- LONG nLong,
- HWND hWin,
- LPCRECT pRect )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- {
- hr = pOleObject->DoVerb( iVerb, pMsg, pActiveSite, nLong, hWin, pRect );
- if ( SUCCEEDED( hr ) )
- {
- }
-
- return hr;
- }
-
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::EnumVerbs( IEnumOLEVERB ** ppEnumOleVerb )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- return pOleObject->EnumVerbs( ppEnumOleVerb );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::Update()
-{
-
- if ( m_pDefHandler && CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- return pOleObject->Update();
- }
-
- return S_OK;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::IsUpToDate()
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- return pOleObject->IsUpToDate();
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetUserClassID( CLSID *pClsid )
-{
- if ( pClsid )
- *pClsid = m_guid;
-
- return S_OK;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetUserType( DWORD dwFormOfType, LPOLESTR * pszUserType )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- return pOleObject->GetUserType( dwFormOfType, pszUserType );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::SetExtent( DWORD dwDrawAspect, SIZEL *psizel )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- return pOleObject->SetExtent( dwDrawAspect, psizel );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetExtent( DWORD dwDrawAspect, SIZEL * psizel )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- return pOleObject->GetExtent( dwDrawAspect, psizel );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::Advise( IAdviseSink *pAdvSink, DWORD *pdwConnection )
-{
-
- if ( !pdwConnection )
- return E_FAIL;
-
- // CheckDefHandler will set the listener, avoid reusing of old listener
- if ( DEFAULT_ARRAY_LEN > *pdwConnection && *pdwConnection > 0 && m_pOleAdvises[*pdwConnection] )
- {
- m_pOleAdvises[*pdwConnection]->DisconnectOrigAdvise();
- m_pOleAdvises[*pdwConnection] = NULL;
- }
-
- if ( pAdvSink && CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- {
- ComSmart< OleWrapperAdviseSink > pOwnAdvise( new OleWrapperAdviseSink( pAdvSink ) );
- DWORD nRegID = 0;
-
- if ( SUCCEEDED( pOleObject->Advise( pOwnAdvise, &nRegID ) ) && nRegID > 0 )
- {
- pOwnAdvise->SetRegID( nRegID );
- *pdwConnection = InsertAdviseLinkToList( pOwnAdvise, m_pOleAdvises );
- if ( *pdwConnection )
- return S_OK;
- else
- pOleObject->Unadvise( nRegID );
- }
- }
- }
-
- // return success always for now
- return S_OK;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::Unadvise( DWORD dwConnection )
-{
- if ( DEFAULT_ARRAY_LEN > dwConnection && dwConnection > 0 && m_pOleAdvises[dwConnection] )
- {
- if ( m_pDefHandler )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- {
- DWORD nID = m_pOleAdvises[dwConnection]->GetRegID();
- pOleObject->Unadvise( nID );
- }
- }
-
- m_pOleAdvises[dwConnection]->DisconnectOrigAdvise();
- m_pOleAdvises[dwConnection] = NULL;
-
- return S_OK;
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::EnumAdvise( IEnumSTATDATA ** /*ppenumAdvise*/ )
-{
- return E_NOTIMPL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetMiscStatus( DWORD dwAspect, DWORD * pdwStatus )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- return pOleObject->GetMiscStatus( dwAspect, pdwStatus );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::SetColorScheme( LOGPALETTE * pLogpal )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleObject > pOleObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleObject, (void**)&pOleObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pOleObject )
- return pOleObject->SetColorScheme( pLogpal );
- }
-
- return E_FAIL;
-}
-
-//IDataObject
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetData( FORMATETC * pFormatetc, STGMEDIUM * pMedium )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IDataObject > pIDataObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, (void**)&pIDataObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIDataObject )
- return pIDataObject->GetData( pFormatetc, pMedium );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetDataHere( FORMATETC * pFormatetc, STGMEDIUM * pMedium )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IDataObject > pIDataObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, (void**)&pIDataObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIDataObject )
- return pIDataObject->GetDataHere( pFormatetc, pMedium );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::QueryGetData( FORMATETC * pFormatetc )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IDataObject > pIDataObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, (void**)&pIDataObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIDataObject )
- return pIDataObject->QueryGetData( pFormatetc );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetCanonicalFormatEtc( FORMATETC * pFormatetcIn, FORMATETC * pFormatetcOut )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IDataObject > pIDataObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, (void**)&pIDataObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIDataObject )
- return pIDataObject->GetCanonicalFormatEtc( pFormatetcIn, pFormatetcOut );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::SetData( FORMATETC * pFormatetc, STGMEDIUM * pMedium, BOOL fRelease )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IDataObject > pIDataObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, (void**)&pIDataObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIDataObject )
- return pIDataObject->SetData( pFormatetc, pMedium, fRelease );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::EnumFormatEtc( DWORD dwDirection, IEnumFORMATETC ** ppFormatetc )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IDataObject > pIDataObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, (void**)&pIDataObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIDataObject )
- return pIDataObject->EnumFormatEtc( dwDirection, ppFormatetc );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::DAdvise( FORMATETC * pFormatetc, DWORD advf, IAdviseSink * pAdvSink, DWORD * pdwConnection )
-{
-
- if ( !pdwConnection )
- return E_FAIL;
-
- // avoid reusing of the old listener
- if ( m_pDefHandler && DEFAULT_ARRAY_LEN > *pdwConnection && *pdwConnection > 0 && m_pDataAdvises[*pdwConnection] )
- {
- m_pDataAdvises[*pdwConnection]->DisconnectOrigAdvise();
- m_pDataAdvises[*pdwConnection] = NULL;
- }
-
- if ( pAdvSink && CheckDefHandler() )
- {
- ComSmart< IDataObject > pIDataObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, (void**)&pIDataObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIDataObject )
- {
- ComSmart< OleWrapperAdviseSink > pOwnAdvise( new OleWrapperAdviseSink( ComSmart<IAdviseSink>( pAdvSink ), pFormatetc, advf ) );
- DWORD nRegID = 0;
-
- if ( SUCCEEDED( pIDataObject->DAdvise( pFormatetc, advf, pOwnAdvise, &nRegID ) ) && nRegID > 0 )
- {
- pOwnAdvise->SetRegID( nRegID );
- *pdwConnection = InsertAdviseLinkToList( pOwnAdvise, m_pDataAdvises );
- if ( *pdwConnection )
- return S_OK;
- else
- pIDataObject->DUnadvise( nRegID );
- }
- }
- }
-
- // return success always for now
- return S_OK;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::DUnadvise( DWORD dwConnection )
-{
- if ( m_pDefHandler && DEFAULT_ARRAY_LEN > dwConnection && dwConnection > 0 && m_pDataAdvises[dwConnection] )
- {
- if ( CheckDefHandler() )
- {
- ComSmart< IDataObject > pIDataObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, (void**)&pIDataObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIDataObject )
- {
- DWORD nID = m_pDataAdvises[dwConnection]->GetRegID();
- pIDataObject->DUnadvise( nID );
- }
- }
-
- m_pDataAdvises[dwConnection]->DisconnectOrigAdvise();
- m_pDataAdvises[dwConnection] = NULL;
-
- return S_OK;
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::EnumDAdvise( IEnumSTATDATA ** ppenumAdvise )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IDataObject > pIDataObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IDataObject, (void**)&pIDataObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIDataObject )
- return pIDataObject->EnumDAdvise( ppenumAdvise );
- }
-
- return E_FAIL;
-}
-
-// IRunnableObject
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetRunningClass( LPCLSID lpClsid )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IRunnableObject > pIRunObj;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IRunnableObject, (void**)&pIRunObj );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIRunObj )
- return pIRunObj->GetRunningClass( lpClsid );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::Run( LPBINDCTX pbc )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IRunnableObject > pIRunObj;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IRunnableObject, (void**)&pIRunObj );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIRunObj )
- return pIRunObj->Run( pbc );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-BOOL STDMETHODCALLTYPE InprocEmbedDocument_Impl::IsRunning()
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IRunnableObject > pIRunObj;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IRunnableObject, (void**)&pIRunObj );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIRunObj )
- return pIRunObj->IsRunning();
- }
-
- return E_FAIL;
-
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::LockRunning( BOOL fLock, BOOL fLastUnlockCloses )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IRunnableObject > pIRunObj;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IRunnableObject, (void**)&pIRunObj );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIRunObj )
- return pIRunObj->LockRunning( fLock, fLastUnlockCloses );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::SetContainedObject( BOOL fContained)
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IRunnableObject > pIRunObj;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IRunnableObject, (void**)&pIRunObj );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIRunObj )
- return pIRunObj->SetContainedObject( fContained );
- }
-
- return E_FAIL;
-}
-
-
-// IViewObject methods
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::Draw( DWORD dwDrawAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds, BOOL ( STDMETHODCALLTYPE *pfnContinue )( ULONG_PTR dwContinue ), ULONG_PTR dwContinue )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IViewObject > pIViewObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IViewObject, (void**)&pIViewObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIViewObject )
- return pIViewObject->Draw( dwDrawAspect, lindex, pvAspect, ptd, hdcTargetDev, hdcDraw, lprcBounds, lprcWBounds, pfnContinue, dwContinue );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetColorSet( DWORD dwDrawAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE **ppColorSet )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IViewObject > pIViewObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IViewObject, (void**)&pIViewObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIViewObject )
- return pIViewObject->GetColorSet( dwDrawAspect, lindex, pvAspect, ptd, hicTargetDev, ppColorSet );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::Freeze( DWORD dwDrawAspect, LONG lindex, void *pvAspect, DWORD *pdwFreeze )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IViewObject > pIViewObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IViewObject, (void**)&pIViewObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIViewObject )
- return pIViewObject->Freeze( dwDrawAspect, lindex, pvAspect, pdwFreeze );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::Unfreeze( DWORD dwFreeze )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IViewObject > pIViewObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IViewObject, (void**)&pIViewObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIViewObject )
- return pIViewObject->Unfreeze( dwFreeze );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::SetAdvise( DWORD aspects, DWORD advf, IAdviseSink *pAdvSink )
-{
-
- // CheckDefHandler will set the listener, avoid reusing of old listener
- if ( m_pViewAdvise )
- {
- m_pViewAdvise->DisconnectOrigAdvise();
- m_pViewAdvise = NULL;
- }
-
- if ( pAdvSink && CheckDefHandler() )
- {
- ComSmart< IViewObject > pIViewObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IViewObject, (void**)&pIViewObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIViewObject )
- {
- ComSmart< OleWrapperAdviseSink > pOwnAdvise( new OleWrapperAdviseSink( pAdvSink, aspects, advf ) );
-
- if ( SUCCEEDED( pIViewObject->SetAdvise( aspects, advf, pOwnAdvise ) ) )
- {
- m_pViewAdvise = pOwnAdvise;
- return S_OK;
- }
- }
- }
-
- return S_OK;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetAdvise( DWORD *pAspects, DWORD *pAdvf, IAdviseSink **ppAdvSink )
-{
- if ( !ppAdvSink )
- return E_INVALIDARG;
-
- if ( m_pViewAdvise )
- {
- if ( pAspects )
- *pAspects = m_pViewAdvise->GetAspect();
-
- if ( pAdvf )
- *pAdvf = m_pViewAdvise->GetViewAdviseFlag();
-
- *ppAdvSink = m_pViewAdvise->GetOrigAdvise();
- if ( *ppAdvSink )
- (*ppAdvSink)->AddRef();
- }
- else
- *ppAdvSink = NULL;
-
- return S_OK;
-}
-
-// IViewObject2 methods
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetExtent( DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE *ptd, LPSIZEL lpsizel )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IViewObject2 > pIViewObject2;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IViewObject2, (void**)&pIViewObject2 );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIViewObject2 )
- return pIViewObject2->GetExtent( dwDrawAspect, lindex, ptd, lpsizel );
- }
-
- return E_FAIL;
-}
-
-
-
-// IOleWindow methods
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetWindow( HWND *phwnd )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleWindow > pIOleWindow;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleWindow, (void**)&pIOleWindow );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIOleWindow )
- return pIOleWindow->GetWindow( phwnd );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::ContextSensitiveHelp( BOOL fEnterMode )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleWindow > pIOleWindow;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleWindow, (void**)&pIOleWindow );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIOleWindow )
- return pIOleWindow->ContextSensitiveHelp( fEnterMode );
- }
-
- return E_FAIL;
-}
-
-
-// IOleInPlaceObject methods
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::InPlaceDeactivate( void )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleInPlaceObject > pIOleInPlaceObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleInPlaceObject, (void**)&pIOleInPlaceObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIOleInPlaceObject )
- return pIOleInPlaceObject->InPlaceDeactivate();
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::UIDeactivate( void )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleInPlaceObject > pIOleInPlaceObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleInPlaceObject, (void**)&pIOleInPlaceObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIOleInPlaceObject )
- return pIOleInPlaceObject->UIDeactivate();
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::SetObjectRects( LPCRECT lprcPosRect, LPCRECT lprcClipRect )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleInPlaceObject > pIOleInPlaceObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleInPlaceObject, (void**)&pIOleInPlaceObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIOleInPlaceObject )
- return pIOleInPlaceObject->SetObjectRects( lprcPosRect, lprcClipRect );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::ReactivateAndUndo( void )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IOleInPlaceObject > pIOleInPlaceObject;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IOleInPlaceObject, (void**)&pIOleInPlaceObject );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIOleInPlaceObject )
- return pIOleInPlaceObject->ReactivateAndUndo();
- }
-
- return E_FAIL;
-}
-
-
-// IDispatch methods
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetTypeInfoCount( UINT *pctinfo )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IDispatch > pIDispatch;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IDispatch, (void**)&pIDispatch );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIDispatch )
- return pIDispatch->GetTypeInfoCount( pctinfo );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetTypeInfo( UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IDispatch > pIDispatch;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IDispatch, (void**)&pIDispatch );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIDispatch )
- return pIDispatch->GetTypeInfo( iTInfo, lcid, ppTInfo );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::GetIDsOfNames( REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IDispatch > pIDispatch;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IDispatch, (void**)&pIDispatch );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIDispatch )
- return pIDispatch->GetIDsOfNames( riid, rgszNames, cNames, lcid, rgDispId );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::Invoke( DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr )
-{
- if ( CheckDefHandler() )
- {
- ComSmart< IDispatch > pIDispatch;
- HRESULT hr = m_pDefHandler->QueryInterface( IID_IDispatch, (void**)&pIDispatch );
-
- ULONGGuard aGuard( &m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIDispatch )
- return pIDispatch->Invoke( dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr );
- }
-
- return E_FAIL;
-}
-
-
-// ====
-// InternalCacheWrapper
-// ====
-
-// IUnknown
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper::QueryInterface( REFIID riid, void FAR* FAR* ppv )
-{
- return m_rOwnDocument.QueryInterface( riid, ppv );
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP_(ULONG) InprocEmbedDocument_Impl::InternalCacheWrapper::AddRef()
-{
- return m_rOwnDocument.AddRef();
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP_(ULONG) InprocEmbedDocument_Impl::InternalCacheWrapper::Release()
-{
- return m_rOwnDocument.Release();
-}
-
-// IOleCache methods
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper::Cache( FORMATETC *pformatetc, DWORD advf, DWORD *pdwConnection )
-{
- if ( m_rOwnDocument.CheckDefHandler() )
- {
- ComSmart< IOleCache > pIOleCache;
- HRESULT hr = m_rOwnDocument.GetDefHandler()->QueryInterface( IID_IOleCache, (void**)&pIOleCache );
-
- ULONGGuard aGuard( &m_rOwnDocument.m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIOleCache )
- return pIOleCache->Cache( pformatetc, advf, pdwConnection );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper::Uncache( DWORD dwConnection )
-{
- if ( m_rOwnDocument.CheckDefHandler() )
- {
- ComSmart< IOleCache > pIOleCache;
- HRESULT hr = m_rOwnDocument.GetDefHandler()->QueryInterface( IID_IOleCache, (void**)&pIOleCache );
-
- ULONGGuard aGuard( &m_rOwnDocument.m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIOleCache )
- return pIOleCache->Uncache( dwConnection );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper::EnumCache( IEnumSTATDATA **ppenumSTATDATA )
-{
- if ( m_rOwnDocument.CheckDefHandler() )
- {
- ComSmart< IOleCache > pIOleCache;
- HRESULT hr = m_rOwnDocument.GetDefHandler()->QueryInterface( IID_IOleCache, (void**)&pIOleCache );
-
- ULONGGuard aGuard( &m_rOwnDocument.m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIOleCache )
- return pIOleCache->EnumCache( ppenumSTATDATA );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper::InitCache( IDataObject *pDataObject )
-{
- if ( m_rOwnDocument.CheckDefHandler() )
- {
- ComSmart< IOleCache > pIOleCache;
- HRESULT hr = m_rOwnDocument.GetDefHandler()->QueryInterface( IID_IOleCache, (void**)&pIOleCache );
-
- ULONGGuard aGuard( &m_rOwnDocument.m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIOleCache )
- return pIOleCache->InitCache( pDataObject );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper::SetData( FORMATETC *pformatetc, STGMEDIUM *pmedium, BOOL fRelease )
-{
- if ( m_rOwnDocument.CheckDefHandler() )
- {
- ComSmart< IOleCache > pIOleCache;
- HRESULT hr = m_rOwnDocument.GetDefHandler()->QueryInterface( IID_IOleCache, (void**)&pIOleCache );
-
- ULONGGuard aGuard( &m_rOwnDocument.m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIOleCache )
- return pIOleCache->SetData( pformatetc, pmedium, fRelease );
- }
-
- return E_FAIL;
-}
-
-// IOleCache2 methods
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper::UpdateCache( LPDATAOBJECT pDataObject, DWORD grfUpdf, LPVOID pReserved )
-{
- if ( m_rOwnDocument.CheckDefHandler() )
- {
- ComSmart< IOleCache2 > pIOleCache2;
- HRESULT hr = m_rOwnDocument.GetDefHandler()->QueryInterface( IID_IOleCache2, (void**)&pIOleCache2 );
-
- ULONGGuard aGuard( &m_rOwnDocument.m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIOleCache2 )
- return pIOleCache2->UpdateCache( pDataObject, grfUpdf, pReserved );
- }
-
- return E_FAIL;
-}
-
-//-------------------------------------------------------------------------------
-STDMETHODIMP InprocEmbedDocument_Impl::InternalCacheWrapper::DiscardCache( DWORD dwDiscardOptions )
-{
- if ( m_rOwnDocument.CheckDefHandler() )
- {
- ComSmart< IOleCache2 > pIOleCache2;
- HRESULT hr = m_rOwnDocument.GetDefHandler()->QueryInterface( IID_IOleCache2, (void**)&pIOleCache2 );
-
- ULONGGuard aGuard( &m_rOwnDocument.m_nCallsOnStack ); // avoid reentrance problem
- if ( SUCCEEDED( hr ) && pIOleCache2 )
- return pIOleCache2->DiscardCache( dwDiscardOptions );
- }
-
- return E_FAIL;
-}
-
-}; // namespace inprocserv
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inprocserv/inprocembobj.h b/embedserv/source/inprocserv/inprocembobj.h
deleted file mode 100644
index ebbbd393e..000000000
--- a/embedserv/source/inprocserv/inprocembobj.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _INPROCEMBOBJ_HXX_
-#define _INPROCEMBOBJ_HXX_
-
-#pragma warning(disable : 4668)
-
-#include <windows.h>
-#include <oleidl.h>
-
-#include "smartpointer.hxx"
-#include "advisesink.hxx"
-
-#define DEFAULT_ARRAY_LEN 256
-
-namespace inprocserv {
-
-enum InitModes {
- NOINIT,
- INIT_FROM_STORAGE,
- LOAD_FROM_STORAGE,
- LOAD_FROM_FILE
-};
-
-// ==================================
-// this is a common baseclass that is used to count the objects
-// ==================================
-class InprocCountedObject_Impl
-{
-public:
- InprocCountedObject_Impl();
- ~InprocCountedObject_Impl();
-};
-
-// ==================================
-// this is the inprocess embedded object implementation class
-// ==================================
-class InprocEmbedDocument_Impl : public InprocCountedObject_Impl
- , public IOleObject
- , public IDataObject
- , public IPersistStorage
- , public IPersistFile
- , public IRunnableObject
- , public IViewObject2
- // , public IExternalConnection
- , public IOleInPlaceObject
- , public IDispatch
-{
- ULONG m_refCount;
- BOOLEAN m_bDeleted;
-
- GUID m_guid;
-
- ComSmart< IUnknown > m_pDefHandler;
- InitModes m_nInitMode;
-
- DWORD m_nFileOpenMode;
- wchar_t* m_pFileName;
-
- ComSmart< IStorage > m_pStorage;
-
- ComSmart< IOleClientSite > m_pClientSite;
- ComSmart< IOleContainer > m_pOleContainer;
-
- ULONG m_nCallsOnStack;
-
- // the listeners have wrappers that are directly connected to the object and call the listeners,
- // the wrappers will be reconnected correctly to the new default inprocess holder object
- ComSmart< OleWrapperAdviseSink > m_pOleAdvises[DEFAULT_ARRAY_LEN];
- ComSmart< OleWrapperAdviseSink > m_pDataAdvises[DEFAULT_ARRAY_LEN];
- ComSmart< OleWrapperAdviseSink > m_pViewAdvise;
-
- class InternalCacheWrapper : public IOleCache2
- {
- InprocEmbedDocument_Impl& m_rOwnDocument;
-
- public:
- InternalCacheWrapper( InprocEmbedDocument_Impl& rOwnDocument )
- : m_rOwnDocument( rOwnDocument )
- {}
-
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(REFIID riid, LPVOID FAR * ppvObj);
- STDMETHOD_(ULONG, AddRef)();
- STDMETHOD_(ULONG, Release)();
-
- /* IOleCache2 methods */
- STDMETHOD(Cache)( FORMATETC *pformatetc, DWORD advf, DWORD *pdwConnection);
- STDMETHOD(Uncache)( DWORD dwConnection);
- STDMETHOD(EnumCache)( IEnumSTATDATA **ppenumSTATDATA);
- STDMETHOD(InitCache)( IDataObject *pDataObject);
- STDMETHOD(SetData)( FORMATETC *pformatetc, STGMEDIUM *pmedium, BOOL fRelease);
- STDMETHOD(UpdateCache)( LPDATAOBJECT pDataObject, DWORD grfUpdf, LPVOID pReserved);
- STDMETHOD(DiscardCache)( DWORD dwDiscardOptions);
- } m_aInternalCache;
-
-
- DWORD InsertAdviseLinkToList( const ComSmart<OleWrapperAdviseSink>& pOwnAdvise, ComSmart< OleWrapperAdviseSink > pAdvises[] );
- void Clean();
-
-
-public:
-
- InprocEmbedDocument_Impl( const GUID& guid )
- : m_refCount( 0 )
- , m_bDeleted( FALSE )
- , m_guid( guid )
- , m_nInitMode( NOINIT )
- , m_nFileOpenMode( 0 )
- , m_pFileName( NULL )
- , m_nCallsOnStack( 0 )
- , m_aInternalCache( *this )
- {}
-
- virtual ~InprocEmbedDocument_Impl()
- {}
-
- HRESULT Init();
- void SetName( LPCOLESTR pszNameFromOutside, wchar_t*& pOwnName );
-
- BOOL CheckDefHandler();
- ComSmart< IUnknown >& GetDefHandler() { return m_pDefHandler; }
-
- /* IUnknown methods */
- STDMETHOD(QueryInterface)(REFIID riid, LPVOID FAR * ppvObj);
- STDMETHOD_(ULONG, AddRef)();
- STDMETHOD_(ULONG, Release)();
-
- /* IOleObject methods */
- STDMETHOD(SetClientSite) ( IOleClientSite* pSite );
- STDMETHOD(GetClientSite) ( IOleClientSite** pSite );
- STDMETHOD(SetHostNames) ( LPCOLESTR szContainerApp, LPCOLESTR szContainerObj );
- STDMETHOD(Close) ( DWORD dwSaveOption);
- STDMETHOD(SetMoniker) ( DWORD dwWhichMoniker, IMoniker *pmk );
- STDMETHOD(GetMoniker) ( DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk );
- STDMETHOD(InitFromData) ( IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved );
- STDMETHOD(GetClipboardData) ( DWORD dwReserved, IDataObject **ppDataObject );
- STDMETHOD(DoVerb) ( LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect );
- STDMETHOD(EnumVerbs) ( IEnumOLEVERB **ppEnumOleVerb );
- STDMETHOD(Update) ();
- STDMETHOD(IsUpToDate) ();
- STDMETHOD(GetUserClassID) ( CLSID *pClsid );
- STDMETHOD(GetUserType) ( DWORD dwFormOfType, LPOLESTR *pszUserType );
- STDMETHOD(SetExtent) ( DWORD dwDrawAspect, SIZEL *psizel );
- STDMETHOD(GetExtent) ( DWORD dwDrawAspect, SIZEL *psizel );
- STDMETHOD(Advise) ( IAdviseSink *pAdvSink, DWORD *pdwConnection );
- STDMETHOD(Unadvise) ( DWORD dwConnection );
- STDMETHOD(EnumAdvise) ( IEnumSTATDATA **ppenumAdvise );
- STDMETHOD(GetMiscStatus) ( DWORD dwAspect, DWORD *pdwStatus );
- STDMETHOD(SetColorScheme) ( LOGPALETTE *pLogpal );
-
- /* IDataObject methods */
- STDMETHOD(GetData) ( FORMATETC * pFormatetc, STGMEDIUM * pMedium );
- STDMETHOD(GetDataHere) ( FORMATETC * pFormatetc, STGMEDIUM * pMedium );
- STDMETHOD(QueryGetData) ( FORMATETC * pFormatetc );
- STDMETHOD(GetCanonicalFormatEtc) ( FORMATETC * pFormatetcIn, FORMATETC * pFormatetcOut );
- STDMETHOD(SetData) ( FORMATETC * pFormatetc, STGMEDIUM * pMedium, BOOL fRelease );
- STDMETHOD(EnumFormatEtc) ( DWORD dwDirection, IEnumFORMATETC ** ppFormatetc );
- STDMETHOD(DAdvise) ( FORMATETC * pFormatetc, DWORD advf, IAdviseSink * pAdvSink, DWORD * pdwConnection );
- STDMETHOD(DUnadvise) ( DWORD dwConnection );
- STDMETHOD(EnumDAdvise) ( IEnumSTATDATA ** ppenumAdvise );
-
- /* IPersistMethod */
- STDMETHOD(GetClassID)(CLSID *pClassID);
-
- /* IPersistStorage methods */
- STDMETHOD(IsDirty) ();
- STDMETHOD(InitNew) ( IStorage *pStg );
- STDMETHOD(Load) ( IStorage* pStr );
- STDMETHOD(Save) ( IStorage *pStgSave, BOOL fSameAsLoad );
- STDMETHOD(SaveCompleted) ( IStorage *pStgNew );
- STDMETHOD(HandsOffStorage) (void);
-
- /* IPersistFile methods */
- STDMETHOD(Load) ( LPCOLESTR pszFileName, DWORD dwMode );
- STDMETHOD(Save) ( LPCOLESTR pszFileName, BOOL fRemember );
- STDMETHOD(SaveCompleted) ( LPCOLESTR pszFileName );
- STDMETHOD(GetCurFile) ( LPOLESTR *ppszFileName );
-
- /* IRunnableObject methods */
- STDMETHOD(GetRunningClass) ( LPCLSID lpClsid);
- STDMETHOD(Run) ( LPBINDCTX pbc);
- virtual BOOL STDMETHODCALLTYPE IsRunning( void);
- STDMETHOD(LockRunning) ( BOOL fLock, BOOL fLastUnlockCloses );
- STDMETHOD(SetContainedObject) ( BOOL fContained);
-
- /* IViewObject2 methods */
- STDMETHOD(Draw)( DWORD dwDrawAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds, BOOL ( STDMETHODCALLTYPE *pfnContinue )( ULONG_PTR dwContinue ), ULONG_PTR dwContinue);
- STDMETHOD(GetColorSet)( DWORD dwDrawAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE **ppColorSet);
- STDMETHOD(Freeze)( DWORD dwDrawAspect, LONG lindex, void *pvAspect, DWORD *pdwFreeze);
- STDMETHOD(Unfreeze)( DWORD dwFreeze);
- STDMETHOD(SetAdvise)( DWORD aspects, DWORD advf, IAdviseSink *pAdvSink);
- STDMETHOD(GetAdvise)( DWORD *pAspects, DWORD *pAdvf, IAdviseSink **ppAdvSink);
- STDMETHOD(GetExtent)( DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE *ptd, LPSIZEL lpsizel);
-
- /* IOleWindow methods */
- STDMETHOD(GetWindow)( HWND *phwnd);
- STDMETHOD(ContextSensitiveHelp)( BOOL fEnterMode);
-
- /* IOleInPlaceObject methods */
- STDMETHOD(InPlaceDeactivate)( void);
- STDMETHOD(UIDeactivate)( void);
- STDMETHOD(SetObjectRects)( LPCRECT lprcPosRect, LPCRECT lprcClipRect);
- STDMETHOD(ReactivateAndUndo)( void);
-
- /*IDispatch methods*/
- STDMETHOD(GetTypeInfoCount)( UINT *pctinfo);
- STDMETHOD(GetTypeInfo)( UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
- STDMETHOD(GetIDsOfNames)( REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
- STDMETHOD(Invoke)( DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
-
-};
-
-} // namespace inprocserv
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/embedserv/source/inprocserv/makefile.mk b/embedserv/source/inprocserv/makefile.mk
deleted file mode 100644
index 024e0f9d4..000000000
--- a/embedserv/source/inprocserv/makefile.mk
+++ /dev/null
@@ -1,80 +0,0 @@
-#*************************************************************************
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-#
-# Copyright 2000, 2010 Oracle and/or its affiliates.
-#
-# OpenOffice.org - a multi-platform office productivity suite
-#
-# This file is part of OpenOffice.org.
-#
-# OpenOffice.org is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Lesser General Public License version 3
-# only, as published by the Free Software Foundation.
-#
-# OpenOffice.org is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Lesser General Public License version 3 for more details
-# (a copy is included in the LICENSE file that accompanied this code).
-#
-# You should have received a copy of the GNU Lesser General Public License
-# version 3 along with OpenOffice.org. If not, see
-# <http://www.openoffice.org/license.html>
-# for a copy of the LGPLv3 License.
-#
-#*************************************************************************
-
-PRJ=..$/..
-PRJNAME=embedserv
-TARGET=inprocserv
-
-use_shl_versions=
-
-# --- Settings ----------------------------------
-.INCLUDE : settings.mk
-
-.IF "$(GUI)" == "WNT"
-
-LIBTARGET=NO
-USE_DEFFILE=YES
-LIBCMT=libcmt.lib
-UWINAPILIB=
-
-# --- Files -------------------------------------
-
-SLOFILES=\
- $(SLO)$/dllentry.obj \
- $(SLO)$/advisesink.obj \
- $(SLO)$/inprocembobj.obj
-
-SHL1TARGET=$(TARGET)
-.IF "$(COM)"=="GCC"
-SHL1STDLIBS += -lstdc++
-.IF "$(MINGW_GCCLIB_EH)"=="YES"
-SHL1STDLIBS += -lgcc_eh
-.ENDIF
-SHL1STDLIBS += -lgcc -lmingw32 -lmoldname -lmsvcrt
-.ELSE
-SHL1STDLIBS=
-.ENDIF
-
-SHL1STDLIBS+=\
- $(UUIDLIB)\
- $(OLE32LIB)\
- $(GDI32LIB)\
- $(ADVAPI32LIB)
-
-SHL1OBJS=$(SLOFILES)
-
-SHL1DEF=$(MISC)$/$(TARGET).def
-
-DEF1NAME= $(TARGET)
-DEF1EXPORTFILE= exports.dxp
-
-.ENDIF
-
-# --- Targets ----------------------------------
-
-.INCLUDE : target.mk
-
diff --git a/embedserv/source/inprocserv/smartpointer.hxx b/embedserv/source/inprocserv/smartpointer.hxx
deleted file mode 100644
index c4f25c4dc..000000000
--- a/embedserv/source/inprocserv/smartpointer.hxx
+++ /dev/null
@@ -1,185 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _INPROCSERV_SMARTPOINTER_HXX_
-#define _INPROCSERV_SMARTPOINTER_HXX_
-
-namespace inprocserv{
-
-void WriteDebugInfo( DWORD pThis, char* pString, DWORD nToWrite );
-
-template< class T > class ComSmart
-{
- T* m_pInterface;
-
- void OwnRelease()
- {
- if ( m_pInterface )
- {
- T* pInterface = m_pInterface;
- m_pInterface = NULL;
- pInterface->Release();
- }
- }
-
-public:
- ComSmart()
- : m_pInterface( NULL )
- {}
-
- ComSmart( const ComSmart<T>& rObj )
- : m_pInterface( rObj.m_pInterface )
- {
- if ( m_pInterface != NULL )
- m_pInterface->AddRef();
- }
-
- ComSmart( T* pInterface )
- : m_pInterface( pInterface )
- {
- if ( m_pInterface != NULL )
- m_pInterface->AddRef();
- }
-
- ~ComSmart()
- {
- OwnRelease();
- }
-
- ComSmart& operator=( const ComSmart<T>& rObj )
- {
- OwnRelease();
-
- m_pInterface = rObj.m_pInterface;
-
- if ( m_pInterface != NULL )
- m_pInterface->AddRef();
-
- return *this;
- }
-
- ComSmart<T>& operator=( T* pInterface )
- {
- OwnRelease();
-
- m_pInterface = pInterface;
-
- if ( m_pInterface != NULL )
- m_pInterface->AddRef();
-
- return *this;
- }
-
- operator T*() const
- {
- return m_pInterface;
- }
-
- T& operator*() const
- {
- return *m_pInterface;
- }
-
- T** operator&()
- {
- OwnRelease();
-
- m_pInterface = NULL;
-
- return &m_pInterface;
- }
-
- T* operator->() const
- {
- return m_pInterface;
- }
-
- BOOL operator==( const ComSmart<T>& rObj ) const
- {
- return ( m_pInterface == rObj.m_pInterface );
- }
-
- BOOL operator!=( const ComSmart<T>& rObj ) const
- {
- return ( m_pInterface != rObj.m_pInterface );
- }
-
- BOOL operator==( const T* pInterface ) const
- {
- return ( m_pInterface == pInterface );
- }
-
- BOOL operator!=( const T* pInterface ) const
- {
- return ( m_pInterface != pInterface );
- }
-};
-
-class CSGuard
-{
- CRITICAL_SECTION* m_pCriticalSection;
-
-public:
- CSGuard( CRITICAL_SECTION* pCS )
- : m_pCriticalSection( pCS )
- {
- if ( m_pCriticalSection )
- EnterCriticalSection( m_pCriticalSection );
- }
-
- ~CSGuard()
- {
- if ( m_pCriticalSection )
- LeaveCriticalSection( m_pCriticalSection );
- }
-};
-
-class ULONGGuard
-{
- ULONG* m_pValue;
-
-public:
- ULONGGuard( ULONG* pValue )
- : m_pValue( pValue )
- {
- if ( m_pValue )
- (*m_pValue)++;
- }
-
- ~ULONGGuard()
- {
- if ( m_pValue )
- (*m_pValue)--;
- }
-};
-
-} // namespace inprocserv
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */