26 #include <com/sun/star/task/ErrorCodeRequest.hpp>
27 #include <com/sun/star/task/XInteractionHandler.hpp>
28 #include <com/sun/star/task/XInteractionRequest.hpp>
29 #include <com/sun/star/task/XInteractionPassword.hpp>
30 #include <com/sun/star/task/DocumentPasswordRequest.hpp>
33 #include <osl/mutex.hxx>
34 #include <rtl/ref.hxx>
42 class PDFPasswordRequest:
43 public cppu::WeakImplHelper<
44 task::XInteractionRequest, task::XInteractionPassword >
53 explicit PDFPasswordRequest(
bool bFirstTry,
const OUString& rName);
54 PDFPasswordRequest(
const PDFPasswordRequest&) =
delete;
55 PDFPasswordRequest& operator=(
const PDFPasswordRequest&) =
delete;
58 virtual uno::Any SAL_CALL getRequest( )
override;
59 virtual uno::Sequence< uno::Reference< task::XInteractionContinuation > > SAL_CALL
getContinuations( )
override;
62 virtual void SAL_CALL setPassword(
const OUString& rPwd )
override;
66 virtual void SAL_CALL select()
override;
68 bool isSelected()
const { osl::MutexGuard
const guard( m_aMutex );
return m_bSelected; }
71 virtual ~PDFPasswordRequest()
override {}
74 PDFPasswordRequest::PDFPasswordRequest(
bool bFirstTry,
const OUString& rName ) :
77 task::DocumentPasswordRequest(
79 task::InteractionClassification_QUERY,
81 ?
task::PasswordRequestMode_PASSWORD_ENTER
82 :
task::PasswordRequestMode_PASSWORD_REENTER),
87 uno::Any PDFPasswordRequest::getRequest()
92 uno::Sequence< uno::Reference< task::XInteractionContinuation > > PDFPasswordRequest::getContinuations()
94 uno::Sequence< uno::Reference< task::XInteractionContinuation > > aRet( 1 );
99 void PDFPasswordRequest::setPassword(
const OUString& rPwd )
101 osl::MutexGuard
const guard( m_aMutex );
108 osl::MutexGuard
const guard( m_aMutex );
113 void PDFPasswordRequest::select()
115 osl::MutexGuard
const guard( m_aMutex );
120 class UnsupportedEncryptionFormatRequest:
121 public cppu::WeakImplHelper< task::XInteractionRequest >
124 UnsupportedEncryptionFormatRequest() {}
125 UnsupportedEncryptionFormatRequest(
const UnsupportedEncryptionFormatRequest&) =
delete;
126 UnsupportedEncryptionFormatRequest& operator=(
const UnsupportedEncryptionFormatRequest&) =
delete;
129 virtual ~UnsupportedEncryptionFormatRequest()
override {}
131 virtual uno::Any SAL_CALL getRequest()
override {
133 task::ErrorCodeRequest(
134 OUString(), uno::Reference< uno::XInterface >(),
135 sal_uInt32(ERRCODE_IO_WRONGVERSION)));
140 virtual uno::Sequence< uno::Reference< task::XInteractionContinuation > >
143 uno::Sequence< uno::Reference< task::XInteractionContinuation > >();
152 bool getPassword(
const uno::Reference< task::XInteractionHandler >& xHandler,
155 const OUString& rDocName
158 bool bSuccess =
false;
161 new PDFPasswordRequest( bFirstTry, rDocName ) );
164 xHandler->handle( xReq.get() );
166 catch( uno::Exception& )
170 if( xReq->isSelected() )
173 rOutPwd = xReq->getPassword();
180 uno::Reference< task::XInteractionHandler >
const & handler)
183 handler->handle(
new UnsupportedEncryptionFormatRequest);
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
void reportUnsupportedEncryptionFormat(uno::Reference< task::XInteractionHandler > const &handler)
exports com.sun.star. task
bool getPassword(const uno::Reference< task::XInteractionHandler > &xHandler, OUString &rOutPwd, bool bFirstTry, const OUString &rDocName)
void getContinuations(css::uno::Sequence< css::uno::Reference< css::task::XInteractionContinuation > > const &rContinuations, css::uno::Reference< t1 > *pContinuation1, css::uno::Reference< t2 > *pContinuation2)
css::uno::Any SAL_CALL makeAny(const SharedUNOComponent< INTERFACE, COMPONENT > &value)