1/**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements.  See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership.  The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License.  You may obtain a copy of the License at
10 *
11 *   http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied.  See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23#ifndef __com_sun_star_frame_XDispatchProvider_idl__
24#define __com_sun_star_frame_XDispatchProvider_idl__
25
26#ifndef __com_sun_star_uno_XInterface_idl__
27#include <com/sun/star/uno/XInterface.idl>
28#endif
29
30#ifndef __com_sun_star_frame_XDispatch_idl__
31#include <com/sun/star/frame/XDispatch.idl>
32#endif
33
34#ifndef __com_sun_star_util_URL_idl__
35#include <com/sun/star/util/URL.idl>
36#endif
37
38#ifndef __com_sun_star_frame_DispatchDescriptor_idl__
39#include <com/sun/star/frame/DispatchDescriptor.idl>
40#endif
41
42
43//=============================================================================
44
45 module com {  module sun {  module star {  module frame {
46
47//=============================================================================
48/** provides <type>XDispatch</type> interfaces for certain functions which
49	are useful at the UI.
50
51    @see XDispatch
52 */
53published interface XDispatchProvider: com::sun::star::uno::XInterface
54{
55	//-------------------------------------------------------------------------
56	/** searches for an <type>XDispatch</type> for the specified URL within
57        the specified target frame.
58
59        @param URL
60            describe the feature which should be supported by returned dispatch object
61
62        @param TargetFrameName
63            specify the frame which should be the target for this request
64
65        @param SearchFlags
66            optional search parameter for finding the frame if no special
67            <var>TargetFrameName</var> was used
68
69        @return
70            the dispatch object which provides queried functionality
71            <br>
72            or <NULL/> if no dispatch object is available
73
74        @see XFrame::findFrame()
75        @see XDispatchProvider::queryDispatches()
76	 */
77    XDispatch queryDispatch(
78        [in] com::sun::star::util::URL URL,
79        [in] string TargetFrameName,
80        [in] long SearchFlags );
81
82	//-------------------------------------------------------------------------
83    /** actually this method is redundant to <member>XDispatchProvider::queryDispatch()</member>
84        to avoid multiple remote calls.
85
86        @param Requests
87            list of dispatch requests
88
89        @returns
90            multiple dispatch interfaces for the specified descriptors at once
91
92            <p>
93            It's not allowed to pack it - because every request must match
94            to his real result. Means: don't delete <NULL/> entries inside this list.
95            </p>
96	 */
97    sequence< XDispatch > queryDispatches(
98        [in] sequence<DispatchDescriptor> Requests);
99};
100
101//=============================================================================
102
103}; }; }; };
104
105#endif
106