summaryrefslogtreecommitdiff
path: root/dtrans/source/win32/dtobj/DOTransferable.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'dtrans/source/win32/dtobj/DOTransferable.cxx')
-rw-r--r--dtrans/source/win32/dtobj/DOTransferable.cxx262
1 files changed, 131 insertions, 131 deletions
diff --git a/dtrans/source/win32/dtobj/DOTransferable.cxx b/dtrans/source/win32/dtobj/DOTransferable.cxx
index 0252ac74b4bf..c6dd59fdb800 100644
--- a/dtrans/source/win32/dtobj/DOTransferable.cxx
+++ b/dtrans/source/win32/dtobj/DOTransferable.cxx
@@ -47,13 +47,124 @@ namespace
const Type CPPUTYPE_OUSTRING = cppu::UnoType<OUString>::get();
inline
- sal_Bool isValidFlavor( const DataFlavor& aFlavor )
+ bool isValidFlavor( const DataFlavor& aFlavor )
{
return ( aFlavor.MimeType.getLength( ) &&
( ( aFlavor.DataType == CPPUTYPE_SEQINT8 ) ||
( aFlavor.DataType == CPPUTYPE_OUSTRING ) ) );
}
+void clipDataToByteStream( CLIPFORMAT cf, STGMEDIUM stgmedium, CDOTransferable::ByteSequence_t& aByteSequence )
+{
+ CStgTransferHelper memTransferHelper;
+
+ switch( stgmedium.tymed )
+ {
+ case TYMED_HGLOBAL:
+ memTransferHelper.init( stgmedium.hGlobal );
+ break;
+
+ case TYMED_MFPICT:
+ memTransferHelper.init( stgmedium.hMetaFilePict );
+ break;
+
+ case TYMED_ENHMF:
+ memTransferHelper.init( stgmedium.hEnhMetaFile );
+ break;
+
+ case TYMED_ISTREAM:
+ //TODO: Has to be implemented
+ break;
+
+ default:
+ throw UnsupportedFlavorException( );
+ break;
+ }
+
+ int nMemSize = memTransferHelper.memSize( cf );
+ aByteSequence.realloc( nMemSize );
+ memTransferHelper.read( aByteSequence.getArray( ), nMemSize );
+}
+
+inline
+OUString byteStreamToOUString( CDOTransferable::ByteSequence_t& aByteStream )
+{
+ sal_Int32 nWChars;
+ sal_Int32 nMemSize = aByteStream.getLength( );
+
+ // if there is a trailing L"\0" subtract 1 from length
+ if ( 0 == aByteStream[ aByteStream.getLength( ) - 2 ] &&
+ 0 == aByteStream[ aByteStream.getLength( ) - 1 ] )
+ nWChars = static_cast< sal_Int32 >( nMemSize / sizeof( sal_Unicode ) ) - 1;
+ else
+ nWChars = static_cast< sal_Int32 >( nMemSize / sizeof( sal_Unicode ) );
+
+ return OUString( reinterpret_cast< sal_Unicode* >( aByteStream.getArray( ) ), nWChars );
+}
+
+inline
+Any byteStreamToAny( CDOTransferable::ByteSequence_t& aByteStream, const Type& aRequestedDataType )
+{
+ Any aAny;
+
+ if ( aRequestedDataType == CPPUTYPE_OUSTRING )
+ {
+ OUString str = byteStreamToOUString( aByteStream );
+ aAny = makeAny( str );
+ }
+ else
+ aAny = makeAny( aByteStream );
+
+ return aAny;
+}
+
+bool SAL_CALL cmpFullMediaType(
+ const Reference< XMimeContentType >& xLhs, const Reference< XMimeContentType >& xRhs )
+{
+ return xLhs->getFullMediaType().equalsIgnoreAsciiCase( xRhs->getFullMediaType( ) );
+}
+
+bool SAL_CALL cmpAllContentTypeParameter(
+ const Reference< XMimeContentType >& xLhs, const Reference< XMimeContentType >& xRhs )
+{
+ Sequence< OUString > xLhsFlavors = xLhs->getParameters( );
+ Sequence< OUString > xRhsFlavors = xRhs->getParameters( );
+ bool bRet = true;
+
+ try
+ {
+ if ( xLhsFlavors.getLength( ) == xRhsFlavors.getLength( ) )
+ {
+ OUString pLhs;
+ OUString pRhs;
+
+ for ( sal_Int32 i = 0; i < xLhsFlavors.getLength( ); i++ )
+ {
+ pLhs = xLhs->getParameterValue( xLhsFlavors[i] );
+ pRhs = xRhs->getParameterValue( xLhsFlavors[i] );
+
+ if ( !pLhs.equalsIgnoreAsciiCase( pRhs ) )
+ {
+ bRet = false;
+ break;
+ }
+ }
+ }
+ else
+ bRet = false;
+ }
+ catch( NoSuchElementException& )
+ {
+ bRet = false;
+ }
+ catch( IllegalArgumentException& )
+ {
+ bRet = false;
+ }
+
+ return bRet;
+}
+
} // end namespace
Reference< XTransferable > SAL_CALL CDOTransferable::create( const Reference< XComponentContext >& rxContext,
@@ -74,7 +185,7 @@ CDOTransferable::CDOTransferable(
m_rDataObject( rDataObject ),
m_xContext( rxContext ),
m_DataFormatTranslator( rxContext ),
- m_bUnicodeRegistered( sal_False ),
+ m_bUnicodeRegistered( false ),
m_TxtFormatOnClipboard( CF_INVALID )
{
}
@@ -101,7 +212,7 @@ Any SAL_CALL CDOTransferable::getTransferData( const DataFlavor& aFlavor )
}
catch( UnsupportedFlavorException& )
{
- if ( m_DataFormatTranslator.isUnicodeTextFormat( fetc.getClipformat( ) ) &&
+ if ( CDataFormatTranslator::isUnicodeTextFormat( fetc.getClipformat( ) ) &&
m_bUnicodeRegistered )
{
OUString aUnicodeText = synthesizeUnicodeText( );
@@ -153,9 +264,9 @@ sal_Bool SAL_CALL CDOTransferable::isDataFlavorSupported( const DataFlavor& aFla
for ( sal_Int32 i = 0; i < m_FlavorList.getLength( ); i++ )
if ( compareDataFlavors( aFlavor, m_FlavorList[i] ) )
- return sal_True;
+ return true;
- return sal_False;
+ return false;
}
// the list of dataflavors currently on the clipboard will be initialized
@@ -176,7 +287,7 @@ void SAL_CALL CDOTransferable::initFlavorList( )
pEnumFormatEtc->Reset( );
FORMATETC fetc;
- while ( S_FALSE != pEnumFormatEtc->Next( 1, &fetc, NULL ) )
+ while ( S_FALSE != pEnumFormatEtc->Next( 1, &fetc, nullptr ) )
{
// we use locales only to determine the
// charset if there is text on the cliboard
@@ -187,23 +298,23 @@ void SAL_CALL CDOTransferable::initFlavorList( )
DataFlavor aFlavor = formatEtcToDataFlavor( fetc );
// if text or oemtext is offered we also pretend to have unicode text
- if ( m_DataFormatTranslator.isOemOrAnsiTextFormat( fetc.cfFormat ) &&
+ if ( CDataFormatTranslator::isOemOrAnsiTextFormat( fetc.cfFormat ) &&
!m_bUnicodeRegistered )
{
addSupportedFlavor( aFlavor );
m_TxtFormatOnClipboard = fetc.cfFormat;
- m_bUnicodeRegistered = sal_True;
+ m_bUnicodeRegistered = true;
// register unicode text as accompany format
aFlavor = formatEtcToDataFlavor(
- m_DataFormatTranslator.getFormatEtcForClipformat( CF_UNICODETEXT ) );
+ CDataFormatTranslator::getFormatEtcForClipformat( CF_UNICODETEXT ) );
addSupportedFlavor( aFlavor );
}
else if ( (CF_UNICODETEXT == fetc.cfFormat) && !m_bUnicodeRegistered )
{
addSupportedFlavor( aFlavor );
- m_bUnicodeRegistered = sal_True;
+ m_bUnicodeRegistered = true;
}
else
addSupportedFlavor( aFlavor );
@@ -250,7 +361,7 @@ LCID SAL_CALL CDOTransferable::getLocaleFromClipboard( )
try
{
- CFormatEtc fetc = m_DataFormatTranslator.getFormatEtcForClipformat( CF_LOCALE );
+ CFormatEtc fetc = CDataFormatTranslator::getFormatEtcForClipformat( CF_LOCALE );
ByteSequence_t aLCIDSeq = getClipboardData( fetc );
lcid = *(reinterpret_cast<LCID*>( aLCIDSeq.getArray( ) ) );
@@ -355,7 +466,7 @@ OUString SAL_CALL CDOTransferable::synthesizeUnicodeText( )
if ( CF_TEXT == m_TxtFormatOnClipboard )
{
- fetc = m_DataFormatTranslator.getFormatEtcForClipformat( CF_TEXT );
+ fetc = CDataFormatTranslator::getFormatEtcForClipformat( CF_TEXT );
aTextSequence = getClipboardData( fetc );
// determine the codepage used for text conversion
@@ -363,14 +474,14 @@ OUString SAL_CALL CDOTransferable::synthesizeUnicodeText( )
}
else if ( CF_OEMTEXT == m_TxtFormatOnClipboard )
{
- fetc = m_DataFormatTranslator.getFormatEtcForClipformat( CF_OEMTEXT );
+ fetc = CDataFormatTranslator::getFormatEtcForClipformat( CF_OEMTEXT );
aTextSequence = getClipboardData( fetc );
// determine the codepage used for text conversion
cpForTxtCnvt = getWinCPFromLocaleId( lcid, LOCALE_IDEFAULTCODEPAGE ).toInt32( );
}
else
- OSL_ASSERT( sal_False );
+ OSL_ASSERT( false );
CStgTransferHelper stgTransferHelper;
@@ -379,79 +490,15 @@ OUString SAL_CALL CDOTransferable::synthesizeUnicodeText( )
reinterpret_cast<char*>( aTextSequence.getArray( ) ),
sal::static_int_cast<sal_uInt32>(-1), // Huh ?
stgTransferHelper,
- sal_False);
+ false);
CRawHGlobalPtr ptrHGlob(stgTransferHelper);
- sal_Unicode* pWChar = reinterpret_cast<sal_Unicode*>(ptrHGlob.GetMemPtr());
+ sal_Unicode* pWChar = static_cast<sal_Unicode*>(ptrHGlob.GetMemPtr());
return OUString(pWChar);
}
-void CDOTransferable::clipDataToByteStream( CLIPFORMAT cf, STGMEDIUM stgmedium, ByteSequence_t& aByteSequence )
-{
- CStgTransferHelper memTransferHelper;
-
- switch( stgmedium.tymed )
- {
- case TYMED_HGLOBAL:
- memTransferHelper.init( stgmedium.hGlobal );
- break;
-
- case TYMED_MFPICT:
- memTransferHelper.init( stgmedium.hMetaFilePict );
- break;
-
- case TYMED_ENHMF:
- memTransferHelper.init( stgmedium.hEnhMetaFile );
- break;
-
- case TYMED_ISTREAM:
- //TODO: Has to be implemented
- break;
-
- default:
- throw UnsupportedFlavorException( );
- break;
- }
-
- int nMemSize = memTransferHelper.memSize( cf );
- aByteSequence.realloc( nMemSize );
- memTransferHelper.read( aByteSequence.getArray( ), nMemSize );
-}
-
-inline
-Any CDOTransferable::byteStreamToAny( ByteSequence_t& aByteStream, const Type& aRequestedDataType )
-{
- Any aAny;
-
- if ( aRequestedDataType == CPPUTYPE_OUSTRING )
- {
- OUString str = byteStreamToOUString( aByteStream );
- aAny = makeAny( str );
- }
- else
- aAny = makeAny( aByteStream );
-
- return aAny;
-}
-
-inline
-OUString CDOTransferable::byteStreamToOUString( ByteSequence_t& aByteStream )
-{
- sal_Int32 nWChars;
- sal_Int32 nMemSize = aByteStream.getLength( );
-
- // if there is a trailing L"\0" subtract 1 from length
- if ( 0 == aByteStream[ aByteStream.getLength( ) - 2 ] &&
- 0 == aByteStream[ aByteStream.getLength( ) - 1 ] )
- nWChars = static_cast< sal_Int32 >( nMemSize / sizeof( sal_Unicode ) ) - 1;
- else
- nWChars = static_cast< sal_Int32 >( nMemSize / sizeof( sal_Unicode ) );
-
- return OUString( reinterpret_cast< sal_Unicode* >( aByteStream.getArray( ) ), nWChars );
-}
-
-sal_Bool SAL_CALL CDOTransferable::compareDataFlavors(
+bool SAL_CALL CDOTransferable::compareDataFlavors(
const DataFlavor& lhs, const DataFlavor& rhs )
{
if ( !m_rXMimeCntFactory.is( ) )
@@ -459,7 +506,7 @@ sal_Bool SAL_CALL CDOTransferable::compareDataFlavors(
m_rXMimeCntFactory = MimeContentTypeFactory::create( m_xContext );
}
- sal_Bool bRet = sal_False;
+ bool bRet = false;
try
{
@@ -474,54 +521,7 @@ sal_Bool SAL_CALL CDOTransferable::compareDataFlavors(
catch( IllegalArgumentException& )
{
OSL_FAIL( "Invalid content type detected" );
- bRet = sal_False;
- }
-
- return bRet;
-}
-
-sal_Bool SAL_CALL CDOTransferable::cmpFullMediaType(
- const Reference< XMimeContentType >& xLhs, const Reference< XMimeContentType >& xRhs ) const
-{
- return xLhs->getFullMediaType().equalsIgnoreAsciiCase( xRhs->getFullMediaType( ) );
-}
-
-sal_Bool SAL_CALL CDOTransferable::cmpAllContentTypeParameter(
- const Reference< XMimeContentType >& xLhs, const Reference< XMimeContentType >& xRhs ) const
-{
- Sequence< OUString > xLhsFlavors = xLhs->getParameters( );
- Sequence< OUString > xRhsFlavors = xRhs->getParameters( );
- sal_Bool bRet = sal_True;
-
- try
- {
- if ( xLhsFlavors.getLength( ) == xRhsFlavors.getLength( ) )
- {
- OUString pLhs;
- OUString pRhs;
-
- for ( sal_Int32 i = 0; i < xLhsFlavors.getLength( ); i++ )
- {
- pLhs = xLhs->getParameterValue( xLhsFlavors[i] );
- pRhs = xRhs->getParameterValue( xLhsFlavors[i] );
-
- if ( !pLhs.equalsIgnoreAsciiCase( pRhs ) )
- {
- bRet = sal_False;
- break;
- }
- }
- }
- else
- bRet = sal_False;
- }
- catch( NoSuchElementException& )
- {
- bRet = sal_False;
- }
- catch( IllegalArgumentException& )
- {
- bRet = sal_False;
+ bRet = false;
}
return bRet;
@@ -532,7 +532,7 @@ css::uno::Any SAL_CALL CDOTransferable::getData( const Sequence< sal_Int8>& aPro
{
Any retVal;
- sal_uInt8 * arProcCaller= (sal_uInt8*)(sal_Int8*) aProcessId.getConstArray();
+ sal_Int8 const * arProcCaller= aProcessId.getConstArray();
sal_uInt8 arId[16];
rtl_getGlobalProcessId(arId);
if( ! memcmp( arId, arProcCaller,16))