summaryrefslogtreecommitdiff
path: root/extensions/test/ole/OleConverterVar1/smartarray.h
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2012-01-28 20:52:45 +0100
committerMichael Stahl <mstahl@redhat.com>2012-01-28 20:52:45 +0100
commit2e626373db2412ac22e8c5c27a60d11cd29e875b (patch)
tree9e9f67205cd5b72f1031721273e1534a3a1e5b0f /extensions/test/ole/OleConverterVar1/smartarray.h
parentf7ee7bbd5174b084f018c2ec94d8c70c98ee04da (diff)
replace obsolete "master" branch with README that points at new repoHEADmaster-deletedmaster
Diffstat (limited to 'extensions/test/ole/OleConverterVar1/smartarray.h')
-rw-r--r--extensions/test/ole/OleConverterVar1/smartarray.h236
1 files changed, 0 insertions, 236 deletions
diff --git a/extensions/test/ole/OleConverterVar1/smartarray.h b/extensions/test/ole/OleConverterVar1/smartarray.h
deleted file mode 100644
index f38c93d88..000000000
--- a/extensions/test/ole/OleConverterVar1/smartarray.h
+++ /dev/null
@@ -1,236 +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 _SMARTARRAY_H
-#define _SMARTARRAY_H
-
-
-template< class sourceType>
-class SmartArray
-{
- SAFEARRAY *m_array;
-public:
-
- SmartArray( sourceType * parParams, int count, VARTYPE destVartype): m_array(NULL)
- {
- HRESULT hr= S_OK;
- SAFEARRAYBOUND rgsabound[1];
- rgsabound[0].cElements= count;
- rgsabound[0].lLbound= 0;
- m_array= SafeArrayCreate( destVartype, 1, rgsabound);
- SafeArrayLock( m_array);
-
- void* pData;
- if( m_array && (SUCCEEDED( SafeArrayAccessData( m_array, (void**)&pData)) ) )
- {
-
- for( int i=0; i< count; i++)
- {
- CComVariant varSource( parParams[i]);
- switch (destVartype)
- {
- case VT_I1:
- {
- char* p= (char*) pData;
- if( SUCCEEDED( hr= varSource.ChangeType( destVartype)))
- p[i]= V_I1( &varSource);
- break;
- }
- case VT_I2:
- {
- short* p= (short*) pData;
- if( SUCCEEDED( hr=varSource.ChangeType( destVartype)))
- p[i]= V_I2( &varSource);
- break;
- }
- case VT_UI2:
- {
- unsigned short* p= (unsigned short*) pData;
- if( SUCCEEDED( hr=varSource.ChangeType( destVartype)))
- p[i]= V_UI2( &varSource);
- break;
- }
- case VT_I4:
- {
- long* p= (long*)pData;
- if( SUCCEEDED( hr=varSource.ChangeType( destVartype)))
- p[i]= V_I4( &varSource);
- break;
- }
- case VT_UI4:
- {
- unsigned long* p= (unsigned long*)pData;
- if( SUCCEEDED( hr=varSource.ChangeType( destVartype)))
- p[i]= V_UI4( &varSource);
- break;
- }
- case VT_R4:
- {
- float* p= (float*)pData;
- if( SUCCEEDED( hr=varSource.ChangeType( destVartype)))
- p[i]= V_R4( &varSource);
- break;
- }
- case VT_R8:
- {
- double* p= (double*)pData;
- if( SUCCEEDED( hr=varSource.ChangeType( destVartype)))
- p[i]= V_R8( &varSource);
- break;
- }
- case VT_BOOL:
- {
- VARIANT_BOOL* p= (VARIANT_BOOL*)pData;
- if( SUCCEEDED( hr=varSource.ChangeType( destVartype)))
- p[i]= V_BOOL( &varSource);
- break;
- }
- case VT_BSTR:
- {
- BSTR* pBstr= ( BSTR*)pData;
- if( SUCCEEDED( hr=varSource.ChangeType( destVartype)))
- pBstr[i]= SysAllocString(V_BSTR( &varSource));
- break;
- }
- case VT_VARIANT:
- {
- VARIANT *pVariant= (VARIANT*)pData;
- hr= VariantCopy( &pVariant[i], &varSource); break;
- }
-// case VT_UNKNOWN:
-// {
-// long* pUnk= (long*)pData;
-// pUnk[i]= reinterpret_cast<long>(parParams[i]);
-// ((IUnknown*)pUnk[i])->AddRef(); break;
-// }
-// case VT_DISPATCH:
-// {
-// long* pDisp= (long*)pData;
-// pDisp[i]= (long)parParams[i];
-// ((IDispatch*)pDisp[i])->AddRef(); break;
-// }
- default:
- hr= E_FAIL;
- }
- }
- if( FAILED( hr))
- {
- SafeArrayDestroy( m_array);
- m_array= NULL;
- }
- }
- SafeArrayUnaccessData( m_array);
- }
- ~SmartArray(){
- SafeArrayUnlock( m_array);
- SafeArrayDestroy( m_array );
- }
-
- operator bool (){ return m_array == NULL ? false : true; }
-
- operator SAFEARRAY* (){ return m_array;}
-
-};
-
-template<>
-class SmartArray<IUnknown*>
-{
- SAFEARRAY *m_array;
-public:
-
- SmartArray( sourceType * parParams, int count, VARTYPE destVartype);
-// {
-// ATLTRACE("SmartArray<IUnknown>");
-// HRESULT hr= S_OK;
-// SAFEARRAYBOUND rgsabound[1];
-// rgsabound[0].cElements= count;
-// rgsabound[0].lLbound= 0;
-// m_array= SafeArrayCreateVector( VT_UNKNOWN, 0, count);
-// SafeArrayLock( m_array);
-//
-// IUnknown* *pData;
-// if( m_array && (SUCCEEDED( SafeArrayAccessData( m_array, (void**)&pData)) ) )
-// {
-//
-// for( int i=0; i< count; i++)
-// {
-// CComVariant varSource( parParams[i]);
-// switch (destVartype)
-// {
-//
-// case VT_UNKNOWN:
-// {
-// pData[i]= parParams[i];
-// pData[i]->AddRef();
-// }
-// default:
-// hr= E_FAIL;
-// }
-// }
-// if( FAILED( hr))
-// {
-// SafeArrayDestroy( m_array);
-// m_array= NULL;
-// }
-// }
-// SafeArrayUnaccessData( m_array);
-// }
- ~SmartArray(){
- SafeArrayUnlock( m_array);
- SafeArrayDestroy( m_array );
- }
-
- operator bool (){ return m_array == NULL ? false : true; }
-
- operator SAFEARRAY* (){ return m_array;}
-
-};
-
-template <> SmartArray <IUnknown*>::SmartArray(sourceType * parParams, int count, VARTYPE destVartype):m_array(NULL)
-{
- ATLTRACE("SmartArray<IUnknown>");
- HRESULT hr= S_OK;
- SAFEARRAYBOUND rgsabound[1];
- rgsabound[0].cElements= count;
- rgsabound[0].lLbound= 0;
- m_array= SafeArrayCreateVector( VT_UNKNOWN, 0, count);
- SafeArrayLock( m_array);
-
- IUnknown* *pData;
- if( m_array && (SUCCEEDED( SafeArrayAccessData( m_array, (void**)&pData)) ) )
- {
- for( int i=0; i< count; i++)
- {
- pData[i]= parParams[i];
- pData[i]->AddRef();
- }
- }
- SafeArrayUnaccessData( m_array);
-};
-#endif
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */