22#include <com/sun/star/awt/XWindow.hpp>
23#include <com/sun/star/configuration/theDefaultProvider.hpp>
24#include <com/sun/star/configuration/backend/MergeRecoveryRequest.hpp>
25#include <com/sun/star/configuration/backend/StratumCreationException.hpp>
26#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
27#include <com/sun/star/document/BrokenPackageRequest.hpp>
28#include <com/sun/star/document/ExoticFileLoadException.hpp>
29#include <com/sun/star/task/DocumentMacroConfirmationRequest.hpp>
30#include <com/sun/star/java/WrongJavaVersionException.hpp>
31#include <com/sun/star/lang/XInitialization.hpp>
32#include <com/sun/star/lang/XMultiServiceFactory.hpp>
33#include <com/sun/star/script/ModuleSizeExceededRequest.hpp>
34#include <com/sun/star/task/ErrorCodeIOException.hpp>
35#include <com/sun/star/task/ErrorCodeRequest.hpp>
36#include <com/sun/star/task/InteractionHandler.hpp>
37#include <com/sun/star/task/XInteractionAbort.hpp>
38#include <com/sun/star/task/XInteractionApprove.hpp>
39#include <com/sun/star/task/XInteractionDisapprove.hpp>
40#include <com/sun/star/task/XInteractionHandler2.hpp>
41#include <com/sun/star/task/XInteractionRequest.hpp>
42#include <com/sun/star/ucb/AuthenticationFallbackRequest.hpp>
43#include <com/sun/star/ucb/InteractiveAppException.hpp>
44#include <com/sun/star/ucb/InteractiveLockingLockedException.hpp>
45#include <com/sun/star/ucb/InteractiveLockingNotLockedException.hpp>
46#include <com/sun/star/ucb/InteractiveLockingLockExpiredException.hpp>
47#include <com/sun/star/ucb/InteractiveNetworkConnectException.hpp>
48#include <com/sun/star/ucb/InteractiveNetworkOffLineException.hpp>
49#include <com/sun/star/ucb/InteractiveNetworkReadException.hpp>
50#include <com/sun/star/ucb/InteractiveNetworkResolveNameException.hpp>
51#include <com/sun/star/ucb/InteractiveNetworkWriteException.hpp>
52#include <com/sun/star/ucb/InteractiveWrongMediumException.hpp>
53#include <com/sun/star/ucb/NameClashException.hpp>
54#include <com/sun/star/ucb/NameClashResolveRequest.hpp>
55#include <com/sun/star/ucb/UnsupportedNameClashException.hpp>
56#include <com/sun/star/ucb/XInteractionReplaceExistingData.hpp>
57#include <com/sun/star/ucb/XInteractionSupplyName.hpp>
58#include <com/sun/star/xforms/InvalidDataOnSubmitException.hpp>
59#include <com/sun/star/loader/CannotActivateFactoryException.hpp>
62#include <rtl/ustrbuf.hxx>
63#include <osl/conditn.hxx>
75#include <typelib/typedescription.hxx>
89using ::com::sun::star::uno::Sequence;
90using ::com::sun::star::uno::UNO_QUERY;
91using ::com::sun::star::uno::Reference;
92using ::com::sun::star::task::XInteractionContinuation;
93using ::com::sun::star::task::XInteractionAbort;
94using ::com::sun::star::task::XInteractionApprove;
95using ::com::sun::star::uno::XInterface;
96using ::com::sun::star::lang::XInitialization;
97using ::com::sun::star::uno::UNO_QUERY_THROW;
98using ::com::sun::star::task::InteractionHandler;
99using ::com::sun::star::task::XInteractionHandler2;
100using ::com::sun::star::uno::Exception;
101using ::com::sun::star::uno::Any;
102using ::com::sun::star::task::XInteractionRequest;
103using ::com::sun::star::lang::XMultiServiceFactory;
109class HandleData :
public osl::Condition
113 uno::Reference< task::XInteractionRequest > xRequest)
114 : m_rRequest(
std::move(xRequest)),
118 uno::Reference< task::XInteractionRequest > m_rRequest;
126 uno::Reference< uno::XComponentContext > xContext)
136 void* pHandleData,
void* pInteractionHelper)
139 =
static_cast< HandleData *
>(pHandleData);
151 uno::Reference< task::XInteractionRequest >
const & rRequest)
156 HandleData aHD(rRequest);
163 rSolarMutex.
acquire(nLockCount);
175 void* pHandleData,
void* pInteractionHelper)
177 HandleData* pHND =
static_cast<HandleData*
>(pHandleData);
183beans::Optional< OUString >
185 uno::Reference< task::XInteractionRequest >
const & rRequest)
187 bool bSuccess =
false;
191 OSL_ENSURE(bSuccess ||
193 rRequest->getContinuations()),
194 "Interaction request is a candidate for a string representation."
195 "Please implement!");
197 return beans::Optional< OUString >(bSuccess, aMessage);
200beans::Optional< OUString >
202 uno::Reference< task::XInteractionRequest >
const & rRequest)
207 HandleData aHD(rRequest);
214 rSolarMutex.
acquire(nLockCount);
215 return aHD.m_aResult;
223 const OUString& _aMessage,
224 std::vector< OUString >
const & rArguments )
226 OUString aMessage = _aMessage;
228 SAL_WARN_IF(rArguments.empty(),
"uui",
"replaceMessageWithArguments: No arguments passed!");
229 for (
size_t i = 0;
i < rArguments.size(); ++
i)
231 const OUString sReplaceTemplate =
"$(ARG" + OUString::number(
i+1) +
")";
232 aMessage = aMessage.replaceAll(sReplaceTemplate, rArguments[
i]);
240 uno::Sequence< uno::Reference< task::XInteractionContinuation > >
const &
245 if (rContinuations.getLength() != 1 )
250 uno::Reference< task::XInteractionApprove > xApprove(
251 rContinuations[0], uno::UNO_QUERY);
255 uno::Reference< task::XInteractionAbort > xAbort(
256 rContinuations[0], uno::UNO_QUERY);
262 uno::Reference< task::XInteractionRequest >
const & rRequest)
267 return std::any_of(dataList.cbegin(), dataList.cend(),
274 bool lcl_matchesRequest(
const Any& i_rRequest,
const OUString& i_rTypeName, std::u16string_view i_rPropagation )
276 const css::uno::TypeDescription aTypeDesc( i_rTypeName );
278 if ( !pTypeDesc || !pTypeDesc->pWeakRef )
280 SAL_WARN(
"uui",
"no type found for '" << i_rTypeName <<
"'" );
283 const css::uno::Type aType( pTypeDesc->pWeakRef );
285 const bool bExactMatch = i_rPropagation ==
u"named-only";
287 return i_rRequest.getValueType().equals( aType );
289 return i_rRequest.isExtractableTo( aType );
298 Reference< XInteractionHandler2 > xHandler(
m_xContext->getServiceManager()->createInstanceWithContext( i_rServiceName,
m_xContext ), UNO_QUERY_THROW );
300 Reference< XInitialization > xHandlerInit( xHandler, UNO_QUERY );
301 if ( xHandlerInit.is() )
308 if ( xHandler->handleInteractionRequest( i_rRequest ) )
322 const Any aRequest( rRequest->getRequest() );
324 const StringHashMap::const_iterator aCacheHitTest =
m_aTypedCustomHandlers.find( aRequest.getValueTypeName() );
331 "/org.openoffice.Interaction/InteractionHandlers",
337 const Sequence< OUString > aRegisteredHandlers( aConfigRoot.getNodeNames() );
338 for (
auto const & handlerName : aRegisteredHandlers )
340 const ::utl::OConfigurationNode aHandlerNode( aConfigRoot.openNode( handlerName ) );
341 const ::utl::OConfigurationNode aTypesNode( aHandlerNode.openNode(
"HandledRequestTypes" ) );
344 const Sequence< OUString > aHandledTypes( aTypesNode.getNodeNames() );
345 for (
auto const &
type : aHandledTypes )
350 OUString sPropagation;
351 OSL_VERIFY( aType.
getNodeValue(
"Propagation" ) >>= sPropagation );
352 if ( lcl_matchesRequest( aRequest,
type, sPropagation ) )
356 OSL_VERIFY( aHandlerNode.getNodeValue(
"ServiceName" ) >>=
sServiceName );
370 uno::Reference< task::XInteractionRequest >
const & rRequest,
371 bool bObtainErrorStringOnly,
372 bool & bHasErrorString,
373 OUString & rErrorString)
380 uno::Any aAnyRequest(rRequest->getRequest());
382 script::ModuleSizeExceededRequest aModSizeException;
383 if (aAnyRequest >>= aModSizeException )
391 rRequest->getContinuations(),
392 bObtainErrorStringOnly,
398 document::ExoticFileLoadException aExoticFileLoadException;
399 if (aAnyRequest >>= aExoticFileLoadException)
403 if( !aExoticFileLoadException.URL.isEmpty() )
405 aArguments.push_back( aExoticFileLoadException.URL );
407 if( !aExoticFileLoadException.FilterUIName.isEmpty() )
409 aArguments.push_back( aExoticFileLoadException.FilterUIName );
415 rRequest->getContinuations(),
416 bObtainErrorStringOnly,
422 ucb::NameClashException aNCException;
423 if (aAnyRequest >>= aNCException)
428 if( !aNCException.Name.isEmpty() )
437 rRequest->getContinuations(),
438 bObtainErrorStringOnly,
444 ucb::UnsupportedNameClashException aUORequest;
445 if (aAnyRequest >>= aUORequest)
448 uno::Reference< task::XInteractionApprove > xApprove;
449 uno::Reference< task::XInteractionDisapprove > xDisapprove;
451 rRequest->getContinuations(), &xApprove, &xDisapprove);
453 if ( xApprove.is() && xDisapprove.is() )
459 rRequest->getContinuations(),
460 bObtainErrorStringOnly,
468 bObtainErrorStringOnly,
473 ucb::InteractiveAppException aAppException;
474 if (aAnyRequest >>= aAppException)
480 rRequest->getContinuations(),
481 bObtainErrorStringOnly,
487 ucb::InteractiveNetworkException aNetworkException;
488 if (aAnyRequest >>= aNetworkException)
492 ucb::InteractiveNetworkOffLineException aOffLineException;
493 ucb::InteractiveNetworkResolveNameException aResolveNameException;
494 ucb::InteractiveNetworkConnectException aConnectException;
495 ucb::InteractiveNetworkReadException aReadException;
496 ucb::InteractiveNetworkWriteException aWriteException;
497 if (aAnyRequest >>= aOffLineException)
499 else if (aAnyRequest >>= aResolveNameException)
502 aArguments.push_back(aResolveNameException.Server);
504 else if (aAnyRequest >>= aConnectException)
507 aArguments.push_back(aConnectException.Server);
509 else if (aAnyRequest >>= aReadException)
512 aArguments.push_back(aReadException.Diagnostic);
514 else if (aAnyRequest >>= aWriteException)
517 aArguments.push_back(aWriteException.Diagnostic);
525 rRequest->getContinuations(),
526 bObtainErrorStringOnly,
532 ucb::InteractiveWrongMediumException aWrongMediumException;
533 if (aAnyRequest >>= aWrongMediumException)
535 sal_Int32 nMedium = 0;
536 aWrongMediumException.Medium >>= nMedium;
537 std::vector< OUString >
aArguments { OUString::number(nMedium + 1) };
541 rRequest->getContinuations(),
542 bObtainErrorStringOnly,
548 java::WrongJavaVersionException aWrongJavaVersionException;
549 if (aAnyRequest >>= aWrongJavaVersionException)
553 if (aWrongJavaVersionException.DetectedVersion.isEmpty())
554 if (aWrongJavaVersionException.LowestSupportedVersion.isEmpty())
559 aArguments.push_back(aWrongJavaVersionException.LowestSupportedVersion);
561 else if (aWrongJavaVersionException.LowestSupportedVersion.isEmpty())
564 aArguments.push_back(aWrongJavaVersionException.DetectedVersion);
570 aArguments.push_back(aWrongJavaVersionException.DetectedVersion);
571 aArguments.push_back(aWrongJavaVersionException.LowestSupportedVersion);
576 rRequest->getContinuations(),
577 bObtainErrorStringOnly,
583 configuration::backend::MergeRecoveryRequest aMergeRecoveryRequest;
584 if (aAnyRequest >>= aMergeRecoveryRequest)
586 ErrCode nErrorCode = aMergeRecoveryRequest.IsRemovalRequest
590 std::vector< OUString >
aArguments { aMergeRecoveryRequest.ErrorLayerId };
595 rRequest->getContinuations(),
596 bObtainErrorStringOnly,
602 configuration::backend::StratumCreationException
603 aStratumCreationException;
605 if (aAnyRequest >>= aStratumCreationException)
609 OUString aStratum = aStratumCreationException.StratumData;
610 if (aStratum.isEmpty())
611 aStratum = aStratumCreationException.StratumService;
613 std::vector< OUString >
aArguments { aStratum };
618 rRequest->getContinuations(),
619 bObtainErrorStringOnly,
625 xforms::InvalidDataOnSubmitException aInvalidDataOnSubmitException;
626 if (aAnyRequest >>= aInvalidDataOnSubmitException)
636 rRequest->getContinuations(),
637 bObtainErrorStringOnly,
643 ucb::InteractiveLockingLockedException aLLException;
644 if (aAnyRequest >>= aLLException)
646 ErrCode nErrorCode = aLLException.SelfOwned
648 std::vector< OUString >
aArguments { aLLException.Url };
653 rRequest->getContinuations(),
654 bObtainErrorStringOnly,
660 ucb::InteractiveLockingNotLockedException aLNLException;
661 if (aAnyRequest >>= aLNLException)
663 std::vector< OUString >
aArguments { aLNLException.Url };
668 rRequest->getContinuations(),
669 bObtainErrorStringOnly,
675 ucb::InteractiveLockingLockExpiredException aLLEException;
676 if (aAnyRequest >>= aLLEException)
678 std::vector< OUString >
aArguments { aLLEException.Url };
683 rRequest->getContinuations(),
684 bObtainErrorStringOnly,
690 document::BrokenPackageRequest aBrokenPackageRequest;
691 if (aAnyRequest >>= aBrokenPackageRequest)
695 if( !aBrokenPackageRequest.aName.isEmpty() )
696 aArguments.push_back( aBrokenPackageRequest.aName );
699 rRequest->getContinuations(),
700 bObtainErrorStringOnly,
706 task::ErrorCodeRequest aErrorCodeRequest;
707 if (aAnyRequest >>= aErrorCodeRequest)
710 rRequest->getContinuations(),
711 bObtainErrorStringOnly,
717 task::ErrorCodeIOException aErrorCodeIOException;
718 if (aAnyRequest >>= aErrorCodeIOException)
721 rRequest->getContinuations(),
722 bObtainErrorStringOnly,
728 loader::CannotActivateFactoryException aCannotActivateFactoryException;
729 if (aAnyRequest >>= aCannotActivateFactoryException)
731 std::vector< OUString >
aArguments { aCannotActivateFactoryException.Message };
736 rRequest->getContinuations(),
737 bObtainErrorStringOnly,
746 if (!bObtainErrorStringOnly)
748 ucb::AuthenticationFallbackRequest anAuthFallbackRequest;
749 if ( aAnyRequest >>= anAuthFallbackRequest )
752 anAuthFallbackRequest.url, rRequest->getContinuations() );
762 ucb::NameClashResolveRequest aNameClashResolveRequest;
763 if (aAnyRequest >>= aNameClashResolveRequest)
766 rRequest->getContinuations());
794 task::DocumentMacroConfirmationRequest aMacroConfirmRequest;
795 if (aAnyRequest >>= aMacroConfirmRequest)
798 aMacroConfirmRequest.DocumentURL,
799 aMacroConfirmRequest.DocumentStorage,
800 !aMacroConfirmRequest.DocumentVersion.isEmpty() ? aMacroConfirmRequest.DocumentVersion :
ODFVER_013_TEXT,
801 aMacroConfirmRequest.DocumentSignatureInformation,
802 rRequest->getContinuations());
821 catch(
const uno::RuntimeException& )
825 catch(
const uno::Exception& )
838 uno::Reference< lang::XMultiServiceFactory > xConfigProv =
839 configuration::theDefaultProvider::get(
m_xContext );
843 {
"nodepath",
uno::Any(OUString(
"/org.openoffice.ucb.InteractionHandler/InteractionHandlers"))}
846 uno::Reference< uno::XInterface > xInterface(
847 xConfigProv->createInstanceWithArguments(
848 "com.sun.star.configuration.ConfigurationAccess" ,
aArguments ) );
850 if ( !xInterface.is() )
851 throw uno::RuntimeException(
"unable to instantiate config access");
853 uno::Reference< container::XNameAccess > xNameAccess(
854 xInterface, uno::UNO_QUERY_THROW );
855 const uno::Sequence< OUString > aElems = xNameAccess->getElementNames();
857 if ( aElems.hasElements() )
859 uno::Reference< container::XHierarchicalNameAccess >
860 xHierNameAccess( xInterface, uno::UNO_QUERY_THROW );
863 for (
const auto& rElem : aElems )
870 OUString aKeyBuffer =
"['" + rElem +
"']/ServiceName";
873 if ( !( xHierNameAccess->getByHierarchicalName(
874 aKeyBuffer ) >>= aValue ) )
876 OSL_FAIL(
"GetInteractionHandlerList - "
877 "Error getting item value!" );
884 rdataList.push_back( aInfo );
886 catch ( container::NoSuchElementException& )
890 OSL_FAIL(
"GetInteractionHandlerList - "
891 "caught NoSuchElementException!" );
896 catch ( uno::RuntimeException
const & )
900 catch ( uno::Exception
const & )
906const uno::Reference< awt::XWindow>&
912uno::Reference< task::XInteractionHandler2 >
915 return InteractionHandler::createWithParentAndContext(
925 OUString
const & rTitle,
926 OUString
const & rMessage,
932 eMessageType == VclMessageType::Question ? VclButtonsType::YesNo : VclButtonsType::Ok, rMessage));
933 xBox->set_title(rTitle);
935 short nMessResult = xBox->run();
940 aResult = DialogMask::ButtonsOk;
943 aResult = DialogMask::ButtonsCancel;
946 aResult = DialogMask::ButtonsYes;
949 aResult = DialogMask::ButtonsNo;
959 OUString
const & rTargetFolderURL,
960 OUString
const & rClashingName,
961 OUString & rProposedNewName,
962 bool bAllowOverwrite)
966 rClashingName, rProposedNewName, bAllowOverwrite);
969 rProposedNewName = aDialog.getNewName();
977 ucb::NameClashResolveRequest
const & rRequest,
978 uno::Sequence< uno::Reference<
979 task::XInteractionContinuation > >
const & rContinuations)
981 OSL_ENSURE(!rRequest.TargetFolderURL.isEmpty(),
982 "NameClashResolveRequest must not contain empty TargetFolderURL" );
984 OSL_ENSURE(!rRequest.ClashingName.isEmpty(),
985 "NameClashResolveRequest must not contain empty ClashingName" );
987 uno::Reference< task::XInteractionAbort > xAbort;
988 uno::Reference< ucb::XInteractionSupplyName > xSupplyName;
989 uno::Reference< ucb::XInteractionReplaceExistingData > xReplaceExistingData;
991 rContinuations, &xAbort, &xSupplyName, &xReplaceExistingData);
993 OSL_ENSURE( xAbort.is(),
994 "NameClashResolveRequest must contain Abort continuation" );
996 OSL_ENSURE( xSupplyName.is(),
997 "NameClashResolveRequest must contain SupplyName continuation" );
1000 OUString aProposedNewName( rRequest.ProposedNewName );
1004 rRequest.TargetFolderURL,
1005 rRequest.ClashingName,
1007 xReplaceExistingData.is());
1016 xSupplyName->setName( aProposedNewName );
1017 xSupplyName->select();
1022 xReplaceExistingData.is(),
1023 "Invalid NameClashResolveDialogResult: OVERWRITE - "
1024 "No ReplaceExistingData continuation available!" );
1025 xReplaceExistingData->select();
1033 uno::Sequence< uno::Reference<
1034 task::XInteractionContinuation > >
const & rContinuations,
1035 bool bObtainErrorStringOnly,
1036 bool & bHasErrorString,
1037 OUString & rErrorString)
1039 if (bObtainErrorStringOnly)
1042 if (bHasErrorString)
1044 OUString aErrorString;
1046 rErrorString = aErrorString;
1051 uno::Reference< task::XInteractionAbort > xAbort;
1052 uno::Reference< task::XInteractionApprove > xApprove;
1064 OUString aErrorString;
1070 OUString aErrTitle =
Translate::get(STR_WARNING_INCOMPLETE_ENCRYPTION_TITLE, aResLocale);
1072 if ( !aTitle.isEmpty() && !aErrTitle.isEmpty() )
1074 aTitle += aErrTitle;
1085 if (xApprove.is() && bWarning)
1087 else if (xAbort.is())
1094 const OUString& aDocumentURL,
1095 const uno::Reference< embed::XStorage >& xZipStorage,
1096 const OUString& aDocumentVersion,
1097 const uno::Sequence< security::DocumentSignatureInformation >& aSignInfo,
1098 uno::Sequence< uno::Reference< task::XInteractionContinuation > >
const &
1101 uno::Reference< task::XInteractionAbort > xAbort;
1102 uno::Reference< task::XInteractionApprove > xApprove;
1105 bool bApprove =
false;
1107 bool bShowSignatures = aSignInfo.hasElements();
1112 if ( aSignInfo.getLength() > 1 )
1114 aWarning.
SetStorage(xZipStorage, aDocumentVersion, aSignInfo);
1116 else if ( aSignInfo.getLength() == 1 )
1123 if ( bApprove && xApprove.is() )
1125 else if ( xAbort.is() )
1131 std::vector< OUString >
const & rArguments,
1132 uno::Sequence< uno::Reference< task::XInteractionContinuation > >
const &
1134 bool bObtainErrorStringOnly,
1135 bool & bHasErrorString,
1136 OUString & rErrorString)
1138 if (bObtainErrorStringOnly)
1141 if (!bHasErrorString)
1145 uno::Reference< task::XInteractionApprove > xApprove;
1146 uno::Reference< task::XInteractionDisapprove > xDisapprove;
1147 uno::Reference< task::XInteractionAbort > xAbort;
1151 if( xApprove.is() && xDisapprove.is() )
1155 else if ( xAbort.is() )
1166 if (!aErrorResource.
getString(nErrorCode, aMessage))
1172 if (bObtainErrorStringOnly)
1174 rErrorString = aMessage;
1179 if( xApprove.is() && xDisapprove.is() )
1180 eMessageType = VclMessageType::Question;
1181 else if ( xAbort.is() )
1182 eMessageType = VclMessageType::Warning;
1194 case DialogMask::ButtonsOk:
1195 OSL_ENSURE( xAbort.is(),
"unexpected situation" );
1200 case DialogMask::ButtonsNo:
1201 OSL_ENSURE(xDisapprove.is(),
"unexpected situation");
1202 if (xDisapprove.is())
1203 xDisapprove->select();
1206 case DialogMask::ButtonsYes:
1207 OSL_ENSURE(xApprove.is(),
"unexpected situation");
1219 for (
const std::pair<TranslateId, ErrCode>* pStringArray =
m_pStringArray; pStringArray->first; ++pStringArray)
Reference< XComponentContext > m_xContext
constexpr OUStringLiteral sServiceName
static weld::Window * GetFrameWeld(const css::uno::Reference< css::awt::XWindow > &rWindow)
static bool IsMainThread()
static comphelper::SolarMutex & GetSolarMutex()
static ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
static weld::MessageDialog * CreateMessageDialog(weld::Widget *pParent, VclMessageType eMessageType, VclButtonsType eButtonType, const OUString &rPrimaryMessage, const ILibreOfficeKitNotifier *pNotifier=nullptr)
ErrCode IgnoreWarning() const
constexpr ErrCode StripWarningAndDynamic() const
static bool GetErrorString(ErrCode nId, OUString &rStr)
static DialogMask HandleError(ErrCode nId, weld::Window *pParent=nullptr, DialogMask nMask=DialogMask::MAX)
const std::locale & m_rResLocale
bool getString(ErrCode nErrorCode, OUString &rString) const
const std::pair< TranslateId, ErrCode > * m_pStringArray
void SetStorage(const css::uno::Reference< css::embed::XStorage > &rxStore, const OUString &aODFVersion, const css::uno::Sequence< css::security::DocumentSignatureInformation > &_rInfos)
void SetDocumentURL(const OUString &rDocURL)
void SetCertificate(const css::uno::Reference< css::security::XCertificate > &_rxCert)
void handleErrorHandlerRequest(css::task::InteractionClassification eClassification, ErrCode nErrorCode, std::vector< OUString > const &rArguments, css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations, bool bObtainErrorStringOnly, bool &bHasErrorString, OUString &rErrorString)
bool handleInteractiveIOException(css::uno::Reference< css::task::XInteractionRequest > const &rRequest, bool bObtainErrorStringOnly, bool &bHasErrorString, OUString &rErrorString)
bool handleRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
bool handleReloadEditableRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
void getInteractionHandlerList(InteractionHandlerDataList &rdataList)
css::beans::Optional< OUString > getStringFromRequest_impl(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
static void getstringfromrequest(void *pHandleData, void *pInteractionHandler)
css::uno::Reference< css::awt::XWindow > m_xWindowParam
bool handleLockedDocumentRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
bool handlePasswordRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
bool handleFilterOptionsRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
css::beans::Optional< OUString > getStringFromRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
void handleNameClashResolveRequest(css::ucb::NameClashResolveRequest const &rRequest, css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations)
bool handleAuthenticationRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
bool handleChangedByOthersRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
css::uno::Reference< css::task::XInteractionHandler2 > getInteractionHandler() const
bool handleTypedHandlerImplementations(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
bool tryOtherInteractionHandler(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
static bool isInformationalErrorMessageRequest(css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations)
static void handlerequest(void *pHandleData, void *pInteractionHandler)
bool handleCertificateValidationRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
css::uno::Reference< css::uno::XComponentContext > m_xContext
UUIInteractionHelper(UUIInteractionHelper const &)=delete
StringHashMap m_aTypedCustomHandlers
static OUString replaceMessageWithArguments(const OUString &aMessage, std::vector< OUString > const &rArguments)
bool handleNoSuchFilterRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
bool handleLockFileProblemRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
bool handleMasterPasswordRequest(css::uno::Reference< css::task::XInteractionRequest > const &rRequest)
void handleMacroConfirmRequest(const OUString &aDocumentURL, const css::uno::Reference< css::embed::XStorage > &xZipStorage, const OUString &aDocumentVersion, const css::uno::Sequence< css::security::DocumentSignatureInformation > &aSignInfo, css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations)
bool handleRequest_impl(css::uno::Reference< css::task::XInteractionRequest > const &rRequest, bool bObtainErrorStringOnly, bool &bHasErrorString, OUString &rErrorString)
void handleAuthFallbackRequest(const OUString &instructions, const OUString &url, css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations)
void handleBrokenPackageRequest(std::vector< OUString > const &rArguments, css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations, bool bObtainErrorStringOnly, bool &bHasErrorString, OUString &rErrorString)
bool handleCustomRequest(const css::uno::Reference< css::task::XInteractionRequest > &i_rRequest, const OUString &i_rServiceName) const
const css::uno::Reference< css::awt::XWindow > & getParentXWindow() const
void handleGenericErrorRequest(ErrCode nErrorCode, css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations, bool bObtainErrorStringOnly, bool &bHasErrorString, OUString &rErrorString)
css::uno::Sequence< css::uno::Any > getWrappedPropertyValues() const
bool put(const OUString &_rValueName, const VALUE_TYPE &_rValue)
sal_uInt32 release(bool bUnlockAll=false)
virtual bool IsCurrentThread() const
void acquire(sal_uInt32 nLockCount=1)
static OUString getProductVersion()
static OUString getProductName()
css::uno::Any getNodeValue(const OUString &_rPath) const noexcept
static OConfigurationTreeRoot createWithComponentContext(const css::uno::Reference< css::uno::XComponentContext > &_rxContext, const OUString &_rPath, sal_Int32 _nDepth=-1, CREATION_MODE _eMode=CM_UPDATABLE)
#define TOOLS_WARN_EXCEPTION(area, stream)
#define DBG_UNHANDLED_EXCEPTION(...)
constexpr OUStringLiteral ODFVER_013_TEXT
#define ERRCODE_INET_WRITE
#define ERRCODE_INET_GENERAL
#define ERRCODE_INET_OFFLINE
#define ERRCODE_INET_READ
#define ERRCODE_INET_CONNECT
#define ERRCODE_INET_NAME_RESOLVE
void getContinuations(css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations, css::uno::Reference< t1 > *pContinuation1, css::uno::Reference< t2 > *pContinuation2)
std::vector< InteractionHandlerData > InteractionHandlerDataList
#define ERRCODE_UUI_WRONGJAVA
#define ERRCODE_UUI_CONFIGURATION_BACKENDMISSING
#define ERRCODE_UUI_IO_MODULESIZEEXCEEDED
#define ERRCODE_UUI_CONFIGURATION_BROKENDATA_NOREMOVE
#define ERRCODE_UUI_WRONGJAVA_VERSION
#define ERRCODE_UUI_INVALID_XFORMS_SUBMISSION_DATA
#define ERRCODE_UUI_WRONGMEDIUM
#define ERRCODE_UUI_IO_UNSUPPORTEDOVERWRITE
#define ERRCODE_UUI_LOCKING_LOCKED_SELF
#define ERRCODE_UUI_CANNOT_ACTIVATE_FACTORY
#define ERRCODE_UUI_IO_EXOTICFILEFORMAT
#define ERRCODE_UUI_CONFIGURATION_BROKENDATA_WITHREMOVE
#define ERRCODE_UUI_LOCKING_LOCKED
#define ERRCODE_UUI_LOCKING_NOT_LOCKED
#define ERRCODE_UUI_WRONGJAVA_MIN
#define ERRCODE_UUI_IO_BROKENPACKAGE_CANTREPAIR
#define ERRCODE_UUI_WRONGJAVA_VERSION_MIN
#define ERRCODE_UUI_IO_TARGETALREADYEXISTS
#define ERRCODE_UUI_IO_BROKENPACKAGE
#define ERRCODE_UUI_IO_ALREADYEXISTS
#define ERRCODE_UUI_LOCKING_LOCK_EXPIRED
Sequence< PropertyValue > aArguments
#define SAL_WARN_IF(condition, area, stream)
#define SAL_WARN(area, stream)
struct _typelib_TypeDescription typelib_TypeDescription
NameClashResolveDialogResult
std::locale Create(std::string_view aPrefixName, const LanguageTag &rLocale)
OUString get(TranslateId sContextAndId, const std::locale &loc)
OUString convertCommaSeparated(uno::Sequence< OUString > const &i_rSeq)
css::uno::Sequence< css::uno::Any > InitAnyPropertySequence(::std::initializer_list< ::std::pair< OUString, css::uno::Any > > vInit)
#define ERRCODE_SFX_INCOMPLETE_ENCRYPTION
OUString ServiceName
The UNO service name to use to instantiate the content provider.
VCL_DLLPUBLIC Application * GetpApp()