summaryrefslogtreecommitdiff
path: root/dtrans/source/win32/workbench
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-01-28 20:56:23 +0100
committerMichael Stahl <mstahl@redhat.com>2012-01-28 20:56:23 +0100
commit417392b0c2501134a6c290b61eb0a886c7acb4c2 (patch)
tree9e9f67205cd5b72f1031721273e1534a3a1e5b0f /dtrans/source/win32/workbench
parent7d00dabf077562cad4e1f4b2209c27b13d3d9487 (diff)
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'dtrans/source/win32/workbench')
-rw-r--r--dtrans/source/win32/workbench/XTDo.cxx432
-rw-r--r--dtrans/source/win32/workbench/XTDo.hxx137
-rw-r--r--dtrans/source/win32/workbench/makefile.mk91
-rw-r--r--dtrans/source/win32/workbench/test_wincb.cxx351
-rw-r--r--dtrans/source/win32/workbench/testmarshal.cxx246
5 files changed, 0 insertions, 1257 deletions
diff --git a/dtrans/source/win32/workbench/XTDo.cxx b/dtrans/source/win32/workbench/XTDo.cxx
deleted file mode 100644
index b41a8fe09c..0000000000
--- a/dtrans/source/win32/workbench/XTDo.cxx
+++ /dev/null
@@ -1,432 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dtrans.hxx"
-
-//------------------------------------------------------------------------
-// includes
-//------------------------------------------------------------------------
-#include <osl/diagnose.h>
-
-#include "../DTransHelper.hxx"
-
-#include "XTDo.hxx"
-
-#if defined _MSC_VER
-#pragma warning(push,1)
-#endif
-#include <windows.h>
-#include <ole2.h>
-#if defined _MSC_VER
-#pragma warning(pop)
-#endif
-#include <memory>
-#include <tchar.h>
-
-//------------------------------------------------------------------------
-// namespace directives
-//------------------------------------------------------------------------
-
-using namespace ::std;
-
-//============================================================================
-// OTWrapperDataObject
-//============================================================================
-
-//------------------------------------------------------------------------
-// ctor
-//------------------------------------------------------------------------
-/*
- in the constructor we enumerate all formats offered by the transferable
- and convert the formats into formatetc structures
- if the transferable supports text in different charsets we use either
- the charset equal to the charset of the current thread or an arbitrary
- charset supported by the transferable and the system
- if the transferable supports only unicodetext we offer in addition to
- this text in the charset of the current thread
- in order to allow the consumer of the clipboard to query for the charset
- of the text in the clipboard we offer a CF_LOCALE
-*/
-CXTDataObject::CXTDataObject( ) :
- m_nRefCnt( 0 )
-{
-
-}
-
-//------------------------------------------------------------------------
-// IUnknown->QueryInterface
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::QueryInterface( REFIID iid, LPVOID* ppvObject )
-{
- OSL_ASSERT( NULL != ppvObject );
-
- if ( NULL == ppvObject )
- return E_INVALIDARG;
-
- HRESULT hr = E_NOINTERFACE;
-
- *ppvObject = NULL;
-
- if ( ( __uuidof( IUnknown ) == iid ) || ( __uuidof( IDataObject ) == iid ) )
- {
- *ppvObject = static_cast< IUnknown* >( this );
- ( (LPUNKNOWN)*ppvObject )->AddRef( );
- hr = S_OK;
- }
-
- return hr;
-}
-
-//------------------------------------------------------------------------
-// IUnknown->AddRef
-//------------------------------------------------------------------------
-
-STDMETHODIMP_(ULONG) CXTDataObject::AddRef( )
-{
- return static_cast< ULONG >( InterlockedIncrement( &m_nRefCnt ) );
-}
-
-//------------------------------------------------------------------------
-// IUnknown->Release
-//------------------------------------------------------------------------
-
-STDMETHODIMP_(ULONG) CXTDataObject::Release( )
-{
- // we need a helper variable because it's
- // not allowed to access a member variable
- // after an object is destroyed
- ULONG nRefCnt = static_cast< ULONG >( InterlockedDecrement( &m_nRefCnt ) );
-
- if ( 0 == nRefCnt )
- {
- delete this;
- }
-
- return nRefCnt;
-}
-
-/*------------------------------------------------------------------------
-
- IDataObject->GetData
- we deliver data only into global memory
-
- algo:
- 1. convert the given formatect struct into a valid dataflavor
- 2. if the transferable directly supports the requested format
- 2.1. if text data requested add a trailing '\0' in order to prevent
- problems (windows needs '\0' terminated strings
- 2.2. we expect unicode data as Sequence< sal_Unicode > and all other
- text and raw data as Sequence< sal_Int8 >
-
-------------------------------------------------------------------------*/
-
-STDMETHODIMP CXTDataObject::GetData( LPFORMATETC pFormatetc, LPSTGMEDIUM pmedium )
-{
- if ( ( NULL == pFormatetc ) || ( NULL == pmedium ) )
- return E_INVALIDARG;
-
- HRESULT hr = E_FAIL;
- char pBuff[] = "Test OleClipboard";
-
- if ( CF_TEXT == pFormatetc->cfFormat )
- {
- CHGlobalHelper hGlobHlp( TRUE );
-
- hGlobHlp.Write( pBuff, sizeof( pBuff ), NULL );
-
- pmedium->tymed = TYMED_HGLOBAL;
- pmedium->hGlobal = hGlobHlp.GetHGlobal( );
- pmedium->pUnkForRelease = NULL;
-
- hr = S_OK;
- }
-
- return hr;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->EnumFormatEtc
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::EnumFormatEtc( DWORD dwDirection, IEnumFORMATETC** ppenumFormatetc )
-{
- if ( ( NULL == ppenumFormatetc ) || ( DATADIR_SET == dwDirection ) )
- return E_INVALIDARG;
-
- *ppenumFormatetc = NULL;
-
- HRESULT hr = E_FAIL;
-
- if ( DATADIR_GET == dwDirection )
- {
- *ppenumFormatetc = new CEnumFormatEtc( this );
- static_cast< LPUNKNOWN >( *ppenumFormatetc )->AddRef( );
- hr = S_OK;
- }
-
- return hr;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->QueryGetData
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::QueryGetData( LPFORMATETC pFormatetc )
-{
- return E_NOTIMPL;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->GetDataHere
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::GetDataHere( LPFORMATETC, LPSTGMEDIUM )
-{
- return E_NOTIMPL;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->GetCanonicalFormatEtc
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::GetCanonicalFormatEtc( LPFORMATETC, LPFORMATETC )
-{
- return E_NOTIMPL;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->SetData
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::SetData( LPFORMATETC, LPSTGMEDIUM, BOOL )
-{
- return E_NOTIMPL;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->DAdvise
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::DAdvise( LPFORMATETC, DWORD, LPADVISESINK, DWORD * )
-{
- return E_NOTIMPL;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->DUnadvise
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::DUnadvise( DWORD )
-{
- return E_NOTIMPL;
-}
-
-//------------------------------------------------------------------------
-// IDataObject->EnumDAdvise
-//------------------------------------------------------------------------
-
-STDMETHODIMP CXTDataObject::EnumDAdvise( LPENUMSTATDATA * )
-{
- return E_NOTIMPL;
-}
-
-//------------------------------------------------------------------------
-// for our convenience
-//------------------------------------------------------------------------
-
-CXTDataObject::operator IDataObject*( )
-{
- return static_cast< IDataObject* >( this );
-}
-
-
-//============================================================================
-// CEnumFormatEtc
-//============================================================================
-
-//----------------------------------------------------------------------------
-// ctor
-//----------------------------------------------------------------------------
-
-CEnumFormatEtc::CEnumFormatEtc( LPUNKNOWN pUnkDataObj ) :
- m_nRefCnt( 0 ),
- m_pUnkDataObj( pUnkDataObj ),
- m_nCurrPos( 0 )
-{
-}
-
-//----------------------------------------------------------------------------
-// IUnknown->QueryInterface
-//----------------------------------------------------------------------------
-
-STDMETHODIMP CEnumFormatEtc::QueryInterface( REFIID iid, LPVOID* ppvObject )
-{
- if ( NULL == ppvObject )
- return E_INVALIDARG;
-
- HRESULT hr = E_NOINTERFACE;
-
- *ppvObject = NULL;
-
- if ( ( __uuidof( IUnknown ) == iid ) || ( __uuidof( IEnumFORMATETC ) == iid ) )
- {
- *ppvObject = static_cast< IUnknown* >( this );
- static_cast< LPUNKNOWN >( *ppvObject )->AddRef( );
- hr = S_OK;
- }
-
- return hr;
-}
-
-//----------------------------------------------------------------------------
-// IUnknown->AddRef
-//----------------------------------------------------------------------------
-
-STDMETHODIMP_(ULONG) CEnumFormatEtc::AddRef( )
-{
- // keep the dataobject alive
- m_pUnkDataObj->AddRef( );
- return InterlockedIncrement( &m_nRefCnt );
-}
-
-//----------------------------------------------------------------------------
-// IUnknown->Release
-//----------------------------------------------------------------------------
-
-STDMETHODIMP_(ULONG) CEnumFormatEtc::Release( )
-{
- // release the outer dataobject
- m_pUnkDataObj->Release( );
-
- // we need a helper variable because it's
- // not allowed to access a member variable
- // after an object is destroyed
- ULONG nRefCnt = InterlockedDecrement( &m_nRefCnt );
- if ( 0 == nRefCnt )
- delete this;
-
- return nRefCnt;
-}
-
-//----------------------------------------------------------------------------
-// IEnumFORMATETC->Next
-//----------------------------------------------------------------------------
-
-STDMETHODIMP CEnumFormatEtc::Next( ULONG celt, LPFORMATETC rgelt, ULONG* pceltFetched )
-{
- if ( ( 0 != celt ) && ( NULL == rgelt ) )
- return E_INVALIDARG;
-
- ULONG ulFetched = 0;
- ULONG ulToFetch = celt;
- HRESULT hr = S_FALSE;
-
- while( m_nCurrPos < 1 )
- {
- rgelt->cfFormat = CF_TEXT;
- rgelt->ptd = NULL;
- rgelt->dwAspect = DVASPECT_CONTENT;
- rgelt->lindex = -1;
- rgelt->tymed = TYMED_HGLOBAL;
-
- ++m_nCurrPos;
- ++rgelt;
- --ulToFetch;
- ++ulFetched;
- }
-
- if ( ulFetched == celt )
- hr = S_OK;
-
- if ( NULL != pceltFetched )
- {
- *pceltFetched = ulFetched;
- }
-
- return hr;
-}
-
-//----------------------------------------------------------------------------
-// IEnumFORMATETC->Skip
-//----------------------------------------------------------------------------
-
-STDMETHODIMP CEnumFormatEtc::Skip( ULONG celt )
-{
- HRESULT hr = S_FALSE;
-
- /*
- if ( ( m_nCurrPos + celt ) < m_nClipFormats )
- {
- m_nCurrPos += celt;
- hr = S_OK;
- }
- */
-
- return hr;
-}
-
-//----------------------------------------------------------------------------
-// IEnumFORMATETC->Reset
-//----------------------------------------------------------------------------
-
-STDMETHODIMP CEnumFormatEtc::Reset( )
-{
- m_nCurrPos = 0;
- return S_OK;
-}
-
-//----------------------------------------------------------------------------
-// IEnumFORMATETC->Clone
-//----------------------------------------------------------------------------
-
-STDMETHODIMP CEnumFormatEtc::Clone( IEnumFORMATETC** ppenum )
-{
- OSL_ASSERT( NULL != ppenum );
-
- if ( NULL == ppenum )
- return E_INVALIDARG;
-
- HRESULT hr = E_FAIL;
-
- *ppenum = NULL;
-
- CEnumFormatEtc* pCEnumFEtc = new CEnumFormatEtc( m_pUnkDataObj );
- if ( NULL != pCEnumFEtc )
- {
- pCEnumFEtc->m_nCurrPos = m_nCurrPos;
- *ppenum = static_cast< IEnumFORMATETC* >( pCEnumFEtc );
- static_cast< LPUNKNOWN >( *ppenum )->AddRef( );
- hr = NOERROR;
- }
-
- return hr;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dtrans/source/win32/workbench/XTDo.hxx b/dtrans/source/win32/workbench/XTDo.hxx
deleted file mode 100644
index e3eff6f408..0000000000
--- a/dtrans/source/win32/workbench/XTDo.hxx
+++ /dev/null
@@ -1,137 +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 _XTDATAOBJECT_HXX_
-#define _XTDATAOBJECT_HXX_
-
-
-//------------------------------------------------------------------------
-// includes
-//------------------------------------------------------------------------
-
-#if defined _MSC_VER
-#pragma warning(push,1)
-#endif
-#include <windows.h>
-#include <ole2.h>
-#include <objidl.h>
-#if defined _MSC_VER
-#pragma warning(pop)
-#endif
-
-#include <vector>
-
-// forward declaration
-//class CWinClipbImpl;
-class EnumFormatEtc;
-
-/*--------------------------------------------------------------------------
- - the function principle of the windows clipboard:
- a data provider offers all formats he can deliver on the clipboard
- a clipboard client ask for the available formats on the clipboard
- and decides if there is a format he can use
- if there is one, he requests the data in this format
-
- - This class inherits from IDataObject an so can be placed on the
- OleClipboard. The class wrapps a transferable object which is the
- original DataSource
- - DataFlavors offerd by this transferable will be translated into
- appropriate clipboard formats
- - if the transferable contains text data always text and unicodetext
- will be offered or vice versa
- - text data will be automaticaly converted between text und unicode text
- - although the transferable may support text in different charsets
- (codepages) only text in one codepage can be offered by the clipboard
-
-----------------------------------------------------------------------------*/
-
-class CXTDataObject : public IDataObject
-{
-public:
- CXTDataObject( );
-
- //-----------------------------------------------------------------
- // ole interface implementation
- //-----------------------------------------------------------------
-
- //IUnknown interface methods
- STDMETHODIMP QueryInterface(REFIID iid, LPVOID* ppvObject);
- STDMETHODIMP_( ULONG ) AddRef( );
- STDMETHODIMP_( ULONG ) Release( );
-
- // IDataObject interface methods
- STDMETHODIMP GetData( LPFORMATETC pFormatetc, LPSTGMEDIUM pmedium );
- STDMETHODIMP GetDataHere( LPFORMATETC pFormatetc, LPSTGMEDIUM pmedium );
- STDMETHODIMP QueryGetData( LPFORMATETC pFormatetc );
- STDMETHODIMP GetCanonicalFormatEtc( LPFORMATETC pFormatectIn, LPFORMATETC pFormatetcOut );
- STDMETHODIMP SetData( LPFORMATETC pFormatetc, LPSTGMEDIUM pmedium, BOOL fRelease );
- STDMETHODIMP EnumFormatEtc( DWORD dwDirection, IEnumFORMATETC** ppenumFormatetc );
- STDMETHODIMP DAdvise( LPFORMATETC pFormatetc, DWORD advf, LPADVISESINK pAdvSink, DWORD* pdwConnection );
- STDMETHODIMP DUnadvise( DWORD dwConnection );
- STDMETHODIMP EnumDAdvise( LPENUMSTATDATA* ppenumAdvise );
-
- operator IDataObject*( );
-
-private:
-
-private:
- LONG m_nRefCnt;
-};
-
-//------------------------------------------------------------------------
-//
-//------------------------------------------------------------------------
-
-class CEnumFormatEtc : public IEnumFORMATETC
-{
-public:
- CEnumFormatEtc( LPUNKNOWN pUnkDataObj );
-
- // IUnknown
- STDMETHODIMP QueryInterface( REFIID iid, LPVOID* ppvObject );
- STDMETHODIMP_( ULONG ) AddRef( );
- STDMETHODIMP_( ULONG ) Release( );
-
- //IEnumFORMATETC
- STDMETHODIMP Next( ULONG celt, LPFORMATETC rgelt, ULONG* pceltFetched );
- STDMETHODIMP Skip( ULONG celt );
- STDMETHODIMP Reset( );
- STDMETHODIMP Clone( IEnumFORMATETC** ppenum );
-
-private:
- LONG m_nRefCnt;
- LPUNKNOWN m_pUnkDataObj;
- ULONG m_nCurrPos;
-};
-
-typedef CEnumFormatEtc *PCEnumFormatEtc;
-
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dtrans/source/win32/workbench/makefile.mk b/dtrans/source/win32/workbench/makefile.mk
deleted file mode 100644
index 7432d2512d..0000000000
--- a/dtrans/source/win32/workbench/makefile.mk
+++ /dev/null
@@ -1,91 +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= dtrans
-TARGET= testwincb
-TARGET1= testmshl
-LIBTARGET= NO
-TARGETTYPE= CUI
-USE_BOUNDCHK=
-TESTCB=TRUE
-
-.IF "$(USE_BOUNDCHK)"=="TR"
-bndchk=tr
-stoponerror=tr
-.ENDIF
-
-# --- Settings -----------------------------------------------------
-
-.INCLUDE : settings.mk
-
-.IF "$(TESTCB)"=="TRUE"
-
-CFLAGS+=-D_WIN32_DCOM -EHsc -Ob0
-
-# --- Files --------------------------------------------------------
-
-OBJFILES= $(OBJ)$/test_wincb.obj
-APP1TARGET= $(TARGET)
-APP1OBJS= $(OBJ)$/test_wincb.obj
-
-APP1STDLIBS= $(SALLIB) \
- $(CPPULIB) \
- $(CPPUHELPERLIB) \
- $(SOLARLIBDIR)$/uwinapi.lib\
- $(USER32LIB) \
- $(OLE32LIB)\
- $(COMDLG32LIB)
-
-APP1LIBS= $(SLB)$/dtutils.lib
-
-APP1NOSAL= TRUE
-
-.ENDIF
-
-.IF "$(TESTCB)"==""
-
-CFLAGS+=/D_WIN32_DCOM /EHsc /Ob0
-
-OBJFILES= $(OBJ)$/testmarshal.obj
-APP1TARGET= $(TARGET1)
-APP1OBJS= $(OBJ)$/testmarshal.obj
-
-APP1STDLIBS= $(SALLIB)\
- $(USER32LIB)\
- $(OLE32LIB)\
- comsupp.lib\
- $(OLEAUT32LIB)
-
-APP1LIBS=
-APP1NOSAL= TRUE
-
-.ENDIF
-
-# --- Targets ------------------------------------------------------
-.INCLUDE : target.mk
diff --git a/dtrans/source/win32/workbench/test_wincb.cxx b/dtrans/source/win32/workbench/test_wincb.cxx
deleted file mode 100644
index b16e1957fa..0000000000
--- a/dtrans/source/win32/workbench/test_wincb.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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dtrans.hxx"
-
-
-//_________________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________________
-
-
-#include "../misc/ImplHelper.hxx"
-
-//_________________________________________________________________________________________________________________________
-// other includes
-//_________________________________________________________________________________________________________________________
-#include <cppuhelper/servicefactory.hxx>
-#include <com/sun/star/datatransfer/XTransferable.hpp>
-#include <com/sun/star/datatransfer/clipboard/XClipboardOwner.hpp>
-#include <com/sun/star/datatransfer/clipboard/XClipboardNotifier.hpp>
-#include <com/sun/star/datatransfer/clipboard/XClipboardEx.hpp>
-#include <com/sun/star/datatransfer/clipboard/XFlushableClipboard.hpp>
-#include <com/sun/star/lang/XComponent.hpp>
-#include <cppuhelper/implbase1.hxx>
-#include <cppuhelper/implbase2.hxx>
-#include <rtl/ustring.hxx>
-#include <sal/types.h>
-#include <osl/diagnose.h>
-
-#include <stdio.h>
-#if defined _MSC_VER
-#pragma warning(push,1)
-#endif
-#include <windows.h>
-#include <objbase.h>
-#if defined _MSC_VER
-#pragma warning(pop)
-#endif
-
-#include <memory>
-
-#include <process.h>
-
-//-------------------------------------------------------------
-// my defines
-//-------------------------------------------------------------
-
-#define TEST_CLIPBOARD
-#define RDB_SYSPATH "d:\\projects\\src623\\dtrans\\wntmsci7\\bin\\applicat.rdb"
-#define WINCLIPBOARD_SERVICE_NAME L"com.sun.star.datatransfer.clipboard.SystemClipboard"
-#define WRITE_CB
-#define EVT_MANUAL_RESET TRUE
-#define EVT_INIT_NONSIGNALED FALSE
-#define EVT_NONAME ""
-
-//------------------------------------------------------------
-// namesapces
-//------------------------------------------------------------
-
-using namespace ::rtl;
-using namespace ::std;
-using namespace ::cppu;
-using namespace ::com::sun::star::datatransfer;
-using namespace ::com::sun::star::datatransfer::clipboard;
-using namespace ::com::sun::star::uno;
-using namespace ::com::sun::star::io;
-using namespace ::com::sun::star::lang;
-
-//------------------------------------------------------------
-// globales
-//------------------------------------------------------------
-
-Reference< XTransferable > rXTransfRead;
-HANDLE g_hEvtThreadWakeup;
-
-//------------------------------------------------------------
-//
-//------------------------------------------------------------
-
-class CClipboardListener : public WeakImplHelper1 < XClipboardListener >
-{
-public:
- ~CClipboardListener( );
-
- //-------------------------------------------------
- // XClipboardListener
- //-------------------------------------------------
-
- virtual void SAL_CALL disposing( const EventObject& Source ) throw(RuntimeException);
- virtual void SAL_CALL changedContents( const ClipboardEvent& event ) throw( RuntimeException );
-};
-
-CClipboardListener::~CClipboardListener( )
-{
-}
-
-void SAL_CALL CClipboardListener::disposing( const EventObject& Source ) throw(RuntimeException)
-{
-
-}
-
-void SAL_CALL CClipboardListener::changedContents( const ClipboardEvent& event ) throw( RuntimeException )
-{
- //MessageBox( NULL, TEXT("Clipboard content changed"), TEXT("Info"), MB_OK | MB_ICONINFORMATION );
-}
-
-//------------------------------------------------------------
-//
-//------------------------------------------------------------
-
-class CTransferable : public WeakImplHelper2< XClipboardOwner, XTransferable >
-{
-public:
- CTransferable( );
-
- //-------------------------------------------------
- // XTransferable
- //-------------------------------------------------
-
- virtual Any SAL_CALL getTransferData( const DataFlavor& aFlavor )
- throw(UnsupportedFlavorException, IOException, RuntimeException);
-
- virtual Sequence< DataFlavor > SAL_CALL getTransferDataFlavors( ) throw(RuntimeException);
-
- virtual sal_Bool SAL_CALL isDataFlavorSupported( const DataFlavor& aFlavor ) throw(RuntimeException);
-
- //-------------------------------------------------
- // XClipboardOwner
- //-------------------------------------------------
-
- virtual void SAL_CALL lostOwnership( const Reference< XClipboard >& xClipboard, const Reference< XTransferable >& xTrans )
- throw(RuntimeException);
-
-private:
- Sequence< DataFlavor > m_FlavorList;
- OUString m_Data;
-};
-
-//----------------------------------------------------------------
-// ctor
-//----------------------------------------------------------------
-
-CTransferable::CTransferable( ) :
- m_FlavorList( 1 ),
- m_Data( OUString(RTL_CONSTASCII_USTRINGPARAM("Ich habe mir ein neues Fahrrad gekauft!")) )
-{
- DataFlavor df;
-
- //df.MimeType = L"text/plain;charset=utf-16";
- //df.DataType = getCppuType( ( OUString* )0 );
-
- df.MimeType = L"text/plain;charset=Windows1252";
- df.DataType = getCppuType( (Sequence< sal_Int8 >*)0 );
-
- m_FlavorList[0] = df;
-}
-
-//----------------------------------------------------------------
-// getTransferData
-//----------------------------------------------------------------
-
-Any SAL_CALL CTransferable::getTransferData( const DataFlavor& aFlavor )
- throw(UnsupportedFlavorException, IOException, RuntimeException)
-{
- Any anyData;
-
- /*
- if ( aFlavor.MimeType == m_FlavorList[0].MimeType )
- anyData = makeAny( m_Data );
- */
- if ( aFlavor.MimeType.equalsIgnoreCase( m_FlavorList[0].MimeType ) )
- {
- OString text(
- m_Data.getStr( ),
- m_Data.getLength( ),
- RTL_TEXTENCODING_ASCII_US );
-
- Sequence< sal_Int8 > textStream( text.getLength( ) + 1 );
-
- rtl_copyMemory( textStream.getArray( ), text.getStr( ), textStream.getLength( ) );
-
- anyData = makeAny( textStream );
- }
- else
- throw UnsupportedFlavorException( );
-
- return anyData;
-}
-
-//----------------------------------------------------------------
-// getTransferDataFlavors
-//----------------------------------------------------------------
-
-Sequence< DataFlavor > SAL_CALL CTransferable::getTransferDataFlavors( )
- throw(RuntimeException)
-{
- return m_FlavorList;
-}
-
-//----------------------------------------------------------------
-// isDataFlavorSupported
-//----------------------------------------------------------------
-
-sal_Bool SAL_CALL CTransferable::isDataFlavorSupported( const DataFlavor& aFlavor )
- throw(RuntimeException)
-{
- sal_Int32 nLength = m_FlavorList.getLength( );
-
- for ( sal_Int32 i = 0; i < nLength; ++i )
- if ( m_FlavorList[i].MimeType == aFlavor.MimeType )
- return sal_True;
-
- return sal_False;
-}
-
-//----------------------------------------------------------------
-// lostOwnership
-//----------------------------------------------------------------
-
-void SAL_CALL CTransferable::lostOwnership(
- const Reference< XClipboard >& xClipboard, const Reference< XTransferable >& xTrans )
- throw(RuntimeException)
-{
- //MessageBox( NULL, TEXT("No longer clipboard owner"), TEXT("Info"), MB_OK | MB_ICONINFORMATION );
-}
-
-//----------------------------------------------------------------
-// main
-//----------------------------------------------------------------
-
-int SAL_CALL main( int nArgc, char* Argv[] )
-{
- // create a multi-threaded apartment; we can test only
- // with a multithreaded apartment because for a single
- // threaded apartment we need a message loop to deliver
- // messages to our XTDataObject
- //HRESULT hr = CoInitializeEx( NULL, COINIT_MULTITHREADED );
- HRESULT hr = CoInitialize( NULL );
-
- char buff[6];
-
- LCID lcid = MAKELCID( MAKELANGID( LANG_GERMAN, SUBLANG_GERMAN ), SORT_DEFAULT );
-
- BOOL bValid = IsValidLocale( lcid, LCID_SUPPORTED );
- GetLocaleInfoA( lcid, LOCALE_IDEFAULTANSICODEPAGE, buff, sizeof( buff ) );
-
- //-------------------------------------------------
- // get the global service-manager
- //-------------------------------------------------
-
- OUString rdbName = OUString( RTL_CONSTASCII_USTRINGPARAM( RDB_SYSPATH ) );
- Reference< XMultiServiceFactory > g_xFactory( createRegistryServiceFactory( rdbName ) );
-
- // Print a message if an error occurred.
- if ( !g_xFactory.is( ) )
- {
- OSL_FAIL("Can't create RegistryServiceFactory");
- return(-1);
- }
-
- //-------------------------------------------------
- // try to get an Interface to a XFilePicker Service
- //-------------------------------------------------
-
- Reference< XTransferable > rXTransf( static_cast< XTransferable* >( new CTransferable ) );
-
- Reference< XClipboard >
- xClipboard( g_xFactory->createInstance( OUString( WINCLIPBOARD_SERVICE_NAME ) ), UNO_QUERY );
- if ( !xClipboard.is( ) )
- {
- OSL_FAIL( "Error creating Clipboard Service" );
- return(-1);
- }
-
- Reference< XClipboardNotifier > xClipNotifier( xClipboard, UNO_QUERY );
- Reference< XClipboardListener > rXClipListener( static_cast< XClipboardListener* >( new CClipboardListener() ) );
- xClipNotifier->addClipboardListener( rXClipListener );
-
- MessageBox( NULL, TEXT("Go"), TEXT("INFO"), MB_OK|MB_ICONINFORMATION);
-
- // set new clipboard content
- xClipboard->setContents( rXTransf, Reference< XClipboardOwner >( rXTransf, UNO_QUERY ) );
-
- /*
- MessageBox( NULL, TEXT("Clear content"), TEXT("INFO"), MB_OK|MB_ICONINFORMATION);
-
- Reference< XClipboardOwner > rXClipOwner;
- Reference< XTransferable > rXEmptyTransf;
- xClipboard->setContents( rXEmptyTransf, rXClipOwner );
- */
-
- MessageBox( NULL, TEXT("Stop"), TEXT("INFO"), MB_OK|MB_ICONINFORMATION);
-
- // flush the clipboard content
- Reference< XFlushableClipboard > rXFlushableClip( xClipboard, UNO_QUERY );
- rXFlushableClip->flushClipboard( );
- rXFlushableClip = Reference< XFlushableClipboard >( );
-
- xClipNotifier->removeClipboardListener( rXClipListener );
- rXClipListener = Reference< XClipboardListener >( );
- xClipNotifier = Reference< XClipboardNotifier >( );
-
- //--------------------------------------------------
- // shutdown the service manager
- //--------------------------------------------------
-
- // Cast factory to XComponent
- Reference< XComponent > xComponent( g_xFactory, UNO_QUERY );
-
- if ( !xComponent.is() )
- OSL_FAIL("Error shuting down");
-
- // Dispose and clear factory
- xComponent->dispose();
- xComponent = Reference< XComponent >( );
-
- g_xFactory.clear();
- g_xFactory = Reference< XMultiServiceFactory >();
-
- CoUninitialize( );
-
- return 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/dtrans/source/win32/workbench/testmarshal.cxx b/dtrans/source/win32/workbench/testmarshal.cxx
deleted file mode 100644
index 264e6751ad..0000000000
--- a/dtrans/source/win32/workbench/testmarshal.cxx
+++ /dev/null
@@ -1,246 +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.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_dtrans.hxx"
-
-
-//_________________________________________________________________________________________________________________________
-// interface includes
-//_________________________________________________________________________________________________________________________
-
-//_________________________________________________________________________________________________________________________
-// other includes
-//_________________________________________________________________________________________________________________________
-#include <rtl/ustring.hxx>
-#include <sal/types.h>
-#include <osl/diagnose.h>
-
-#include <stdio.h>
-#if defined _MSC_VER
-#pragma warning(push,1)
-#endif
-#include <windows.h>
-#include <objbase.h>
-#if defined _MSC_VER
-#pragma warning(pop)
-#endif
-
-#include <memory>
-
-#include <process.h>
-#include "XTDo.hxx"
-
-//-------------------------------------------------------------
-// my defines
-//-------------------------------------------------------------
-
-#define WRITE_CB
-#define EVT_MANUAL_RESET TRUE
-#define EVT_INIT_NONSIGNALED FALSE
-#define EVT_NONAME ""
-#define WAIT_MSGLOOP
-#define RAW_MARSHALING
-
-//------------------------------------------------------------
-// namesapces
-//------------------------------------------------------------
-
-using namespace ::rtl;
-using namespace ::std;
-
-//------------------------------------------------------------
-// globales
-//------------------------------------------------------------
-
-HANDLE g_hEvtThreadWakeup;
-
-#ifdef RAW_MARSHALING
- HGLOBAL g_hGlob;
-#else
- IStream* g_pStm;
-#endif
-
-//################################################################
-// a thread in another apartment to test apartment transparency
-
-unsigned int _stdcall ThreadProc(LPVOID pParam)
-{
- // setup another apartment
- HRESULT hr = OleInitialize( NULL );
-
- WaitForSingleObject( g_hEvtThreadWakeup, INFINITE );
-
- IDataObject* pIDo;
-
-#ifdef RAW_MARSHALING
-
- IStream* pStm = NULL;
- hr = CreateStreamOnHGlobal( g_hGlob, FALSE, &pStm );
- if ( SUCCEEDED( hr ) )
- {
- hr = CoUnmarshalInterface(
- pStm,
- __uuidof( IDataObject ),
- (void**)&pIDo );
-
- hr = pStm->Release( );
- }
-
-#else
-
- hr = CoGetInterfaceAndReleaseStream(
- g_pStm,
- __uuidof( IDataObject ),
- (void**)&pIDo
- );
-
-#endif
-
- IEnumFORMATETC* pIEEtc;
- hr = pIDo->EnumFormatEtc( DATADIR_GET, &pIEEtc );
-
- hr = OleIsCurrentClipboard( pIDo );
-
- hr = OleFlushClipboard( );
-
- OleUninitialize( );
-
- return 0;
-}
-
-//################################################################
-
-//----------------------------------------------------------------
-// main
-//----------------------------------------------------------------
-
-int SAL_CALL main( int nArgc, char* Argv[] )
-{
- HRESULT hr = OleInitialize( NULL );
-
- g_hEvtThreadWakeup = CreateEvent( 0,
- EVT_MANUAL_RESET,
- EVT_INIT_NONSIGNALED,
- EVT_NONAME );
-
- unsigned uThreadId;
- HANDLE hThread;
-
- // create a thread in another apartment
- hThread = (void*)_beginthreadex( NULL, 0, ThreadProc, NULL, 0, &uThreadId );
-
- IDataObject* pIDo = new CXTDataObject( );
-
- hr = OleSetClipboard( pIDo );
- hr = E_FAIL;
-
- hr = OleIsCurrentClipboard( pIDo );
-
- //hr = OleGetClipboard( &pIDo );
- if ( SUCCEEDED( hr ) )
- {
-#ifdef RAW_MARSHALING
-
- IStream* pStm = NULL;
-
- hr = CreateStreamOnHGlobal( 0, FALSE, &pStm );
- if ( SUCCEEDED( hr ) )
- {
- hr = CoMarshalInterface(
- pStm,
- __uuidof( IDataObject ),
- pIDo,
- MSHCTX_INPROC,
- 0,
- MSHLFLAGS_NORMAL );
- if ( SUCCEEDED( hr ) )
- hr = GetHGlobalFromStream( pStm, &g_hGlob );
-
- hr = pStm->Release( );
- }
-
-#else
-
- hr = CoMarshalInterThreadInterfaceInStream(
- __uuidof( IDataObject ),
- pIDo,
- &g_pStm );
-
-#endif
-
- if ( SUCCEEDED( hr ) )
- {
- // wakeup the thread and waiting util it ends
- SetEvent( g_hEvtThreadWakeup );
-
-#ifdef WAIT_MSGLOOP
-
- BOOL bContinue = TRUE;
-
- while( bContinue )
- {
- DWORD dwResult = WaitForMultipleObjects(
- 1,
- &hThread,
- TRUE,
- 0 );
-
- if ( WAIT_OBJECT_0 == dwResult )
- {
- bContinue = FALSE;
- }
- else
- {
- MSG msg;
- while( PeekMessage(
- &msg,
- NULL,
- 0,
- 0,
- PM_REMOVE ) )
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- }
- } // while
-
-#endif
-
- } // if
- } // if
-
- OleFlushClipboard( );
-
- OleUninitialize( );
-
- return 0;
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */