xref: /aoo41x/main/sc/inc/linkuno.hxx (revision 38d50f7b)
1*38d50f7bSAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*38d50f7bSAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*38d50f7bSAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*38d50f7bSAndrew Rist  * distributed with this work for additional information
6*38d50f7bSAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*38d50f7bSAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*38d50f7bSAndrew Rist  * "License"); you may not use this file except in compliance
9*38d50f7bSAndrew Rist  * with the License.  You may obtain a copy of the License at
10*38d50f7bSAndrew Rist  *
11*38d50f7bSAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*38d50f7bSAndrew Rist  *
13*38d50f7bSAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*38d50f7bSAndrew Rist  * software distributed under the License is distributed on an
15*38d50f7bSAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*38d50f7bSAndrew Rist  * KIND, either express or implied.  See the License for the
17*38d50f7bSAndrew Rist  * specific language governing permissions and limitations
18*38d50f7bSAndrew Rist  * under the License.
19*38d50f7bSAndrew Rist  *
20*38d50f7bSAndrew Rist  *************************************************************/
21*38d50f7bSAndrew Rist 
22*38d50f7bSAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef SC_LINKUNO_HXX
25cdf0e10cSrcweir #define SC_LINKUNO_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <svl/lstner.hxx>
28cdf0e10cSrcweir #include <svl/itemprop.hxx>
29cdf0e10cSrcweir #include <com/sun/star/sheet/XDDELink.hpp>
30cdf0e10cSrcweir #include <com/sun/star/sheet/XDDELinkResults.hpp>
31cdf0e10cSrcweir #include <com/sun/star/sheet/XDDELinks.hpp>
32cdf0e10cSrcweir #include <com/sun/star/sheet/XExternalDocLink.hpp>
33cdf0e10cSrcweir #include <com/sun/star/sheet/XExternalDocLinks.hpp>
34cdf0e10cSrcweir #include <com/sun/star/sheet/XExternalSheetCache.hpp>
35cdf0e10cSrcweir #include <com/sun/star/sheet/XAreaLink.hpp>
36cdf0e10cSrcweir #include <com/sun/star/sheet/XAreaLinks.hpp>
37cdf0e10cSrcweir #include <com/sun/star/util/XRefreshable.hpp>
38cdf0e10cSrcweir #include <com/sun/star/lang/XServiceInfo.hpp>
39cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp>
40cdf0e10cSrcweir #include <com/sun/star/container/XEnumerationAccess.hpp>
41cdf0e10cSrcweir #include <com/sun/star/container/XNameAccess.hpp>
42cdf0e10cSrcweir #include <com/sun/star/container/XIndexAccess.hpp>
43cdf0e10cSrcweir #include <com/sun/star/container/XNamed.hpp>
44cdf0e10cSrcweir #include <cppuhelper/implbase1.hxx>
45cdf0e10cSrcweir #include <cppuhelper/implbase3.hxx>
46cdf0e10cSrcweir #include <cppuhelper/implbase4.hxx>
47cdf0e10cSrcweir #include <cppuhelper/implbase5.hxx>
48cdf0e10cSrcweir 
49cdf0e10cSrcweir #include "externalrefmgr.hxx"
50cdf0e10cSrcweir 
51cdf0e10cSrcweir #include <hash_map>
52cdf0e10cSrcweir #include <vector>
53cdf0e10cSrcweir 
54cdf0e10cSrcweir class ScAreaLink;
55cdf0e10cSrcweir class ScDocShell;
56cdf0e10cSrcweir class ScTableLink;
57cdf0e10cSrcweir 
58cdf0e10cSrcweir typedef ::com::sun::star::uno::Reference<
59cdf0e10cSrcweir 			::com::sun::star::util::XRefreshListener >* XRefreshListenerPtr;
60cdf0e10cSrcweir SV_DECL_PTRARR_DEL( XRefreshListenerArr_Impl, XRefreshListenerPtr, 4, 4 )
61cdf0e10cSrcweir 
62cdf0e10cSrcweir 
63cdf0e10cSrcweir 
64cdf0e10cSrcweir class ScSheetLinkObj : public cppu::WeakImplHelper4<
65cdf0e10cSrcweir 							com::sun::star::container::XNamed,
66cdf0e10cSrcweir 							com::sun::star::util::XRefreshable,
67cdf0e10cSrcweir 							com::sun::star::beans::XPropertySet,
68cdf0e10cSrcweir 							com::sun::star::lang::XServiceInfo >,
69cdf0e10cSrcweir 						public SfxListener
70cdf0e10cSrcweir {
71cdf0e10cSrcweir private:
72cdf0e10cSrcweir 	SfxItemPropertySet		aPropSet;
73cdf0e10cSrcweir 	ScDocShell*				pDocShell;
74cdf0e10cSrcweir 	String					aFileName;
75cdf0e10cSrcweir 	XRefreshListenerArr_Impl aRefreshListeners;
76cdf0e10cSrcweir 
77cdf0e10cSrcweir 	ScTableLink*			GetLink_Impl() const;
78cdf0e10cSrcweir 	void					Refreshed_Impl();
79cdf0e10cSrcweir 	void					ModifyRefreshDelay_Impl( sal_Int32 nRefresh );
80cdf0e10cSrcweir 
81cdf0e10cSrcweir public:
82cdf0e10cSrcweir 							ScSheetLinkObj(ScDocShell* pDocSh, const String& rName);
83cdf0e10cSrcweir 	virtual					~ScSheetLinkObj();
84cdf0e10cSrcweir 
85cdf0e10cSrcweir 	virtual void			Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
86cdf0e10cSrcweir 
87cdf0e10cSrcweir 							// XNamed
88cdf0e10cSrcweir 	virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
89cdf0e10cSrcweir 	virtual void SAL_CALL	setName( const ::rtl::OUString& aName )
90cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
91cdf0e10cSrcweir 
92cdf0e10cSrcweir 							// XRefreshable
93cdf0e10cSrcweir 	virtual void SAL_CALL	refresh() throw(::com::sun::star::uno::RuntimeException);
94cdf0e10cSrcweir 	virtual void SAL_CALL	addRefreshListener( const ::com::sun::star::uno::Reference<
95cdf0e10cSrcweir 									::com::sun::star::util::XRefreshListener >& l )
96cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
97cdf0e10cSrcweir 	virtual void SAL_CALL	removeRefreshListener( const ::com::sun::star::uno::Reference<
98cdf0e10cSrcweir 									::com::sun::star::util::XRefreshListener >& l )
99cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
100cdf0e10cSrcweir 
101cdf0e10cSrcweir 							// XPropertySet
102cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
103cdf0e10cSrcweir 							SAL_CALL getPropertySetInfo(  )
104cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
105cdf0e10cSrcweir 	virtual void SAL_CALL	setPropertyValue( const ::rtl::OUString& aPropertyName,
106cdf0e10cSrcweir 									const ::com::sun::star::uno::Any& aValue )
107cdf0e10cSrcweir 								throw(::com::sun::star::beans::UnknownPropertyException,
108cdf0e10cSrcweir 									::com::sun::star::beans::PropertyVetoException,
109cdf0e10cSrcweir 									::com::sun::star::lang::IllegalArgumentException,
110cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
111cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
112cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
113cdf0e10cSrcweir 									const ::rtl::OUString& PropertyName )
114cdf0e10cSrcweir 								throw(::com::sun::star::beans::UnknownPropertyException,
115cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
116cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
117cdf0e10cSrcweir 	virtual void SAL_CALL	addPropertyChangeListener( const ::rtl::OUString& aPropertyName,
118cdf0e10cSrcweir 									const ::com::sun::star::uno::Reference<
119cdf0e10cSrcweir 										::com::sun::star::beans::XPropertyChangeListener >& xListener )
120cdf0e10cSrcweir 								throw(::com::sun::star::beans::UnknownPropertyException,
121cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
122cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
123cdf0e10cSrcweir 	virtual void SAL_CALL	removePropertyChangeListener( const ::rtl::OUString& aPropertyName,
124cdf0e10cSrcweir 									const ::com::sun::star::uno::Reference<
125cdf0e10cSrcweir 										::com::sun::star::beans::XPropertyChangeListener >& aListener )
126cdf0e10cSrcweir 								throw(::com::sun::star::beans::UnknownPropertyException,
127cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
128cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
129cdf0e10cSrcweir 	virtual void SAL_CALL	addVetoableChangeListener( const ::rtl::OUString& PropertyName,
130cdf0e10cSrcweir 									const ::com::sun::star::uno::Reference<
131cdf0e10cSrcweir 										::com::sun::star::beans::XVetoableChangeListener >& aListener )
132cdf0e10cSrcweir 								throw(::com::sun::star::beans::UnknownPropertyException,
133cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
134cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
135cdf0e10cSrcweir 	virtual void SAL_CALL	removeVetoableChangeListener( const ::rtl::OUString& PropertyName,
136cdf0e10cSrcweir 									const ::com::sun::star::uno::Reference<
137cdf0e10cSrcweir 										::com::sun::star::beans::XVetoableChangeListener >& aListener )
138cdf0e10cSrcweir 								throw(::com::sun::star::beans::UnknownPropertyException,
139cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
140cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
141cdf0e10cSrcweir 
142cdf0e10cSrcweir 							// aus get/setPropertyValue gerufen:
143cdf0e10cSrcweir 	::rtl::OUString			getFileName(void) const;
144cdf0e10cSrcweir 	void					setFileName(const ::rtl::OUString& FileName);
145cdf0e10cSrcweir 	::rtl::OUString			getFilter(void) const;
146cdf0e10cSrcweir 	void					setFilter(const ::rtl::OUString& Filter);
147cdf0e10cSrcweir 	::rtl::OUString			getFilterOptions(void) const;
148cdf0e10cSrcweir 	void					setFilterOptions(const ::rtl::OUString& FilterOptions);
149cdf0e10cSrcweir 	sal_Int32				getRefreshDelay(void) const;
150cdf0e10cSrcweir 	void					setRefreshDelay(sal_Int32 nRefreshDelay);
151cdf0e10cSrcweir 
152cdf0e10cSrcweir 							// XServiceInfo
153cdf0e10cSrcweir 	virtual ::rtl::OUString SAL_CALL getImplementationName()
154cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
155cdf0e10cSrcweir 	virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
156cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
157cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
158cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
159cdf0e10cSrcweir };
160cdf0e10cSrcweir 
161cdf0e10cSrcweir 
162cdf0e10cSrcweir class ScSheetLinksObj : public cppu::WeakImplHelper4<
163cdf0e10cSrcweir 							com::sun::star::container::XNameAccess,
164cdf0e10cSrcweir 							com::sun::star::container::XEnumerationAccess,
165cdf0e10cSrcweir 							com::sun::star::container::XIndexAccess,
166cdf0e10cSrcweir 							com::sun::star::lang::XServiceInfo >,
167cdf0e10cSrcweir 						public SfxListener
168cdf0e10cSrcweir {
169cdf0e10cSrcweir private:
170cdf0e10cSrcweir 	ScDocShell*				pDocShell;
171cdf0e10cSrcweir 
172cdf0e10cSrcweir 	ScSheetLinkObj*			GetObjectByIndex_Impl(sal_Int32 nIndex);
173cdf0e10cSrcweir 	ScSheetLinkObj*			GetObjectByName_Impl(const ::rtl::OUString& aName);
174cdf0e10cSrcweir 
175cdf0e10cSrcweir public:
176cdf0e10cSrcweir 							ScSheetLinksObj(ScDocShell* pDocSh);
177cdf0e10cSrcweir 	virtual					~ScSheetLinksObj();
178cdf0e10cSrcweir 
179cdf0e10cSrcweir 	virtual void			Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
180cdf0e10cSrcweir 
181cdf0e10cSrcweir 							// XNameAccess
182cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
183cdf0e10cSrcweir 								throw(::com::sun::star::container::NoSuchElementException,
184cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
185cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
186cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
187cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
188cdf0e10cSrcweir 	virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
189cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
190cdf0e10cSrcweir 
191cdf0e10cSrcweir 							// XIndexAccess
192cdf0e10cSrcweir 	virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
193cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
194cdf0e10cSrcweir 								throw(::com::sun::star::lang::IndexOutOfBoundsException,
195cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
196cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
197cdf0e10cSrcweir 
198cdf0e10cSrcweir 							// XEnumerationAccess
199cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
200cdf0e10cSrcweir 							createEnumeration() throw(::com::sun::star::uno::RuntimeException);
201cdf0e10cSrcweir 
202cdf0e10cSrcweir 							// XElementAccess
203cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
204cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
205cdf0e10cSrcweir 	virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
206cdf0e10cSrcweir 
207cdf0e10cSrcweir 							// XServiceInfo
208cdf0e10cSrcweir 	virtual ::rtl::OUString SAL_CALL getImplementationName()
209cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
210cdf0e10cSrcweir 	virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
211cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
212cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
213cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
214cdf0e10cSrcweir };
215cdf0e10cSrcweir 
216cdf0e10cSrcweir 
217cdf0e10cSrcweir class ScAreaLinkObj : public cppu::WeakImplHelper4<
218cdf0e10cSrcweir 							com::sun::star::sheet::XAreaLink,
219cdf0e10cSrcweir 							com::sun::star::util::XRefreshable,
220cdf0e10cSrcweir 							com::sun::star::beans::XPropertySet,
221cdf0e10cSrcweir 							com::sun::star::lang::XServiceInfo >,
222cdf0e10cSrcweir 						public SfxListener
223cdf0e10cSrcweir {
224cdf0e10cSrcweir private:
225cdf0e10cSrcweir 	SfxItemPropertySet		aPropSet;
226cdf0e10cSrcweir 	ScDocShell*				pDocShell;
227cdf0e10cSrcweir 	sal_uInt16					nPos;
228cdf0e10cSrcweir 	XRefreshListenerArr_Impl aRefreshListeners;
229cdf0e10cSrcweir 
230cdf0e10cSrcweir 	void	Modify_Impl( const ::rtl::OUString* pNewFile, const ::rtl::OUString* pNewFilter,
231cdf0e10cSrcweir 						 const ::rtl::OUString* pNewOptions, const ::rtl::OUString* pNewSource,
232cdf0e10cSrcweir 						 const com::sun::star::table::CellRangeAddress* pNewDest );
233cdf0e10cSrcweir 	void	ModifyRefreshDelay_Impl( sal_Int32 nRefresh );
234cdf0e10cSrcweir 	void	Refreshed_Impl();
235cdf0e10cSrcweir 
236cdf0e10cSrcweir public:
237cdf0e10cSrcweir 							ScAreaLinkObj(ScDocShell* pDocSh, sal_uInt16 nP);
238cdf0e10cSrcweir 	virtual					~ScAreaLinkObj();
239cdf0e10cSrcweir 
240cdf0e10cSrcweir 	virtual void			Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
241cdf0e10cSrcweir 
242cdf0e10cSrcweir 							// XRefreshable
243cdf0e10cSrcweir 	virtual void SAL_CALL	refresh() throw(::com::sun::star::uno::RuntimeException);
244cdf0e10cSrcweir 	virtual void SAL_CALL	addRefreshListener( const ::com::sun::star::uno::Reference<
245cdf0e10cSrcweir 									::com::sun::star::util::XRefreshListener >& l )
246cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
247cdf0e10cSrcweir 	virtual void SAL_CALL	removeRefreshListener( const ::com::sun::star::uno::Reference<
248cdf0e10cSrcweir 									::com::sun::star::util::XRefreshListener >& l )
249cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
250cdf0e10cSrcweir 
251cdf0e10cSrcweir 							// XPropertySet
252cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo >
253cdf0e10cSrcweir 							SAL_CALL getPropertySetInfo(  )
254cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
255cdf0e10cSrcweir 	virtual void SAL_CALL	setPropertyValue( const ::rtl::OUString& aPropertyName,
256cdf0e10cSrcweir 									const ::com::sun::star::uno::Any& aValue )
257cdf0e10cSrcweir 								throw(::com::sun::star::beans::UnknownPropertyException,
258cdf0e10cSrcweir 									::com::sun::star::beans::PropertyVetoException,
259cdf0e10cSrcweir 									::com::sun::star::lang::IllegalArgumentException,
260cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
261cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
262cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(
263cdf0e10cSrcweir 									const ::rtl::OUString& PropertyName )
264cdf0e10cSrcweir 								throw(::com::sun::star::beans::UnknownPropertyException,
265cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
266cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
267cdf0e10cSrcweir 	virtual void SAL_CALL	addPropertyChangeListener( const ::rtl::OUString& aPropertyName,
268cdf0e10cSrcweir 									const ::com::sun::star::uno::Reference<
269cdf0e10cSrcweir 										::com::sun::star::beans::XPropertyChangeListener >& xListener )
270cdf0e10cSrcweir 								throw(::com::sun::star::beans::UnknownPropertyException,
271cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
272cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
273cdf0e10cSrcweir 	virtual void SAL_CALL	removePropertyChangeListener( const ::rtl::OUString& aPropertyName,
274cdf0e10cSrcweir 									const ::com::sun::star::uno::Reference<
275cdf0e10cSrcweir 										::com::sun::star::beans::XPropertyChangeListener >& aListener )
276cdf0e10cSrcweir 								throw(::com::sun::star::beans::UnknownPropertyException,
277cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
278cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
279cdf0e10cSrcweir 	virtual void SAL_CALL	addVetoableChangeListener( const ::rtl::OUString& PropertyName,
280cdf0e10cSrcweir 									const ::com::sun::star::uno::Reference<
281cdf0e10cSrcweir 										::com::sun::star::beans::XVetoableChangeListener >& aListener )
282cdf0e10cSrcweir 								throw(::com::sun::star::beans::UnknownPropertyException,
283cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
284cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
285cdf0e10cSrcweir 	virtual void SAL_CALL	removeVetoableChangeListener( const ::rtl::OUString& PropertyName,
286cdf0e10cSrcweir 									const ::com::sun::star::uno::Reference<
287cdf0e10cSrcweir 										::com::sun::star::beans::XVetoableChangeListener >& aListener )
288cdf0e10cSrcweir 								throw(::com::sun::star::beans::UnknownPropertyException,
289cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
290cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
291cdf0e10cSrcweir 
292cdf0e10cSrcweir 							// aus get/setPropertyValue gerufen:
293cdf0e10cSrcweir 	::rtl::OUString			getFileName(void) const;
294cdf0e10cSrcweir 	void					setFileName(const ::rtl::OUString& FileName);
295cdf0e10cSrcweir 	::rtl::OUString			getFilter(void) const;
296cdf0e10cSrcweir 	void					setFilter(const ::rtl::OUString& Filter);
297cdf0e10cSrcweir 	::rtl::OUString			getFilterOptions(void) const;
298cdf0e10cSrcweir 	void					setFilterOptions(const ::rtl::OUString& FilterOptions);
299cdf0e10cSrcweir 	sal_Int32				getRefreshDelay(void) const;
300cdf0e10cSrcweir 	void					setRefreshDelay(sal_Int32 nRefreshDelay);
301cdf0e10cSrcweir 
302cdf0e10cSrcweir 							// XAreaLink
303cdf0e10cSrcweir 	virtual ::rtl::OUString SAL_CALL getSourceArea() throw(::com::sun::star::uno::RuntimeException);
304cdf0e10cSrcweir 	virtual void SAL_CALL 	setSourceArea( const ::rtl::OUString& aSourceArea )
305cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
306cdf0e10cSrcweir 	virtual ::com::sun::star::table::CellRangeAddress SAL_CALL getDestArea()
307cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
308cdf0e10cSrcweir 	virtual void SAL_CALL setDestArea( const ::com::sun::star::table::CellRangeAddress& aDestArea )
309cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
310cdf0e10cSrcweir 
311cdf0e10cSrcweir 							// XServiceInfo
312cdf0e10cSrcweir 	virtual ::rtl::OUString SAL_CALL getImplementationName()
313cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
314cdf0e10cSrcweir 	virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
315cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
316cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
317cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
318cdf0e10cSrcweir };
319cdf0e10cSrcweir 
320cdf0e10cSrcweir 
321cdf0e10cSrcweir class ScAreaLinksObj : public cppu::WeakImplHelper3<
322cdf0e10cSrcweir 							com::sun::star::sheet::XAreaLinks,
323cdf0e10cSrcweir 							com::sun::star::container::XEnumerationAccess,
324cdf0e10cSrcweir 							com::sun::star::lang::XServiceInfo >,
325cdf0e10cSrcweir 						public SfxListener
326cdf0e10cSrcweir {
327cdf0e10cSrcweir private:
328cdf0e10cSrcweir 	ScDocShell*				pDocShell;
329cdf0e10cSrcweir 
330cdf0e10cSrcweir 	ScAreaLinkObj*			GetObjectByIndex_Impl(sal_Int32 nIndex);
331cdf0e10cSrcweir 
332cdf0e10cSrcweir public:
333cdf0e10cSrcweir 							ScAreaLinksObj(ScDocShell* pDocSh);
334cdf0e10cSrcweir 	virtual					~ScAreaLinksObj();
335cdf0e10cSrcweir 
336cdf0e10cSrcweir 	virtual void			Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
337cdf0e10cSrcweir 
338cdf0e10cSrcweir 							// XAreaLinks
339cdf0e10cSrcweir 	virtual void SAL_CALL	insertAtPosition( const ::com::sun::star::table::CellAddress& aDestPos,
340cdf0e10cSrcweir 												const ::rtl::OUString& aFileName,
341cdf0e10cSrcweir 												const ::rtl::OUString& aSourceArea,
342cdf0e10cSrcweir 												const ::rtl::OUString& aFilter,
343cdf0e10cSrcweir 												const ::rtl::OUString& aFilterOptions )
344cdf0e10cSrcweir 											throw(::com::sun::star::uno::RuntimeException);
345cdf0e10cSrcweir 	virtual void SAL_CALL	removeByIndex( sal_Int32 nIndex )
346cdf0e10cSrcweir 											throw(::com::sun::star::uno::RuntimeException);
347cdf0e10cSrcweir 
348cdf0e10cSrcweir 							// XIndexAccess
349cdf0e10cSrcweir 	virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
350cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
351cdf0e10cSrcweir 								throw(::com::sun::star::lang::IndexOutOfBoundsException,
352cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
353cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
354cdf0e10cSrcweir 
355cdf0e10cSrcweir 							// XEnumerationAccess
356cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
357cdf0e10cSrcweir 							createEnumeration() throw(::com::sun::star::uno::RuntimeException);
358cdf0e10cSrcweir 
359cdf0e10cSrcweir 							// XElementAccess
360cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
361cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
362cdf0e10cSrcweir 	virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
363cdf0e10cSrcweir 
364cdf0e10cSrcweir 							// XServiceInfo
365cdf0e10cSrcweir 	virtual ::rtl::OUString SAL_CALL getImplementationName()
366cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
367cdf0e10cSrcweir 	virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
368cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
369cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
370cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
371cdf0e10cSrcweir };
372cdf0e10cSrcweir 
373cdf0e10cSrcweir 
374cdf0e10cSrcweir //!	order of XNamed and DDELink changed to avoid "duplicate comdat" symbols
375cdf0e10cSrcweir 
376cdf0e10cSrcweir class ScDDELinkObj : public cppu::WeakImplHelper5<
377cdf0e10cSrcweir 							com::sun::star::sheet::XDDELink,
378cdf0e10cSrcweir 							com::sun::star::container::XNamed,
379cdf0e10cSrcweir 							com::sun::star::util::XRefreshable,
380cdf0e10cSrcweir                             com::sun::star::sheet::XDDELinkResults,
381cdf0e10cSrcweir 							com::sun::star::lang::XServiceInfo >,
382cdf0e10cSrcweir 						public SfxListener
383cdf0e10cSrcweir {
384cdf0e10cSrcweir private:
385cdf0e10cSrcweir 	ScDocShell*				pDocShell;
386cdf0e10cSrcweir 	String					aAppl;
387cdf0e10cSrcweir 	String					aTopic;
388cdf0e10cSrcweir 	String					aItem;
389cdf0e10cSrcweir 	XRefreshListenerArr_Impl aRefreshListeners;
390cdf0e10cSrcweir 
391cdf0e10cSrcweir 	void					Refreshed_Impl();
392cdf0e10cSrcweir 
393cdf0e10cSrcweir public:
394cdf0e10cSrcweir 							ScDDELinkObj(ScDocShell* pDocSh, const String& rA,
395cdf0e10cSrcweir 											const String& rT, const String& rI);
396cdf0e10cSrcweir 	virtual					~ScDDELinkObj();
397cdf0e10cSrcweir 
398cdf0e10cSrcweir 	virtual void			Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
399cdf0e10cSrcweir 
400cdf0e10cSrcweir 							// XNamed
401cdf0e10cSrcweir 	virtual ::rtl::OUString SAL_CALL getName() throw(::com::sun::star::uno::RuntimeException);
402cdf0e10cSrcweir 	virtual void SAL_CALL	setName( const ::rtl::OUString& aName )
403cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
404cdf0e10cSrcweir 
405cdf0e10cSrcweir 							// XDDELink
406cdf0e10cSrcweir 	virtual ::rtl::OUString SAL_CALL getApplication() throw(::com::sun::star::uno::RuntimeException);
407cdf0e10cSrcweir 	virtual ::rtl::OUString SAL_CALL getTopic() throw(::com::sun::star::uno::RuntimeException);
408cdf0e10cSrcweir 	virtual ::rtl::OUString SAL_CALL getItem() throw(::com::sun::star::uno::RuntimeException);
409cdf0e10cSrcweir 
410cdf0e10cSrcweir 							// XRefreshable
411cdf0e10cSrcweir 	virtual void SAL_CALL	refresh() throw(::com::sun::star::uno::RuntimeException);
412cdf0e10cSrcweir 	virtual void SAL_CALL	addRefreshListener( const ::com::sun::star::uno::Reference<
413cdf0e10cSrcweir 									::com::sun::star::util::XRefreshListener >& l )
414cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
415cdf0e10cSrcweir 	virtual void SAL_CALL	removeRefreshListener( const ::com::sun::star::uno::Reference<
416cdf0e10cSrcweir 									::com::sun::star::util::XRefreshListener >& l )
417cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
418cdf0e10cSrcweir 
419cdf0e10cSrcweir                             // XDDELinkResults
420cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >
421cdf0e10cSrcweir         SAL_CALL getResults(  )
422cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
423cdf0e10cSrcweir     virtual void SAL_CALL setResults(
424cdf0e10cSrcweir         const ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Sequence< ::com::sun::star::uno::Any > >& aResults )
425cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
426cdf0e10cSrcweir 
427cdf0e10cSrcweir 							// XServiceInfo
428cdf0e10cSrcweir 	virtual ::rtl::OUString SAL_CALL getImplementationName()
429cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
430cdf0e10cSrcweir 	virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
431cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
432cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
433cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
434cdf0e10cSrcweir };
435cdf0e10cSrcweir 
436cdf0e10cSrcweir 
437cdf0e10cSrcweir class ScDDELinksObj : public cppu::WeakImplHelper4<
438cdf0e10cSrcweir 							com::sun::star::container::XEnumerationAccess,
439cdf0e10cSrcweir 							com::sun::star::container::XIndexAccess,
440cdf0e10cSrcweir                             com::sun::star::sheet::XDDELinks,
441cdf0e10cSrcweir 							com::sun::star::lang::XServiceInfo >,
442cdf0e10cSrcweir 						public SfxListener
443cdf0e10cSrcweir {
444cdf0e10cSrcweir private:
445cdf0e10cSrcweir 	ScDocShell*				pDocShell;
446cdf0e10cSrcweir 
447cdf0e10cSrcweir 	ScDDELinkObj*			GetObjectByIndex_Impl(sal_Int32 nIndex);
448cdf0e10cSrcweir 	ScDDELinkObj*			GetObjectByName_Impl(const ::rtl::OUString& aName);
449cdf0e10cSrcweir 
450cdf0e10cSrcweir public:
451cdf0e10cSrcweir 							ScDDELinksObj(ScDocShell* pDocSh);
452cdf0e10cSrcweir 	virtual					~ScDDELinksObj();
453cdf0e10cSrcweir 
454cdf0e10cSrcweir 	virtual void			Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
455cdf0e10cSrcweir 
456cdf0e10cSrcweir 							// XNameAccess
457cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
458cdf0e10cSrcweir 								throw(::com::sun::star::container::NoSuchElementException,
459cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
460cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
461cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
462cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
463cdf0e10cSrcweir 	virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
464cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
465cdf0e10cSrcweir 
466cdf0e10cSrcweir 							// XIndexAccess
467cdf0e10cSrcweir 	virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
468cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 Index )
469cdf0e10cSrcweir 								throw(::com::sun::star::lang::IndexOutOfBoundsException,
470cdf0e10cSrcweir 									::com::sun::star::lang::WrappedTargetException,
471cdf0e10cSrcweir 									::com::sun::star::uno::RuntimeException);
472cdf0e10cSrcweir 
473cdf0e10cSrcweir 							// XEnumerationAccess
474cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
475cdf0e10cSrcweir 							createEnumeration() throw(::com::sun::star::uno::RuntimeException);
476cdf0e10cSrcweir 
477cdf0e10cSrcweir 							// XElementAccess
478cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
479cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
480cdf0e10cSrcweir 	virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
481cdf0e10cSrcweir 
482cdf0e10cSrcweir                             // XDDELinks
483cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XDDELink > SAL_CALL addDDELink(
484cdf0e10cSrcweir         const ::rtl::OUString& aApplication, const ::rtl::OUString& aTopic,
485cdf0e10cSrcweir         const ::rtl::OUString& aItem, ::com::sun::star::sheet::DDELinkMode nMode )
486cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
487cdf0e10cSrcweir 
488cdf0e10cSrcweir 							// XServiceInfo
489cdf0e10cSrcweir 	virtual ::rtl::OUString SAL_CALL getImplementationName()
490cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
491cdf0e10cSrcweir 	virtual sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName )
492cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
493cdf0e10cSrcweir 	virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
494cdf0e10cSrcweir 								throw(::com::sun::star::uno::RuntimeException);
495cdf0e10cSrcweir };
496cdf0e10cSrcweir 
497cdf0e10cSrcweir // ============================================================================
498cdf0e10cSrcweir 
499cdf0e10cSrcweir class ScExternalSheetCacheObj : public cppu::WeakImplHelper1< ::com::sun::star::sheet::XExternalSheetCache >
500cdf0e10cSrcweir {
501cdf0e10cSrcweir public:
502cdf0e10cSrcweir     explicit ScExternalSheetCacheObj(ScExternalRefCache::TableTypeRef pTable, size_t nIndex);
503cdf0e10cSrcweir     ~ScExternalSheetCacheObj();
504cdf0e10cSrcweir 
505cdf0e10cSrcweir                             // XExternalSheetCache
506cdf0e10cSrcweir     virtual void SAL_CALL setCellValue(
507cdf0e10cSrcweir         sal_Int32 nCol, sal_Int32 nRow, const ::com::sun::star::uno::Any& rAny)
508cdf0e10cSrcweir         throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
509cdf0e10cSrcweir 
510cdf0e10cSrcweir     virtual ::com::sun::star::uno::Any SAL_CALL getCellValue(sal_Int32 nCol, sal_Int32 nRow)
511cdf0e10cSrcweir         throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
512cdf0e10cSrcweir 
513cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getAllRows()
514cdf0e10cSrcweir         throw (::com::sun::star::uno::RuntimeException);
515cdf0e10cSrcweir 
516cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< sal_Int32 > SAL_CALL getAllColumns(sal_Int32 nRow)
517cdf0e10cSrcweir         throw (::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::uno::RuntimeException);
518cdf0e10cSrcweir 
519cdf0e10cSrcweir     // Attributes
520cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getTokenIndex()
521cdf0e10cSrcweir             throw (::com::sun::star::uno::RuntimeException);
522cdf0e10cSrcweir 
523cdf0e10cSrcweir private:
524cdf0e10cSrcweir     ScExternalSheetCacheObj();
525cdf0e10cSrcweir     ScExternalSheetCacheObj(const ScExternalSheetCacheObj&);
526cdf0e10cSrcweir 
527cdf0e10cSrcweir private:
528cdf0e10cSrcweir     ScExternalRefCache::TableTypeRef mpTable;
529cdf0e10cSrcweir     size_t mnIndex;
530cdf0e10cSrcweir };
531cdf0e10cSrcweir 
532cdf0e10cSrcweir // ============================================================================
533cdf0e10cSrcweir 
534cdf0e10cSrcweir class ScExternalDocLinkObj : public cppu::WeakImplHelper1< ::com::sun::star::sheet::XExternalDocLink >
535cdf0e10cSrcweir {
536cdf0e10cSrcweir public:
537cdf0e10cSrcweir     ScExternalDocLinkObj(ScExternalRefManager* pRefMgr, sal_uInt16 nFileId);
538cdf0e10cSrcweir     ~ScExternalDocLinkObj();
539cdf0e10cSrcweir 
540cdf0e10cSrcweir                             // XExternalDocLink
541cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XExternalSheetCache >
542cdf0e10cSrcweir         SAL_CALL addSheetCache( const ::rtl::OUString& aSheetName, sal_Bool bDynamicCache )
543cdf0e10cSrcweir             throw (::com::sun::star::uno::RuntimeException);
544cdf0e10cSrcweir 
545cdf0e10cSrcweir                             // XNameAccess
546cdf0e10cSrcweir     virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
547cdf0e10cSrcweir                                 throw(::com::sun::star::container::NoSuchElementException,
548cdf0e10cSrcweir                                     ::com::sun::star::lang::WrappedTargetException,
549cdf0e10cSrcweir                                     ::com::sun::star::uno::RuntimeException);
550cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
551cdf0e10cSrcweir                                 throw(::com::sun::star::uno::RuntimeException);
552cdf0e10cSrcweir     virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
553cdf0e10cSrcweir                                 throw(::com::sun::star::uno::RuntimeException);
554cdf0e10cSrcweir 
555cdf0e10cSrcweir                             // XIndexAccess
556cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
557cdf0e10cSrcweir     virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 nIndex )
558cdf0e10cSrcweir                                 throw(::com::sun::star::lang::IndexOutOfBoundsException,
559cdf0e10cSrcweir                                     ::com::sun::star::lang::WrappedTargetException,
560cdf0e10cSrcweir                                     ::com::sun::star::uno::RuntimeException);
561cdf0e10cSrcweir 
562cdf0e10cSrcweir                             // XEnumerationAccess
563cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
564cdf0e10cSrcweir                             createEnumeration() throw(::com::sun::star::uno::RuntimeException);
565cdf0e10cSrcweir 
566cdf0e10cSrcweir                             // XElementAccess
567cdf0e10cSrcweir     virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
568cdf0e10cSrcweir                                 throw(::com::sun::star::uno::RuntimeException);
569cdf0e10cSrcweir     virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
570cdf0e10cSrcweir 
571cdf0e10cSrcweir     // Attributes
572cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getTokenIndex()
573cdf0e10cSrcweir             throw (::com::sun::star::uno::RuntimeException);
574cdf0e10cSrcweir 
575cdf0e10cSrcweir private:
576cdf0e10cSrcweir     ScExternalRefManager*   mpRefMgr;
577cdf0e10cSrcweir     sal_uInt16              mnFileId;
578cdf0e10cSrcweir };
579cdf0e10cSrcweir 
580cdf0e10cSrcweir // ============================================================================
581cdf0e10cSrcweir 
582cdf0e10cSrcweir /** This is the UNO API equivalent of ScExternalRefManager. */
583cdf0e10cSrcweir class ScExternalDocLinksObj : public cppu::WeakImplHelper1< ::com::sun::star::sheet::XExternalDocLinks >
584cdf0e10cSrcweir {
585cdf0e10cSrcweir public:
586cdf0e10cSrcweir     ScExternalDocLinksObj(ScDocShell* pDocShell);
587cdf0e10cSrcweir     ~ScExternalDocLinksObj();
588cdf0e10cSrcweir 
589cdf0e10cSrcweir                             // XExternalDocLinks
590cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::sheet::XExternalDocLink >
591cdf0e10cSrcweir         SAL_CALL addDocLink( const ::rtl::OUString& aDocName )
592cdf0e10cSrcweir             throw (::com::sun::star::uno::RuntimeException);
593cdf0e10cSrcweir 
594cdf0e10cSrcweir                             // XNameAccess
595cdf0e10cSrcweir     virtual ::com::sun::star::uno::Any SAL_CALL getByName( const ::rtl::OUString& aName )
596cdf0e10cSrcweir                                 throw(::com::sun::star::container::NoSuchElementException,
597cdf0e10cSrcweir                                     ::com::sun::star::lang::WrappedTargetException,
598cdf0e10cSrcweir                                     ::com::sun::star::uno::RuntimeException);
599cdf0e10cSrcweir     virtual ::com::sun::star::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
600cdf0e10cSrcweir                                 throw(::com::sun::star::uno::RuntimeException);
601cdf0e10cSrcweir     virtual sal_Bool SAL_CALL hasByName( const ::rtl::OUString& aName )
602cdf0e10cSrcweir                                 throw(::com::sun::star::uno::RuntimeException);
603cdf0e10cSrcweir 
604cdf0e10cSrcweir                             // XIndexAccess
605cdf0e10cSrcweir     virtual sal_Int32 SAL_CALL getCount() throw(::com::sun::star::uno::RuntimeException);
606cdf0e10cSrcweir     virtual ::com::sun::star::uno::Any SAL_CALL getByIndex( sal_Int32 nIndex )
607cdf0e10cSrcweir                                 throw(::com::sun::star::lang::IndexOutOfBoundsException,
608cdf0e10cSrcweir                                     ::com::sun::star::lang::WrappedTargetException,
609cdf0e10cSrcweir                                     ::com::sun::star::uno::RuntimeException);
610cdf0e10cSrcweir 
611cdf0e10cSrcweir                             // XEnumerationAccess
612cdf0e10cSrcweir     virtual ::com::sun::star::uno::Reference< ::com::sun::star::container::XEnumeration > SAL_CALL
613cdf0e10cSrcweir                             createEnumeration() throw(::com::sun::star::uno::RuntimeException);
614cdf0e10cSrcweir 
615cdf0e10cSrcweir                             // XElementAccess
616cdf0e10cSrcweir     virtual ::com::sun::star::uno::Type SAL_CALL getElementType()
617cdf0e10cSrcweir                                 throw(::com::sun::star::uno::RuntimeException);
618cdf0e10cSrcweir     virtual sal_Bool SAL_CALL hasElements() throw(::com::sun::star::uno::RuntimeException);
619cdf0e10cSrcweir 
620cdf0e10cSrcweir private:
621cdf0e10cSrcweir     ScExternalDocLinksObj();
622cdf0e10cSrcweir     ScExternalDocLinksObj(const ScExternalDocLinksObj&);
623cdf0e10cSrcweir 
624cdf0e10cSrcweir private:
625cdf0e10cSrcweir     ScDocShell*                         mpDocShell;
626cdf0e10cSrcweir     ScExternalRefManager*               mpRefMgr;
627cdf0e10cSrcweir };
628cdf0e10cSrcweir 
629cdf0e10cSrcweir #endif
630cdf0e10cSrcweir 
631