1*f8e07b45SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*f8e07b45SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*f8e07b45SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*f8e07b45SAndrew Rist  * distributed with this work for additional information
6*f8e07b45SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*f8e07b45SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*f8e07b45SAndrew Rist  * "License"); you may not use this file except in compliance
9*f8e07b45SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*f8e07b45SAndrew Rist  *
11*f8e07b45SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*f8e07b45SAndrew Rist  *
13*f8e07b45SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*f8e07b45SAndrew Rist  * software distributed under the License is distributed on an
15*f8e07b45SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*f8e07b45SAndrew Rist  * KIND, either express or implied.  See the License for the
17*f8e07b45SAndrew Rist  * specific language governing permissions and limitations
18*f8e07b45SAndrew Rist  * under the License.
19*f8e07b45SAndrew Rist  *
20*f8e07b45SAndrew Rist  *************************************************************/
21*f8e07b45SAndrew Rist 
22*f8e07b45SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef __FRAMEWORK_SERVICES_PLUGINFRAME_HXX_
25cdf0e10cSrcweir #define __FRAMEWORK_SERVICES_PLUGINFRAME_HXX_
26cdf0e10cSrcweir 
27cdf0e10cSrcweir //_________________________________________________________________________________________________________________
28cdf0e10cSrcweir //	my own includes
29cdf0e10cSrcweir //_________________________________________________________________________________________________________________
30cdf0e10cSrcweir 
31cdf0e10cSrcweir #include <services/frame.hxx>
32cdf0e10cSrcweir 
33cdf0e10cSrcweir //_________________________________________________________________________________________________________________
34cdf0e10cSrcweir //	interface includes
35cdf0e10cSrcweir //_________________________________________________________________________________________________________________
36cdf0e10cSrcweir #include <com/sun/star/mozilla/XPluginInstance.hpp>
37cdf0e10cSrcweir #include <com/sun/star/mozilla/XPluginInstancePeer.hpp>
38cdf0e10cSrcweir #include <com/sun/star/mozilla/XPluginWindowPeer.hpp>
39cdf0e10cSrcweir #include <com/sun/star/io/XInputStream.hpp>
40cdf0e10cSrcweir #include <com/sun/star/lang/XInitialization.hpp>
41cdf0e10cSrcweir #include <com/sun/star/awt/XWindow.hpp>
42cdf0e10cSrcweir #include <com/sun/star/frame/XDispatchResultListener.hpp>
43cdf0e10cSrcweir #include <com/sun/star/frame/FeatureStateEvent.hpp>
44cdf0e10cSrcweir #include <com/sun/star/lang/EventObject.hpp>
45cdf0e10cSrcweir 
46cdf0e10cSrcweir //_________________________________________________________________________________________________________________
47cdf0e10cSrcweir //	other includes
48cdf0e10cSrcweir //_________________________________________________________________________________________________________________
49cdf0e10cSrcweir 
50cdf0e10cSrcweir #ifndef _VCL_ATOM_HXX
51cdf0e10cSrcweir #include <vcl/threadex.hxx>
52cdf0e10cSrcweir #endif
53cdf0e10cSrcweir #include <unotools/cmdoptions.hxx>
54cdf0e10cSrcweir 
55cdf0e10cSrcweir 
56cdf0e10cSrcweir //_________________________________________________________________________________________________________________
57cdf0e10cSrcweir //	namespace
58cdf0e10cSrcweir //_________________________________________________________________________________________________________________
59cdf0e10cSrcweir 
60cdf0e10cSrcweir namespace framework{
61cdf0e10cSrcweir 
62cdf0e10cSrcweir //_________________________________________________________________________________________________________________
63cdf0e10cSrcweir //	exported const
64cdf0e10cSrcweir //_________________________________________________________________________________________________________________
65cdf0e10cSrcweir 
66cdf0e10cSrcweir //_________________________________________________________________________________________________________________
67cdf0e10cSrcweir //	exported definitions
68cdf0e10cSrcweir //_________________________________________________________________________________________________________________
69cdf0e10cSrcweir 
70cdf0e10cSrcweir /*-************************************************************************************************************//**
71cdf0e10cSrcweir 	@short		implements an special frame - a plugin frame
72cdf0e10cSrcweir 	@descr		-
73cdf0e10cSrcweir 
74cdf0e10cSrcweir 	@implements	XInitialization
75cdf0e10cSrcweir 				XPluginInstance
76cdf0e10cSrcweir                 XDispatchResultListener
77cdf0e10cSrcweir     @base       Frame
78cdf0e10cSrcweir *//*-*************************************************************************************************************/
79cdf0e10cSrcweir 
80cdf0e10cSrcweir class PlugInFrame   :   public css::lang::XInitialization           ,
81cdf0e10cSrcweir                         public css::mozilla::XPluginInstance        ,
82cdf0e10cSrcweir                         public css::frame::XDispatchResultListener  ,   // => XEVENTLISTENER
83cdf0e10cSrcweir                         public Frame                                    // Order of baseclasses is neccessary for right initialization!
84cdf0e10cSrcweir {
85cdf0e10cSrcweir 	//-------------------------------------------------------------------------------------------------------------
86cdf0e10cSrcweir 	//	public methods
87cdf0e10cSrcweir 	//-------------------------------------------------------------------------------------------------------------
88cdf0e10cSrcweir 
89cdf0e10cSrcweir 	public:
90cdf0e10cSrcweir 
91cdf0e10cSrcweir 		//---------------------------------------------------------------------------------------------------------
92cdf0e10cSrcweir 		//	constructor / destructor
93cdf0e10cSrcweir 		//---------------------------------------------------------------------------------------------------------
94cdf0e10cSrcweir 
95cdf0e10cSrcweir 		/*-****************************************************************************************************//**
96cdf0e10cSrcweir 			@short		standard constructor to create instance
97cdf0e10cSrcweir 			@descr		This constructor initialize a new instance of this class,
98cdf0e10cSrcweir 						and will be set valid values on his member and baseclasses.
99cdf0e10cSrcweir 
100cdf0e10cSrcweir 			@seealso	-
101cdf0e10cSrcweir 
102cdf0e10cSrcweir 			@param		-
103cdf0e10cSrcweir 			@return		-
104cdf0e10cSrcweir 
105cdf0e10cSrcweir 			@onerror	-
106cdf0e10cSrcweir 		*//*-*****************************************************************************************************/
107cdf0e10cSrcweir 
108cdf0e10cSrcweir 	 	PlugInFrame( const css::uno::Reference< css::lang::XMultiServiceFactory >& xFactory );
109cdf0e10cSrcweir 
110cdf0e10cSrcweir 		/*-****************************************************************************************************//**
111cdf0e10cSrcweir 			@short		standard destructor
112cdf0e10cSrcweir 			@descr		This method destruct an instance of this class and clear some member.
113cdf0e10cSrcweir 
114cdf0e10cSrcweir 			@seealso	-
115cdf0e10cSrcweir 
116cdf0e10cSrcweir 			@param		-
117cdf0e10cSrcweir 			@return		-
118cdf0e10cSrcweir 
119cdf0e10cSrcweir 			@onerror	-
120cdf0e10cSrcweir 		*//*-*****************************************************************************************************/
121cdf0e10cSrcweir 
122cdf0e10cSrcweir 		virtual	~PlugInFrame();
123cdf0e10cSrcweir 
124cdf0e10cSrcweir 		//---------------------------------------------------------------------------------------------------------
125cdf0e10cSrcweir 		//	XInterface, XTypeProvider, XServiceInfo
126cdf0e10cSrcweir 		//---------------------------------------------------------------------------------------------------------
127cdf0e10cSrcweir 
128cdf0e10cSrcweir 		DECLARE_XINTERFACE
129cdf0e10cSrcweir 		DECLARE_XTYPEPROVIDER
130cdf0e10cSrcweir 		DECLARE_XSERVICEINFO
131cdf0e10cSrcweir 
132cdf0e10cSrcweir 		//---------------------------------------------------------------------------------------------------------
133cdf0e10cSrcweir 		//	XInitialization
134cdf0e10cSrcweir 		//---------------------------------------------------------------------------------------------------------
135cdf0e10cSrcweir 
136cdf0e10cSrcweir 		void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& seqArguments ) throw(	css::uno::Exception			,
137cdf0e10cSrcweir 					 																				css::uno::RuntimeException	);
138cdf0e10cSrcweir 
139cdf0e10cSrcweir 		//---------------------------------------------------------------------------------------------------------
140cdf0e10cSrcweir 		//	XPluginInstance
141cdf0e10cSrcweir 		//---------------------------------------------------------------------------------------------------------
142cdf0e10cSrcweir 
143cdf0e10cSrcweir 		void SAL_CALL start			() throw( css::uno::RuntimeException );
144cdf0e10cSrcweir 		void SAL_CALL implcb_start	() throw( css::uno::RuntimeException );
145cdf0e10cSrcweir 		void SAL_CALL stop			() throw( css::uno::RuntimeException );
146cdf0e10cSrcweir 		void SAL_CALL implcb_stop	() throw( css::uno::RuntimeException );
147cdf0e10cSrcweir 		void SAL_CALL destroy		() throw( css::uno::RuntimeException );
148cdf0e10cSrcweir 		void SAL_CALL implcb_destroy() throw( css::uno::RuntimeException );
149cdf0e10cSrcweir 		void SAL_CALL createWindow			(	const	css::uno::Any&		aPlatformWindowHandle	,
150cdf0e10cSrcweir 														sal_Bool			bEmbedded				) throw( css::uno::RuntimeException );
151cdf0e10cSrcweir 		void SAL_CALL implcb_createWindow	(	const	css::uno::Any&		aPlatformWindowHandle	,
152cdf0e10cSrcweir 														sal_Bool			bEmbedded				) throw( css::uno::RuntimeException );
153cdf0e10cSrcweir 		void SAL_CALL newStream		(	const	::rtl::OUString&								sMIMEDescription,
154cdf0e10cSrcweir 										const	::rtl::OUString&								sURL			,
155cdf0e10cSrcweir 										const	::rtl::OUString&								sFilter			,
156cdf0e10cSrcweir 										const	css::uno::Reference< css::io::XInputStream >&	xStream			,
157cdf0e10cSrcweir 										const	css::uno::Any&									aSessionId		) throw( css::uno::RuntimeException );
158cdf0e10cSrcweir 	    void SAL_CALL implcb_newStream
159cdf0e10cSrcweir 		                            (	const	::rtl::OUString&								sMIMEDescription,
160cdf0e10cSrcweir 										const	::rtl::OUString&								sURL			,
161cdf0e10cSrcweir 										const	::rtl::OUString&								sFilter			,
162cdf0e10cSrcweir 										const	css::uno::Reference< css::io::XInputStream >&	xStream			,
163cdf0e10cSrcweir 										const	css::uno::Any&									aSessionId		) throw( css::uno::RuntimeException );
164cdf0e10cSrcweir 		void SAL_CALL newURL		(	const	::rtl::OUString&	sMIMEDescription,
165cdf0e10cSrcweir 										const	::rtl::OUString&	sURL			,
166cdf0e10cSrcweir 										const	::rtl::OUString&	sFilter			,
167cdf0e10cSrcweir 										const	css::uno::Any&		aSessionId		) throw( css::uno::RuntimeException );
168cdf0e10cSrcweir 		void SAL_CALL implcb_newURL	(	const	::rtl::OUString&	sMIMEDescription,
169cdf0e10cSrcweir 										const	::rtl::OUString&	sURL			,
170cdf0e10cSrcweir 										const	::rtl::OUString&	sFilter			,
171cdf0e10cSrcweir 										const	css::uno::Any&		aSessionId		) throw( css::uno::RuntimeException );
172cdf0e10cSrcweir     	virtual void SAL_CALL getHttpServerURL(	::rtl::OUString&	sHost	,
173cdf0e10cSrcweir 												sal_uInt16&			nPort	,
174cdf0e10cSrcweir 												::rtl::OUString&	sPrefix	) throw( css::uno::RuntimeException );
175cdf0e10cSrcweir 
176cdf0e10cSrcweir 		//---------------------------------------------------------------------------------------------------------
177cdf0e10cSrcweir 		//	 XDispatchProvider
178cdf0e10cSrcweir 		//---------------------------------------------------------------------------------------------------------
179cdf0e10cSrcweir 
180cdf0e10cSrcweir 		virtual css::uno::Reference< css::frame::XDispatch > SAL_CALL queryDispatch(	const	css::util::URL&	 	aURL			,
181cdf0e10cSrcweir 																						const	::rtl::OUString&	sTargetFrameName,
182cdf0e10cSrcweir 																								sal_Int32			nSearchFlags	) throw( css::uno::RuntimeException );
183cdf0e10cSrcweir 		virtual css::uno::Sequence< css::uno::Reference< css::frame::XDispatch > > SAL_CALL queryDispatches( const css::uno::Sequence< css::frame::DispatchDescriptor >& seqDescripts ) throw( css::uno::RuntimeException );
184cdf0e10cSrcweir 
185cdf0e10cSrcweir 		//---------------------------------------------------------------------------------------------------------
186cdf0e10cSrcweir         //   XDispatchResultListener
187cdf0e10cSrcweir 		//---------------------------------------------------------------------------------------------------------
188cdf0e10cSrcweir 
189cdf0e10cSrcweir         virtual void SAL_CALL dispatchFinished      ( const css::frame::DispatchResultEvent&                    aEvent     ) throw( css::uno::RuntimeException );
190cdf0e10cSrcweir 
191cdf0e10cSrcweir 		//---------------------------------------------------------------------------------------------------------
192cdf0e10cSrcweir 		//	 XEventListener
193cdf0e10cSrcweir 		//---------------------------------------------------------------------------------------------------------
194cdf0e10cSrcweir 
195cdf0e10cSrcweir 		void SAL_CALL disposing( const css::lang::EventObject& aEvent ) throw( css::uno::RuntimeException );
196cdf0e10cSrcweir 
197cdf0e10cSrcweir 	//-------------------------------------------------------------------------------------------------------------
198cdf0e10cSrcweir 	//	protected methods
199cdf0e10cSrcweir 	//-------------------------------------------------------------------------------------------------------------
200cdf0e10cSrcweir 
201cdf0e10cSrcweir 	protected:
202cdf0e10cSrcweir 
203cdf0e10cSrcweir 	//-------------------------------------------------------------------------------------------------------------
204cdf0e10cSrcweir 	//	private methods
205cdf0e10cSrcweir 	//-------------------------------------------------------------------------------------------------------------
206cdf0e10cSrcweir 
207cdf0e10cSrcweir 	private:
208cdf0e10cSrcweir 
209cdf0e10cSrcweir 		void impl_tryToLoadDocument();
210cdf0e10cSrcweir         sal_Bool impl_registerRemoteFactories( const css::uno::Reference< css::lang::XMultiServiceFactory >& xRemoteServiceManager );
211cdf0e10cSrcweir 
212cdf0e10cSrcweir 	//-------------------------------------------------------------------------------------------------------------
213cdf0e10cSrcweir 	//	debug methods
214cdf0e10cSrcweir 	//	(should be private everyway!)
215cdf0e10cSrcweir 	//-------------------------------------------------------------------------------------------------------------
216cdf0e10cSrcweir 
217cdf0e10cSrcweir 		/*-****************************************************************************************************//**
218cdf0e10cSrcweir 			@short		debug-method to check incoming parameter of some other mehods of this class
219cdf0e10cSrcweir 			@descr		The following methods are used to check parameters for other methods
220cdf0e10cSrcweir 						of this class. The return value is used directly for an ASSERT(...).
221cdf0e10cSrcweir 
222cdf0e10cSrcweir 			@seealso	ASSERTs in implementation!
223cdf0e10cSrcweir 
224cdf0e10cSrcweir 			@param		references to checking variables
225cdf0e10cSrcweir 			@return		sal_False on invalid parameter<BR>
226cdf0e10cSrcweir 						sal_True  otherway
227cdf0e10cSrcweir 
228cdf0e10cSrcweir 			@onerror	-
229cdf0e10cSrcweir 		*//*-*****************************************************************************************************/
230cdf0e10cSrcweir 
231cdf0e10cSrcweir 	#ifdef ENABLE_ASSERTIONS
232cdf0e10cSrcweir 
233cdf0e10cSrcweir 	private:
234cdf0e10cSrcweir 
235cdf0e10cSrcweir 		static sal_Bool impldbg_checkParameter_initialize			(	const	css::uno::Sequence< css::uno::Any >&					seqArguments			);
236cdf0e10cSrcweir 		static sal_Bool impldbg_checkParameter_createWindow			(	const	css::uno::Any&											aPlatformWindowHandle	,
237cdf0e10cSrcweir 																				sal_Bool												bEmbedded				);
238cdf0e10cSrcweir 		static sal_Bool impldbg_checkParameter_newStream			(	const	::rtl::OUString&										sMIMEDescription		,
239cdf0e10cSrcweir 																		const	::rtl::OUString&										sURL					,
240cdf0e10cSrcweir 																		const	::rtl::OUString&										sFilter					,
241cdf0e10cSrcweir 																		const	css::uno::Reference< css::io::XInputStream >&			xStream					);
242cdf0e10cSrcweir 		static sal_Bool impldbg_checkParameter_newURL				(	const	::rtl::OUString&										sMIMEDescription		,
243cdf0e10cSrcweir 																		const	::rtl::OUString&										sURL					,
244cdf0e10cSrcweir 																		const	::rtl::OUString&										sFilter					);
245cdf0e10cSrcweir     	static sal_Bool impldbg_checkParameter_getHttpServerURL		(			::rtl::OUString&										sHost					,
246cdf0e10cSrcweir 																				sal_uInt16&												nPort					,
247cdf0e10cSrcweir 																				::rtl::OUString&										sPrefix					);
248cdf0e10cSrcweir 		static sal_Bool impldbg_checkParameter_queryDispatch		(	const	css::util::URL&	 										aURL					,
249cdf0e10cSrcweir 																		const	::rtl::OUString&										sTargetFrameName		,
250cdf0e10cSrcweir 																				sal_Int32												nSearchFlags			);
251cdf0e10cSrcweir 		static sal_Bool impldbg_checkParameter_queryDispatches		(	const	css::uno::Sequence< css::frame::DispatchDescriptor >&	seqDescripts			);
252cdf0e10cSrcweir 		static sal_Bool impldbg_checkParameter_statusChanged		(	const	css::frame::FeatureStateEvent&							aEvent					);
253cdf0e10cSrcweir 		static sal_Bool impldbg_checkParameter_disposing			(	const	css::lang::EventObject&									aEvent					);
254cdf0e10cSrcweir 
255cdf0e10cSrcweir 	#endif	// #ifdef ENABLE_ASSERTIONS
256cdf0e10cSrcweir 
257cdf0e10cSrcweir 	//-------------------------------------------------------------------------------------------------------------
258cdf0e10cSrcweir 	//	variables
259cdf0e10cSrcweir 	//	(should be private everyway!)
260cdf0e10cSrcweir 	//-------------------------------------------------------------------------------------------------------------
261cdf0e10cSrcweir 
262cdf0e10cSrcweir 	private:
263cdf0e10cSrcweir 
264cdf0e10cSrcweir 		css::uno::Reference< css::mozilla::XPluginInstancePeer >			m_xPlugInInstancePeer	;	/// Reference to UNO interface of PlugIn dll for communication with browser
265cdf0e10cSrcweir 		css::uno::Reference< css::mozilla::XPluginWindowPeer >				m_xPlugInWindowPeer		;	/// Reference to set child window at plugin window
266cdf0e10cSrcweir 		css::uno::Sequence< css::beans::PropertyValue >						m_seqProperties			;	/// Sequence of properties as arguments for load document
267cdf0e10cSrcweir 		css::util::URL														m_aURL					;	/// URL for document to load
268cdf0e10cSrcweir 		sal_Bool															m_bILoad				;	/// PlugInFrame has a valid loader which load the document and wait for finished/cancelled
269cdf0e10cSrcweir 		sal_Bool															m_bIHaveDocument		;	/// We have a document loaded successful.
270cdf0e10cSrcweir 		css::uno::Reference< css::frame::XDispatchProvider >				m_xPlugInDispatcher		;	/// Dispatcher to forward dispatches to browser
271cdf0e10cSrcweir         static sal_Bool                                                     m_bRemoteFactoriesExist ;   /// indicates, if remote factories was already registered (neccessary one times only!)
272cdf0e10cSrcweir 		SvtCommandOptions													m_aCommandOptions		;	/// ref counted class to support disabling commands defined by configuration file
273cdf0e10cSrcweir 
274cdf0e10cSrcweir };		//	class PlugInFrame
275cdf0e10cSrcweir 
276cdf0e10cSrcweir /*-************************************************************************************************************//**
277cdf0e10cSrcweir 	@short		used to forward all asynchronous calls which use VCL internal to the main thread
278cdf0e10cSrcweir 	@descr		We need this asynchronous mechanism to prevent us against dead locks. Sometimes our main thread
279cdf0e10cSrcweir 				can call us for event handling like FOCUS, ACTIVATE and something else. But at the same time we will call
280cdf0e10cSrcweir 				the main thread to CREATE A WINDOW, SET IT VISIBLE ... Then we have a problem. We must send us himself a event
281cdf0e10cSrcweir 				to run our code synchronized with our main thread!
282cdf0e10cSrcweir 
283cdf0e10cSrcweir 	@implements
284cdf0e10cSrcweir 	@base		-
285cdf0e10cSrcweir *//*-*************************************************************************************************************/
286cdf0e10cSrcweir 
287cdf0e10cSrcweir enum eIMPL_PluginCommand
288cdf0e10cSrcweir {
289cdf0e10cSrcweir 	START			,
290cdf0e10cSrcweir 	STOP			,
291cdf0e10cSrcweir 	CREATEWINDOW	,
292cdf0e10cSrcweir 	DESTROY         ,
293cdf0e10cSrcweir 	NEWSTREAM       ,
294cdf0e10cSrcweir 	NEWURL
295cdf0e10cSrcweir };
296cdf0e10cSrcweir 
297cdf0e10cSrcweir class cIMPL_MainThreadExecutorRequest
298cdf0e10cSrcweir {
299cdf0e10cSrcweir 	public:
300cdf0e10cSrcweir 		cIMPL_MainThreadExecutorRequest(	eIMPL_PluginCommand								eCommand				,
301cdf0e10cSrcweir 											PlugInFrame*									pPluginInstance			);
302cdf0e10cSrcweir 
303cdf0e10cSrcweir 		cIMPL_MainThreadExecutorRequest(	eIMPL_PluginCommand								eCommand				,
304cdf0e10cSrcweir 											PlugInFrame*									pPluginInstance			,
305cdf0e10cSrcweir 									const	css::uno::Any&									aPlatformWindowHandle	,
306cdf0e10cSrcweir 											sal_Bool										bEmbedded				);
307cdf0e10cSrcweir 
308cdf0e10cSrcweir 	    cIMPL_MainThreadExecutorRequest(	eIMPL_PluginCommand								eCommand				,
309cdf0e10cSrcweir 											PlugInFrame*									pPluginInstance			,
310cdf0e10cSrcweir 									const   ::rtl::OUString&								sMIMEDescription		,
311cdf0e10cSrcweir 									const	::rtl::OUString&								sURL		    		,
312cdf0e10cSrcweir 									const	::rtl::OUString&								sFilter		    		,
313cdf0e10cSrcweir 									const	css::uno::Reference< css::io::XInputStream >&	xStream     			,
314cdf0e10cSrcweir 									const	css::uno::Any&									aSessionId				);
315cdf0e10cSrcweir 
316cdf0e10cSrcweir 		/*-****************************************************************************************************//**
317cdf0e10cSrcweir 			@short		-
318cdf0e10cSrcweir 			@descr		-
319cdf0e10cSrcweir 
320cdf0e10cSrcweir 			@seealso	-
321cdf0e10cSrcweir 
322cdf0e10cSrcweir 			@param		-
323cdf0e10cSrcweir 			@return		-
324cdf0e10cSrcweir 
325cdf0e10cSrcweir 			@onerror	-
326cdf0e10cSrcweir 		*//*-*****************************************************************************************************/
327cdf0e10cSrcweir 
328cdf0e10cSrcweir 		virtual long doIt();
329cdf0e10cSrcweir 
330cdf0e10cSrcweir 	//-------------------------------------------------------------------------------------------------------------
331cdf0e10cSrcweir 	//	private variables
332cdf0e10cSrcweir 	//-------------------------------------------------------------------------------------------------------------
333cdf0e10cSrcweir 	private:
334cdf0e10cSrcweir 
335cdf0e10cSrcweir 		eIMPL_PluginCommand								m_eCommand				;	/// switch to specify forward function
336cdf0e10cSrcweir 		PlugInFrame*									m_pPluginInstance		;	/// instance wich has started this swicth mechanism and wish to called back from us
337cdf0e10cSrcweir 		css::uno::Reference< css::uno::XInterface >		m_xPluginInstance		;	/// reference to our plugin frame to prevent that plugin frame dies before we call back
338cdf0e10cSrcweir 		css::uno::Any									m_aPlatformWindowHandle	;	///	parameter for XPluginInstance->createWindow()
339cdf0e10cSrcweir 		sal_Bool										m_bEmbedded				;	///	parameter for XPluginInstance->createWindow()
340cdf0e10cSrcweir 	    ::rtl::OUString				    				m_sMIMEDescription		;	/// parameter for XPluginInstance->newStream()/newURL()
341cdf0e10cSrcweir 		::rtl::OUString			        				m_sURL					;	/// parameter for XPluginInstance->newStream()/newURL()
342cdf0e10cSrcweir 		::rtl::OUString									m_sFilter				;	/// parameter for XPluginInstance->newStream()/newURL()
343cdf0e10cSrcweir 		css::uno::Reference< css::io::XInputStream >	m_xStream				;	/// parameter for XPluginInstance->newStream()/newURL()
344cdf0e10cSrcweir 		css::uno::Any      								m_aSessionId			;	/// parameter for XPluginInstance->newStream()/newURL()
345cdf0e10cSrcweir };
346cdf0e10cSrcweir 
347cdf0e10cSrcweir class cIMPL_MainThreadExecutor
348cdf0e10cSrcweir {
349cdf0e10cSrcweir 	//-------------------------------------------------------------------------------------------------------------
350cdf0e10cSrcweir 	//	public methods
351cdf0e10cSrcweir 	//-------------------------------------------------------------------------------------------------------------
352cdf0e10cSrcweir 	public:
353cdf0e10cSrcweir 		static void execute( cIMPL_MainThreadExecutorRequest* pRequest );
354cdf0e10cSrcweir 
355cdf0e10cSrcweir 		/*-****************************************************************************************************//**
356cdf0e10cSrcweir 			@short		-
357cdf0e10cSrcweir 			@descr		-
358cdf0e10cSrcweir 
359cdf0e10cSrcweir 			@seealso	-
360cdf0e10cSrcweir 
361cdf0e10cSrcweir 			@param		-
362cdf0e10cSrcweir 			@return		-
363cdf0e10cSrcweir 
364cdf0e10cSrcweir 			@onerror	-
365cdf0e10cSrcweir 		*//*-*****************************************************************************************************/
366cdf0e10cSrcweir 		DECL_STATIC_LINK( cIMPL_MainThreadExecutor, worker, cIMPL_MainThreadExecutorRequest* );
367cdf0e10cSrcweir };
368cdf0e10cSrcweir 
369cdf0e10cSrcweir }		//	namespace framework
370cdf0e10cSrcweir 
371cdf0e10cSrcweir #endif	//	#ifndef __FRAMEWORK_SERVICES_PLUGINFRAME_HXX_
372