summaryrefslogtreecommitdiff
path: root/embeddedobj
diff options
context:
space:
mode:
authorIvo Hinkelmann <ihi@openoffice.org>2009-06-16 16:15:54 +0000
committerIvo Hinkelmann <ihi@openoffice.org>2009-06-16 16:15:54 +0000
commita245ebc7519f4ccd3a5bc2f2c841fa379c6f947c (patch)
treede5165219c59ea5b42cc448b6aa06c56a8282fcd /embeddedobj
parent23337b9a2d42b6ce33cd5d3a09e7c09e2a0effdc (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.mk8
-rw-r--r--embeddedobj/source/msole/olecomponent.cxx152
-rw-r--r--embeddedobj/source/msole/platform.h11
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