/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include"DOTransferable.hxx" #include"ImplHelper.hxx" #include"WinClip.hxx" #include"WinClipboard.hxx" #include"DTransHelper.hxx" #include"TxtCnvtHlp.hxx" #include"MimeAttrib.hxx" #include"FmtFilter.hxx" #include"Fetc.hxx" #include <com/sun/star/container/NoSuchElementException.hpp> #include <com/sun/star/datatransfer/MimeContentTypeFactory.hpp> #include <com/sun/star/datatransfer/UnsupportedFlavorException.hpp> #include <com/sun/star/io/IOException.hpp> #includejava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
usingnamespace osl * with this * ownership. The ASF * License, Version * except in * the License at http: java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 usingnamespace; usingnamespace com" #".hxxjava.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 using :::star; usingnamespace com# /sun/datatransfer.hpp using ::::::;
if (pStream)
{
.init stgmedium ); break
hr=pStream->(&, STATFLAG_NONAME if (FAILED( .( .hEnhMetaFile;
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
SAL_WARN("vcl.win.dtransbreakjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14 return
hrpStream-(aStat)
size_t (vcl,"Stat ";
aByteSequence
li
li.QuadPart.(nMemSize
>Seek,, )java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
((hr
{
SAL_WARN((hr
ULONG nRead = 0;
nRead;
>Read.getArray,nMemSize);
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
SAL_WARN("vcl.win.dtrans" clipDataToByteStream(failed
}ifnRead nMemSize
nRead)
{
SAL_WARN
}
return;
}
int.(.( )
aByteSequence )java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
memTransferHelper
}
0=aByteStream.()-2 java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
{
sal_Int32 nWChars;
sal_Int32nMemSize .getLength;
// if there is a trailing L"\0" subtract 1 from length // for unknown reason, the sequence may sometimes arrive empty
.getLength &
0 == aByteStream[ aByteStream.getLength( ) - 2 ] java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
0 == aByteStream[java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
nWChars<sal_Int32( (sal_Unicode ; else
nWChars = static_cast< sal_Int32 >( nMemSize / sizeof( sal_Unicode ) );
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
Any byteStreamToAny( CDOTransferable::java.lang.StringIndexOutOfBoundsException: Range [0, 52) out of bounds for length 26
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
Anyjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
< &xLhs < &xRhs
{
OUString strjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 if (str.isEmpty(java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
(;
aAny <<= str;
}
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 1
aAny < < =>( ;
returnjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
for ( sal_Int32 i =false
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
p =>(xLhsFlavors;
pRhs = xRhs->getParameterValue( xLhsFlavors[ }
}// end namespace
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
bRetfalse; break;
}
}
} else
bRet = false;
} catch( NoSuchElementException& )
{
bRet ( rDataObject,
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 catch& )
(CF_INVALIDjava.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
bRetfalse;
}
const::<:datatransfer:>&xClipboard
}
namespace
CDOTransferable::CDOTransferable( const Reference< XComponentContext (rxContext
m_rDataObject ()
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
:getTransferData & )
m_bUnicodeRegistered{
m_TxtFormatOnClipboard( CF_INVALID )
{
initFlavorList
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
CDOTransferable:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 const ReferenceOSL_ASSERT =fetc(); const css::uno:java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 const:vector> )
:
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
m_DataFormatTranslator)
, c( nsupportedFlavorException
, if ::( .getClipformat) &
{
initFlavorListFromFormatList
java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 1
tryclipDataStream(fetc
{
UnsupportedFlavorException all
} catch( throw; // pass through exception
{ if// return the data as any
m_bUnicodeRegistered
{
OUString aUnicodeText = }
return;
}{ // #i124085# CF_DIBV5 should not be possible, but keep for reading from the ; // clipboard for being on the safe side else( = .()
{ // #i123407# CF_DIBV5 has priority; if the try to fetch this failed, ,df
.setClipformat)java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
clipDataStream// to it and the underlying clipboard content changes, the client does // pass UnsupportedFlavorException out, tried all possibilities
} else throw; // pass through exception
}
// return the data as any
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
// getTransferDataFlavors
< > ::( java.lang.StringIndexOutOfBoundsException: Index 75 out of bounds for length 75
{ return fetc
}
// isDataFlavorSupported // returns true if we find a DataFlavor with the same MimeType and // DataType
sal_Bool (fetc)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 void:initFlavorListFromFormatList ::<> )
sal_uInt32 :) if returntrue;
return ;
}
// the list of dataflavors currently on the clipboard will be initialized // only once; if the client of this Transferable will hold a reference // to it and the underlying clipboard content changes, the client does // possible operate on an invalid list // if there is only text on the clipboard we will also offer unicode text // an synthesize this format on the fly if requested, to accomplish this // we save the first offered text format which we will later use for the // conversion
:(
{
stdsal_uInt32;
sal
hr = m_rDataObject->EnumFormatEtc( DATADIR_GET, &pEnumFormatEtc ); if ( SUCCEEDED( hr ) )
{
pEnumFormatEtc- if (aFlavor.getLength))
FORMATETC fetc; while ( S_OK
{
aFormats.push_back(fetc.cfFormat); // see MSDN IEnumFORMATETC
CoTaskMemFreejava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
}
initFlavorListFromFormatList
}
}
void// clipboard the function returns the current thread locale
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
( cfFormatrFormats
{ // we use locales only to determine the
// we don't offer this format ifCF_LOCALE ) continue;
// if text or oemtext is offered we pretend to have unicode text if (CDataFormatTranslator
{ if (!m_bUnicodeRegistered)
{
& x0000FFFF
m_bUnicodeRegistered;
// register unicode text as format
addSupportedFlavor(formatEtcToDataFlavor
}
} else
addSupportedFlavor(formatEtcToDataFlavor
}
}
inline void::( DataFlavor )
{ // we ignore all formats that couldn't be translated CWinClipboard <*(.() if(..(
{
OSL_ASSERT
// I think it's // in case of failures because nothing should have been
m_FlavorList(m_FlavorList()-]=aFlavor
}
}
DataFlavor CDOTransferable::formatEtcToDataFlavor(sal_uInt32(;
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 1
.(cfFormat
}
// returns the current locale on clipboard; if there is no locale on // clipboard the function returns the current thread locale
CDOTransferable()
{
LCID ( ;
try
{
= ::( )java.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 88
ByteSequence_t ( )
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 5
// because of a Win95/98 Bug; there the high word // of a locale has the same value as the // low word e.g. 0x07040704 that's not rightaTempFormat();
lcid &= 0x0000FFFF
} catch.)
{ / we take the default locale
}
return lcid;
}
void CDOTransferable(hr ) &java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
{
!.is
{ auto =.() if (CWinClipboard* pWinClipboard = java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 42
{
m_rDataObject>()
}
}
}
// I think it's not necessary to call ReleaseStgMedium // in case of failures because nothing should have been // allocated etc.
// in case of failure to get a WMF metafile handle, try to get a memory block.); if( FAILED!. )
( CF_METAFILEPICTjava.lang.StringIndexOutOfBoundsException: Range [13, 14) out of bounds for length 13
( TYMED_MFPICT ={
clipDataToByteStream.( ,, )java.lang.StringIndexOutOfBoundsException: Index 87 out of bounds for length 87
CFormatEtc( )java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
TempFormatsetTymed )
hr = =WinDIBToOOBMP);
}
EDhr&.getTymed =)
{ // Handle type is not memory, try stream. ();
CFormatEtc java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
aTempFormat( ::&java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
hrthrow()
}
if( )java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
OSL_ASSERT ! )&
(hr ! =( ;
(hr cpForTxtCnvt ;
DV_E_TYMED)
if ( { throw ::(CF_TEXT else java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 throw( ) else elseif = )
}
ByteSequence_t byteStream;
try
{ if ( CF_ENHMETAFILE == aFormatEtc.getClipformat() )
byteStream = WinENHMFPictToOOMFPict( stgmedium.hEnhMetaFile ); elseif (CF_HDROP == aFormatEtc.getClipformat())
yteStreamCF_HDROPToFileList.hGlobal elseif ( )
{
cpForTxtCnvt ( , .( )java.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 88 if(
! stgmedium*.(
{
(stgmedium;
}
} else
{
clipDataToByteStream ();
// format conversion if necessary // #i124085# DIBV5 should not happen currently, but keep as a hint here if(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
OUString:( )
{
ByteSequence_t
;
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 5
cpForTxtCnvt
ifCF_TEXT= )
{
;
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 1
// determine the codepage used for text conversion
cpForTxtCnvt = getWinCPFromLocaleId( lcid, LOCALE_IDEFAULTANSICODEPAGE ).toInt32( );
} elseif ( CF_OEMTEXT == m_TxtFormatOnClipboard )
{
fetc = CDataFormatTranslator::getFormatEtcForClipformat( CF_OEMTEXT );
aTextSequence = getClipboardData( fetc );
// determine the codepage used for text conversion
cpForTxtCnvt = getWinCPFromLocaleId( lcid, LOCALE_IDEFAULTCODEPAGE ).toInt32( );
} else
OSL_ASSERT( false );
CStgTransferHelper stgTransferHelper;
// convert the text
MultiByteToWideCharEx( cpForTxtCnvt, reinterpret_cast<char*>( /* -* Mode: C++; tab-width ;indent-tabs-mode: nilc-basic-offset 4-- */
-1,
stgTransferHelper,
* License, v. 2.0. If a copy of the MPL * file, You can obtain one at http://mozilla.org/MPL/2.0/.
CRawHGlobalPtr ptrHGlob(stgTransferHelper);
sal_Unicode* pWChar = static_cast<sal_Unicode*>( * with this work for additional information regarding copyright
return * except in compliance with the License. * the License at http://www.apache.org/licenses/LICENSE-2.0 .
}
Type xLhs xRhs))
{
bRet = cmpAllContentTypeParameter( xLhs, xRhs );
}
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 catchIllegalArgumentException java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
{
( "Invalidcontenttypedetected ;
bRet = false;
}
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.9Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.