xref: /aoo42x/main/basic/source/inc/sbunoobj.hxx (revision cdf0e10c)
1*cdf0e10cSrcweir /*************************************************************************
2*cdf0e10cSrcweir  *
3*cdf0e10cSrcweir  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir  *
5*cdf0e10cSrcweir  * Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir  *
7*cdf0e10cSrcweir  * OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir  *
9*cdf0e10cSrcweir  * This file is part of OpenOffice.org.
10*cdf0e10cSrcweir  *
11*cdf0e10cSrcweir  * OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir  * it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir  * only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir  *
15*cdf0e10cSrcweir  * OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir  * GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir  * (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir  *
21*cdf0e10cSrcweir  * You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir  * version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir  * <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir  * for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir  *
26*cdf0e10cSrcweir  ************************************************************************/
27*cdf0e10cSrcweir #ifndef SB_UNO_OBJ
28*cdf0e10cSrcweir #define SB_UNO_OBJ
29*cdf0e10cSrcweir 
30*cdf0e10cSrcweir #include <basic/sbxobj.hxx>
31*cdf0e10cSrcweir #include <basic/sbxmeth.hxx>
32*cdf0e10cSrcweir #include <basic/sbxprop.hxx>
33*cdf0e10cSrcweir #include <basic/sbxfac.hxx>
34*cdf0e10cSrcweir #ifndef __SBX_SBX_HXX //autogen
35*cdf0e10cSrcweir #include <basic/sbx.hxx>
36*cdf0e10cSrcweir #endif
37*cdf0e10cSrcweir #include <com/sun/star/beans/XMaterialHolder.hpp>
38*cdf0e10cSrcweir #include <com/sun/star/beans/XExactName.hpp>
39*cdf0e10cSrcweir #include <com/sun/star/beans/XIntrospectionAccess.hpp>
40*cdf0e10cSrcweir #include <com/sun/star/beans/XIntrospection.hpp>
41*cdf0e10cSrcweir #include <com/sun/star/script/XInvocation.hpp>
42*cdf0e10cSrcweir #include <com/sun/star/reflection/XIdlClass.hpp>
43*cdf0e10cSrcweir #include <com/sun/star/reflection/XServiceTypeDescription2.hpp>
44*cdf0e10cSrcweir #include <com/sun/star/reflection/XSingletonTypeDescription.hpp>
45*cdf0e10cSrcweir #include <rtl/ustring.hxx>
46*cdf0e10cSrcweir 
47*cdf0e10cSrcweir class SbUnoObject: public SbxObject
48*cdf0e10cSrcweir {
49*cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::beans::XIntrospectionAccess > mxUnoAccess;
50*cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::beans::XMaterialHolder > mxMaterialHolder;
51*cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::script::XInvocation > mxInvocation;
52*cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::beans::XExactName > mxExactName;
53*cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::beans::XExactName > mxExactNameInvocation;
54*cdf0e10cSrcweir 	sal_Bool bNeedIntrospection;
55*cdf0e10cSrcweir 	sal_Bool bNativeCOMObject;
56*cdf0e10cSrcweir 	::com::sun::star::uno::Any maTmpUnoObj;	// Only to save obj for doIntrospection!
57*cdf0e10cSrcweir 
58*cdf0e10cSrcweir 	// Hilfs-Methode zum Anlegen der dbg_-Properties
59*cdf0e10cSrcweir 	void implCreateDbgProperties( void );
60*cdf0e10cSrcweir 
61*cdf0e10cSrcweir 	// Hilfs-Methode zum Anlegen aller Properties und Methoden
62*cdf0e10cSrcweir 	// (Beim on-demand-Mechanismus erforderlich fuer die dbg_-Properties)
63*cdf0e10cSrcweir 	void implCreateAll( void );
64*cdf0e10cSrcweir 
65*cdf0e10cSrcweir public:
66*cdf0e10cSrcweir 	static bool getDefaultPropName( SbUnoObject* pUnoObj, String& sDfltProp );
67*cdf0e10cSrcweir 	TYPEINFO();
68*cdf0e10cSrcweir 	SbUnoObject( const String& aName_, const ::com::sun::star::uno::Any& aUnoObj_ );
69*cdf0e10cSrcweir 	~SbUnoObject();
70*cdf0e10cSrcweir 
71*cdf0e10cSrcweir 	// #76470 Introspection on Demand durchfuehren
72*cdf0e10cSrcweir 	void doIntrospection( void );
73*cdf0e10cSrcweir 
74*cdf0e10cSrcweir 	// Find ueberladen, um z.B. NameAccess zu unterstuetzen
75*cdf0e10cSrcweir 	virtual SbxVariable* Find( const String&, SbxClassType );
76*cdf0e10cSrcweir 
77*cdf0e10cSrcweir 	// Force creation of all properties for debugging
78*cdf0e10cSrcweir 	void createAllProperties( void  )
79*cdf0e10cSrcweir 		{ implCreateAll(); }
80*cdf0e10cSrcweir 
81*cdf0e10cSrcweir 	// Wert rausgeben
82*cdf0e10cSrcweir 	::com::sun::star::uno::Any getUnoAny( void );
83*cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::beans::XIntrospectionAccess > getIntrospectionAccess( void )	{ return mxUnoAccess; }
84*cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::script::XInvocation > getInvocation( void )			{ return mxInvocation; }
85*cdf0e10cSrcweir 
86*cdf0e10cSrcweir 	void SFX_NOTIFY( SfxBroadcaster&, const TypeId&, const SfxHint& rHint, const TypeId& );
87*cdf0e10cSrcweir 
88*cdf0e10cSrcweir 	bool isNativeCOMObject( void )
89*cdf0e10cSrcweir 		{ return bNativeCOMObject; }
90*cdf0e10cSrcweir };
91*cdf0e10cSrcweir SV_DECL_IMPL_REF(SbUnoObject);
92*cdf0e10cSrcweir 
93*cdf0e10cSrcweir 
94*cdf0e10cSrcweir // #67781 Rueckgabewerte der Uno-Methoden loeschen
95*cdf0e10cSrcweir void clearUnoMethods( void );
96*cdf0e10cSrcweir void clearUnoMethodsForBasic( StarBASIC* pBasic );
97*cdf0e10cSrcweir 
98*cdf0e10cSrcweir class SbUnoMethod : public SbxMethod
99*cdf0e10cSrcweir {
100*cdf0e10cSrcweir 	friend class SbUnoObject;
101*cdf0e10cSrcweir 	friend void clearUnoMethods( void );
102*cdf0e10cSrcweir     friend void clearUnoMethodsForBasic( StarBASIC* pBasic );
103*cdf0e10cSrcweir 
104*cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlMethod > m_xUnoMethod;
105*cdf0e10cSrcweir 	::com::sun::star::uno::Sequence< ::com::sun::star::reflection::ParamInfo >* pParamInfoSeq;
106*cdf0e10cSrcweir 
107*cdf0e10cSrcweir 	// #67781 Verweis auf vorige und naechste Methode in der Methoden-Liste
108*cdf0e10cSrcweir 	SbUnoMethod* pPrev;
109*cdf0e10cSrcweir 	SbUnoMethod* pNext;
110*cdf0e10cSrcweir 
111*cdf0e10cSrcweir 	bool mbInvocation;		 // Method is based on invocation
112*cdf0e10cSrcweir     bool mbDirectInvocation; // Method should be used with XDirectInvocation interface
113*cdf0e10cSrcweir 
114*cdf0e10cSrcweir public:
115*cdf0e10cSrcweir 	TYPEINFO();
116*cdf0e10cSrcweir 
117*cdf0e10cSrcweir 	SbUnoMethod( const String& aName_, SbxDataType eSbxType, ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlMethod > xUnoMethod_,
118*cdf0e10cSrcweir 		bool bInvocation,
119*cdf0e10cSrcweir         bool bDirect = false );
120*cdf0e10cSrcweir 	virtual ~SbUnoMethod();
121*cdf0e10cSrcweir 	virtual SbxInfo* GetInfo();
122*cdf0e10cSrcweir 
123*cdf0e10cSrcweir 	const ::com::sun::star::uno::Sequence< ::com::sun::star::reflection::ParamInfo >& getParamInfos( void );
124*cdf0e10cSrcweir 
125*cdf0e10cSrcweir 	bool isInvocationBased( void )
126*cdf0e10cSrcweir 		{ return mbInvocation; }
127*cdf0e10cSrcweir     bool needsDirectInvocation( void )
128*cdf0e10cSrcweir         { return mbDirectInvocation; }
129*cdf0e10cSrcweir };
130*cdf0e10cSrcweir 
131*cdf0e10cSrcweir 
132*cdf0e10cSrcweir class SbUnoProperty : public SbxProperty
133*cdf0e10cSrcweir {
134*cdf0e10cSrcweir 	friend class SbUnoObject;
135*cdf0e10cSrcweir 
136*cdf0e10cSrcweir 	// Daten der Uno-Property
137*cdf0e10cSrcweir 	::com::sun::star::beans::Property aUnoProp;
138*cdf0e10cSrcweir 	sal_Int32 nId;
139*cdf0e10cSrcweir 
140*cdf0e10cSrcweir 	bool mbInvocation;		// Property is based on invocation
141*cdf0e10cSrcweir 
142*cdf0e10cSrcweir 	virtual ~SbUnoProperty();
143*cdf0e10cSrcweir public:
144*cdf0e10cSrcweir 	TYPEINFO();
145*cdf0e10cSrcweir 	SbUnoProperty( const String& aName_, SbxDataType eSbxType,
146*cdf0e10cSrcweir 		const ::com::sun::star::beans::Property& aUnoProp_, sal_Int32 nId_, bool bInvocation );
147*cdf0e10cSrcweir 
148*cdf0e10cSrcweir 	bool isInvocationBased( void )
149*cdf0e10cSrcweir 		{ return mbInvocation; }
150*cdf0e10cSrcweir };
151*cdf0e10cSrcweir 
152*cdf0e10cSrcweir // Factory-Klasse fuer das Anlegen von Uno-Structs per DIM AS NEW
153*cdf0e10cSrcweir class SbUnoFactory : public SbxFactory
154*cdf0e10cSrcweir {
155*cdf0e10cSrcweir public:
156*cdf0e10cSrcweir 	virtual SbxBase* Create( sal_uInt16 nSbxId, sal_uInt32 = SBXCR_SBX );
157*cdf0e10cSrcweir 	virtual SbxObject* CreateObject( const String& );
158*cdf0e10cSrcweir };
159*cdf0e10cSrcweir 
160*cdf0e10cSrcweir // Wrapper fuer eine Uno-Klasse
161*cdf0e10cSrcweir class SbUnoClass : public SbxObject
162*cdf0e10cSrcweir {
163*cdf0e10cSrcweir 	const ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlClass >	m_xClass;
164*cdf0e10cSrcweir 
165*cdf0e10cSrcweir public:
166*cdf0e10cSrcweir 	TYPEINFO();
167*cdf0e10cSrcweir 	SbUnoClass( const String& aName_ )
168*cdf0e10cSrcweir 		: SbxObject( aName_ )
169*cdf0e10cSrcweir 	{}
170*cdf0e10cSrcweir 	SbUnoClass( const String& aName_, const ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlClass >& xClass_ )
171*cdf0e10cSrcweir 		: SbxObject( aName_ )
172*cdf0e10cSrcweir 		, m_xClass( xClass_ )
173*cdf0e10cSrcweir 	{}
174*cdf0e10cSrcweir 	//~SbUnoClass();
175*cdf0e10cSrcweir 
176*cdf0e10cSrcweir 	// Find ueberladen, um Elemente on Demand anzulegen
177*cdf0e10cSrcweir 	virtual SbxVariable* Find( const String&, SbxClassType );
178*cdf0e10cSrcweir 
179*cdf0e10cSrcweir 	// Wert rausgeben
180*cdf0e10cSrcweir 	const ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XIdlClass >& getUnoClass( void ) { return m_xClass; }
181*cdf0e10cSrcweir 
182*cdf0e10cSrcweir 	//void SFX_NOTIFY( SfxBroadcaster&, const TypeId&, const SfxHint& rHint, const TypeId& );
183*cdf0e10cSrcweir };
184*cdf0e10cSrcweir SV_DECL_IMPL_REF(SbUnoClass);
185*cdf0e10cSrcweir 
186*cdf0e10cSrcweir 
187*cdf0e10cSrcweir // Funktion, um einen globalen Bezeichner im
188*cdf0e10cSrcweir // UnoScope zu suchen und fuer Sbx zu wrappen
189*cdf0e10cSrcweir SbUnoClass* findUnoClass( const String& rName );
190*cdf0e10cSrcweir 
191*cdf0e10cSrcweir 
192*cdf0e10cSrcweir // Wrapper for UNO Service
193*cdf0e10cSrcweir class SbUnoService : public SbxObject
194*cdf0e10cSrcweir {
195*cdf0e10cSrcweir 	const ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XServiceTypeDescription2 >	m_xServiceTypeDesc;
196*cdf0e10cSrcweir 	bool																								m_bNeedsInit;
197*cdf0e10cSrcweir 
198*cdf0e10cSrcweir public:
199*cdf0e10cSrcweir 	TYPEINFO();
200*cdf0e10cSrcweir 	SbUnoService( const String& aName_,
201*cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XServiceTypeDescription2 >& xServiceTypeDesc )
202*cdf0e10cSrcweir 			: SbxObject( aName_ )
203*cdf0e10cSrcweir 			, m_xServiceTypeDesc( xServiceTypeDesc )
204*cdf0e10cSrcweir 			, m_bNeedsInit( true )
205*cdf0e10cSrcweir 	{}
206*cdf0e10cSrcweir 
207*cdf0e10cSrcweir 	virtual SbxVariable* Find( const String&, SbxClassType );
208*cdf0e10cSrcweir 
209*cdf0e10cSrcweir 	void SFX_NOTIFY( SfxBroadcaster&, const TypeId&, const SfxHint& rHint, const TypeId& );
210*cdf0e10cSrcweir };
211*cdf0e10cSrcweir SV_DECL_IMPL_REF(SbUnoService);
212*cdf0e10cSrcweir 
213*cdf0e10cSrcweir SbUnoService* findUnoService( const String& rName );
214*cdf0e10cSrcweir 
215*cdf0e10cSrcweir 
216*cdf0e10cSrcweir void clearUnoServiceCtors( void );
217*cdf0e10cSrcweir 
218*cdf0e10cSrcweir class SbUnoServiceCtor : public SbxMethod
219*cdf0e10cSrcweir {
220*cdf0e10cSrcweir 	friend class SbUnoService;
221*cdf0e10cSrcweir 	friend void clearUnoServiceCtors( void );
222*cdf0e10cSrcweir 
223*cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::reflection::XServiceConstructorDescription > m_xServiceCtorDesc;
224*cdf0e10cSrcweir 
225*cdf0e10cSrcweir 	SbUnoServiceCtor* pPrev;
226*cdf0e10cSrcweir 	SbUnoServiceCtor* pNext;
227*cdf0e10cSrcweir 
228*cdf0e10cSrcweir public:
229*cdf0e10cSrcweir 	TYPEINFO();
230*cdf0e10cSrcweir 
231*cdf0e10cSrcweir 	SbUnoServiceCtor( const String& aName_, ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XServiceConstructorDescription > xServiceCtorDesc );
232*cdf0e10cSrcweir 	virtual ~SbUnoServiceCtor();
233*cdf0e10cSrcweir 	virtual SbxInfo* GetInfo();
234*cdf0e10cSrcweir 
235*cdf0e10cSrcweir 	::com::sun::star::uno::Reference< ::com::sun::star::reflection::XServiceConstructorDescription > getServiceCtorDesc( void )
236*cdf0e10cSrcweir 		{ return m_xServiceCtorDesc; }
237*cdf0e10cSrcweir };
238*cdf0e10cSrcweir 
239*cdf0e10cSrcweir 
240*cdf0e10cSrcweir // Wrapper for UNO Singleton
241*cdf0e10cSrcweir class SbUnoSingleton : public SbxObject
242*cdf0e10cSrcweir {
243*cdf0e10cSrcweir 	const ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XSingletonTypeDescription >	m_xSingletonTypeDesc;
244*cdf0e10cSrcweir 
245*cdf0e10cSrcweir public:
246*cdf0e10cSrcweir 	TYPEINFO();
247*cdf0e10cSrcweir 	SbUnoSingleton( const String& aName_,
248*cdf0e10cSrcweir 		const ::com::sun::star::uno::Reference< ::com::sun::star::reflection::XSingletonTypeDescription >& xSingletonTypeDesc );
249*cdf0e10cSrcweir 
250*cdf0e10cSrcweir 	void SFX_NOTIFY( SfxBroadcaster&, const TypeId&, const SfxHint& rHint, const TypeId& );
251*cdf0e10cSrcweir };
252*cdf0e10cSrcweir SV_DECL_IMPL_REF(SbUnoSingleton);
253*cdf0e10cSrcweir 
254*cdf0e10cSrcweir SbUnoSingleton* findUnoSingleton( const String& rName );
255*cdf0e10cSrcweir 
256*cdf0e10cSrcweir 
257*cdf0e10cSrcweir // #105565 Special Object to wrap a strongly typed Uno Any
258*cdf0e10cSrcweir class SbUnoAnyObject: public SbxObject
259*cdf0e10cSrcweir {
260*cdf0e10cSrcweir     ::com::sun::star::uno::Any     mVal;
261*cdf0e10cSrcweir 
262*cdf0e10cSrcweir public:
263*cdf0e10cSrcweir 	SbUnoAnyObject( const ::com::sun::star::uno::Any& rVal )
264*cdf0e10cSrcweir     	: SbxObject( String() )
265*cdf0e10cSrcweir         , mVal( rVal )
266*cdf0e10cSrcweir 	{}
267*cdf0e10cSrcweir 
268*cdf0e10cSrcweir     const ::com::sun::star::uno::Any& getValue( void )
269*cdf0e10cSrcweir         { return mVal; }
270*cdf0e10cSrcweir 
271*cdf0e10cSrcweir 	TYPEINFO();
272*cdf0e10cSrcweir };
273*cdf0e10cSrcweir 
274*cdf0e10cSrcweir 
275*cdf0e10cSrcweir // #112509 Special SbxArray to transport named parameters for calls
276*cdf0e10cSrcweir // to OLEAutomation objects through the UNO OLE automation bridge
277*cdf0e10cSrcweir 
278*cdf0e10cSrcweir class AutomationNamedArgsSbxArray : public SbxArray
279*cdf0e10cSrcweir {
280*cdf0e10cSrcweir 	::com::sun::star::uno::Sequence< ::rtl::OUString >		maNameSeq;
281*cdf0e10cSrcweir public:
282*cdf0e10cSrcweir 	TYPEINFO();
283*cdf0e10cSrcweir 	AutomationNamedArgsSbxArray( sal_Int32 nSeqSize )
284*cdf0e10cSrcweir 		: maNameSeq( nSeqSize )
285*cdf0e10cSrcweir 	{}
286*cdf0e10cSrcweir 
287*cdf0e10cSrcweir 	::com::sun::star::uno::Sequence< ::rtl::OUString >& getNames( void )
288*cdf0e10cSrcweir 		{ return maNameSeq; }
289*cdf0e10cSrcweir };
290*cdf0e10cSrcweir 
291*cdf0e10cSrcweir 
292*cdf0e10cSrcweir class StarBASIC;
293*cdf0e10cSrcweir 
294*cdf0e10cSrcweir // Impl-Methoden fuer RTL
295*cdf0e10cSrcweir void RTL_Impl_CreateUnoStruct( StarBASIC* pBasic, SbxArray& rPar, sal_Bool bWrite );
296*cdf0e10cSrcweir void RTL_Impl_CreateUnoService( StarBASIC* pBasic, SbxArray& rPar, sal_Bool bWrite );
297*cdf0e10cSrcweir void RTL_Impl_CreateUnoServiceWithArguments( StarBASIC* pBasic, SbxArray& rPar, sal_Bool bWrite );
298*cdf0e10cSrcweir void RTL_Impl_CreateUnoValue( StarBASIC* pBasic, SbxArray& rPar, sal_Bool bWrite );
299*cdf0e10cSrcweir void RTL_Impl_GetProcessServiceManager( StarBASIC* pBasic, SbxArray& rPar, sal_Bool bWrite );
300*cdf0e10cSrcweir void RTL_Impl_HasInterfaces( StarBASIC* pBasic, SbxArray& rPar, sal_Bool bWrite );
301*cdf0e10cSrcweir void RTL_Impl_IsUnoStruct( StarBASIC* pBasic, SbxArray& rPar, sal_Bool bWrite );
302*cdf0e10cSrcweir void RTL_Impl_EqualUnoObjects( StarBASIC* pBasic, SbxArray& rPar, sal_Bool bWrite );
303*cdf0e10cSrcweir void RTL_Impl_GetDefaultContext( StarBASIC* pBasic, SbxArray& rPar, sal_Bool bWrite );
304*cdf0e10cSrcweir 
305*cdf0e10cSrcweir void disposeComVariablesForBasic( StarBASIC* pBasic );
306*cdf0e10cSrcweir void clearNativeObjectWrapperVector( void );
307*cdf0e10cSrcweir 
308*cdf0e10cSrcweir 
309*cdf0e10cSrcweir //========================================================================
310*cdf0e10cSrcweir // #118116 Collection object
311*cdf0e10cSrcweir 
312*cdf0e10cSrcweir class BasicCollection : public SbxObject
313*cdf0e10cSrcweir {
314*cdf0e10cSrcweir 	friend class SbiRuntime;
315*cdf0e10cSrcweir 	SbxArrayRef xItemArray;
316*cdf0e10cSrcweir 	static SbxInfoRef xAddInfo;
317*cdf0e10cSrcweir 	static SbxInfoRef xItemInfo;
318*cdf0e10cSrcweir 
319*cdf0e10cSrcweir 	void Initialize();
320*cdf0e10cSrcweir 	virtual ~BasicCollection();
321*cdf0e10cSrcweir 	virtual void SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
322*cdf0e10cSrcweir 							 const SfxHint& rHint, const TypeId& rHintType );
323*cdf0e10cSrcweir 	sal_Int32 implGetIndex( SbxVariable* pIndexVar );
324*cdf0e10cSrcweir 	sal_Int32 implGetIndexForName( const String& rName );
325*cdf0e10cSrcweir 	void CollAdd( SbxArray* pPar_ );
326*cdf0e10cSrcweir 	void CollItem( SbxArray* pPar_ );
327*cdf0e10cSrcweir 	void CollRemove( SbxArray* pPar_ );
328*cdf0e10cSrcweir 
329*cdf0e10cSrcweir public:
330*cdf0e10cSrcweir 	TYPEINFO();
331*cdf0e10cSrcweir 	BasicCollection( const String& rClassname );
332*cdf0e10cSrcweir 	virtual SbxVariable* Find( const String&, SbxClassType );
333*cdf0e10cSrcweir 	virtual void Clear();
334*cdf0e10cSrcweir };
335*cdf0e10cSrcweir 
336*cdf0e10cSrcweir #endif
337*cdf0e10cSrcweir 
338*cdf0e10cSrcweir 
339