diff options
author | Ivo Hinkelmann <ihi@openoffice.org> | 2009-06-16 16:15:54 +0000 |
---|---|---|
committer | Ivo Hinkelmann <ihi@openoffice.org> | 2009-06-16 16:15:54 +0000 |
commit | a245ebc7519f4ccd3a5bc2f2c841fa379c6f947c (patch) | |
tree | de5165219c59ea5b42cc448b6aa06c56a8282fcd /embeddedobj | |
parent | 23337b9a2d42b6ce33cd5d3a09e7c09e2a0effdc (diff) |
CWS-TOOLING: integrate CWS fwk103
2009-05-26 12:44:25 +0200 mst r272292 : #i100727#
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx:
+ fix warning: rename method to prevent overloading
2009-05-19 13:42:31 +0200 mav r272075 : #i101356# add comment
2009-05-19 10:56:24 +0200 mav r272062 : #i101356# register the singleton correctly
2009-05-19 10:25:42 +0200 mav r272060 : #i101356# register the singleton correctly
2009-05-18 12:48:48 +0200 mav r272013 : #i91306# fix the typo
2009-05-14 08:50:06 +0200 mav r271871 : #i101356# reduce the amount of macros
2009-05-13 13:26:08 +0200 mav r271858 : #i101356# reduce the amount of macros
2009-05-13 11:29:16 +0200 mav r271849 : #i101356# reduce the amount of macros
2009-05-12 12:09:42 +0200 mav r271815 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 12:03:20 +0200 mav r271814 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:58:48 +0200 mav r271813 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:53:05 +0200 mav r271812 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:48:36 +0200 mav r271810 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:43:45 +0200 mav r271809 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:39:38 +0200 mav r271808 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:37:38 +0200 mav r271806 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:33:58 +0200 mav r271805 : #i101356# allow to generate a small log if a document can not be stored
2009-05-12 11:30:01 +0200 mav r271804 : #i101356# allow to generate a small log if a document can not be stored
2009-05-06 17:43:38 +0200 mst r271607 : #i100727#
- svtools/source/svhtml/parhtml.cxx:
+ adapt code to renaming of HTML constants (sb107)
2009-05-05 11:14:18 +0200 mav r271507 : #i101222# avoid warning
2009-05-05 10:27:23 +0200 mav r271505 : #i101426# send the modified() notification only when the document can be modified
2009-05-05 10:25:07 +0200 mav r271504 : #i101426# send the modified() notification only when the document is modified
2009-05-05 08:42:48 +0200 mav r271497 : CWS-TOOLING: rebase CWS fwk103 to trunk@271427 (milestone: DEV300:m47)
2009-04-30 13:32:11 +0200 mav r271412 : #i100518# check the template folders quietly
2009-04-29 20:04:25 +0200 mst r271393 : - sw/source/filter/html/swhtml.cxx:
+ fix wrong initialization order in constructor
2009-04-28 12:28:46 +0200 mav r271319 : #i99142# set the error correctly
2009-04-28 08:44:48 +0200 mav r271305 : #i99050# clear hidden flag if necessary
2009-04-28 08:40:10 +0200 mav r271304 : #i99050# avoid crash
2009-04-22 07:40:11 +0200 mav r271056 : #i101093# lets not affect the performance
2009-04-15 09:30:47 +0200 cd r270820 : #i99771# Fix warnings for gcc 4.4
2009-04-15 09:19:52 +0200 cd r270819 : #i99771# Fix warnings for gcc 4.4
2009-04-15 08:42:34 +0200 cd r270817 : #i99771# Fix warnings for gcc 4.4
2009-04-14 14:31:01 +0200 mav r270768 : #i99493# fix typo
2009-04-01 12:45:43 +0200 mst r270317 : fix #i100727#
- svtools/inc/svtools/svparser.hxx, svtools/source/svrtf/svparser.cxx,
sfx2/inc/sfx2/docfile.hxx, sfx2/source/doc/{objmisc.cxx,docfile.cxx}:
+ move SvKeyValue stuff from sfx2 to svtools
- svtools/inc/svtools/parhtml.hxx, svtools/source/svhtml/parhtml.cxx,
sfx2/inc/sfx2/sfxhtml.hxx, sfx2/source/bastyp/sfxhtml.cxx:
+ move ParseMetaOptions() and GetEncodingByMIME() from SfxHTMLParser (sfx2)
to HTMLParser (svtools)
+ make HTMLParser::ParseMetaOptions() a virtual function
+ HTMLParser::ParseMetaOptions() calls GetExtendedCompatibilityTextEncoding()
+ new template method HTMLParser::AddMetaUserDefined()
- svtools/source/svhtml/makefile.mk:
+ enable exceptions for parhtml.cxx
- dbaccess/source/ui/misc/HtmlReader.cxx,
sc/source/filter/html/htmlpars.cxx:
+ remove encoding related code duplication
- sw/source/filter/html/{swhtml{.hxx,.cxx},htmlfld.cxx}:
+ new SwHTMLParser::AddMetaUserDefined() for import of
DOCINFO field subtypes INFO[1-4]
+ do not use DocumentInfo for import of DOCINFO field subtypes INFO[1-4]
2009-03-31 17:01:35 +0200 mav r270288 : #i91214# fix typo
2009-03-31 15:19:41 +0200 mav r270285 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 15:00:36 +0200 mav r270284 : #i100123# allow to turn OOo locking mechanics off
2009-03-31 12:19:13 +0200 mav r270270 : #i100123# taking the lock file over throws no exception
2009-03-30 13:57:21 +0200 mav r270227 : #i100351# fix the typo
2009-03-30 13:47:26 +0200 mav r270225 : #i99885# let OK be default button
2009-03-29 19:38:55 +0200 mav r270190 : CWS-TOOLING: rebase CWS fwk103 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 16:39:48 +0100 mav r269558 : #i93558# convert the attributes as well
2009-03-13 15:35:55 +0100 mav r269488 : #i93558# improve manifest.xml parsing
2009-03-13 08:47:00 +0100 mav r269454 : #i96205# allow to remove password on SaveAs
2009-03-12 13:36:07 +0100 mav r269398 : #i91306# show special error in case of shared document
2009-03-12 13:33:35 +0100 mav r269397 : #i91306# introduce the new error-message
2009-03-12 11:40:42 +0100 mst r269378 : fix #i90877#
- svtools/source/uno/unoevent.cxx:
+ use proper operator delete[]
2009-02-26 15:23:10 +0100 mav r268526 : #i91214# do not use ATL
2009-02-26 14:19:06 +0100 mav r268516 : #i98909# integrate the patch
2009-02-10 17:29:52 +0100 cd r267568 : #i98649# Make sure that we catch the NoSuchElementException when a module is not installed.
Diffstat (limited to 'embeddedobj')
-rw-r--r-- | embeddedobj/source/msole/makefile.mk | 8 | ||||
-rw-r--r-- | embeddedobj/source/msole/olecomponent.cxx | 152 | ||||
-rw-r--r-- | embeddedobj/source/msole/platform.h | 11 |
3 files changed, 137 insertions, 34 deletions
diff --git a/embeddedobj/source/msole/makefile.mk b/embeddedobj/source/msole/makefile.mk index 3e8a55c7219c..2af3f28183d2 100644 --- a/embeddedobj/source/msole/makefile.mk +++ b/embeddedobj/source/msole/makefile.mk @@ -39,14 +39,10 @@ TARGET=emboleobj .INCLUDE : settings.mk -.IF "$(DISABLE_ATL)"=="" +# .IF "$(DISABLE_ATL)"=="" LIBTARGET=NO USE_DEFFILE=YES -INCPRE+=$(ATL_INCLUDE) -.IF "$(MFC_INCLUDE)"!="" -INCPRE+=$(MFC_INCLUDE) -.ENDIF # --- Files -------------------------------------------------------- @@ -134,7 +130,7 @@ SHL1DEF= $(MISC)$/$(SHL1TARGET).def DEF1NAME= $(SHL1TARGET) -.ENDIF +# .ENDIF # --- Targets ------------------------------------------------------- .INCLUDE : target.mk diff --git a/embeddedobj/source/msole/olecomponent.cxx b/embeddedobj/source/msole/olecomponent.cxx index 8648d793b3f1..4402c94e097f 100644 --- a/embeddedobj/source/msole/olecomponent.cxx +++ b/embeddedobj/source/msole/olecomponent.cxx @@ -58,6 +58,120 @@ using namespace ::comphelper; #define MAX_ENUM_ELE 20 #define FORMATS_NUM 3 +// ============ class ComSmart ===================== +namespace { + +template< class T > class ComSmart +{ + T* m_pInterface; + + void OwnRelease() + { + if ( m_pInterface ) + { + T* pInterface = m_pInterface; + m_pInterface = NULL; + pInterface->Release(); + } + } + +public: + ComSmart() + : m_pInterface( NULL ) + {} + + ComSmart( const ComSmart<T>& rObj ) + : m_pInterface( rObj.m_pInterface ) + { + if ( m_pInterface != NULL ) + m_pInterface->AddRef(); + } + + ComSmart( T* pInterface ) + : m_pInterface( pInterface ) + { + if ( m_pInterface != NULL ) + m_pInterface->AddRef(); + } + + ~ComSmart() + { + OwnRelease(); + } + + ComSmart& operator=( const ComSmart<T>& rObj ) + { + OwnRelease(); + + m_pInterface = rObj.m_pInterface; + + if ( m_pInterface != NULL ) + m_pInterface->AddRef(); + + return *this; + } + + ComSmart<T>& operator=( T* pInterface ) + { + OwnRelease(); + + m_pInterface = pInterface; + + if ( m_pInterface != NULL ) + m_pInterface->AddRef(); + + return *this; + } + + operator T*() const + { + return m_pInterface; + } + + T& operator*() const + { + return *m_pInterface; + } + + T** operator&() + { + OwnRelease(); + + m_pInterface = NULL; + + return &m_pInterface; + } + + T* operator->() const + { + return m_pInterface; + } + + BOOL operator==( const ComSmart<T>& rObj ) const + { + return ( m_pInterface == rObj.m_pInterface ); + } + + BOOL operator!=( const ComSmart<T>& rObj ) const + { + return ( m_pInterface != rObj.m_pInterface ); + } + + BOOL operator==( const T* pInterface ) const + { + return ( m_pInterface == pInterface ); + } + + BOOL operator!=( const T* pInterface ) const + { + return ( m_pInterface != pInterface ); + } +}; + +} + +// ============ class ComSmart ===================== + sal_Bool ConvertBufferToFormat( void* pBuf, sal_uInt32 nBufSize, const ::rtl::OUString& aFormatShortName, @@ -74,10 +188,10 @@ FORMATETC pFormatTemplates[FORMATS_NUM] = { struct OleComponentNative_Impl { - CComPtr< IUnknown > m_pObj; - CComPtr< IOleObject > m_pOleObject; - CComPtr< IViewObject2 > m_pViewObject2; - CComPtr< IStorage > m_pIStorage; + ComSmart< IUnknown > m_pObj; + ComSmart< IOleObject > m_pOleObject; + ComSmart< IViewObject2 > m_pViewObject2; + ComSmart< IStorage > m_pIStorage; FormatEtcList m_aFormatsList; uno::Sequence< datatransfer::DataFlavor > m_aSupportedGraphFormats; uno::Sequence< ::rtl::OUString > m_aGraphShortFormats; //short names for formats from previous sequence @@ -509,11 +623,11 @@ void OleComponent::RetrieveObjectDataFlavors_Impl() if ( !m_aDataFlavors.getLength() ) { - CComPtr< IDataObject > pDataObject; + ComSmart< IDataObject > pDataObject; HRESULT hr = m_pNativeImpl->m_pObj->QueryInterface( IID_IDataObject, (void**)&pDataObject ); if ( SUCCEEDED( hr ) && pDataObject ) { - CComPtr< IEnumFORMATETC > pFormatEnum; + ComSmart< IEnumFORMATETC > pFormatEnum; hr = pDataObject->EnumFormatEtc( DATADIR_GET, &pFormatEnum ); if ( SUCCEEDED( hr ) && pFormatEnum ) { @@ -561,11 +675,11 @@ sal_Bool OleComponent::InitializeObject_Impl() return sal_False; // the linked object will be detected here - CComPtr< IOleLink > pOleLink; + ComSmart< IOleLink > pOleLink; HRESULT hr = m_pNativeImpl->m_pObj->QueryInterface( IID_IOleLink, (void**)&pOleLink ); OSL_ENSURE( m_pUnoOleObject, "Unexpected object absence!" ); if ( m_pUnoOleObject ) - m_pUnoOleObject->SetObjectIsLink_Impl( pOleLink != NULL ); + m_pUnoOleObject->SetObjectIsLink_Impl( sal_Bool( pOleLink != NULL ) ); hr = m_pNativeImpl->m_pObj->QueryInterface( IID_IViewObject2, (void**)&m_pNativeImpl->m_pViewObject2 ); @@ -799,7 +913,7 @@ void OleComponent::InitEmbeddedCopyOfLink( OleComponent* pOleLinkComponent ) if ( m_pNativeImpl->m_pIStorage ) throw io::IOException(); // TODO:the object is already initialized - CComPtr< IDataObject > pDataObject; + ComSmart< IDataObject > pDataObject; HRESULT hr = pOleLinkComponent->m_pNativeImpl->m_pObj->QueryInterface( IID_IDataObject, (void**)&pDataObject ); if ( SUCCEEDED( hr ) && pDataObject && SUCCEEDED( OleQueryCreateFromData( pDataObject ) ) ) { @@ -819,12 +933,12 @@ void OleComponent::InitEmbeddedCopyOfLink( OleComponent* pOleLinkComponent ) if ( !m_pNativeImpl->m_pObj ) { - CComPtr< IOleLink > pOleLink; + ComSmart< IOleLink > pOleLink; hr = pOleLinkComponent->m_pNativeImpl->m_pObj->QueryInterface( IID_IOleLink, (void**)&pOleLink ); if ( FAILED( hr ) || !pOleLink ) throw io::IOException(); // TODO: the object doesn't support IOleLink - CComPtr< IMoniker > pMoniker; + ComSmart< IMoniker > pMoniker; hr = pOleLink->GetSourceMoniker( &pMoniker ); if ( FAILED( hr ) || !pMoniker ) throw io::IOException(); // TODO: can not retrieve moniker @@ -834,7 +948,7 @@ void OleComponent::InitEmbeddedCopyOfLink( OleComponent* pOleLinkComponent ) hr = pMoniker->IsSystemMoniker( &aMonType ); if ( SUCCEEDED( hr ) && aMonType == MKSYS_FILEMONIKER ) { - CComPtr< IMalloc > pMalloc; + ComSmart< IMalloc > pMalloc; CoGetMalloc( 1, &pMalloc ); // if fails there will be a memory leak OSL_ENSURE( pMalloc, "CoGetMalloc() failed!" ); @@ -860,11 +974,11 @@ void OleComponent::InitEmbeddedCopyOfLink( OleComponent* pOleLinkComponent ) // in case of other moniker types the only way is to get storage if ( !m_pNativeImpl->m_pObj ) { - CComPtr< IBindCtx > pBindCtx; + ComSmart< IBindCtx > pBindCtx; hr = CreateBindCtx( 0, ( LPBC FAR* )&pBindCtx ); if ( SUCCEEDED( hr ) && pBindCtx ) { - CComPtr< IStorage > pObjectStorage; + ComSmart< IStorage > pObjectStorage; hr = pMoniker->BindToStorage( pBindCtx, NULL, IID_IStorage, (void**)&pObjectStorage ); if ( SUCCEEDED( hr ) && pObjectStorage ) { @@ -948,7 +1062,7 @@ uno::Sequence< embed::VerbDescriptor > OleComponent::GetVerbList() if( !m_aVerbList.getLength() ) { - CComPtr< IEnumOLEVERB > pEnum; + ComSmart< IEnumOLEVERB > pEnum; if( SUCCEEDED( m_pNativeImpl->m_pOleObject->EnumVerbs( &pEnum ) ) ) { OLEVERB szEle[ MAX_ENUM_ELE ]; @@ -1045,7 +1159,7 @@ awt::Size OleComponent::GetExtent( sal_Int64 nAspect ) if ( nMSAspect == DVASPECT_CONTENT ) { // Try to get the size from the replacement image first - CComPtr< IDataObject > pDataObject; + ComSmart< IDataObject > pDataObject; HRESULT hr = m_pNativeImpl->m_pObj->QueryInterface( IID_IDataObject, (void**)&pDataObject ); if ( SUCCEEDED( hr ) || pDataObject ) { @@ -1190,7 +1304,7 @@ sal_Bool OleComponent::IsDirty() if ( IsWorkaroundActive() ) return sal_True; - CComPtr< IPersistStorage > pPersistStorage; + ComSmart< IPersistStorage > pPersistStorage; HRESULT hr = m_pNativeImpl->m_pObj->QueryInterface( IID_IPersistStorage, (void**)&pPersistStorage ); if ( FAILED( hr ) || !pPersistStorage ) throw io::IOException(); // TODO @@ -1205,7 +1319,7 @@ void OleComponent::StoreOwnTmpIfNecessary() if ( !m_pNativeImpl->m_pOleObject ) throw embed::WrongStateException(); // TODO: the object is in wrong state - CComPtr< IPersistStorage > pPersistStorage; + ComSmart< IPersistStorage > pPersistStorage; HRESULT hr = m_pNativeImpl->m_pObj->QueryInterface( IID_IPersistStorage, (void**)&pPersistStorage ); if ( FAILED( hr ) || !pPersistStorage ) throw io::IOException(); // TODO @@ -1439,7 +1553,7 @@ uno::Any SAL_CALL OleComponent::getTransferData( const datatransfer::DataFlavor& DWORD nRequestedAspect = GetAspectFromFlavor( aFlavor ); // if own icon is set and icon aspect is requested the own icon can be returned directly - CComPtr< IDataObject > pDataObject; + ComSmart< IDataObject > pDataObject; HRESULT hr = m_pNativeImpl->m_pObj->QueryInterface( IID_IDataObject, (void**)&pDataObject ); if ( FAILED( hr ) || !pDataObject ) throw io::IOException(); // TODO: transport error code diff --git a/embeddedobj/source/msole/platform.h b/embeddedobj/source/msole/platform.h index 1c089fb884bf..a3700ca146b3 100644 --- a/embeddedobj/source/msole/platform.h +++ b/embeddedobj/source/msole/platform.h @@ -41,16 +41,9 @@ #pragma warning(push, 1) #pragma warning(disable: 4548 4555 4917) #endif + #include "windows.h" -#ifdef __MINGW32__ -#include <atlbase.h> -#else -#if defined(_MSC_VER) && (_MSC_VER > 1310) -#include <atldbcli.h> -#else -#include "atlcomcli.h" -#endif -#endif + #if defined _MSC_VER #pragma warning(pop) #endif |