summaryrefslogtreecommitdiff
path: root/sot/source/sdstor/stgole.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sot/source/sdstor/stgole.cxx')
-rw-r--r--sot/source/sdstor/stgole.cxx204
1 files changed, 0 insertions, 204 deletions
diff --git a/sot/source/sdstor/stgole.cxx b/sot/source/sdstor/stgole.cxx
deleted file mode 100644
index 7d0226f50c..0000000000
--- a/sot/source/sdstor/stgole.cxx
+++ /dev/null
@@ -1,204 +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_sot.hxx"
-
-#include "rtl/string.h"
-#include "rtl/string.h"
-#include "stgole.hxx"
-#include "sot/storinfo.hxx" // Read/WriteClipboardFormat()
-
-#include <tools/debug.hxx>
-#if defined(_MSC_VER) && (_MSC_VER>=1400)
-#pragma warning(disable: 4342)
-#endif
-///////////////////////// class StgInternalStream ////////////////////////
-
-StgInternalStream::StgInternalStream
- ( BaseStorage& rStg, const String& rName, sal_Bool bWr )
-{
- bIsWritable = sal_True;
- sal_uInt16 nMode = bWr
- ? STREAM_WRITE | STREAM_SHARE_DENYALL
- : STREAM_READ | STREAM_SHARE_DENYWRITE | STREAM_NOCREATE;
- pStrm = rStg.OpenStream( rName, nMode );
-
- // set the error code right here in the stream
- SetError( rStg.GetError() );
- SetBufferSize( 1024 );
-}
-
-StgInternalStream::~StgInternalStream()
-{
- delete pStrm;
-}
-
-sal_uLong StgInternalStream::GetData( void* pData, sal_uLong nSize )
-{
- if( pStrm )
- {
- nSize = pStrm->Read( pData, nSize );
- SetError( pStrm->GetError() );
- return nSize;
- }
- else
- return 0;
-}
-
-sal_uLong StgInternalStream::PutData( const void* pData, sal_uLong nSize )
-{
- if( pStrm )
- {
- nSize = pStrm->Write( pData, nSize );
- SetError( pStrm->GetError() );
- return nSize;
- }
- else
- return 0;
-}
-
-sal_uLong StgInternalStream::SeekPos( sal_uLong nPos )
-{
- return pStrm ? pStrm->Seek( nPos ) : 0;
-}
-
-void StgInternalStream::FlushData()
-{
- if( pStrm )
- {
- pStrm->Flush();
- SetError( pStrm->GetError() );
- }
-}
-
-void StgInternalStream::Commit()
-{
- Flush();
- pStrm->Commit();
-}
-
-///////////////////////// class StgCompObjStream /////////////////////////
-
-StgCompObjStream::StgCompObjStream( BaseStorage& rStg, sal_Bool bWr )
- : StgInternalStream( rStg, String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "\1CompObj" ) ), bWr )
-{
- memset( &aClsId, 0, sizeof( ClsId ) );
- nCbFormat = 0;
-}
-
-sal_Bool StgCompObjStream::Load()
-{
- memset( &aClsId, 0, sizeof( ClsId ) );
- nCbFormat = 0;
- aUserName.Erase();
- if( GetError() != SVSTREAM_OK )
- return sal_False;
- Seek( 8L ); // skip the first part
- sal_Int32 nMarker = 0;
- *this >> nMarker;
- if( nMarker == -1L )
- {
- *this >> aClsId;
- sal_Int32 nLen1 = 0;
- *this >> nLen1;
- // higher bits are ignored
- nLen1 &= 0xFFFF;
- sal_Char* p = new sal_Char[ (sal_uInt16) nLen1 ];
- if( Read( p, nLen1 ) == (sal_uLong) nLen1 )
- {
- //The encoding here is "ANSI", which is pretty useless seeing as
- //the actual codepage used doesn't seem to be specified/stored
- //anywhere :-(. Might as well pick 1252 and be consistent on
- //all platforms and envs
- //http://www.openoffice.org/nonav/issues/showattachment.cgi/68668/Orginal%20Document.doc
- //for a good edge-case example
- aUserName = nLen1 ? String( p, RTL_TEXTENCODING_MS_1252 ) : String();
- nCbFormat = ReadClipboardFormat( *this );
- }
- else
- SetError( SVSTREAM_GENERALERROR );
- delete [] p;
- }
- return sal_Bool( GetError() == SVSTREAM_OK );
-}
-
-sal_Bool StgCompObjStream::Store()
-{
- if( GetError() != SVSTREAM_OK )
- return sal_False;
- Seek( 0L );
- ByteString aAsciiUserName( aUserName, RTL_TEXTENCODING_MS_1252 );
- *this << (sal_Int16) 1 // Version?
- << (sal_Int16) -2 // 0xFFFE = Byte Order Indicator
- << (sal_Int32) 0x0A03 // Windows 3.10
- << (sal_Int32) -1L
- << aClsId // Class ID
- << (sal_Int32) (aAsciiUserName.Len() + 1)
- << (const char *)aAsciiUserName.GetBuffer()
- << (sal_uInt8) 0; // string terminator
- WriteClipboardFormat( *this, nCbFormat );
- *this << (sal_Int32) 0; // terminator
- Commit();
- return sal_Bool( GetError() == SVSTREAM_OK );
-}
-
-/////////////////////////// class StgOleStream ///////////////////////////
-
-StgOleStream::StgOleStream( BaseStorage& rStg, sal_Bool bWr )
- : StgInternalStream( rStg, String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "\1Ole" ) ), bWr )
-{
- nFlags = 0;
-}
-
-sal_Bool StgOleStream::Load()
-{
- nFlags = 0;
- if( GetError() != SVSTREAM_OK )
- return sal_False;
- sal_Int32 version = 0;
- Seek( 0L );
- *this >> version >> nFlags;
- return sal_Bool( GetError() == SVSTREAM_OK );
-}
-
-sal_Bool StgOleStream::Store()
-{
- if( GetError() != SVSTREAM_OK )
- return sal_False;
- Seek( 0L );
- *this << (sal_Int32) 0x02000001 // OLE version, format
- << (sal_Int32) nFlags // Object flags
- << (sal_Int32) 0 // Update Options
- << (sal_Int32) 0 // reserved
- << (sal_Int32) 0; // Moniker 1
- Commit();
- return sal_Bool( GetError() == SVSTREAM_OK );
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */