/************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. * *************************************************************/ #ifndef __com_sun_star_frame_XRecordableDispatch_idl__ #define __com_sun_star_frame_XRecordableDispatch_idl__ #ifndef __com_sun_star_uno_XInterface_idl__ #include #endif #ifndef __com_sun_star_frame_XDispatchRecorder_idl__ #include #endif #ifndef __com_sun_star_util_URL_idl__ #include #endif //============================================================================= module com { module sun { module star { module frame { //============================================================================= /** extends an existing XDispatch implementation with functionality for dispatch recording

This interface can be implemented as an additional one beside an existing XDispatch one to provide record functionality of dispatches. Because it's an additional interface the status events are available there and not at this interface.

But normally this interface mustn't be used directly. If a dispatch object is well known and recording was enabled on a XDispatchRecorderSupplier it's possible to use method XDispatchRecorderSupplier::dispatchAndRecord() of it to make dispatch and recording automatically. The interface XRecordableDispatch is used transparently there.

@example XDispatch xDispatcher = xFrame.queryDispatch(aURL,"",0); XRecordableDispatch xRecordable = (XRecordableDispatch)UnoRuntime.queryInterface(   XRecordableDispatch.class,   xDispatcher); xDispatcher.addStatusListener(this,aURL); if (xRecordable!=null)   xRecordable.dispatchAndRecord(aURL,lArguments,xRecorder); else   xDispatcher.dispatch(aURL,lArguments); ... xDispatcher.removeStatusListener(this,aURL); @see XDispatchRecorderSupplier @see XDispatch @since OpenOffice 1.1.2 */ published interface XRecordableDispatch: com::sun::star::uno::XInterface { //------------------------------------------------------------------------- /** dispatch and record it @param URL full parsed URL which describe the feature which should be dispatched (executed) @param Arguments optional arguments for this request (see MediaDescriptor for details) @param Recorder object which can be used to record the request (available on XDispatchRecorderSupplier::getDispatchRecorder()) */ [oneway] void dispatchAndRecord( [in] com::sun::star::util::URL URL, [in] sequence Arguments, [in] XDispatchRecorder Recorder); }; //============================================================================= }; }; }; }; #endif