summaryrefslogtreecommitdiff
path: root/dtrans/source/win32/workbench/XTDo.cxx
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/XTDo.cxx
parent7d00dabf077562cad4e1f4b2209c27b13d3d9487 (diff)
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'dtrans/source/win32/workbench/XTDo.cxx')
-rw-r--r--dtrans/source/win32/workbench/XTDo.cxx432
1 files changed, 0 insertions, 432 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: */