LibreOffice Module embeddedobj (master) 1
oleembobj.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#pragma once
21
22#include <com/sun/star/uno/Sequence.hxx>
23#include <com/sun/star/uno/Reference.hxx>
24#include <com/sun/star/embed/XEmbeddedObject.hpp>
25#include <com/sun/star/embed/XEmbeddedOleObject.hpp>
26#include <com/sun/star/embed/XInplaceObject.hpp>
27#include <com/sun/star/embed/XEmbedPersist.hpp>
28#include <com/sun/star/embed/XLinkageSupport.hpp>
29#include <com/sun/star/embed/VerbDescriptor.hpp>
30#include <com/sun/star/container/XChild.hpp>
31#include <com/sun/star/util/XCloseable.hpp>
32#include <com/sun/star/util/XCloseListener.hpp>
33#include <com/sun/star/io/XActiveDataStreamer.hpp>
34#include <com/sun/star/lang/XInitialization.hpp>
35#include <com/sun/star/lang/XServiceInfo.hpp>
36#include <com/sun/star/uno/XComponentContext.hpp>
38#include <rtl/ref.hxx>
39
40#include <osl/thread.h>
41#include <memory>
42
43namespace comphelper {
44 class OMultiTypeInterfaceContainerHelper2;
45}
46
48{
49 // the following mutex is allowed to be locked only for variables initialization, so no deadlock can be caused
51
53
54#ifdef _WIN32
55 bool m_bWasEverActive;
56 bool m_bVerbExecutionInProgress;
57 oslThreadIdentifier m_nVerbExecutionThreadIdentifier;
58 bool m_bChangedOnVerbExecution;
59#endif
60
61public:
62
65#ifdef _WIN32
66 , m_bWasEverActive( false )
67 , m_bVerbExecutionInProgress( false )
68 , m_nVerbExecutionThreadIdentifier( 0 )
69 , m_bChangedOnVerbExecution( false )
70#endif
71 {}
72
73#ifdef _WIN32
74 void StartControlExecution();
75 bool EndControlExecution_WasModified();
76 void ModificationNotificationIsDone();
77 // no need to lock anything to check the value of the numeric members
78 bool CanDoNotification() { return ( !m_bVerbExecutionInProgress && !m_bWasEverActive && !m_nNotificationLock ); }
79 // ... or to change it
80 void ObjectIsActive() { m_bWasEverActive = true; }
81#endif
82 void LockNotification();
83 void UnlockNotification();
84};
85
87{
89public:
90
92 : m_rController( rController )
93 {
95 }
96
98 {
100 }
101};
102
103
104class OleComponent;
105class OwnView_Impl;
110class OleEmbeddedObject : public ::cppu::WeakImplHelper
111 < css::embed::XEmbeddedObject
112 , css::embed::XEmbeddedOleObject
113 , css::embed::XEmbedPersist
114 , css::embed::XLinkageSupport
115 , css::embed::XInplaceObject
116 , css::container::XChild
117 , css::io::XActiveDataStreamer
118 , css::lang::XInitialization
119 , css::lang::XServiceInfo >
120{
121 friend class OleComponent;
122
123 ::osl::Mutex m_aMutex;
124
126
127 std::unique_ptr<::comphelper::OMultiTypeInterfaceContainerHelper2> m_pInterfaceContainer;
128
130
132 sal_Int32 m_nObjectState;
133 sal_Int32 m_nTargetState;
134 sal_Int32 m_nUpdateMode;
135
136 css::uno::Reference< css::uno::XComponentContext > m_xContext;
137
138 css::uno::Sequence< sal_Int8 > m_aClassID;
139 OUString m_aClassName;
140
141 css::uno::Reference< css::embed::XEmbeddedClient > m_xClientSite;
142
144
145 css::uno::Reference< css::util::XCloseListener > m_xClosePreventer;
146
149 css::uno::Reference< css::io::XStream > m_xNewCachedVisRepl;
151 css::uno::Reference< css::embed::XStorage > m_xNewParentStorage;
152 css::uno::Reference< css::io::XStream > m_xNewObjectStream;
154
155 css::uno::Reference< css::io::XStream > m_xCachedVisualRepresentation;
159
161
162 // TODO/LATER: may need to cache more than one aspect in future
163 bool m_bHasCachedSize; // the object has cached size
164 css::awt::Size m_aCachedSize;
166
167 bool m_bHasSizeToSet; // the object has cached size that should be set to OLE component
168 css::awt::Size m_aSizeToSet; // this size might be different from the cached one ( scaling is applied )
169 sal_Int64 m_nAspectToSet;
170
171
172 // cache the status of the object
173 // TODO/LATER: may need to cache more than one aspect in future
175 sal_Int64 m_nStatus;
177
178 // embedded object related stuff
179 OUString m_aEntryName;
180 css::uno::Reference< css::embed::XStorage > m_xParentStorage;
181 css::uno::Reference< css::io::XStream > m_xObjectStream;
182
183 // link related stuff
184 OUString m_aLinkURL; // ???
185
186 // points to own view provider if the object has no server
188
189 // whether the object should be initialized from clipboard in case of default initialization
191
192 OUString m_aTempURL;
193
195
196 // STAMPIT solution
197 // the following member is used during verb execution to detect whether the verb execution modifies the object
199
200 // if the following member is set, the object works in wrapper mode
201 css::uno::Reference< css::embed::XEmbeddedObject > m_xWrappedObject;
203 OUString m_aFilterName; // if m_bTriedConversion, then the filter detected by that
204
205 css::uno::Reference< css::uno::XInterface > m_xParent;
206
208 bool m_bStreamReadOnly = false;
209
210protected:
212 css::uno::Reference< css::io::XStream > TryToGetAcceptableFormat_Impl(
213 const css::uno::Reference< css::io::XStream >& xStream );
214
217 css::uno::Reference< css::io::XStream > GetNewFilledTempStream_Impl(
218 const css::uno::Reference< css::io::XInputStream >& xInStream );
219#ifdef _WIN32
220 void SwitchComponentToRunningState_Impl();
221#endif
222 void MakeEventListenerNotification_Impl( const OUString& aEventName );
223#ifdef _WIN32
224 void StateChangeNotification_Impl( bool bBeforeChange, sal_Int32 nOldState, sal_Int32 nNewState );
225 css::uno::Reference< css::io::XOutputStream > GetStreamForSaving();
226
227
228 css::uno::Sequence< sal_Int32 > GetIntermediateVerbsSequence_Impl( sal_Int32 nNewState );
229
230 static css::uno::Sequence< sal_Int32 > GetReachableStatesList_Impl(
231 const css::uno::Sequence< css::embed::VerbDescriptor >& aVerbList );
232#endif
233
234 void Dispose();
235
237 const css::uno::Reference< css::embed::XStorage >& xNewParentStorage,
238 const css::uno::Reference< css::io::XStream >& xNewObjectStream,
239 const OUString& aNewName );
240
242 const css::uno::Reference< css::embed::XStorage >& xNewParentStorage,
243 const OUString& aNewName );
244
245 void GetRidOfComponent();
246
249 const css::uno::Reference< css::embed::XStorage >& xStorage,
250 const OUString& sEntName,
251 const css::uno::Sequence< css::beans::PropertyValue >& lObjArgs,
252 bool bSaveAs );
253#ifdef _WIN32
255 void StoreObjectToStream( css::uno::Reference< css::io::XOutputStream > const & xOutStream );
256#endif
259 const css::uno::Reference< css::io::XStream >& xTargetStream,
260 const css::uno::Reference< css::io::XStream >& xCachedVisualRepresentation );
261
263 void RemoveVisualCache_Impl( const css::uno::Reference< css::io::XStream >& xTargetStream );
264
265 void SetVisReplInStream( bool bExists );
266 bool HasVisReplInStream();
267
269 css::embed::VisualRepresentation GetVisualRepresentationInNativeFormat_Impl(
270 const css::uno::Reference< css::io::XStream >& xCachedVisRepr );
271
272 css::uno::Reference< css::io::XStream > TryToRetrieveCachedVisualRepresentation_Impl(
273 const css::uno::Reference< css::io::XStream >& xStream,
274 bool bAllowRepair50 = false )
275 noexcept;
276#ifdef _WIN32
277 bool SaveObject_Impl();
278 bool OnShowWindow_Impl( bool bShow );
279 void CreateOleComponent_Impl( rtl::Reference<OleComponent> const & pOleComponent = {} );
280 void CreateOleComponentAndLoad_Impl( rtl::Reference<OleComponent> const & pOleComponent = {} );
281 void CreateOleComponentFromClipboard_Impl( OleComponent* pOleComponent = nullptr );
282 OUString CreateTempURLEmpty_Impl();
283 OUString GetTempURL_Impl();
284 void SetObjectIsLink_Impl( bool bIsLink ) { m_bIsLink = bIsLink; }
285#endif
286
287 // the following 4 methods are related to switch to wrapping mode
288 void MoveListeners();
289 css::uno::Reference< css::embed::XStorage > CreateTemporarySubstorage( OUString& o_aStorageName );
290 OUString MoveToTemporarySubstream();
291 bool TryToConvertToOOo( const css::uno::Reference< css::io::XStream >& xStream );
292
293public:
294 // in case a new object must be created the class ID must be specified
295 OleEmbeddedObject( css::uno::Reference< css::uno::XComponentContext > xContext,
296 const css::uno::Sequence< sal_Int8 >& aClassID,
297 OUString aClassName );
298
299 // in case object will be loaded from a persistent entry or from a file the class ID will be detected on loading
300 // factory can do it for OOo objects, but for OLE objects OS dependent code is required
301 OleEmbeddedObject( css::uno::Reference< css::uno::XComponentContext > xContext,
302 bool bLink );
303#ifdef _WIN32
304 // this constructor let object be initialized from clipboard
305 OleEmbeddedObject( const css::uno::Reference< css::uno::XComponentContext >& xContext );
306#endif
307
308 virtual ~OleEmbeddedObject() override;
309
310#ifdef _WIN32
311 static void OnIconChanged_Impl();
312 void OnViewChanged_Impl();
313 void OnClosed_Impl();
314#endif
315
316// XEmbeddedObject
317
318 virtual void SAL_CALL changeState( sal_Int32 nNewState ) override;
319
320 virtual css::uno::Sequence< sal_Int32 > SAL_CALL getReachableStates() override;
321
322 virtual sal_Int32 SAL_CALL getCurrentState() override;
323
324 virtual void SAL_CALL doVerb( sal_Int32 nVerbID ) override;
325
326 virtual css::uno::Sequence< css::embed::VerbDescriptor > SAL_CALL getSupportedVerbs() override;
327
328 virtual void SAL_CALL setClientSite(
329 const css::uno::Reference< css::embed::XEmbeddedClient >& xClient ) override;
330
331 virtual css::uno::Reference< css::embed::XEmbeddedClient > SAL_CALL getClientSite() override;
332
333 virtual void SAL_CALL update() override;
334
335 virtual void SAL_CALL setUpdateMode( sal_Int32 nMode ) override;
336
337 virtual sal_Int64 SAL_CALL getStatus( sal_Int64 nAspect ) override;
338
339 virtual void SAL_CALL setContainerName( const OUString& sName ) override;
340
341
342// XVisualObject
343
344 virtual void SAL_CALL setVisualAreaSize( sal_Int64 nAspect, const css::awt::Size& aSize ) override;
345
346 virtual css::awt::Size SAL_CALL getVisualAreaSize( sal_Int64 nAspect ) override;
347
348 virtual css::embed::VisualRepresentation SAL_CALL getPreferredVisualRepresentation( ::sal_Int64 nAspect ) override;
349
350 virtual sal_Int32 SAL_CALL getMapUnit( sal_Int64 nAspect ) override;
351
352
353// XEmbedPersist
354
355 virtual void SAL_CALL setPersistentEntry(
356 const css::uno::Reference< css::embed::XStorage >& xStorage,
357 const OUString& sEntName,
358 sal_Int32 nEntryConnectionMode,
359 const css::uno::Sequence< css::beans::PropertyValue >& lArguments,
360 const css::uno::Sequence< css::beans::PropertyValue >& lObjArgs ) override;
361
362 virtual void SAL_CALL storeToEntry( const css::uno::Reference< css::embed::XStorage >& xStorage, const OUString& sEntName, const css::uno::Sequence< css::beans::PropertyValue >& lArguments, const css::uno::Sequence< css::beans::PropertyValue >& lObjArgs ) override;
363
364 virtual void SAL_CALL storeAsEntry(
365 const css::uno::Reference< css::embed::XStorage >& xStorage,
366 const OUString& sEntName,
367 const css::uno::Sequence< css::beans::PropertyValue >& lArguments,
368 const css::uno::Sequence< css::beans::PropertyValue >& lObjArgs ) override;
369
370 virtual void SAL_CALL saveCompleted( sal_Bool bUseNew ) override;
371
372 virtual sal_Bool SAL_CALL hasEntry() override;
373
374 virtual OUString SAL_CALL getEntryName() override;
375
376// XLinkageSupport
377
378 virtual void SAL_CALL breakLink( const css::uno::Reference< css::embed::XStorage >& xStorage,
379 const OUString& sEntName ) override;
380
381 virtual sal_Bool SAL_CALL isLink() override;
382
383 virtual OUString SAL_CALL getLinkURL() override;
384
385// XCommonEmbedPersist
386 virtual void SAL_CALL storeOwn() override;
387
388 virtual sal_Bool SAL_CALL isReadonly() override;
389
390 virtual void SAL_CALL reload(
391 const css::uno::Sequence< css::beans::PropertyValue >& lArguments,
392 const css::uno::Sequence< css::beans::PropertyValue >& lObjArgs ) override;
393
394// XClassifiedObject
395
396 virtual css::uno::Sequence< sal_Int8 > SAL_CALL getClassID() override;
397
398 virtual OUString SAL_CALL getClassName() override;
399
400 virtual void SAL_CALL setClassInfo(
401 const css::uno::Sequence< sal_Int8 >& aClassID, const OUString& aClassName ) override;
402
403// XStateChangeBroadcaster
404 virtual void SAL_CALL addStateChangeListener( const css::uno::Reference< css::embed::XStateChangeListener >& xListener ) override;
405 virtual void SAL_CALL removeStateChangeListener( const css::uno::Reference< css::embed::XStateChangeListener >& xListener ) override;
406
407
408// XComponentSupplier
409
410 virtual css::uno::Reference< css::util::XCloseable > SAL_CALL getComponent() override;
411
412// XCloseable
413
414 virtual void SAL_CALL close( sal_Bool DeliverOwnership ) override;
415
416 virtual void SAL_CALL addCloseListener(
417 const css::uno::Reference< css::util::XCloseListener >& Listener ) override;
418
419 virtual void SAL_CALL removeCloseListener(
420 const css::uno::Reference< css::util::XCloseListener >& Listener ) override;
421
422// XEventBroadcaster
423 virtual void SAL_CALL addEventListener(
424 const css::uno::Reference< css::document::XEventListener >& Listener ) override;
425
426 virtual void SAL_CALL removeEventListener(
427 const css::uno::Reference< css::document::XEventListener >& Listener ) override;
428
429// XInplaceObject ( only for wrapping scenario here )
430
431 virtual void SAL_CALL setObjectRectangles( const css::awt::Rectangle& aPosRect,
432 const css::awt::Rectangle& aClipRect ) override;
433
434 virtual void SAL_CALL enableModeless( sal_Bool bEnable ) override;
435
436 virtual void SAL_CALL translateAccelerators(
437 const css::uno::Sequence< css::awt::KeyEvent >& aKeys ) override;
438
439 // XChild ( only for wrapping scenario here )
440 virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getParent( ) override;
441 virtual void SAL_CALL setParent( const css::uno::Reference< css::uno::XInterface >& Parent ) override;
442
443 // XActiveDataStreamer
444 void SAL_CALL setStream(const css::uno::Reference<css::io::XStream>& xStream) override;
445 css::uno::Reference<css::io::XStream> SAL_CALL getStream() override;
446
447 // XInitialization
448 void SAL_CALL initialize(const css::uno::Sequence<css::uno::Any>& rArguments) override;
449
450 // XServiceInfo
451 OUString SAL_CALL getImplementationName() override;
452 sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
453 css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override;
454};
455
456/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
bool SaveObject_Impl()
bool OnShowWindow_Impl(bool bShow)
Represents an OLE object that has native data and we try to let an external application handle that d...
Definition: oleembobj.hxx:120
css::uno::Reference< css::embed::XEmbeddedClient > m_xClientSite
Definition: oleembobj.hxx:141
css::uno::Reference< css::io::XStream > TryToGetAcceptableFormat_Impl(const css::uno::Reference< css::io::XStream > &xStream)
Definition: olepersist.cxx:274
OUString m_aContainerName
Definition: oleembobj.hxx:143
void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &rArguments) override
Definition: olemisc.cxx:675
OUString m_aNewEntryName
Definition: oleembobj.hxx:150
virtual void SAL_CALL addCloseListener(const css::uno::Reference< css::util::XCloseListener > &Listener) override
Definition: olemisc.cxx:493
void SAL_CALL setStream(const css::uno::Reference< css::io::XStream > &xStream) override
Definition: olemisc.cxx:665
OleEmbeddedObject(css::uno::Reference< css::uno::XComponentContext > xContext, bool bLink)
virtual void SAL_CALL doVerb(sal_Int32 nVerbID) override
Definition: oleembed.cxx:823
virtual css::uno::Sequence< css::embed::VerbDescriptor > SAL_CALL getSupportedVerbs() override
Definition: oleembed.cxx:964
css::uno::Reference< css::io::XStream > m_xCachedVisualRepresentation
Definition: oleembobj.hxx:155
void StoreToLocation_Impl(const css::uno::Reference< css::embed::XStorage > &xStorage, const OUString &sEntName, const css::uno::Sequence< css::beans::PropertyValue > &lObjArgs, bool bSaveAs)
virtual css::awt::Size SAL_CALL getVisualAreaSize(sal_Int64 nAspect) override
Definition: olevisual.cxx:158
css::uno::Reference< css::io::XStream > TryToRetrieveCachedVisualRepresentation_Impl(const css::uno::Reference< css::io::XStream > &xStream, bool bAllowRepair50=false) noexcept
Definition: olepersist.cxx:595
rtl::Reference< OwnView_Impl > m_xOwnView
Definition: oleembobj.hxx:187
virtual OUString SAL_CALL getLinkURL() override
css::uno::Reference< css::io::XStream > GetNewFilledTempStream_Impl(const css::uno::Reference< css::io::XInputStream > &xInStream)
Definition: olepersist.cxx:257
virtual css::embed::VisualRepresentation SAL_CALL getPreferredVisualRepresentation(::sal_Int64 nAspect) override
Definition: olevisual.cxx:317
virtual void SAL_CALL setClassInfo(const css::uno::Sequence< sal_Int8 > &aClassID, const OUString &aClassName) override
Definition: olemisc.cxx:335
OleEmbeddedObject(css::uno::Reference< css::uno::XComponentContext > xContext, const css::uno::Sequence< sal_Int8 > &aClassID, OUString aClassName)
bool TryToConvertToOOo(const css::uno::Reference< css::io::XStream > &xStream)
Definition: oleembed.cxx:247
virtual void SAL_CALL storeOwn() override
css::awt::Size m_aCachedSize
Definition: oleembobj.hxx:164
virtual css::uno::Reference< css::uno::XInterface > SAL_CALL getParent() override
Definition: olemisc.cxx:635
css::uno::Reference< css::util::XCloseListener > m_xClosePreventer
Definition: oleembobj.hxx:145
virtual void SAL_CALL removeEventListener(const css::uno::Reference< css::document::XEventListener > &Listener) override
Definition: olemisc.cxx:561
virtual css::uno::Reference< css::util::XCloseable > SAL_CALL getComponent() override
Definition: olemisc.cxx:353
virtual void SAL_CALL enableModeless(sal_Bool bEnable) override
Definition: olemisc.cxx:602
void RemoveVisualCache_Impl(const css::uno::Reference< css::io::XStream > &xTargetStream)
Definition: olepersist.cxx:497
virtual void SAL_CALL setVisualAreaSize(sal_Int64 nAspect, const css::awt::Size &aSize) override
Definition: olevisual.cxx:84
css::uno::Reference< css::embed::XStorage > m_xParentStorage
Definition: oleembobj.hxx:180
css::uno::Reference< css::io::XStream > m_xNewCachedVisRepl
Definition: oleembobj.hxx:149
virtual sal_Bool SAL_CALL hasEntry() override
css::uno::Reference< css::io::XStream > SAL_CALL getStream() override
Definition: olemisc.cxx:670
void MakeEventListenerNotification_Impl(const OUString &aEventName)
Definition: olemisc.cxx:157
void SwitchOwnPersistence(const css::uno::Reference< css::embed::XStorage > &xNewParentStorage, const OUString &aNewName)
virtual OUString SAL_CALL getClassName() override
Definition: olemisc.cxx:316
virtual void SAL_CALL update() override
Definition: oleembed.cxx:1059
css::uno::Reference< css::uno::XInterface > m_xParent
Definition: oleembobj.hxx:205
sal_Int64 m_nAspectToSet
Definition: oleembobj.hxx:169
css::uno::Reference< css::io::XStream > m_xNewObjectStream
Definition: oleembobj.hxx:152
::osl::Mutex m_aMutex
Definition: oleembobj.hxx:123
virtual css::uno::Reference< css::embed::XEmbeddedClient > SAL_CALL getClientSite() override
Definition: oleembed.cxx:1036
virtual void SAL_CALL setParent(const css::uno::Reference< css::uno::XInterface > &Parent) override
Definition: olemisc.cxx:650
virtual ~OleEmbeddedObject() override
Definition: olemisc.cxx:135
OUString m_aTempDumpURL
Definition: oleembobj.hxx:194
virtual OUString SAL_CALL getEntryName() override
css::uno::Sequence< sal_Int8 > m_aClassID
Definition: oleembobj.hxx:138
std::unique_ptr<::comphelper::OMultiTypeInterfaceContainerHelper2 > m_pInterfaceContainer
Definition: oleembobj.hxx:127
virtual void SAL_CALL removeCloseListener(const css::uno::Reference< css::util::XCloseListener > &Listener) override
Definition: olemisc.cxx:516
virtual void SAL_CALL addStateChangeListener(const css::uno::Reference< css::embed::XStateChangeListener > &xListener) override
Definition: olemisc.cxx:389
virtual void SAL_CALL storeAsEntry(const css::uno::Reference< css::embed::XStorage > &xStorage, const OUString &sEntName, const css::uno::Sequence< css::beans::PropertyValue > &lArguments, const css::uno::Sequence< css::beans::PropertyValue > &lObjArgs) override
OUString m_aLinkURL
Definition: oleembobj.hxx:184
OUString m_aEntryName
Definition: oleembobj.hxx:179
sal_Int64 m_nStatusAspect
Definition: oleembobj.hxx:176
bool m_bNewVisReplInStream
Definition: oleembobj.hxx:148
css::embed::VisualRepresentation GetVisualRepresentationInNativeFormat_Impl(const css::uno::Reference< css::io::XStream > &xCachedVisRepr)
Definition: olevisual.cxx:45
void SetVisReplInStream(bool bExists)
Definition: olepersist.cxx:523
OUString m_aClassName
Definition: oleembobj.hxx:139
virtual void SAL_CALL removeStateChangeListener(const css::uno::Reference< css::embed::XStateChangeListener > &xListener) override
Definition: olemisc.cxx:412
virtual sal_Bool SAL_CALL isReadonly() override
virtual void SAL_CALL close(sal_Bool DeliverOwnership) override
Definition: olemisc.cxx:431
virtual sal_Bool SAL_CALL isLink() override
virtual void SAL_CALL setPersistentEntry(const css::uno::Reference< css::embed::XStorage > &xStorage, const OUString &sEntName, sal_Int32 nEntryConnectionMode, const css::uno::Sequence< css::beans::PropertyValue > &lArguments, const css::uno::Sequence< css::beans::PropertyValue > &lObjArgs) override
virtual sal_Int64 SAL_CALL getStatus(sal_Int64 nAspect) override
Definition: oleembed.cxx:1118
void InsertVisualCache_Impl(const css::uno::Reference< css::io::XStream > &xTargetStream, const css::uno::Reference< css::io::XStream > &xCachedVisualRepresentation)
Definition: olepersist.cxx:355
virtual sal_Int32 SAL_CALL getCurrentState() override
Definition: oleembed.cxx:633
rtl::Reference< OleComponent > m_pOleComponent
Definition: oleembobj.hxx:125
virtual css::uno::Sequence< sal_Int8 > SAL_CALL getClassID() override
Definition: olemisc.cxx:297
void MoveListeners()
Definition: oleembed.cxx:122
bool m_bVisReplInitialized
Definition: oleembobj.hxx:156
css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: olemisc.cxx:696
sal_Int32 m_nTargetState
Definition: oleembobj.hxx:133
OUString MoveToTemporarySubstream()
Definition: oleembed.cxx:227
sal_Int64 m_nCachedAspect
Definition: oleembobj.hxx:165
virtual css::uno::Sequence< sal_Int32 > SAL_CALL getReachableStates() override
Definition: oleembed.cxx:593
virtual void SAL_CALL translateAccelerators(const css::uno::Sequence< css::awt::KeyEvent > &aKeys) override
Definition: olemisc.cxx:618
void SwitchOwnPersistence(const css::uno::Reference< css::embed::XStorage > &xNewParentStorage, const css::uno::Reference< css::io::XStream > &xNewObjectStream, const OUString &aNewName)
css::uno::Reference< css::uno::XComponentContext > m_xContext
Definition: oleembobj.hxx:136
VerbExecutionController m_aVerbExecutionController
Definition: oleembobj.hxx:198
virtual void SAL_CALL storeToEntry(const css::uno::Reference< css::embed::XStorage > &xStorage, const OUString &sEntName, const css::uno::Sequence< css::beans::PropertyValue > &lArguments, const css::uno::Sequence< css::beans::PropertyValue > &lObjArgs) override
css::uno::Reference< css::io::XStream > m_xObjectStream
Definition: oleembobj.hxx:181
virtual void SAL_CALL saveCompleted(sal_Bool bUseNew) override
void GetRidOfComponent()
Definition: olemisc.cxx:224
css::uno::Reference< css::embed::XStorage > m_xNewParentStorage
Definition: oleembobj.hxx:151
virtual void SAL_CALL reload(const css::uno::Sequence< css::beans::PropertyValue > &lArguments, const css::uno::Sequence< css::beans::PropertyValue > &lObjArgs) override
sal_Int64 m_nStatus
Definition: oleembobj.hxx:175
OUString SAL_CALL getImplementationName() override
Definition: olemisc.cxx:686
css::uno::Reference< css::embed::XStorage > CreateTemporarySubstorage(OUString &o_aStorageName)
Definition: oleembed.cxx:203
sal_Int32 m_nObjectState
Definition: oleembobj.hxx:132
css::awt::Size m_aSizeToSet
Definition: oleembobj.hxx:168
css::uno::Reference< css::embed::XEmbeddedObject > m_xWrappedObject
Definition: oleembobj.hxx:201
OUString m_aTempURL
Definition: oleembobj.hxx:192
sal_Int32 m_nUpdateMode
Definition: oleembobj.hxx:134
bool HasVisReplInStream()
Definition: olepersist.cxx:530
virtual void SAL_CALL breakLink(const css::uno::Reference< css::embed::XStorage > &xStorage, const OUString &sEntName) override
bool m_bStreamReadOnly
If it is allowed to modify entries in the stream of the OLE storage.
Definition: oleembobj.hxx:208
virtual void SAL_CALL setContainerName(const OUString &sName) override
Definition: oleembed.cxx:1159
virtual void SAL_CALL setUpdateMode(sal_Int32 nMode) override
Definition: oleembed.cxx:1091
virtual sal_Int32 SAL_CALL getMapUnit(sal_Int64 nAspect) override
Definition: olevisual.cxx:403
sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Definition: olemisc.cxx:691
OUString m_aFilterName
Definition: oleembobj.hxx:203
virtual void SAL_CALL setClientSite(const css::uno::Reference< css::embed::XEmbeddedClient > &xClient) override
Definition: oleembed.cxx:1007
virtual void SAL_CALL addEventListener(const css::uno::Reference< css::document::XEventListener > &Listener) override
Definition: olemisc.cxx:538
virtual void SAL_CALL changeState(sal_Int32 nNewState) override
Definition: oleembed.cxx:439
virtual void SAL_CALL setObjectRectangles(const css::awt::Rectangle &aPosRect, const css::awt::Rectangle &aClipRect) override
Definition: olemisc.cxx:585
VerbExecutionController & m_rController
Definition: oleembobj.hxx:88
VerbExecutionControllerGuard(VerbExecutionController &rController)
Definition: oleembobj.hxx:91
::osl::Mutex m_aVerbExecutionMutex
Definition: oleembobj.hxx:50
sal_Int32 m_nNotificationLock
Definition: oleembobj.hxx:52
unsigned char sal_Bool