2000-10-25 12:00:01 +00:00
/*************************************************************************
*
* $ RCSfile : dbinteraction . cxx , v $
*
2005-03-10 15:55:44 +00:00
* $ Revision : 1.13 $
2000-10-25 12:00:01 +00:00
*
2005-03-10 15:55:44 +00:00
* last change : $ Author : vg $ $ Date : 2005 - 03 - 10 16 : 55 : 44 $
2000-10-25 12:00:01 +00:00
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
*
* - GNU Lesser General Public License Version 2.1
* - Sun Industry Standards Source License Version 1.1
*
* Sun Microsystems Inc . , October , 2000
*
* GNU Lesser General Public License Version 2.1
* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
* Copyright 2000 by Sun Microsystems , Inc .
* 901 San Antonio Road , Palo Alto , CA 94303 , USA
*
* This library is free software ; you can redistribute it and / or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1 , as published by the Free Software Foundation .
*
* This library is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
* Lesser General Public License for more details .
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place , Suite 330 , Boston ,
* MA 02111 - 1307 USA
*
*
* Sun Industry Standards Source License Version 1.1
* = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
* The contents of this file are subject to the Sun Industry Standards
* Source License Version 1.1 ( 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.openoffice.org/license.html.
*
* Software provided under this License is provided on an " AS IS " basis ,
* WITHOUT WARRANTY OF ANY KIND , EITHER EXPRESS OR IMPLIED , INCLUDING ,
* WITHOUT LIMITATION , WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS ,
* MERCHANTABLE , FIT FOR A PARTICULAR PURPOSE , OR NON - INFRINGING .
* See the License for the specific provisions governing your rights and
* obligations concerning the Software .
*
* The Initial Developer of the Original Code is : Sun Microsystems , Inc .
*
* Copyright : 2000 by Sun Microsystems , Inc .
*
* All Rights Reserved .
*
* Contributor ( s ) : _______________________________________
*
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# ifndef _DBAUI_INTERACTION_HXX_
# include "dbinteraction.hxx"
# endif
2000-12-15 14:54:12 +00:00
# ifndef _DBU_REGHELPER_HXX_
# include "dbu_reghelper.hxx"
2000-10-25 12:00:01 +00:00
# endif
# ifndef _TOOLS_DEBUG_HXX
# include <tools/debug.hxx>
# endif
# ifndef _SV_MSGBOX_HXX
# include <vcl/msgbox.hxx>
# endif
# ifndef _DBHELPER_DBEXCEPTION_HXX_
# include <connectivity/dbexception.hxx>
# endif
# ifndef _DBAUI_SQLMESSAGE_HXX_
# include "sqlmessage.hxx"
# endif
# ifndef _COM_SUN_STAR_TASK_XINTERACTIONAPPROVE_HPP_
# include <com/sun/star/task/XInteractionApprove.hpp>
# endif
# ifndef _COM_SUN_STAR_TASK_XINTERACTIONDISAPPROVE_HPP_
# include <com/sun/star/task/XInteractionDisapprove.hpp>
# endif
# ifndef _COM_SUN_STAR_TASK_XINTERACTIONRETRY_HPP_
# include <com/sun/star/task/XInteractionRetry.hpp>
# endif
# ifndef _COM_SUN_STAR_TASK_XINTERACTIONABORT_HPP_
# include <com/sun/star/task/XInteractionAbort.hpp>
# endif
# ifndef _COM_SUN_STAR_UCB_XINTERACTIONSUPPLYAUTHENTICATION_HPP_
# include <com/sun/star/ucb/XInteractionSupplyAuthentication.hpp>
# endif
2000-10-26 17:08:16 +00:00
# ifndef _COM_SUN_STAR_SDB_XINTERACTIONSUPPLYPARAMETERS_HPP_
# include <com/sun/star/sdb/XInteractionSupplyParameters.hpp>
# endif
2004-08-02 15:23:14 +00:00
# ifndef _COM_SUN_STAR_SDB_XINTERACTIONDOCUMENTSAVE_HPP_
# include <com/sun/star/sdb/XInteractionDocumentSave.hpp>
# endif
2000-10-25 12:00:01 +00:00
# ifndef _SVTOOLS_LOGINDLG_HXX_
# include <svtools/logindlg.hxx>
# endif
2004-11-17 13:54:05 +00:00
# ifndef SFX_QUERYSAVEDOCUMENT_HXX
# include <sfx2/QuerySaveDocument.hxx>
# endif
2002-08-19 07:01:32 +00:00
# ifndef _DBU_UNO_HRC_
# include "dbu_uno.hrc"
2000-10-25 12:00:01 +00:00
# endif
2000-10-26 17:08:16 +00:00
# ifndef _DBAUI_PARAMDIALOG_HXX_
# include "paramdialog.hxx"
# endif
2001-05-17 08:09:44 +00:00
# ifndef _SV_SVAPP_HXX
# include <vcl/svapp.hxx>
# endif
# ifndef _VOS_MUTEX_HXX_
# include <vos/mutex.hxx>
# endif
2004-08-02 15:23:14 +00:00
# ifndef DBAUI_COLLECTIONVIEW_HXX
# include "CollectionView.hxx"
# endif
2005-03-10 15:55:44 +00:00
# ifndef DBAUI_TOOLS_HXX
# include "UITools.hxx"
# endif
2000-10-25 12:00:01 +00:00
//==========================================================================
extern " C " void SAL_CALL createRegistryInfo_OInteractionHandler ( )
{
2000-12-15 14:54:12 +00:00
static : : dbaui : : OMultiInstanceAutoRegistration < : : dbaui : : OInteractionHandler > aOInteractionHandler_AutoRegistration ;
2000-10-25 12:00:01 +00:00
}
//.........................................................................
namespace dbaui
{
//.........................................................................
using namespace : : com : : sun : : star : : uno ;
using namespace : : com : : sun : : star : : ucb ;
2000-10-26 17:08:16 +00:00
using namespace : : com : : sun : : star : : sdb ;
2000-10-25 12:00:01 +00:00
using namespace : : com : : sun : : star : : lang ;
using namespace : : com : : sun : : star : : task ;
2000-10-26 17:08:16 +00:00
using namespace : : com : : sun : : star : : beans ;
2000-10-25 12:00:01 +00:00
using namespace : : dbtools ;
//=========================================================================
//= OInteractionHandler
//=========================================================================
//-------------------------------------------------------------------------
OInteractionHandler : : OInteractionHandler ( const Reference < XMultiServiceFactory > & _rxORB )
: m_xORB ( _rxORB )
{
}
//-------------------------------------------------------------------------
2001-01-05 11:16:07 +00:00
IMPLEMENT_SERVICE_INFO1_STATIC ( OInteractionHandler , " com.sun.star.comp.dbu.OInteractionHandler " , " com.sun.star.sdb.InteractionHandler " ) ;
2000-10-25 12:00:01 +00:00
//-------------------------------------------------------------------------
void SAL_CALL OInteractionHandler : : handle ( const Reference < XInteractionRequest > & _rxRequest ) throw ( RuntimeException )
{
Any aRequest ;
if ( _rxRequest . is ( ) )
{
try { aRequest = _rxRequest - > getRequest ( ) ; }
catch ( RuntimeException & ) { }
}
DBG_ASSERT ( aRequest . hasValue ( ) , " OInteractionHandler::handle: invalid request! " ) ;
if ( ! aRequest . hasValue ( ) )
// no request -> no handling
return ;
Sequence < Reference < XInteractionContinuation > > aContinuations ;
try { aContinuations = _rxRequest - > getContinuations ( ) ; }
catch ( RuntimeException & ) { }
// try to extract an SQLException (or one of it's derived members
SQLExceptionInfo aInfo ( aRequest ) ;
if ( aInfo . isValid ( ) )
{
implHandle ( aInfo , aContinuations ) ;
return ;
}
AuthenticationRequest aAuthentRequest ;
if ( aRequest > > = aAuthentRequest )
{ // it's an authentification request
implHandle ( aAuthentRequest , aContinuations ) ;
return ;
}
2000-10-26 17:08:16 +00:00
ParametersRequest aParamRequest ;
if ( aRequest > > = aParamRequest )
{ // it's an authentification request
implHandle ( aParamRequest , aContinuations ) ;
return ;
}
2004-08-02 15:23:14 +00:00
DocumentSaveRequest aDocuRequest ;
if ( aRequest > > = aDocuRequest )
{ // it's an document request
implHandle ( aDocuRequest , aContinuations ) ;
return ;
}
2005-01-21 16:21:42 +00:00
OSL_VERIFY ( implHandleUnknown ( _rxRequest ) ) ;
2000-10-25 12:00:01 +00:00
}
2000-10-26 17:08:16 +00:00
//-------------------------------------------------------------------------
void OInteractionHandler : : implHandle ( const ParametersRequest & _rParamRequest , const Sequence < Reference < XInteractionContinuation > > & _rContinuations )
{
2001-05-17 08:09:44 +00:00
: : vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
// want to open a dialog ....
2000-10-26 17:08:16 +00:00
sal_Int32 nAbortPos = getContinuation ( ABORT , _rContinuations ) ;
sal_Int32 nParamPos = getContinuation ( SUPPLY_PARAMETERS , _rContinuations ) ;
Reference < XInteractionSupplyParameters > xParamCallback ;
if ( - 1 ! = nParamPos )
xParamCallback = Reference < XInteractionSupplyParameters > ( _rContinuations [ nParamPos ] , UNO_QUERY ) ;
DBG_ASSERT ( xParamCallback . is ( ) , " OInteractionHandler::implHandle(ParametersRequest): can't set the parameters without an appropriate interaction handler!s " ) ;
// determine the style of the dialog, dependent on the present continuation types
WinBits nDialogStyle = WB_OK | WB_DEF_OK ;
if ( - 1 ! = nAbortPos )
nDialogStyle = WB_OK_CANCEL ;
OParameterDialog aDlg ( NULL , _rParamRequest . Parameters , _rParamRequest . Connection , m_xORB ) ;
sal_Int16 nResult = aDlg . Execute ( ) ;
try
{
switch ( nResult )
{
case RET_OK :
if ( xParamCallback . is ( ) )
{
xParamCallback - > setParameters ( aDlg . getValues ( ) ) ;
xParamCallback - > select ( ) ;
}
break ;
default :
if ( - 1 ! = nAbortPos )
_rContinuations [ nAbortPos ] - > select ( ) ;
break ;
}
}
catch ( RuntimeException & )
{
DBG_ERROR ( " OInteractionHandler::implHandle(ParametersRequest): caught a RuntimeException while calling the continuation callback! " ) ;
}
}
2000-10-25 12:00:01 +00:00
//-------------------------------------------------------------------------
void OInteractionHandler : : implHandle ( const AuthenticationRequest & _rAuthRequest , const Sequence < Reference < XInteractionContinuation > > & _rContinuations )
{
2001-05-17 08:09:44 +00:00
: : vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
// want to open a dialog ....
2000-10-25 12:00:01 +00:00
// search the continuations we can handle
sal_Int32 nAbortPos = getContinuation ( ABORT , _rContinuations ) ;
sal_Int32 nRetryPos = getContinuation ( RETRY , _rContinuations ) ;
sal_Int32 nAuthentPos = getContinuation ( SUPPLY_AUTHENTICATION , _rContinuations ) ;
// we strongly need an XInteractionSupplyAuthentication (else we can't return the input given by the user)
Reference < XInteractionSupplyAuthentication > xSuppAuthent ;
if ( - 1 ! = nAuthentPos )
xSuppAuthent = Reference < XInteractionSupplyAuthentication > ( _rContinuations [ nAuthentPos ] , UNO_QUERY ) ;
DBG_ASSERT ( xSuppAuthent . is ( ) , " OInteractionHandler::implHandle: need an XInteractionSupplyAuthentication to return the results! " ) ;
// check which "remember password" modes are allowed
sal_Bool bRemember ( sal_False ) ;
sal_Bool bRememberPersistent ( sal_False ) ;
if ( xSuppAuthent . is ( ) )
{
RememberAuthentication eDefault ;
Sequence < RememberAuthentication > aModes ( xSuppAuthent - > getRememberPasswordModes ( eDefault ) ) ;
const RememberAuthentication * pModes = aModes . getConstArray ( ) ;
bRemember = eDefault ! = RememberAuthentication_NO ;
for ( sal_Int32 i = 0 ; i < aModes . getLength ( ) ; + + i , + + pModes )
if ( * pModes = = RememberAuthentication_PERSISTENT )
{
bRememberPersistent = sal_True ;
break ;
}
}
// extract some infor from the authentication request
// use the account as realm
String sRealm ;
if ( _rAuthRequest . HasRealm )
sRealm = _rAuthRequest . Realm . getStr ( ) ;
// determine the flags for
sal_uInt16 nFlags = 0 ;
nFlags | = LF_NO_PATH ; // the AuthenticationRequest does not support a path
if ( 0 = = _rAuthRequest . Diagnostic . getLength ( ) )
nFlags | = LF_NO_ERRORTEXT ;
if ( ! _rAuthRequest . HasAccount )
nFlags | = LF_NO_ACCOUNT ;
if ( ! _rAuthRequest . HasUserName | | ! xSuppAuthent . is ( ) | | ! xSuppAuthent - > canSetUserName ( ) )
nFlags | = LF_USERNAME_READONLY ;
// create the dialog
2005-03-10 15:55:44 +00:00
: : rtl : : OUString sName = _rAuthRequest . ServerName ;
sName = : : dbaui : : getStrippedDatabaseName ( NULL , sName ) ;
: : svt : : LoginDialog aLogin ( NULL , nFlags , sName , sRealm . Len ( ) ? & sRealm : NULL ) ;
2000-10-25 12:00:01 +00:00
// initialize it
aLogin . SetErrorText ( _rAuthRequest . Diagnostic . getStr ( ) ) ;
aLogin . SetName ( _rAuthRequest . UserName ) ;
if ( _rAuthRequest . HasAccount )
aLogin . ClearAccount ( ) ;
else
aLogin . ClearPassword ( ) ;
aLogin . SetPassword ( _rAuthRequest . Password . getStr ( ) ) ;
aLogin . SetSavePassword ( bRemember ) ;
2000-10-26 06:32:32 +00:00
aLogin . SetSavePasswordText ( ModuleRes ( bRememberPersistent ? STR_REMEMBERPASSWORD_PERSISTENT : STR_REMEMBERPASSWORD_SESSION ) ) ;
2005-03-10 15:55:44 +00:00
String sLoginRequest ( ModuleRes ( STR_ENTER_CONNECTION_PASSWORD ) ) ;
if ( sName . getLength ( ) )
sLoginRequest . SearchAndReplaceAscii ( " $name$ " , sName . getStr ( ) ) ;
else
2000-10-26 06:32:32 +00:00
{
2005-03-10 15:55:44 +00:00
sLoginRequest . SearchAndReplaceAscii ( " \" $name$ \" " , String ( ) ) ;
sLoginRequest . SearchAndReplaceAscii ( " $name$ " , String ( ) ) ; // just to be sure that in other languages the string will be deleted
2000-10-26 06:32:32 +00:00
}
2005-03-10 15:55:44 +00:00
aLogin . SetLoginRequestText ( sLoginRequest ) ;
2000-10-25 12:00:01 +00:00
// execute
sal_Int32 nResult = aLogin . Execute ( ) ;
// dispatch the result
try
{
switch ( nResult )
{
case RET_OK :
if ( xSuppAuthent . is ( ) )
{
xSuppAuthent - > setUserName ( aLogin . GetName ( ) ) ;
xSuppAuthent - > setPassword ( aLogin . GetPassword ( ) ) ;
xSuppAuthent - > setRememberPassword (
aLogin . IsSavePassword ( )
?
bRememberPersistent
? RememberAuthentication_PERSISTENT
: RememberAuthentication_SESSION
: RememberAuthentication_NO ) ;
2000-11-08 10:01:05 +00:00
if ( _rAuthRequest . HasAccount )
xSuppAuthent - > setAccount ( aLogin . GetAccount ( ) ) ;
2000-10-25 12:00:01 +00:00
xSuppAuthent - > select ( ) ;
}
break ;
case RET_RETRY :
if ( - 1 ! = nRetryPos )
_rContinuations [ nRetryPos ] - > select ( ) ;
break ;
default :
if ( - 1 ! = nAbortPos )
_rContinuations [ nAbortPos ] - > select ( ) ;
break ;
}
}
catch ( Exception & )
{
DBG_ERROR ( " OInteractionHandler::implHandle(AuthenticationRequest): error while calling back into the InteractionContinuation! " ) ;
}
}
//-------------------------------------------------------------------------
void OInteractionHandler : : implHandle ( const SQLExceptionInfo & _rSqlInfo , const Sequence < Reference < XInteractionContinuation > > & _rContinuations )
{
2001-05-17 08:09:44 +00:00
: : vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
// want to open a dialog ....
2000-10-25 12:00:01 +00:00
sal_Int32 nApprovePos = getContinuation ( APPROVE , _rContinuations ) ;
sal_Int32 nAbortPos = getContinuation ( ABORT , _rContinuations ) ;
sal_Int32 nRetryPos = getContinuation ( RETRY , _rContinuations ) ;
# ifdef DBG_UTIL
sal_Int32 nDisapprovePos = getContinuation ( DISAPPROVE , _rContinuations ) ;
sal_Int32 nAuthentPos = getContinuation ( SUPPLY_AUTHENTICATION , _rContinuations ) ;
DBG_ASSERT ( ( - 1 = = nDisapprovePos ) & & ( - 1 = = nAuthentPos ) , " OInteractionHandler::implHandle(SQLExceptionInfo): unsupported continuation type! " ) ;
// "Retry" and "Authenticate" do not make sense if the request refered to an SQLException
# endif
2000-10-26 17:08:16 +00:00
// determine the style of the dialog, dependent on the present continuation types
2000-10-25 12:00:01 +00:00
WinBits nDialogStyle = WB_OK | WB_DEF_OK ;
if ( - 1 ! = nAbortPos )
nDialogStyle = WB_OK_CANCEL ;
if ( - 1 ! = nRetryPos )
nDialogStyle | = WB_RETRY_CANCEL | WB_DEF_RETRY ;
// excute the dialog
OSQLMessageBox aDialog ( NULL , _rSqlInfo , nDialogStyle ) ;
// TODO: need a way to specify the parent window
sal_Int16 nResult = aDialog . Execute ( ) ;
try
{
switch ( nResult )
{
case RET_OK :
if ( - 1 ! = nApprovePos )
_rContinuations [ nApprovePos ] - > select ( ) ;
break ;
case RET_CANCEL :
if ( - 1 ! = nAbortPos )
_rContinuations [ nAbortPos ] - > select ( ) ;
break ;
case RET_RETRY :
if ( - 1 ! = nRetryPos )
_rContinuations [ nRetryPos ] - > select ( ) ;
break ;
}
}
catch ( RuntimeException & )
{
2000-10-26 17:08:16 +00:00
DBG_ERROR ( " OInteractionHandler::implHandle(SQLExceptionInfo): caught a RuntimeException while calling the continuation callback! " ) ;
2000-10-25 12:00:01 +00:00
}
}
2004-08-02 15:23:14 +00:00
//-------------------------------------------------------------------------
void OInteractionHandler : : implHandle ( const DocumentSaveRequest & _rDocuRequest , const Sequence < Reference < XInteractionContinuation > > & _rContinuations )
{
: : vos : : OGuard aGuard ( Application : : GetSolarMutex ( ) ) ;
// want to open a dialog ....
sal_Int32 nApprovePos = getContinuation ( APPROVE , _rContinuations ) ;
sal_Int32 nDisApprovePos = getContinuation ( DISAPPROVE , _rContinuations ) ;
sal_Int32 nAbortPos = getContinuation ( ABORT , _rContinuations ) ;
short nRet = RET_YES ;
if ( - 1 ! = nApprovePos )
{
// fragen, ob gespeichert werden soll
2004-11-17 13:54:05 +00:00
nRet = ExecuteQuerySaveDocument ( NULL , _rDocuRequest . Name ) ;
2004-08-02 15:23:14 +00:00
}
if ( RET_CANCEL = = nRet )
{
if ( - 1 ! = nAbortPos )
_rContinuations [ nAbortPos ] - > select ( ) ;
return ;
}
else if ( RET_YES = = nRet )
{
sal_Int32 nDocuPos = getContinuation ( SUPPLY_DOCUMENTSAVE , _rContinuations ) ;
if ( - 1 ! = nDocuPos )
{
Reference < XInteractionDocumentSave > xCallback ( _rContinuations [ nDocuPos ] , UNO_QUERY ) ;
DBG_ASSERT ( xCallback . is ( ) , " OInteractionHandler::implHandle(DocumentSaveRequest): can't save document without an appropriate interaction handler!s " ) ;
// determine the style of the dialog, dependent on the present continuation types
WinBits nDialogStyle = WB_OK | WB_DEF_OK ;
if ( - 1 ! = nAbortPos )
nDialogStyle = WB_OK_CANCEL ;
OCollectionView aDlg ( NULL , _rDocuRequest . Content , _rDocuRequest . Name , m_xORB ) ;
sal_Int16 nResult = aDlg . Execute ( ) ;
try
{
switch ( nResult )
{
case RET_OK :
if ( xCallback . is ( ) )
{
xCallback - > setName ( aDlg . getName ( ) , aDlg . getSelectedFolder ( ) ) ;
xCallback - > select ( ) ;
}
break ;
default :
if ( - 1 ! = nAbortPos )
_rContinuations [ nAbortPos ] - > select ( ) ;
break ;
}
}
catch ( RuntimeException & )
{
DBG_ERROR ( " OInteractionHandler::implHandle(DocumentSaveRequest): caught a RuntimeException while calling the continuation callback! " ) ;
}
}
else if ( - 1 ! = nApprovePos )
_rContinuations [ nApprovePos ] - > select ( ) ;
}
else if ( - 1 ! = nDisApprovePos )
_rContinuations [ nDisApprovePos ] - > select ( ) ;
}
2000-10-25 12:00:01 +00:00
2005-01-21 16:21:42 +00:00
//-------------------------------------------------------------------------
bool OInteractionHandler : : implHandleUnknown ( const Reference < XInteractionRequest > & _rxRequest )
{
Reference < XInteractionHandler > xFallbackHandler ;
if ( m_xORB . is ( ) )
xFallbackHandler = xFallbackHandler . query ( m_xORB - > createInstance ( : : rtl : : OUString ( RTL_CONSTASCII_USTRINGPARAM ( " com.sun.star.task.InteractionHandler " ) ) ) ) ;
if ( xFallbackHandler . is ( ) )
{
xFallbackHandler - > handle ( _rxRequest ) ;
return true ;
}
return false ;
}
2000-10-25 12:00:01 +00:00
//-------------------------------------------------------------------------
sal_Int32 OInteractionHandler : : getContinuation ( Continuation _eCont , const Sequence < Reference < XInteractionContinuation > > & _rContinuations )
{
const Reference < XInteractionContinuation > * pContinuations = _rContinuations . getConstArray ( ) ;
for ( sal_Int32 i = 0 ; i < _rContinuations . getLength ( ) ; + + i , + + pContinuations )
{
switch ( _eCont )
{
case APPROVE :
if ( Reference < XInteractionApprove > ( * pContinuations , UNO_QUERY ) . is ( ) )
return i ;
break ;
case DISAPPROVE :
if ( Reference < XInteractionDisapprove > ( * pContinuations , UNO_QUERY ) . is ( ) )
return i ;
break ;
case RETRY :
if ( Reference < XInteractionRetry > ( * pContinuations , UNO_QUERY ) . is ( ) )
return i ;
break ;
case ABORT :
if ( Reference < XInteractionAbort > ( * pContinuations , UNO_QUERY ) . is ( ) )
return i ;
break ;
case SUPPLY_AUTHENTICATION :
if ( Reference < XInteractionSupplyAuthentication > ( * pContinuations , UNO_QUERY ) . is ( ) )
return i ;
break ;
2000-10-26 17:08:16 +00:00
case SUPPLY_PARAMETERS :
if ( Reference < XInteractionSupplyParameters > ( * pContinuations , UNO_QUERY ) . is ( ) )
return i ;
break ;
2004-08-02 15:23:14 +00:00
case SUPPLY_DOCUMENTSAVE :
if ( Reference < XInteractionDocumentSave > ( * pContinuations , UNO_QUERY ) . is ( ) )
return i ;
break ;
2000-10-25 12:00:01 +00:00
}
}
return - 1 ;
}
//.........................................................................
} // namespace dbaui
//.........................................................................