summaryrefslogtreecommitdiff
path: root/extensions/test/ole/OleClient/funcs.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/test/ole/OleClient/funcs.cxx')
-rw-r--r--extensions/test/ole/OleClient/funcs.cxx358
1 files changed, 0 insertions, 358 deletions
diff --git a/extensions/test/ole/OleClient/funcs.cxx b/extensions/test/ole/OleClient/funcs.cxx
deleted file mode 100644
index b797ab140..000000000
--- a/extensions/test/ole/OleClient/funcs.cxx
+++ /dev/null
@@ -1,358 +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_extensions.hxx"
-
-#include <atlbase.h>
-#include <stdio.h>
-#include "cppuhelper/bootstrap.hxx"
-#include "rtl/process.h"
-#include "typelib/typedescription.hxx"
-
-#include "com/sun/star/bridge/ModelDependent.hpp"
-#include "com/sun/star/bridge/XBridgeSupplier2.hpp"
-#include "com/sun/star/uno/TypeClass.hpp"
-#include "com/sun/star/script/XInvocation.hpp"
-#include "com/sun/star/lang/XMultiServiceFactory.hpp"
-#include "com/sun/star/uno/XComponentContext.hpp"
-#include <com/sun/star/bridge/oleautomation/NamedArgument.hpp>
-#include "rtl/ustring.hxx"
-
-using namespace com::sun::star::bridge;
-using namespace com::sun::star::bridge::ModelDependent;
-using namespace com::sun::star::uno;
-using namespace com::sun::star::lang;
-using namespace com::sun::star::script;
-using namespace com::sun::star::bridge::oleautomation;
-using namespace cppu;
-
-using ::rtl::OUString;
-
-template< class T >
-bool equalSequences(const Sequence<T>& seqIn, const Sequence<Any> & returned);
-
-
-Reference< XMultiServiceFactory > objectFactory;//
-
-
-Reference<XMultiServiceFactory> getMultiServiceFactory()
-{
- static Reference< XMultiServiceFactory > factory;
- if( ! objectFactory.is() )
- {
- Reference<XComponentContext> context = defaultBootstrap_InitialComponentContext();
- factory = Reference<XMultiServiceFactory>( context->getServiceManager(), UNO_QUERY);
-
- }
- return factory;
-}
-
-Reference<XInvocation> getComObject( OUString progId)
-{
- HRESULT hr= S_OK;
- Reference< XInvocation > ret;
-// Reference<XMultiServiceFactory> fac;
- if( ! objectFactory.is())
- { Reference<XMultiServiceFactory> mgr= getMultiServiceFactory();
- Reference<XInterface> xInt= mgr->createInstance(
- OUString(L"com.sun.star.bridge.oleautomation.Factory"));
- objectFactory= Reference<XMultiServiceFactory>::query( xInt);
- }
-
- if( objectFactory.is())
- {
- Reference<XInterface> xIntAx= objectFactory->createInstance( progId.getStr());
- if( xIntAx.is() )
- {
- Reference< XInvocation > xInv( xIntAx, UNO_QUERY);
- ret= xInv;
- }
- }
- return ret;
-}
-
-Reference<XInvocation> convertComObject( IUnknown* pUnk)
-{
- Reference< XMultiServiceFactory > mgr= getMultiServiceFactory();
- Reference< XInterface > xIntSupplier= mgr->createInstance(OUString(L"com.sun.star.bridge.OleBridgeSupplier2"));
- Reference< XBridgeSupplier2 > xSuppl( xIntSupplier, UNO_QUERY);
-
- Any any;
- CComVariant var( pUnk);
- any <<= ( sal_uInt32)&var;
- sal_uInt8 arId[16];
- rtl_getGlobalProcessId( arId);
- Any target= xSuppl->createBridge( any, Sequence<sal_Int8>( (sal_Int8*)arId, 16), OLE, UNO );
-
- Reference<XInvocation> ret;
- target>>= ret;
- return ret;
-}
-
-/*
- Parameter values contains the expected return values. The value at index 0
- correspond to parameter 0 (left - most). For parameters which are not out or
- in/out the value must be a void any.
-
- The number of items in value must be the
- same as the number of provided parameter during the call on the method.
-
- The parameter outArgs, indices correspond to the sequences which are
- arguments to XInvocation::invoke
- */
-bool checkOutArgs(const Sequence<Any> & outArgs,
- const Sequence<sal_Int16> & indices, const Sequence<Any> & values)
-{
- if (values.getLength() != outArgs.getLength())
- return false;
- //iterate over all parameters. i represents the parameter index
- for (int i = 0; i < values.getLength(); i++)
- {
- if (values[i].getValueType() == getVoidCppuType())
- continue;
- //out parameter
- //Based on the parameter index find the correspondent out value
- int indexOutSeq = -1;
- for (int iIndices = indices.getLength() - 1; iIndices >= 0; iIndices --)
- {
- if (indices[iIndices] == i)
- {
- indexOutSeq = iIndices;
- break;
- }
- }
- if (indexOutSeq == -1)
- return false;
-
- Any value;
- Any out;
- values[i] >>= value;
- outArgs[indexOutSeq] >>=out;
- NamedArgument naVal;
- NamedArgument naOut;
- value >>= naVal;
- out >>= naOut;
- if (values[i].getValueType() == getCppuType((NamedArgument *) 0))
- {
- NamedArgument inNamed;
- values[i] >>= inNamed;
- value <<= inNamed.Value;
- }
- if (value != outArgs[indexOutSeq])
- return false;
- }
- return true;
-}
-
-/* The returned sequence always contains Any elements
-*/
-bool equalSequences(const Any& orig, const Any& returned)
-{
- if (orig.getValueTypeClass() != TypeClass_SEQUENCE)
- {
- OSL_ASSERT(0);
- return false;
- }
- TypeDescription td(orig.getValueTypeRef());
- typelib_IndirectTypeDescription * indirect_td = (typelib_IndirectTypeDescription *) td.get();
-
- switch (indirect_td->pType->eTypeClass)
- {
- case TypeClass_CHAR:
- {
- Sequence<sal_Unicode> seq;
- orig >>= seq;
- Sequence<Any> seq2;
- returned >>= seq2;
- return equalSequences(seq, seq2);
- }
- case TypeClass_BOOLEAN:
- {
- Sequence<sal_Bool> seq;
- orig >>= seq;
- Sequence<Any> seq2;
- returned >>= seq2;
- return equalSequences(seq, seq2);
- }
- case TypeClass_BYTE:
- {
- Sequence<sal_Int8> seq;
- orig >>= seq;
- Sequence<Any> seq2;
- returned >>= seq2;
- return equalSequences(seq, seq2);
- }
- case TypeClass_SHORT:
- {
- Sequence<sal_Int16> seq;
- orig >>= seq;
- Sequence<Any> seq2;
- returned >>= seq2;
- return equalSequences(seq, seq2);
- }
- case TypeClass_LONG:
- {
- Sequence<sal_Int32> seq;
- orig >>= seq;
- Sequence<Any> seq2;
- returned >>= seq2;
- return equalSequences(seq, seq2);
- }
- case TypeClass_FLOAT:
- {
- Sequence<float> seq;
- orig >>= seq;
- Sequence<Any> seq2;
- returned >>= seq2;
- return equalSequences(seq, seq2);
- }
- case TypeClass_DOUBLE:
- {
- Sequence<double> seq;
- orig >>= seq;
- Sequence<Any> seq2;
- returned >>= seq2;
- return equalSequences(seq, seq2);
- }
- case TypeClass_STRING:
- {
- Sequence<OUString> seq;
- orig >>= seq;
- Sequence<Any> seq2;
- returned >>= seq2;
- return equalSequences(seq, seq2);
- }
- case TypeClass_ANY:
- {
- Sequence<Any> seq;
- orig >>= seq;
- Sequence<Any> seq2;
- returned >>= seq2;
- return equalSequences(seq, seq2);
- }
- case TypeClass_SEQUENCE:
- {
- //Sequence<sal_Unicode> seq;
- //orig >>= seq;
- //Sequence<Any> seq2;
- //returned >>= seq2;
- //return equalSequences(seq, seq2);
- break;
- }
- case TypeClass_INTERFACE:
- {
- Sequence<Reference<XInvocation> > seq;
- orig >>= seq;
- Sequence<Any> seq2;
- returned >>= seq2;
- return equalSequences(seq, seq2);
- }
- default:
- return false;
- }
- return false;
-}
-
-template< class T >
-bool equalSequences(const Sequence<T>& seqIn, const Sequence<Any> & seqOut)
-{
- if (seqIn.getLength() != seqOut.getLength())
- return false;
- int len = seqIn.getLength();
- for (int i = 0; i < len; i++)
- {
- Any anyIn;
- anyIn <<= seqIn[i];
- Any anyOut = seqOut[i];
- if (anyIn != anyOut)
- return false;
- }
-
- return true;
-}
-
-void printSequence( Sequence<Any>& val)
-{
-
-// typelib_TypeDescription* desc;
-// val.getValueTypeDescription( &desc);
-// typelib_typedescription_release( desc);
-
- USES_CONVERSION;
- char buff[1024];
- buff[0]=0;
- char tmpBuf[1024];
- tmpBuf[0]=0;
- sal_Int32 i;
-
- for( i=0; i< val.getLength(); i++)
- {
- Any& elem= val[i];
- switch ( elem.getValueTypeClass())
- {
- case TypeClass_BYTE:
- sprintf( tmpBuf, "sal_Int8 %d \n", *(sal_Int8*)elem.getValue());
- break;
- case TypeClass_SHORT:
- sprintf( tmpBuf, "sal_Int16 %d \n", *(sal_Int16*)elem.getValue());
- break;
- case TypeClass_LONG:
- sprintf( tmpBuf, "sal_Int32 %d \n", *(sal_Int32*)elem.getValue());
- break;
- case TypeClass_DOUBLE:
- sprintf( tmpBuf, "double %f \n", *(double*)elem.getValue());
- break;
- case TypeClass_FLOAT:
- sprintf( tmpBuf, "float %f \n", *(float*)elem.getValue());
- break;
- case TypeClass_STRING:
- sprintf( tmpBuf, "%S \n", (*(OUString*)elem.getValue()).getStr());
- break;
- case TypeClass_INTERFACE:
- {
- // we assume that the interface is XInvocation of a AxTestControls.Basic component.
- Reference<XInvocation> inv;
- elem>>= inv;
- if( inv.is())
- {
- Any prpVal= inv->getValue( OUString( L"prpString"));
- sprintf( tmpBuf, "Property prpString: %S \n", (*(OUString*)prpVal.getValue()).getStr());
- }
- break;
- }
- default:break;
- }
- strcat( buff, tmpBuf);
-
- }
-
- MessageBox( NULL, A2T(buff), _T("clientTest: printing Sequence elements"), MB_OK);
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */