summaryrefslogtreecommitdiff
path: root/sw/inc
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2009-01-05 14:06:42 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2009-01-05 14:06:42 +0000
commit48119ae05819132c6a4558dac23da8c70cad0814 (patch)
tree51c918f80b3e5295a591b829ddfbcb7be4ee03a4 /sw/inc
parentcbcc85a2f94bb35bbc5c56468bc71d991e2cafec (diff)
CWS-TOOLING: integrate CWS libmsword
2008-12-18 12:33:19 +0100 kendy r265681 : Export less symbols. 2008-12-17 19:26:56 +0100 kendy r265655 : Move libmsword to the -writer package. 2008-12-15 17:46:16 +0100 kendy r265516 : Enable exceptions for iodetect.cxx. 2008-12-15 15:17:53 +0100 kendy r265504 : Deliver the msword.dll. 2008-12-09 19:38:17 +0100 kendy r265138 : Remove accidentally added method. 2008-12-09 19:33:57 +0100 kendy r265137 : Fix linking on Win32. 2008-12-09 18:37:16 +0100 kendy r265135 : Move SwFltControlStack::Delete() to ww1/fltshell.cxx to fix linking. 2008-12-09 18:01:56 +0100 kendy r265127 : Visibility fixes. 2008-12-09 15:51:52 +0100 kendy r265109 : Fix ambiguous usage of class Color. 2008-12-09 14:54:27 +0100 kendy r265091 : Add #include "precompiled_sw.hxx" to fix --enable-pch build. 2008-12-09 14:44:59 +0100 kendy r265088 : Add #include "precompiled_sw.hxx" to fix --enable-pch build. 2008-12-08 19:14:49 +0100 kendy r265015 : #i96313# Get rid of inc/iodetect.cxx, it's a really bad idea to share code by #ifdefing parts of it, and #including a .cxx file ;-) This change moves it to iodetect.cxx, which is compiled to a .o/.obj that is used where needed. 2008-11-20 17:45:08 +0100 kendy r264083 : #i96313# Make the destruction of Readers consistent. 2008-11-20 17:18:11 +0100 kendy r264070 : #i96313# Added missing SW_DLLPUBLIC for (Import|Export)(DOC|RTF). 2008-11-18 19:21:07 +0100 kendy r263797 : #i96313# Remove accidentally added file. 2008-11-18 17:14:31 +0100 kendy r263790 : #i96313# Split doc and rtf filters into a separate library From: Radek Doulik <rodo@novell.com> fix SwFieldBookmark class visibility (suggested by kendy) 2008-11-18 17:14:01 +0100 kendy r263789 : #i96313# Split doc and rtf filters into a separate library From: Fridrich Strba <fstrba@novell.com> add visibility markup to allow linking 2008-11-18 17:13:29 +0100 kendy r263788 : #i96313# Split doc and rtf filters into a separate library From: Jan Holesovsky <kendy@suse.cz> Visibility markup for libmsword. This is the most trivial approach, every class that had a symbol that needed to be visible was marked with SW_DLLPUBLIC; the correct (but more time consuming) way would be to mark just the exact methods that were needed. To be done later if generally shows that the separate libmsword makes sense; and also now we have the upper limit of symbols that needed to be added, and we can only make it better [decrease the number] ;-) 2008-11-18 17:12:58 +0100 kendy r263787 : #i96313# Split doc and rtf filters into a separate library From: Jan Holesovsky <kendy@suse.cz> Added the missing msword.map. 2008-11-18 17:12:25 +0100 kendy r263786 : #i96313# Split doc and rtf filters into a separate library From: Jan Holesovsky <kendy@suse.cz> scp2 change for libmsword. 2008-11-18 17:11:55 +0100 kendy r263785 : #i96313# Split doc and rtf filters into a separate library From: Jan Holesovsky <kendy@suse.cz> Convert the binary .doc and .rtf filters into a separate library. It is called 'libmsword' and loaded on demand when either of the formats (.doc, .rtf) is loaded or saved.
Diffstat (limited to 'sw/inc')
-rw-r--r--sw/inc/SwStyleNameMapper.hxx2
-rw-r--r--sw/inc/anchoreddrawobject.hxx2
-rw-r--r--sw/inc/anchoredobject.hxx2
-rw-r--r--sw/inc/bookmrk.hxx2
-rw-r--r--sw/inc/bparr.hxx3
-rw-r--r--sw/inc/breakit.hxx8
-rw-r--r--sw/inc/calbck.hxx14
-rw-r--r--sw/inc/chpfld.hxx2
-rw-r--r--sw/inc/dbfld.hxx8
-rw-r--r--sw/inc/dcontact.hxx4
-rw-r--r--sw/inc/doc.hxx12
-rw-r--r--sw/inc/docary.hxx2
-rw-r--r--sw/inc/docufld.hxx16
-rw-r--r--sw/inc/expfld.hxx6
-rw-r--r--sw/inc/fchrfmt.hxx2
-rw-r--r--sw/inc/fldbas.hxx2
-rw-r--r--sw/inc/flddat.hxx2
-rw-r--r--sw/inc/flypos.hxx5
-rw-r--r--sw/inc/fmtcnct.hxx2
-rw-r--r--sw/inc/fmtcntnt.hxx2
-rw-r--r--sw/inc/fmthbsh.hxx2
-rw-r--r--sw/inc/fmthdft.hxx4
-rw-r--r--sw/inc/fmtruby.hxx2
-rw-r--r--sw/inc/fmtwrapinfluenceonobjpos.hxx2
-rw-r--r--sw/inc/format.hxx8
-rw-r--r--sw/inc/frmfmt.hxx4
-rw-r--r--sw/inc/grfatr.hxx10
-rw-r--r--sw/inc/hfspacingitem.hxx2
-rw-r--r--sw/inc/hintids.hxx14
-rw-r--r--sw/inc/index.hxx3
-rw-r--r--sw/inc/iodetect.cxx697
-rw-r--r--sw/inc/iodetect.hxx130
-rw-r--r--sw/inc/mdiexp.hxx8
-rw-r--r--sw/inc/ndarr.hxx2
-rw-r--r--sw/inc/ndgrf.hxx2
-rw-r--r--sw/inc/ndindex.hxx4
-rw-r--r--sw/inc/ndnotxt.hxx2
-rw-r--r--sw/inc/ndole.hxx4
-rw-r--r--sw/inc/node.hxx4
-rw-r--r--sw/inc/numrule.hxx2
-rw-r--r--sw/inc/pam.hxx10
-rw-r--r--sw/inc/redline.hxx4
-rw-r--r--sw/inc/shellio.hxx134
-rw-r--r--sw/inc/shellres.hxx2
-rw-r--r--sw/inc/sw.mk2
-rw-r--r--sw/inc/swatrset.hxx6
-rw-r--r--sw/inc/swfltopt.hxx2
-rw-r--r--sw/inc/swmodule.hxx20
-rw-r--r--sw/inc/swtable.hxx6
-rw-r--r--sw/inc/swtypes.hxx6
-rw-r--r--sw/inc/txtatr.hxx2
-rw-r--r--sw/inc/txtftn.hxx2
-rw-r--r--sw/inc/txtinet.hxx2
-rw-r--r--sw/inc/unoobj.hxx2
-rw-r--r--sw/inc/usrfld.hxx2
55 files changed, 299 insertions, 907 deletions
diff --git a/sw/inc/SwStyleNameMapper.hxx b/sw/inc/SwStyleNameMapper.hxx
index e32f6abfb766..cf1d7aed0c64 100644
--- a/sw/inc/SwStyleNameMapper.hxx
+++ b/sw/inc/SwStyleNameMapper.hxx
@@ -164,7 +164,7 @@ public:
// This gets the programmatic Name from the Pool ID
static void FillProgName( sal_uInt16 nId, String& rFillName );
- static const String& GetProgName ( sal_uInt16 nId, const String& rName );
+ SW_DLLPUBLIC static const String& GetProgName ( sal_uInt16 nId, const String& rName );
// This gets the PoolId from the UI Name
SW_DLLPUBLIC static sal_uInt16 GetPoolIdFromUIName( const String& rName, SwGetPoolIdFromName );
diff --git a/sw/inc/anchoreddrawobject.hxx b/sw/inc/anchoreddrawobject.hxx
index bb95a8abf7b6..7a52a523d2c2 100644
--- a/sw/inc/anchoreddrawobject.hxx
+++ b/sw/inc/anchoreddrawobject.hxx
@@ -39,7 +39,7 @@
@author OD
*/
-class SwAnchoredDrawObject : public SwAnchoredObject
+class SW_DLLPUBLIC SwAnchoredDrawObject : public SwAnchoredObject
{
private:
// boolean, indicating that the object position has been invalidated
diff --git a/sw/inc/anchoredobject.hxx b/sw/inc/anchoredobject.hxx
index 3cbd93d75104..c9c4c55d701e 100644
--- a/sw/inc/anchoredobject.hxx
+++ b/sw/inc/anchoredobject.hxx
@@ -56,7 +56,7 @@ class SwFmtAnchor;
@author OD
*/
-class SwAnchoredObject
+class SW_DLLPUBLIC SwAnchoredObject
{
private:
// drawing object representing the anchored object in the drawing layer
diff --git a/sw/inc/bookmrk.hxx b/sw/inc/bookmrk.hxx
index a5c58f2bf740..3b459f61c081 100644
--- a/sw/inc/bookmrk.hxx
+++ b/sw/inc/bookmrk.hxx
@@ -151,7 +151,7 @@ public:
const String& rName, const String& rShortName);
};
-class SwFieldBookmark : public SwBookmark
+class SW_DLLPUBLIC SwFieldBookmark : public SwBookmark
{
private:
int fftype; // Type: 0 = Text, 1 = Check Box, 2 = List
diff --git a/sw/inc/bparr.hxx b/sw/inc/bparr.hxx
index c6f44647b46a..8a2d320382a7 100644
--- a/sw/inc/bparr.hxx
+++ b/sw/inc/bparr.hxx
@@ -33,6 +33,7 @@
#include <tools/solar.h>
#include <tools/debug.hxx>
+#include <swdllapi.h>
struct BlockInfo;
class BigPtrArray;
@@ -73,7 +74,7 @@ struct BlockInfo { // Block-Info:
USHORT nElem; // Anzahl Elemente
};
-class BigPtrArray
+class SW_DLLPUBLIC BigPtrArray
{
BlockInfo** ppInf; // Block-Infos
ULONG nSize; // Anzahl Elemente
diff --git a/sw/inc/breakit.hxx b/sw/inc/breakit.hxx
index 5614d59e405d..53940bd00e37 100644
--- a/sw/inc/breakit.hxx
+++ b/sw/inc/breakit.hxx
@@ -36,10 +36,8 @@
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/i18n/XBreakIterator.hpp>
-
-#ifndef _COM_SUN_STAR_I18N_FORBIDDENCHARACTERS_HDL_
#include <com/sun/star/i18n/ForbiddenCharacters.hdl>
-#endif
+#include <swdllapi.h>
class String;
@@ -48,7 +46,7 @@ class String;
*************************************************************************/
-class SwBreakIt
+class SW_DLLPUBLIC SwBreakIt
{
com::sun::star::uno::Reference< com::sun::star::lang::XMultiServiceFactory > m_xMSF;
@@ -110,7 +108,7 @@ public:
#define SW_XBREAKITER() SW_BREAKITER()->GetBreakIter()
// @@@ backward compatibility @@@
-extern SwBreakIt* pBreakIt;
+SW_DLLPUBLIC extern SwBreakIt* pBreakIt;
#endif
diff --git a/sw/inc/calbck.hxx b/sw/inc/calbck.hxx
index b5a0819ea897..7a8ff7f8f471 100644
--- a/sw/inc/calbck.hxx
+++ b/sw/inc/calbck.hxx
@@ -130,7 +130,7 @@ class SW_DLLPUBLIC SwModify: public SwClient
friend class SwClientIter;
SwClient* pRoot;
- SW_DLLPRIVATE SwClient *_Remove(SwClient *pDepend);
+ SwClient *_Remove(SwClient *pDepend);
public:
SwModify() : pRoot(0) {}
@@ -176,7 +176,7 @@ protected:
* abhaengig ist. Diese sollte fuer jede Abhaengigkeit ein Objekt
* der Klasse SwDepend als Member haben.
*/
-class SwDepend: public SwClient
+class SW_DLLPUBLIC SwDepend: public SwClient
{
SwClient *pToTell;
@@ -197,7 +197,7 @@ private:
};
-class SW_DLLPUBLIC SwClientIter
+class SwClientIter
{
friend SwClient* SwModify::_Remove(SwClient *); // fuer Ptr-Korrektur
friend void SwModify::Add(SwClient *); // nur fuer ASSERT !
@@ -213,8 +213,8 @@ class SW_DLLPUBLIC SwClientIter
TypeId aSrchId; // fuer First/Next - suche diesen Type
public:
- SwClientIter( SwModify& );
- ~SwClientIter();
+ SW_DLLPUBLIC SwClientIter( SwModify& );
+ SW_DLLPUBLIC ~SwClientIter();
const SwModify& GetModify() const { return rRoot; }
SwModify& GetModify() { return rRoot; }
@@ -236,8 +236,8 @@ public:
int IsChanged() const { return pDelNext != pAkt; }
- SwClient* First( TypeId nType );
- SwClient* Next();
+ SW_DLLPUBLIC SwClient* First( TypeId nType );
+ SW_DLLPUBLIC SwClient* Next();
const SwClient* GetWatchClient() const { return mpWatchClient; }
void SetWatchClient( SwClient* pWatch ) { mpWatchClient = pWatch; }
diff --git a/sw/inc/chpfld.hxx b/sw/inc/chpfld.hxx
index 9eb641660672..08ebcf93bd5c 100644
--- a/sw/inc/chpfld.hxx
+++ b/sw/inc/chpfld.hxx
@@ -65,7 +65,7 @@ public:
/*--------------------------------------------------------------------
Beschreibung: Kapitelnummer
--------------------------------------------------------------------*/
-class SwChapterField : public SwField
+class SW_DLLPUBLIC SwChapterField : public SwField
{
friend class SwChapterFieldType;
BYTE nLevel;
diff --git a/sw/inc/dbfld.hxx b/sw/inc/dbfld.hxx
index b918a038da72..9b61f001ed12 100644
--- a/sw/inc/dbfld.hxx
+++ b/sw/inc/dbfld.hxx
@@ -172,7 +172,7 @@ public:
Beschreibung: Datenbankfeld Naechster Satz
--------------------------------------------------------------------*/
-class SwDBNextSetFieldType : public SwFieldType
+class SW_DLLPUBLIC SwDBNextSetFieldType : public SwFieldType
{
public:
SwDBNextSetFieldType();
@@ -286,7 +286,7 @@ public:
Beschreibung: Datenbankfeld
--------------------------------------------------------------------*/
-class SwDBNameField : public SwDBNameInfField
+class SW_DLLPUBLIC SwDBNameField : public SwDBNameInfField
{
public:
SwDBNameField(SwDBNameFieldType*, const SwDBData& rDBData, ULONG nFmt = 0);
@@ -301,7 +301,7 @@ public:
Beschreibung: Datensatznummer
--------------------------------------------------------------------*/
-class SwDBSetNumberFieldType : public SwFieldType
+class SW_DLLPUBLIC SwDBSetNumberFieldType : public SwFieldType
{
public:
SwDBSetNumberFieldType();
@@ -313,7 +313,7 @@ public:
Beschreibung: Datenbankfeld
--------------------------------------------------------------------*/
-class SwDBSetNumberField : public SwDBNameInfField
+class SW_DLLPUBLIC SwDBSetNumberField : public SwDBNameInfField
{
long nNumber;
diff --git a/sw/inc/dcontact.hxx b/sw/inc/dcontact.hxx
index 2c905275ac84..3bb2fb4f49c0 100644
--- a/sw/inc/dcontact.hxx
+++ b/sw/inc/dcontact.hxx
@@ -67,7 +67,7 @@ class SwIndex;
//Anderfalls ist es eben ein einfaches Zeichenobjekt. Diese hat einen
//UserCall und der ist Client vom gesuchten Format.
//Implementierung in dcontact.cxx
-SwFrmFmt *FindFrmFmt( SdrObject *pObj );
+SW_DLLPUBLIC SwFrmFmt *FindFrmFmt( SdrObject *pObj );
inline const SwFrmFmt *FindFrmFmt( const SdrObject *pObj )
{ return ::FindFrmFmt( (SdrObject*)pObj ); }
sal_Bool HasWrap( const SdrObject* pObj );
@@ -237,7 +237,7 @@ public:
//KontactObjekt fuer die Verbindung zwischen Rahmen bzw. deren Formaten
//im StarWriter (SwClient) und den Zeichenobjekten des Drawing (SdrObjUserCall)
-class SwFlyDrawContact : public SwContact
+class SW_DLLPUBLIC SwFlyDrawContact : public SwContact
{
private:
// OD 2004-04-01 #i26791#
diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx
index dcc17451454f..920f7495a63f 100644
--- a/sw/inc/doc.hxx
+++ b/sw/inc/doc.hxx
@@ -267,7 +267,7 @@ void SetAllScriptItem( SfxItemSet& rSet, const SfxPoolItem& rItem );
// global function to start grammar checking in the document
void StartGrammarChecking( SwDoc &rDoc, SwRootFrm &rRootFrame );
-class SwDoc :
+class SW_DLLPUBLIC SwDoc :
public IInterface,
public IDocumentSettingAccess,
public IDocumentDeviceAccess,
@@ -966,7 +966,7 @@ public:
virtual void DocInfoChgd();
virtual const SwDocStat &GetDocStat() const;
virtual void SetDocStat(const SwDocStat& rStat);
- SW_DLLPUBLIC virtual void UpdateDocStat(SwDocStat& rStat);
+ virtual void UpdateDocStat(SwDocStat& rStat);
/** IDocumentState
*/
@@ -1121,7 +1121,7 @@ public:
sal_Bool bDelRedlines = sal_True,
sal_Bool bCopyFlyAtFly = sal_False ) const;
- SW_DLLPUBLIC sal_Bool SetFlyFrmAttr( SwFrmFmt& rFlyFmt, SfxItemSet& rSet );
+ sal_Bool SetFlyFrmAttr( SwFrmFmt& rFlyFmt, SfxItemSet& rSet );
sal_Bool SetFrmFmtToFly( SwFrmFmt& rFlyFmt, SwFrmFmt& rNewFmt,
SfxItemSet* pSet = 0, sal_Bool bKeepOrient = sal_False );
@@ -1238,7 +1238,7 @@ public:
void SetDefault( const SfxItemSet& );
// Erfrage das Default Attribut in diesem Dokument.
- SW_DLLPUBLIC const SfxPoolItem& GetDefault( sal_uInt16 nFmtHint ) const;
+ const SfxPoolItem& GetDefault( sal_uInt16 nFmtHint ) const;
// TextAttribute nicht mehr aufspannen lassen
sal_Bool DontExpandFmt( const SwPosition& rPos, sal_Bool bFlag = sal_True );
@@ -2092,8 +2092,8 @@ public:
// <--
//Update all the page masters
- SW_DLLPUBLIC void SetDefaultPageMode(bool bSquaredPageMode);
- SW_DLLPUBLIC sal_Bool IsSquaredPageMode() const;
+ void SetDefaultPageMode(bool bSquaredPageMode);
+ sal_Bool IsSquaredPageMode() const;
// i#78591#
void Setn32DummyCompatabilityOptions1( sal_uInt32 CompatabilityOptions1 )
diff --git a/sw/inc/docary.hxx b/sw/inc/docary.hxx
index 920d6273f674..649d7b4e650d 100644
--- a/sw/inc/docary.hxx
+++ b/sw/inc/docary.hxx
@@ -91,7 +91,7 @@ SV_DECL_PTRARR_DEL(SwSectionFmts,SwSectionFmtPtr,0,4)
typedef SwNumRule* SwNumRulePtr;
-SV_DECL_PTRARR_DEL( SwNumRuleTbl, SwNumRulePtr, 0, 5 )
+SV_DECL_PTRARR_DEL_VISIBILITY( SwNumRuleTbl, SwNumRulePtr, 0, 5, SW_DLLPUBLIC )
typedef SwRedline* SwRedlinePtr;
SV_DECL_PTRARR_SORT_DEL( _SwRedlineTbl, SwRedlinePtr, 0, 16 )
diff --git a/sw/inc/docufld.hxx b/sw/inc/docufld.hxx
index 3cd0f1bb034f..88c4e650cfd0 100644
--- a/sw/inc/docufld.hxx
+++ b/sw/inc/docufld.hxx
@@ -169,7 +169,7 @@ public:
Beschreibung: Seitennummerierung
--------------------------------------------------------------------*/
-class SwPageNumberField : public SwField
+class SW_DLLPUBLIC SwPageNumberField : public SwField
{
String sUserStr;
USHORT nSubType;
@@ -246,7 +246,7 @@ public:
Beschreibung: FileName
--------------------------------------------------------------------*/
-class SwFileNameField : public SwField
+class SW_DLLPUBLIC SwFileNameField : public SwField
{
String aContent;
@@ -281,7 +281,7 @@ public:
Beschreibung: TemplName
--------------------------------------------------------------------*/
-class SwTemplNameField : public SwField
+class SW_DLLPUBLIC SwTemplNameField : public SwField
{
public:
SwTemplNameField(SwTemplNameFieldType*, sal_uInt32 nFmt = 0);
@@ -314,7 +314,7 @@ public:
Beschreibung: Dokumentstatistik
--------------------------------------------------------------------*/
-class SwDocStatField : public SwField
+class SW_DLLPUBLIC SwDocStatField : public SwField
{
USHORT nSubType;
@@ -460,7 +460,7 @@ public:
Beschreibung: Macrofeld
--------------------------------------------------------------------*/
-class SwMacroField : public SwField
+class SW_DLLPUBLIC SwMacroField : public SwField
{
String aMacro;
String aText;
@@ -517,7 +517,7 @@ public:
Beschreibung: PostIt
--------------------------------------------------------------------*/
-class SwPostItField : public SwField
+class SW_DLLPUBLIC SwPostItField : public SwField
{
String sTxt; // die Anmerkung
String sAuthor; // der Author
@@ -566,7 +566,7 @@ public:
virtual SwFieldType* Copy() const;
};
-class SwDocInfoField : public SwValueField
+class SW_DLLPUBLIC SwDocInfoField : public SwValueField
{
USHORT nSubType;
String aContent;
@@ -815,7 +815,7 @@ public:
#define MAX_COMBINED_CHARACTERS 6
-class SwCombinedCharField : public SwField
+class SW_DLLPUBLIC SwCombinedCharField : public SwField
{
String sCharacters; // combine these characters
diff --git a/sw/inc/expfld.hxx b/sw/inc/expfld.hxx
index febde8d8e6f8..83629f8cf6d5 100644
--- a/sw/inc/expfld.hxx
+++ b/sw/inc/expfld.hxx
@@ -93,7 +93,7 @@ public:
Beschreibung: GetExperession
--------------------------------------------------------------------*/
-class SwGetExpField : public SwFormulaField
+class SW_DLLPUBLIC SwGetExpField : public SwFormulaField
{
String sExpand;
BOOL bIsInBodyTxt;
@@ -228,7 +228,7 @@ inline const String& SwSetExpFieldType::GetSetRefName() const
Beschreibung: Ausdruck
--------------------------------------------------------------------*/
-class SwSetExpField : public SwFormulaField
+class SW_DLLPUBLIC SwSetExpField : public SwFormulaField
{
String sExpand;
String aPText;
@@ -315,7 +315,7 @@ public:
Beschreibung: Eingabefeld
--------------------------------------------------------------------*/
-class SwInputField : public SwField
+class SW_DLLPUBLIC SwInputField : public SwField
{
String aContent;
String aPText;
diff --git a/sw/inc/fchrfmt.hxx b/sw/inc/fchrfmt.hxx
index de0334f5ef50..c34d6f484037 100644
--- a/sw/inc/fchrfmt.hxx
+++ b/sw/inc/fchrfmt.hxx
@@ -42,7 +42,7 @@ class IntlWrapper;
// ATT_CHARFMT *********************************************
-class SwFmtCharFmt: public SfxPoolItem, public SwClient
+class SW_DLLPUBLIC SwFmtCharFmt: public SfxPoolItem, public SwClient
{
friend class SwTxtCharFmt;
SwTxtCharFmt* pTxtAttr; // mein TextAttribut
diff --git a/sw/inc/fldbas.hxx b/sw/inc/fldbas.hxx
index 36c352b4429e..11213224844c 100644
--- a/sw/inc/fldbas.hxx
+++ b/sw/inc/fldbas.hxx
@@ -439,7 +439,7 @@ public:
static sal_uInt32 GetSystemFormat(SvNumberFormatter* pFormatter, sal_uInt32 nFmt);
};
-class SwFormulaField : public SwValueField
+class SW_DLLPUBLIC SwFormulaField : public SwValueField
{
String sFormula;
diff --git a/sw/inc/flddat.hxx b/sw/inc/flddat.hxx
index 5f00deb46b08..e2c61cfe8809 100644
--- a/sw/inc/flddat.hxx
+++ b/sw/inc/flddat.hxx
@@ -113,7 +113,7 @@ public:
Beschreibung: Datum/Uhrzeitfeld
--------------------------------------------------------------------*/
-class SwDateTimeField : public SwValueField
+class SW_DLLPUBLIC SwDateTimeField : public SwValueField
{
USHORT nSubType;
long nOffset; // Offset in Minuten
diff --git a/sw/inc/flypos.hxx b/sw/inc/flypos.hxx
index 7508816507b0..287e6544712b 100644
--- a/sw/inc/flypos.hxx
+++ b/sw/inc/flypos.hxx
@@ -32,12 +32,13 @@
#include <svtools/svarray.hxx>
+#include <swdllapi.h>
class SwFrmFmt;
class SwNodeIndex;
// Struktur zum Erfragen der akt. freifliegenden Rahmen am Dokument.
-class SwPosFlyFrm
+class SW_DLLPUBLIC SwPosFlyFrm
{
const SwFrmFmt* pFrmFmt; // das FlyFrmFmt
// SwPosition* pPos; // Position in den ContentNode
@@ -57,6 +58,6 @@ public:
};
typedef SwPosFlyFrm* SwPosFlyFrmPtr;
-SV_DECL_PTRARR_SORT( SwPosFlyFrms, SwPosFlyFrmPtr, 0, 40 )
+SV_DECL_PTRARR_SORT_VISIBILITY( SwPosFlyFrms, SwPosFlyFrmPtr, 0, 40, SW_DLLPUBLIC )
#endif // _FLYPOS_HXX
diff --git a/sw/inc/fmtcnct.hxx b/sw/inc/fmtcnct.hxx
index 3299beefcb7d..d229f91b8b78 100644
--- a/sw/inc/fmtcnct.hxx
+++ b/sw/inc/fmtcnct.hxx
@@ -41,7 +41,7 @@ class IntlWrapper;
//Verbindung (Textfluss) zwischen zwei FlyFrms
-class SwFmtChain: public SfxPoolItem
+class SW_DLLPUBLIC SwFmtChain: public SfxPoolItem
{
SwClient aPrev, //Vorgaenger (SwFlyFrmFmt), wenn es diesen gibt.
aNext; //Nachfolger (SwFlyFrmFmt), wenn es diesen gibt.
diff --git a/sw/inc/fmtcntnt.hxx b/sw/inc/fmtcntnt.hxx
index 703390ad9088..c5b262331e44 100644
--- a/sw/inc/fmtcntnt.hxx
+++ b/sw/inc/fmtcntnt.hxx
@@ -39,7 +39,7 @@ class SwStartNode;
//Cntnt, Inhalt des Frame (Header, Footer, Fly) ----
-class SwFmtCntnt: public SfxPoolItem
+class SW_DLLPUBLIC SwFmtCntnt: public SfxPoolItem
{
SwNodeIndex *pStartNode;
diff --git a/sw/inc/fmthbsh.hxx b/sw/inc/fmthbsh.hxx
index 663ab703d7dd..32c4df8c4007 100644
--- a/sw/inc/fmthbsh.hxx
+++ b/sw/inc/fmthbsh.hxx
@@ -53,7 +53,7 @@ public:
// ATT_HARDBLANK ******************************
// Attribut fuer geschuetzte Leerzeichen.
-class SwFmtHardBlank : public SfxPoolItem
+class SW_DLLPUBLIC SwFmtHardBlank : public SfxPoolItem
{
sal_Unicode cChar;
public:
diff --git a/sw/inc/fmthdft.hxx b/sw/inc/fmthdft.hxx
index 92338d069b9a..d6661c9d4ddc 100644
--- a/sw/inc/fmthdft.hxx
+++ b/sw/inc/fmthdft.hxx
@@ -42,7 +42,7 @@ class IntlWrapper;
//Kopfzeile, fuer Seitenformate
//Client von FrmFmt das den Header beschreibt.
-class SwFmtHeader: public SfxPoolItem, public SwClient
+class SW_DLLPUBLIC SwFmtHeader: public SfxPoolItem, public SwClient
{
BOOL bActive; //Nur zur Steuerung (Erzeugung des Inhaltes)
@@ -74,7 +74,7 @@ public:
//Fusszeile, fuer Seitenformate
//Client von FrmFmt das den Footer beschreibt.
-class SwFmtFooter: public SfxPoolItem, public SwClient
+class SW_DLLPUBLIC SwFmtFooter: public SfxPoolItem, public SwClient
{
BOOL bActive; //Nur zur Steuerung (Erzeugung des Inhaltes)
diff --git a/sw/inc/fmtruby.hxx b/sw/inc/fmtruby.hxx
index 8f8f53161eea..516d5c3d8eed 100644
--- a/sw/inc/fmtruby.hxx
+++ b/sw/inc/fmtruby.hxx
@@ -36,7 +36,7 @@
class SwTxtRuby;
-class SwFmtRuby : public SfxPoolItem
+class SW_DLLPUBLIC SwFmtRuby : public SfxPoolItem
{
friend class SwTxtRuby;
diff --git a/sw/inc/fmtwrapinfluenceonobjpos.hxx b/sw/inc/fmtwrapinfluenceonobjpos.hxx
index 6cefcb035fab..b9ece15840e7 100644
--- a/sw/inc/fmtwrapinfluenceonobjpos.hxx
+++ b/sw/inc/fmtwrapinfluenceonobjpos.hxx
@@ -35,7 +35,7 @@
#include <svtools/poolitem.hxx>
#include <com/sun/star/text/WrapInfluenceOnPosition.hpp>
-class SwFmtWrapInfluenceOnObjPos: public SfxPoolItem
+class SW_DLLPUBLIC SwFmtWrapInfluenceOnObjPos: public SfxPoolItem
{
private:
sal_Int16 mnWrapInfluenceOnPosition;
diff --git a/sw/inc/format.hxx b/sw/inc/format.hxx
index b68e48042151..b72ca46866d4 100644
--- a/sw/inc/format.hxx
+++ b/sw/inc/format.hxx
@@ -45,7 +45,7 @@ class IDocumentFieldsAccess;
class IDocumentChartDataProviderAccess;
class SwDoc;
-class SwFmt : public SwModify
+class SW_DLLPUBLIC SwFmt : public SwModify
{
// friend class SwSwgReader;
// friend class SwSwgWriter;
@@ -105,9 +105,9 @@ public:
const SfxPoolItem **ppItem = 0 ) const;
// --> OD 2008-03-03 #refactorlists#
// methods renamed and made virtual
- SW_DLLPUBLIC virtual BOOL SetFmtAttr( const SfxPoolItem& rAttr );
- SW_DLLPUBLIC virtual BOOL SetFmtAttr( const SfxItemSet& rSet );
- SW_DLLPUBLIC virtual BOOL ResetFmtAttr( USHORT nWhich1, USHORT nWhich2 = 0 );
+ virtual BOOL SetFmtAttr( const SfxPoolItem& rAttr );
+ virtual BOOL SetFmtAttr( const SfxItemSet& rSet );
+ virtual BOOL ResetFmtAttr( USHORT nWhich1, USHORT nWhich2 = 0 );
// <--
// --> OD 2007-01-24 #i73790#
diff --git a/sw/inc/frmfmt.hxx b/sw/inc/frmfmt.hxx
index 07c29b780faf..608ac7ac7174 100644
--- a/sw/inc/frmfmt.hxx
+++ b/sw/inc/frmfmt.hxx
@@ -141,7 +141,7 @@ public:
//Das FlyFrame-Format ------------------------------
-class SwFlyFrmFmt: public SwFrmFmt
+class SW_DLLPUBLIC SwFlyFrmFmt: public SwFrmFmt
{
friend class SwDoc;
@@ -207,7 +207,7 @@ public:
//Das DrawFrame-Format -----------------------------
-class SwDrawFrmFmt: public SwFrmFmt
+class SW_DLLPUBLIC SwDrawFrmFmt: public SwFrmFmt
{
friend class SwDoc;
diff --git a/sw/inc/grfatr.hxx b/sw/inc/grfatr.hxx
index 55015099b98e..f9a232bae0ef 100644
--- a/sw/inc/grfatr.hxx
+++ b/sw/inc/grfatr.hxx
@@ -99,7 +99,7 @@ public:
* class SwAttrCropGrf
******************************************************************************/
-class SwCropGrf : public SvxGrfCrop
+class SW_DLLPUBLIC SwCropGrf : public SvxGrfCrop
{
public:
TYPEINFO();
@@ -139,7 +139,7 @@ public:
const Size& GetUnrotatedSize() const { return aUnrotatedSize; }
};
-class SwLuminanceGrf : public SfxInt16Item
+class SW_DLLPUBLIC SwLuminanceGrf : public SfxInt16Item
{
public:
SwLuminanceGrf( sal_Int16 nVal = 0 )
@@ -155,7 +155,7 @@ public:
const IntlWrapper* pIntl = 0 ) const;
};
-class SwContrastGrf : public SfxInt16Item
+class SW_DLLPUBLIC SwContrastGrf : public SfxInt16Item
{
public:
SwContrastGrf( sal_Int16 nVal = 0 )
@@ -212,7 +212,7 @@ public:
virtual SfxPoolItem* Clone( SfxItemPool *pPool = 0 ) const;
};
-class SwGammaGrf : public SfxPoolItem
+class SW_DLLPUBLIC SwGammaGrf : public SfxPoolItem
{
double nValue;
public:
@@ -285,7 +285,7 @@ public:
BYTE nMemberId = 0 );
};
-class SwDrawModeGrf : public SfxEnumItem
+class SW_DLLPUBLIC SwDrawModeGrf : public SfxEnumItem
{
public:
SwDrawModeGrf( USHORT nMode = 0 )
diff --git a/sw/inc/hfspacingitem.hxx b/sw/inc/hfspacingitem.hxx
index 6b960182c479..17b62c0d4760 100644
--- a/sw/inc/hfspacingitem.hxx
+++ b/sw/inc/hfspacingitem.hxx
@@ -37,7 +37,7 @@
class IntlWrapper;
-class SwHeaderAndFooterEatSpacingItem : public SfxBoolItem
+class SW_DLLPUBLIC SwHeaderAndFooterEatSpacingItem : public SfxBoolItem
{
public:
SwHeaderAndFooterEatSpacingItem( USHORT nId = RES_HEADER_FOOTER_EAT_SPACING,
diff --git a/sw/inc/hintids.hxx b/sw/inc/hintids.hxx
index 8cc1d30603df..f8d6a78f9737 100644
--- a/sw/inc/hintids.hxx
+++ b/sw/inc/hintids.hxx
@@ -386,15 +386,7 @@ typedef SfxPoolItem* SwDfltAttrTab[ POOLATTR_END - POOLATTR_BEGIN ];
extern SwDfltAttrTab __FAR_DATA aAttrTab;
extern SfxItemInfo __FAR_DATA aSlotTab[];
-
-#ifndef PRODUCT
-const SfxPoolItem* GetDfltAttr( USHORT nWhich );
-#else
-inline const SfxPoolItem* GetDfltAttr( USHORT nWhich )
-{
- return aAttrTab[ nWhich - POOLATTR_BEGIN ];
-}
-#endif
+SW_DLLPUBLIC const SfxPoolItem* GetDfltAttr( USHORT nWhich );
SW_DLLPUBLIC USHORT GetWhichOfScript( USHORT nWhich, USHORT nScript );
@@ -414,7 +406,7 @@ extern USHORT __FAR_DATA aTxtFmtCollSetRange[];
// AttrSet-Range fuer die GrfFmtColl
extern USHORT __FAR_DATA aGrfFmtCollSetRange[];
// AttrSet-Range fuer die TextNode
-extern USHORT __FAR_DATA aTxtNodeSetRange[];
+SW_DLLPUBLIC extern USHORT __FAR_DATA aTxtNodeSetRange[];
// AttrSet-Range fuer die NoTxtNode
extern USHORT __FAR_DATA aNoTxtNodeSetRange[];
// AttrSet-Range fuer die SwTable
@@ -424,7 +416,7 @@ extern USHORT __FAR_DATA aTableLineSetRange[];
// AttrSet-Range fuer die SwTableBox
extern USHORT __FAR_DATA aTableBoxSetRange[];
// AttrSet-Range fuer die SwFrmFmt
-extern USHORT __FAR_DATA aFrmFmtSetRange[];
+SW_DLLPUBLIC extern USHORT __FAR_DATA aFrmFmtSetRange[];
// AttrSet-Range fuer die SwCharFmt
extern USHORT __FAR_DATA aCharFmtSetRange[];
// AttrSet-Range fuer die character autostyles
diff --git a/sw/inc/index.hxx b/sw/inc/index.hxx
index e865fadd6c9f..5a57724f2540 100644
--- a/sw/inc/index.hxx
+++ b/sw/inc/index.hxx
@@ -34,6 +34,7 @@
#include <tools/solar.h>
#include <tools/rtti.hxx> // for RTTI of SwIndexReg
#include <tools/string.hxx> // for xub_StrLen
+#include <swdllapi.h>
#define INVALID_INDEX STRING_NOTFOUND
@@ -48,7 +49,7 @@ struct SwPosition;
#define INLINE
#endif
-class SwIndex
+class SW_DLLPUBLIC SwIndex
{
friend class SwIndexReg;
diff --git a/sw/inc/iodetect.cxx b/sw/inc/iodetect.cxx
deleted file mode 100644
index a340f342b0d7..000000000000
--- a/sw/inc/iodetect.cxx
+++ /dev/null
@@ -1,697 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: iodetect.cxx,v $
- * $Revision: 1.31 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#ifndef _IODETECT_CXX
-#define _IODETECT_CXX
-
-#include <sfx2/docfilt.hxx>
-#include <sfx2/docfile.hxx>
-#include <sfx2/fcontnr.hxx>
-#include <svtools/parhtml.hxx>
-#include <osl/endian.h>
-#include <errhdl.hxx> // for ASSERT
-#include <tools/string.hxx>
-#include <tools/urlobj.hxx>
-
-#ifdef _DLL_
-#include <shellio.hxx>
-#endif
-
-using namespace com::sun::star;
-
-class Reader;
-USHORT AutoDetec(const String& FileName, USHORT & rVersion);
-bool IsDocShellRegistered();
-void GetWW8Writer( const String&, const String&, WriterRef& );
-
-typedef void (*FnGetWriter)(const String&, const String& rBaseURL, WriterRef&);
-
-struct SwIoDetect
-{
-// eigentlich privat, aber der Compiler kann sonst die
-// Tabelle nicht initialisieren
- const sal_Char* pName;
- USHORT nLen;
-
- inline int IsFilter( const String& rNm )
- {
- return pName && rNm.EqualsAscii( pName, 0, nLen );
- }
-
-#ifdef _DLL_
- Reader* pReader;
- FnGetWriter fnGetWriter;
- BOOL bDelReader;
-
- inline Reader* GetReader() const { return pReader; }
- inline void GetWriter( const String& rNm, const String& rBaseURL, WriterRef& xWrt ) const
- { if( fnGetWriter ) (*fnGetWriter)(rNm,rBaseURL,xWrt); else xWrt = WriterRef(0); }
-#endif
-
- const sal_Char* IsReader(const sal_Char* pHeader, ULONG nLen_,
- const String &rFileName, const String& rUserData ) const;
-};
-
-
-#ifdef _DLL_
-#define SwIoEntry(sNm, cCharLen, pWrt, bDel) { sNm, cCharLen, 0, pWrt, bDel }
-#else
-#define SwIoEntry(sNm, cCharLen, pWrt, bDel) { sNm, cCharLen }
-#endif
-
-#ifdef DEBUG_SH
-
-#define DEB_SH_SwIoEntry(sNm, cCharLen, pWrt, bDel) , SwIoEntry(sNm, cCharLen, pWrt, bDel)
-#else
-#define DEB_SH_SwIoEntry(sNm, cCharLen, pWrt, bDel)
-#endif
-
-const USHORT MAXFILTER =
-#ifdef DEBUG_SH
- 1 +
-#endif
- 11;
-
-const sal_Char __FAR_DATA FILTER_BAS[] = "BAS";
-const sal_Char __FAR_DATA FILTER_RTF[] = "RTF";
-const sal_Char __FAR_DATA FILTER_SWW4V[] = "CSW4VWEB";
-const sal_Char __FAR_DATA FILTER_SWW5V[] = "CSW5VWEB";
-const sal_Char __FAR_DATA sRtfWH[] = "WH_RTF";
-const sal_Char __FAR_DATA sHTML[] = "HTML";
-const sal_Char __FAR_DATA sWW1[] = "WW1";
-const sal_Char __FAR_DATA sWW5[] = "WW6";
-const sal_Char __FAR_DATA sWW6[] = "CWW6";
-const sal_Char __FAR_DATA FILTER_WW8[] = "CWW8";
-const sal_Char __FAR_DATA FILTER_TEXT_DLG[] = "TEXT_DLG";
-const sal_Char __FAR_DATA FILTER_TEXT[] = "TEXT";
-const sal_Char __FAR_DATA sDebug[] = "DEBUG";
-const sal_Char __FAR_DATA sUndo[] = "UNDO";
-const sal_Char __FAR_DATA FILTER_XML[] = "CXML";
-const sal_Char __FAR_DATA FILTER_XMLV[] = "CXMLV";
-const sal_Char __FAR_DATA FILTER_XMLVW[] = "CXMLVWEB";
-
-#ifdef _DLL_
-const sal_Char* GetFILTER_XML()
-{
- return FILTER_XML;
-}
-const sal_Char* GetFILTER_WW8()
-{
- return FILTER_WW8;
-}
-#endif
-
-SwIoDetect aReaderWriter[ MAXFILTER ] =
-{
-///* 0*/ SwIoEntry(FILTER_SW5, 4, &::GetSw3Writer, TRUE),
-///* 1*/ SwIoEntry(FILTER_SW4, 4, &::GetSw3Writer, FALSE),
-///* 2*/ SwIoEntry(FILTER_SW3, 4, &::GetSw3Writer, FALSE),
-///* 3*/ SwIoEntry(FILTER_SWG, STRING_LEN, 0, TRUE),
-///* 4*/ SwIoEntry(FILTER_SWGV, 4, 0, FALSE),
-/* 5*/ SwIoEntry(FILTER_RTF, STRING_LEN, &::GetRTFWriter, TRUE),
-///* 6*/ SwIoEntry(sSwDos, STRING_LEN, 0, TRUE),
-/* 7*/ SwIoEntry(FILTER_BAS, STRING_LEN, &::GetASCWriter, FALSE),
-/* 8*/ SwIoEntry(sWW6, STRING_LEN, &::GetWW8Writer, TRUE),
-/* 9*/ SwIoEntry(FILTER_WW8, STRING_LEN, &::GetWW8Writer, FALSE),
-///* 10*/ SwIoEntry(FILTER_W4W, 3, &::GetW4WWriter, TRUE),
-/* 11*/ SwIoEntry(sRtfWH, STRING_LEN, &::GetRTFWriter, FALSE),
-///* 12*/ SwIoEntry(sCExcel, 5, 0, TRUE),
-///* 13*/ SwIoEntry(sExcel, 4, 0, FALSE),
-///* 14*/ SwIoEntry(sLotusD, 5, 0, TRUE),
-/* 15*/ SwIoEntry(sHTML, 4, &::GetHTMLWriter, TRUE),
-/* 16*/ SwIoEntry(sWW1, STRING_LEN, 0, TRUE),
-/* 17*/ SwIoEntry(sWW5, STRING_LEN, 0, FALSE),
-///* 18*/ SwIoEntry(sSwg1, 4, 0, FALSE),
-/* 19*/ SwIoEntry(FILTER_XML, 4, &::GetXMLWriter, TRUE),
-/*20*/ SwIoEntry(FILTER_TEXT_DLG, 8, &::GetASCWriter, TRUE),
-/*last*/ SwIoEntry(FILTER_TEXT, 4, &::GetASCWriter, TRUE)
-};
-
-const char* pSw = "swriter";
-const char* pSwWeb = "swriter/web";
-
-// Filter erkennung
-struct W1_FIB
-{
- SVBT16 wIdent; // 0x0 int magic number
- SVBT16 nFib; // 0x2 FIB version written
- SVBT16 nProduct; // 0x4 product version written by
- SVBT16 nlocale; // 0x6 language stamp---localized version;
- SVBT16 pnNext; // 0x8
- SVBT16 fFlags;
-
- USHORT nFibGet() { return SVBT16ToShort(nFib); }
- USHORT wIdentGet() { return SVBT16ToShort(wIdent); }
- USHORT fFlagsGet() { return SVBT16ToShort(fFlags); }
- // SVBT16 fComplex :1;// 0004 when 1, file is in complex, fast-saved format.
- BOOL fComplexGet() { return static_cast< BOOL >((fFlagsGet() >> 2) & 1); }
-};
-
-const sal_Char* SwIoDetect::IsReader(const sal_Char* pHeader, ULONG nLen_,
- const String & /*rFileName*/, const String& /*rUserData*/) const
-{
- int bRet = FALSE;
- if( sHTML == pName )
- bRet = HTMLParser::IsHTMLFormat( pHeader, TRUE, RTL_TEXTENCODING_DONTKNOW );
- else if( FILTER_RTF == pName )
- bRet = 0 == strncmp( "{\\rtf", pHeader, 5 );
- else if( sWW5 == pName )
- {
- W1_FIB *pW1Header = (W1_FIB*)pHeader;
- if (pW1Header->wIdentGet() == 0xA5DC && pW1Header->nFibGet() == 0x65)
- bRet = true; /*WW5*/
- else if (pW1Header->wIdentGet() == 0xA5DB && pW1Header->nFibGet() == 0x2D)
- bRet = true; /*WW2*/
- }
- else if( sWW1 == pName )
- {
- bRet = (( ((W1_FIB*)pHeader)->wIdentGet() == 0xA59C
- && ((W1_FIB*)pHeader)->nFibGet() == 0x21)
- && ((W1_FIB*)pHeader)->fComplexGet() == 0);
- }
- else if (FILTER_TEXT == pName)
- bRet = SwIoSystem::IsDetectableText(pHeader, nLen_);
- else if( FILTER_TEXT_DLG == pName)
- bRet = SwIoSystem::IsDetectableText( pHeader, nLen_, 0, 0, 0, true);
- return bRet ? pName : 0;
-}
-
-const String SwIoSystem::GetSubStorageName( const SfxFilter& rFltr )
-{
- /* bei den StorageFiltern noch den SubStorageNamen setzen */
- const String& rUserData = rFltr.GetUserData();
- if( rUserData.EqualsAscii(FILTER_XML) ||
- rUserData.EqualsAscii(FILTER_XMLV) ||
- rUserData.EqualsAscii(FILTER_XMLVW) )
- return String::CreateFromAscii(
- RTL_CONSTASCII_STRINGPARAM( "content.xml" ));
- if( rUserData.EqualsAscii(sWW6) || rUserData.EqualsAscii(FILTER_WW8) )
- return String::CreateFromAscii(
- RTL_CONSTASCII_STRINGPARAM( "WordDocument" ));
- return String::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "" ));
-}
-const SfxFilter* SwIoSystem::GetFilterOfFormat(const String& rFmtNm,
- const SfxFilterContainer* pCnt)
-{
- SfxFilterContainer aCntSw( String::CreateFromAscii( pSw ) );
- SfxFilterContainer aCntSwWeb( String::CreateFromAscii( pSwWeb ) );
- const SfxFilterContainer* pFltCnt = pCnt ? pCnt : ( IsDocShellRegistered() ? &aCntSw : &aCntSwWeb );
-
- do {
- if( pFltCnt )
- {
- SfxFilterMatcher aMatcher( pFltCnt->GetName() );
- SfxFilterMatcherIter aIter( &aMatcher );
- const SfxFilter* pFilter = aIter.First();
- while ( pFilter )
- {
- if( pFilter->GetUserData() == rFmtNm )
- return pFilter;
- pFilter = aIter.Next();
- }
- }
- if( pCnt || pFltCnt == &aCntSwWeb )
- break;
- pFltCnt = &aCntSwWeb;
- } while( TRUE );
- return 0;
-}
-
-BOOL SwIoSystem::IsValidStgFilter( const uno::Reference < embed::XStorage >& rStg, const SfxFilter& rFilter)
-{
- BOOL bRet = FALSE;
- try
- {
- ULONG nStgFmtId = SotStorage::GetFormatID( rStg );
- bRet = rStg->isStreamElement( ::rtl::OUString::createFromAscii("content.xml") );
- if ( bRet )
- bRet = ( nStgFmtId && ( rFilter.GetFormat() == nStgFmtId ) );
- }
- catch ( uno::Exception& )
- {
- }
-
- return bRet;
-}
-
-BOOL SwIoSystem::IsValidStgFilter(SotStorage& rStg, const SfxFilter& rFilter)
-{
- ULONG nStgFmtId = rStg.GetFormat();
- /*#i8409# We cannot trust the clipboard id anymore :-(*/
- if( rFilter.GetUserData().EqualsAscii(FILTER_WW8) ||
- rFilter.GetUserData().EqualsAscii(sWW6) )
- {
- nStgFmtId = 0;
- }
-
- BOOL bRet = SVSTREAM_OK == rStg.GetError() &&
- ( !nStgFmtId || rFilter.GetFormat() == nStgFmtId ) &&
- ( rStg.IsContained( SwIoSystem::GetSubStorageName( rFilter )) );
- if( bRet )
- {
- /* Bug 53445 - es gibt Excel Docs ohne ClipBoardId! */
- /* Bug 62703 - und auch WinWord Docs ohne ClipBoardId! */
- if( rFilter.GetUserData().EqualsAscii(FILTER_WW8) ||
- rFilter.GetUserData().EqualsAscii(sWW6) )
- {
- bRet = !((rStg.IsContained( String::CreateFromAscii("0Table" )) ||
- rStg.IsContained( String::CreateFromAscii("1Table" ))) ^
- rFilter.GetUserData().EqualsAscii(FILTER_WW8));
- if (bRet && !rFilter.IsAllowedAsTemplate())
- {
- SotStorageStreamRef xRef =
- rStg.OpenSotStream(String::CreateFromAscii("WordDocument"),
- STREAM_STD_READ | STREAM_NOCREATE );
- xRef->Seek(10);
- BYTE nByte;
- *xRef >> nByte;
- bRet = !(nByte & 1);
- }
- }
-// else if( !rFilter.GetUserData().EqualsAscii(sCExcel) )
-// bRet = rFilter.GetFormat() == nStgFmtId;
- }
- return bRet;
-}
-
-void TerminateBuffer(sal_Char *pBuffer, ULONG nBytesRead, ULONG nBufferLen)
-{
- ASSERT(nBytesRead <= nBufferLen - 2,
- "what you read must be less than the max + null termination");
- ASSERT(!(nBufferLen & 0x00000001), "nMaxReadBuf must be an even number");
- if (nBytesRead <= nBufferLen - 2)
- {
- pBuffer[nBytesRead] = '\0';
- pBuffer[nBytesRead+1] = '\0';
- if (nBytesRead & 0x00000001)
- pBuffer[nBytesRead+2] = '\0';
- }
-}
-
- /* Feststellen ob das File in dem entsprechenden Format vorliegt. */
- /* Z.z werden nur unsere eigene Filter unterstuetzt */
-BOOL SwIoSystem::IsFileFilter( SfxMedium& rMedium, const String& rFmtName,
- const SfxFilter** ppFilter )
-{
- BOOL bRet = FALSE;
-
- SfxFilterContainer aCntSw( String::CreateFromAscii( pSw ) );
- SfxFilterContainer aCntSwWeb( String::CreateFromAscii( pSwWeb ) );
- const SfxFilterContainer& rFltContainer = IsDocShellRegistered() ? aCntSw : aCntSwWeb;
-
- uno::Reference < embed::XStorage > xStor;
- SotStorageRef xStg;
- if (rMedium.IsStorage())
- xStor = rMedium.GetStorage();
- else
- {
- SvStream* pStream = rMedium.GetInStream();
- if ( pStream && SotStorage::IsStorageFile(pStream) )
- xStg = new SotStorage( pStream, FALSE );
- }
-
- SfxFilterMatcher aMatcher( rFltContainer.GetName() );
- SfxFilterMatcherIter aIter( &aMatcher );
- const SfxFilter* pFltr = aIter.First();
- while ( pFltr )
- {
- if( pFltr->GetUserData() == rFmtName )
- {
- const String& rUserData = pFltr->GetUserData();
- if( 'C' == *rUserData.GetBuffer() )
- {
- if ( xStor.is() )
- bRet = IsValidStgFilter( xStor, *pFltr );
- else if ( xStg.Is() )
- bRet = xStg.Is() && IsValidStgFilter( *xStg, *pFltr );
- bRet = bRet && (pFltr->GetUserData() == rFmtName);
- }
- else if( !xStg.Is() && !xStor.is() )
- {
- SvStream* pStrm = rMedium.GetInStream();
- if( pStrm && !pStrm->GetError() )
- {
- sal_Char aBuffer[4098];
- const ULONG nMaxRead = sizeof(aBuffer) - 2;
- ULONG nBytesRead = pStrm->Read(aBuffer, nMaxRead);
- pStrm->Seek(STREAM_SEEK_TO_BEGIN);
- TerminateBuffer(aBuffer, nBytesRead, sizeof(aBuffer));
- for (USHORT i = 0; i < MAXFILTER; ++i)
- {
- if (aReaderWriter[i].IsFilter(rFmtName))
- {
- bRet = 0 != aReaderWriter[i].IsReader( aBuffer, nBytesRead,
- rMedium.GetPhysicalName(), rUserData );
- break;
- }
- }
- }
- }
-
- if( bRet && ppFilter )
- *ppFilter = pFltr;
- }
-
- pFltr = aIter.Next();
- }
-
- return bRet;
-}
-
-/* die Methode stellt fest, von welchem Typ der stream (File) ist. */
-/* Es wird versucht, eine dem Filter entsprechende Byte-Folge zu finden. */
-/* Wird kein entsprechender gefunden, wird zur Zeit der ASCII-Reader */
-/* returnt !! Der Returnwert ist der interne Filtername! */
-/* rPrefFltName ist der interne Name des Filters, den der Benutzer im */
-/* Open-Dialog eingestellt hat. */
-const SfxFilter* SwIoSystem::GetFileFilter(const String& rFileName,
- const String& rPrefFltName, SfxMedium* pMedium)
-{
- SfxFilterContainer aCntSw( String::CreateFromAscii( pSw ) );
- SfxFilterContainer aCntSwWeb( String::CreateFromAscii( pSwWeb ) );
- const SfxFilterContainer* pFCntnr = IsDocShellRegistered() ? &aCntSw : &aCntSwWeb;
-
- if( !pFCntnr )
- return 0;
-
- SfxFilterMatcher aMatcher( pFCntnr->GetName() );
- SfxFilterMatcherIter aIter( &aMatcher );
- const SfxFilter* pFilter = aIter.First();
- if ( !pFilter )
- return 0;
-
- if( pMedium ? ( pMedium->IsStorage() || SotStorage::IsStorageFile( pMedium->GetInStream() ) ) : SotStorage::IsStorageFile( rFileName ) )
- {
- // package storage or OLEStorage based format
- SotStorageRef xStg;
- BOOL bDeleteMedium = FALSE;
- if (!pMedium )
- {
- INetURLObject aObj;
- aObj.SetSmartProtocol( INET_PROT_FILE );
- aObj.SetSmartURL( rFileName );
- pMedium = new SfxMedium( aObj.GetMainURL( INetURLObject::NO_DECODE ), STREAM_STD_READ, FALSE );
- bDeleteMedium = TRUE;
- }
-
- // templates should not get precedence over "normal" filters (#i35508, #i33168)
- const SfxFilter* pTemplateFilter = 0;
- const SfxFilter* pOldFilter = pFCntnr->GetFilter4FilterName( rPrefFltName );
- BOOL bLookForTemplate = pOldFilter && pOldFilter->IsOwnTemplateFormat();
- if ( pMedium->IsStorage() )
- {
- uno::Reference < embed::XStorage > xStor = pMedium->GetStorage();
- if ( xStor.is() )
- {
- while ( pFilter )
- {
- if( 'C' == *pFilter->GetUserData().GetBuffer() && IsValidStgFilter( xStor, *pFilter ) )
- {
- if ( pFilter->IsOwnTemplateFormat() && !bLookForTemplate )
- // found template filter; maybe there's a "normal" one also
- pTemplateFilter = pFilter;
- else
- return pFilter;
- }
-
- pFilter = aIter.Next();
- }
-
- // there's only a template filter that could be found
- if ( pTemplateFilter )
- pFilter = pTemplateFilter;
- }
- }
- else
- {
- SvStream* pStream = pMedium->GetInStream();
- if ( pStream && SotStorage::IsStorageFile(pStream) )
- xStg = new SotStorage( pStream, FALSE );
-
- if( xStg.Is() && ( xStg->GetError() == SVSTREAM_OK ) )
- {
- while ( pFilter )
- {
- if( 'C' == *pFilter->GetUserData().GetBuffer() && IsValidStgFilter( *xStg, *pFilter ) )
- {
- if ( pFilter->IsOwnTemplateFormat() && !bLookForTemplate )
- // found template filter; maybe there's a "normal" one also
- pTemplateFilter = pFilter;
- else
- return pFilter;
- }
-
- pFilter = aIter.Next();
- }
-
- // there's only a template filter that could be found
- if ( pTemplateFilter )
- pFilter = pTemplateFilter;
-
- }
- }
-
- return pFilter;
- }
-
- sal_Char aBuffer[4098];
- const ULONG nMaxRead = sizeof(aBuffer) - 2;
- ULONG nBytesRead = 0;
- if (pMedium)
- {
- SvStream* pIStrm = pMedium->GetInStream();
- if( !pIStrm || SVSTREAM_OK != pIStrm->GetError() )
- return 0;
- ULONG nCurrPos = pIStrm->Tell();
- nBytesRead = pIStrm->Read(aBuffer, nMaxRead);
- pIStrm->Seek( nCurrPos );
- }
- /*
- else
- {
- SvFileStream aStrm( rFileName, STREAM_READ );
-
- // ohne FileName oder ohne Stream gibts nur den ANSI-Filter
- if( !rFileName.Len() || SVSTREAM_OK != aStrm.GetError() )
- return 0;
-
- nBytesRead = aStrm.Read(aBuffer, nMaxRead);
- aStrm.Close();
- }*/
-
- TerminateBuffer(aBuffer, nBytesRead, sizeof(aBuffer));
-
-
- /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
- /* suche nach dem bestimmten Filter, falls kein entsprechender */
- /* gefunden wird, so wird der ASCII-Filter returnt. */
- /* Gibt es Filter ohne einen Identifizierungs-String, so werden diese */
- /* nie erkannt und es wird auch der ASCII-Filter returnt. */
- /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
- {
- const SfxFilter* pFilterTmp = 0;
- const sal_Char* pNm;
- for( USHORT n = 0; n < MAXFILTER; ++n )
- {
- String sEmptyUserData;
- pNm = aReaderWriter[n].IsReader(aBuffer, nBytesRead, rFileName, sEmptyUserData);
- pFilterTmp = pNm ? SwIoSystem::GetFilterOfFormat(String::CreateFromAscii(pNm), pFCntnr) : 0;
- if (pNm && pFilterTmp)
- {
- return pFilterTmp;
- }
- }
- }
-
- /* Ok, bis jetzt kein Filter gefunden, also befrage mal die */
- /* "WORD 4 WORD" Filter */
- if( rFileName.Len() )
- {
- if( pMedium )
- pMedium->CloseInStream();
-
- }
- return SwIoSystem::GetTextFilter( aBuffer, nBytesRead);
-}
-
-bool SwIoSystem::IsDetectableText(const sal_Char* pBuf, ULONG &rLen,
- CharSet *pCharSet, bool *pSwap, LineEnd *pLineEnd, bool bEncodedFilter)
-{
- bool bSwap = false;
- CharSet eCharSet = RTL_TEXTENCODING_DONTKNOW;
- bool bLE = true;
- ULONG nHead=0;
- /*See if its a known unicode type*/
- if (rLen >= 2)
- {
- if (rLen > 2 && BYTE(pBuf[0]) == 0xEF && BYTE(pBuf[1]) == 0xBB &&
- BYTE(pBuf[2]) == 0xBF)
- {
- eCharSet = RTL_TEXTENCODING_UTF8;
- nHead = 3;
- }
- else if (BYTE(pBuf[0]) == 0xFE && BYTE(pBuf[1]) == 0xFF)
- {
- eCharSet = RTL_TEXTENCODING_UCS2;
- bLE = false;
- nHead = 2;
- }
- else if (BYTE(pBuf[1]) == 0xFE && BYTE(pBuf[0]) == 0xFF)
- {
- eCharSet = RTL_TEXTENCODING_UCS2;
- nHead = 2;
- }
- pBuf+=nHead;
- rLen-=nHead;
- }
-
- bool bCR = false, bLF = false, bNoNormalChar = false,
- bIsBareUnicode = false;
-
- if (eCharSet != RTL_TEXTENCODING_DONTKNOW)
- {
- String sWork;
- sal_Unicode *pNewBuf = sWork.AllocBuffer( static_cast< xub_StrLen >(rLen));
- sal_Size nNewLen;
- if (eCharSet != RTL_TEXTENCODING_UCS2)
- {
- nNewLen = rLen;
- rtl_TextToUnicodeConverter hConverter =
- rtl_createTextToUnicodeConverter(eCharSet);
- rtl_TextToUnicodeContext hContext =
- rtl_createTextToUnicodeContext(hConverter);
-
- sal_Size nCntBytes;
- sal_uInt32 nInfo;
- nNewLen = rtl_convertTextToUnicode( hConverter, hContext, pBuf,
- rLen, pNewBuf, nNewLen,
- (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_DEFAULT |
- RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_DEFAULT |
- RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT), &nInfo, &nCntBytes);
-
- rtl_destroyTextToUnicodeContext(hConverter, hContext);
- rtl_destroyTextToUnicodeConverter(hConverter);
- }
- else
- {
- nNewLen = rLen/2;
- memcpy(pNewBuf, pBuf, rLen);
-#ifdef OSL_LITENDIAN
- bool bNativeLE = true;
-#else
- bool bNativeLE = false;
-#endif
- if (bLE != bNativeLE)
- {
- bSwap = true;
- sal_Char* pF = (sal_Char*)pNewBuf;
- sal_Char* pN = pF+1;
- for(xub_StrLen n = 0; n < nNewLen; ++n, pF+=2, pN+=2)
- {
- sal_Char c = *pF;
- *pF = *pN;
- *pN = c;
- }
- }
- }
-
- sWork.ReleaseBufferAccess( static_cast< xub_StrLen >(nNewLen) );
- pNewBuf = sWork.GetBufferAccess();
-
- for (ULONG nCnt = 0; nCnt < nNewLen; ++nCnt, ++pNewBuf)
- {
- switch (*pNewBuf)
- {
- case 0xA:
- bLF = true;
- break;
- case 0xD:
- bCR = true;
- break;
- default:
- break;
- }
- }
- }
- else
- {
- for( ULONG nCnt = 0; nCnt < rLen; ++nCnt, ++pBuf )
- {
- switch (*pBuf)
- {
- case 0x0:
- if( nCnt + 1 < rLen && !*(pBuf+1) )
- return 0;
- bIsBareUnicode = true;
- break;
- case 0xA:
- bLF = true;
- break;
- case 0xD:
- bCR = true;
- break;
- case 0xC:
- case 0x1A:
- case 0x9:
- break;
- default:
- if (0x20 > (BYTE)*pBuf)
- bNoNormalChar = true;
- break;
- }
- }
- }
-
- LineEnd eSysLE = GetSystemLineEnd();
- LineEnd eLineEnd;
- if (!bCR && !bLF)
- eLineEnd = eSysLE;
- else
- eLineEnd = bCR ? ( bLF ? LINEEND_CRLF : LINEEND_CR ) : LINEEND_LF;
-
- if (pCharSet)
- *pCharSet = eCharSet;
- if (pSwap)
- *pSwap = bSwap;
- if (pLineEnd)
- *pLineEnd = eLineEnd;
-
- return bEncodedFilter || (!bIsBareUnicode && eSysLE == eLineEnd);
-}
-
-const SfxFilter* SwIoSystem::GetTextFilter( const sal_Char* pBuf, ULONG nLen)
-{
- bool bAuto = IsDetectableText(pBuf, nLen);
- const sal_Char* pNm = bAuto ? FILTER_TEXT : FILTER_TEXT_DLG;
- return SwIoSystem::GetFilterOfFormat( String::CreateFromAscii(pNm), 0 );
-}
-
-
-#endif
diff --git a/sw/inc/iodetect.hxx b/sw/inc/iodetect.hxx
new file mode 100644
index 000000000000..24467f7ad537
--- /dev/null
+++ b/sw/inc/iodetect.hxx
@@ -0,0 +1,130 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2008 by Sun Microsystems, Inc.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: iodetect.cxx,v $
+ * $Revision: 1.31 $
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _IODETECT_HXX_
+#define _IODETECT_HXX_
+
+#include <sfx2/docfilt.hxx>
+#include <sfx2/docfile.hxx>
+#include <sfx2/fcontnr.hxx>
+#include <osl/endian.h>
+#include <errhdl.hxx> // for ASSERT
+#include <tools/string.hxx>
+#include <swdllapi.h>
+
+#define FILTER_RTF "RTF" // RTF-Filter
+#define sRtfWH "WH_RTF"
+#define FILTER_TEXT "TEXT" // Text-Filter mit Default-CodeSet
+#define FILTER_BAS "BAS" // StarBasic (identisch mit ANSI)
+#define FILTER_WW8 "CWW8" // WinWord 97-Filter
+#define FILTER_TEXT_DLG "TEXT_DLG" // text filter with encoding dialog
+#define FILTER_XML "CXML" // XML filter
+#define FILTER_XMLV "CXMLV" // XML filter
+#define FILTER_XMLVW "CXMLVWEB" // XML filter
+#define sHTML "HTML"
+#define sWW1 "WW1"
+#define sWW5 "WW6"
+#define sWW6 "CWW6"
+
+#define sSWRITER "swriter"
+#define sSWRITERWEB "swriter/web"
+
+struct SwIoDetect
+{
+ const sal_Char* pName;
+ USHORT nLen;
+
+ inline SwIoDetect( const sal_Char *pN, USHORT nL )
+ : pName( pN ), nLen( nL )
+ {}
+
+ inline int IsFilter( const String& rNm ) const
+ {
+ return pName && rNm.EqualsAscii( pName, 0, nLen );
+ }
+
+ const sal_Char* IsReader( const sal_Char* pHeader, ULONG nLen_,
+ const String &rFileName, const String& rUserData ) const;
+};
+
+enum ReaderWriterEnum {
+ READER_WRITER_RTF,
+ READER_WRITER_BAS,
+ READER_WRITER_WW6,
+ READER_WRITER_WW8,
+ READER_WRITER_RTF_WH,
+ READER_WRITER_HTML,
+ READER_WRITER_WW1,
+ READER_WRITER_WW5,
+ READER_WRITER_XML,
+ READER_WRITER_TEXT_DLG,
+ READER_WRITER_TEXT,
+ MAXFILTER
+};
+
+extern SwIoDetect aFilterDetect[];
+
+// Die folgende Klasse ist ein Wrappe fuer die Basic-I/O-Funktionen
+// des Writer 3.0. Alles ist statisch. Alle u.a. Filternamen sind die
+// Writer-internen Namen, d.h. die namen, die in INSTALL.INI vor dem
+// Gleichheitszeichen stehen, z.b. SWG oder ASCII.
+
+class SwIoSystem
+{
+public:
+ // suche ueber den internen FormatNamen den Filtereintrag
+ SW_DLLPUBLIC static const SfxFilter* GetFilterOfFormat( const String& rFormat,
+ const SfxFilterContainer* pCnt = 0 );
+
+ // Feststellen des zu verwendenden Filters fuer die uebergebene
+ // Datei. Der Filtername wird zurueckgeliefert. Konnte kein Filter
+ // zurueckgeliefert werden, wird der Name des ASCII-Filters geliefert!
+ static const SfxFilter* GetFileFilter( const String& rFileName,
+ const String& rPrefFltName,
+ SfxMedium* pMedium = 0 );
+
+ // Feststellen ob das File in dem vorgegebenen Format vorliegt.
+ // Z.z werden nur unsere eigene Filter unterstuetzt!!
+ static BOOL IsFileFilter( SfxMedium& rMedium, const String& rFmtName,
+ const SfxFilter** ppFlt = 0 );
+
+ static BOOL IsValidStgFilter( SotStorage& , const SfxFilter& );
+ static BOOL IsValidStgFilter( const com::sun::star::uno::Reference < com::sun::star::embed::XStorage >& rStg, const SfxFilter& rFilter);
+
+ static bool IsDetectableText( const sal_Char* pBuf, ULONG &rLen,
+ CharSet *pCharSet=0, bool *pSwap=0, LineEnd *pLineEnd=0, bool bEncodedFilter = false );
+ // static bool IsDetectableW4W(const String& rFileName, const String& rUserData);
+
+ static const SfxFilter* GetTextFilter( const sal_Char* pBuf, ULONG nLen );
+
+ static const String GetSubStorageName( const SfxFilter& rFltr );
+};
+
+#endif
diff --git a/sw/inc/mdiexp.hxx b/sw/inc/mdiexp.hxx
index 69dc79bf5380..31df17358a77 100644
--- a/sw/inc/mdiexp.hxx
+++ b/sw/inc/mdiexp.hxx
@@ -32,6 +32,8 @@
#include <tools/solar.h>
#include <tblenum.hxx>
+#include <swdllapi.h>
+
class UniString;
class SwRect;
class Size;
@@ -53,9 +55,9 @@ extern void PageNumNotify( ViewShell* pVwSh,
enum FlyMode { FLY_DRAG_START, FLY_DRAG, FLY_DRAG_END };
extern void FrameNotify( ViewShell* pVwSh, FlyMode eMode = FLY_DRAG );
-void StartProgress ( USHORT nMessId, long nStartVal, long nEndVal, SwDocShell *pDocSh = 0 );
-void EndProgress ( SwDocShell *pDocSh = 0 );
-void SetProgressState ( long nPosition, SwDocShell *pDocShell );
+SW_DLLPUBLIC void StartProgress ( USHORT nMessId, long nStartVal, long nEndVal, SwDocShell *pDocSh = 0 );
+SW_DLLPUBLIC void EndProgress ( SwDocShell *pDocSh = 0 );
+SW_DLLPUBLIC void SetProgressState ( long nPosition, SwDocShell *pDocShell );
void SetProgressText ( USHORT nMessId, SwDocShell *pDocShell );
void RescheduleProgress( SwDocShell *pDocShell );
diff --git a/sw/inc/ndarr.hxx b/sw/inc/ndarr.hxx
index 536061940fd1..55b38090545a 100644
--- a/sw/inc/ndarr.hxx
+++ b/sw/inc/ndarr.hxx
@@ -84,7 +84,7 @@ typedef BOOL (*FnForEach_SwNodes)( const SwNodePtr&, void* pArgs );
SV_DECL_PTRARR_SORT( SwOutlineNodes, SwNodePtr, 0, 10 )
-class SwNodes: private BigPtrArray
+class SW_DLLPUBLIC SwNodes: private BigPtrArray
{
friend class SwDoc;
friend class SwNode;
diff --git a/sw/inc/ndgrf.hxx b/sw/inc/ndgrf.hxx
index 1d8a3940c46b..45ecea30a9c0 100644
--- a/sw/inc/ndgrf.hxx
+++ b/sw/inc/ndgrf.hxx
@@ -48,7 +48,7 @@ class SvStorage;
// --------------------
// SwGrfNode
// --------------------
-class SwGrfNode: public SwNoTxtNode
+class SW_DLLPUBLIC SwGrfNode: public SwNoTxtNode
{
friend class SwNodes;
diff --git a/sw/inc/ndindex.hxx b/sw/inc/ndindex.hxx
index d1d66028a4aa..0942621991e8 100644
--- a/sw/inc/ndindex.hxx
+++ b/sw/inc/ndindex.hxx
@@ -39,7 +39,7 @@
class SwNode;
class SwNodes;
-class SwNodeIndex
+class SW_DLLPUBLIC SwNodeIndex
{
friend void SwNodes::RegisterIndex( SwNodeIndex& );
friend void SwNodes::DeRegisterIndex( SwNodeIndex& );
@@ -112,7 +112,7 @@ public:
/*
* SwRange
*/
-class SwNodeRange
+class SW_DLLPUBLIC SwNodeRange
{
public:
SwNodeIndex aStart;
diff --git a/sw/inc/ndnotxt.hxx b/sw/inc/ndnotxt.hxx
index 5d7cab19f4b2..b123bfd70cb3 100644
--- a/sw/inc/ndnotxt.hxx
+++ b/sw/inc/ndnotxt.hxx
@@ -38,7 +38,7 @@ class PolyPolygon;
// SwNoTxtNode
// --------------------
-class SwNoTxtNode : public SwCntntNode
+class SW_DLLPUBLIC SwNoTxtNode : public SwCntntNode
{
friend class SwNodes;
friend class SwNoTxtFrm;
diff --git a/sw/inc/ndole.hxx b/sw/inc/ndole.hxx
index 6e0838d06671..41dde811bc40 100644
--- a/sw/inc/ndole.hxx
+++ b/sw/inc/ndole.hxx
@@ -40,7 +40,7 @@ class SwOLENode;
class SwOLEListener_Impl;
class SwEmbedObjectLink;
-class SwOLEObj
+class SW_DLLPUBLIC SwOLEObj
{
friend class SwOLENode;
@@ -82,7 +82,7 @@ public:
// SwOLENode
// --------------------
-class SwOLENode: public SwNoTxtNode
+class SW_DLLPUBLIC SwOLENode: public SwNoTxtNode
{
friend class SwNodes;
mutable SwOLEObj aOLEObj;
diff --git a/sw/inc/node.hxx b/sw/inc/node.hxx
index fc15c370db3e..029e8a8b8454 100644
--- a/sw/inc/node.hxx
+++ b/sw/inc/node.hxx
@@ -367,7 +367,7 @@ private:
// --------------------
// SwCntntNode
// --------------------
-class SwCntntNode: public SwModify, public SwNode, public SwIndexReg
+class SW_DLLPUBLIC SwCntntNode: public SwModify, public SwNode, public SwIndexReg
{
// Der Reader darf NewAttrSet() aufrufen!
// friend class SwSwgReader;
@@ -510,7 +510,7 @@ private:
//---------
// SwTableNode
//---------
-class SwTableNode : public SwStartNode
+class SW_DLLPUBLIC SwTableNode : public SwStartNode
{
friend class SwNodes;
SwTable* pTable;
diff --git a/sw/inc/numrule.hxx b/sw/inc/numrule.hxx
index 8715cba74ae5..9b3714c806bf 100644
--- a/sw/inc/numrule.hxx
+++ b/sw/inc/numrule.hxx
@@ -347,7 +347,7 @@ namespace numfunc
@author OD
*/
- const Font& GetDefBulletFont();
+ SW_DLLPUBLIC const Font& GetDefBulletFont();
/** retrieve unicode of character used for the default bullet list for the given list level
diff --git a/sw/inc/pam.hxx b/sw/inc/pam.hxx
index f4237c6b964b..b568a474cd7c 100644
--- a/sw/inc/pam.hxx
+++ b/sw/inc/pam.hxx
@@ -55,7 +55,7 @@ namespace utl {
class TextSearch;
}
-struct SwPosition
+struct SW_DLLPUBLIC SwPosition
{
SwNodeIndex nNode;
SwIndex nContent;
@@ -113,12 +113,12 @@ SwComparePosition ComparePosition(
struct SwMoveFnCollection;
typedef SwMoveFnCollection* SwMoveFn;
SW_DLLPUBLIC extern SwMoveFn fnMoveForward; // SwPam::Move()/Find() default argument.
-extern SwMoveFn fnMoveBackward;
+SW_DLLPUBLIC extern SwMoveFn fnMoveBackward;
typedef BOOL (*SwGoInDoc)( SwPaM& rPam, SwMoveFn fnMove );
-extern SwGoInDoc fnGoDoc;
+SW_DLLPUBLIC extern SwGoInDoc fnGoDoc;
extern SwGoInDoc fnGoSection;
-extern SwGoInDoc fnGoNode;
+SW_DLLPUBLIC extern SwGoInDoc fnGoNode;
SW_DLLPUBLIC extern SwGoInDoc fnGoCntnt; // SwPam::Move() default argument.
extern SwGoInDoc fnGoCntntCells;
extern SwGoInDoc fnGoCntntSkipHidden;
@@ -126,7 +126,7 @@ extern SwGoInDoc fnGoCntntCellsSkipHidden;
void _InitPam();
-class SwPaM : public Ring
+class SW_DLLPUBLIC SwPaM : public Ring
{
SwPosition aBound1;
SwPosition aBound2;
diff --git a/sw/inc/redline.hxx b/sw/inc/redline.hxx
index b05f132b5e23..871c9f477f9a 100644
--- a/sw/inc/redline.hxx
+++ b/sw/inc/redline.hxx
@@ -91,7 +91,7 @@ public:
};
-class SwRedlineData
+class SW_DLLPUBLIC SwRedlineData
{
friend class SwRedline;
SwRedlineData* pNext; // Verweis auf weitere Daten
@@ -169,7 +169,7 @@ public:
};
-class SwRedline : public SwPaM
+class SW_DLLPUBLIC SwRedline : public SwPaM
{
SwRedlineData* pRedlineData;
SwNodeIndex* pCntntSect;
diff --git a/sw/inc/shellio.hxx b/sw/inc/shellio.hxx
index d40320cf0543..bc1453b561df 100644
--- a/sw/inc/shellio.hxx
+++ b/sw/inc/shellio.hxx
@@ -32,17 +32,22 @@
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/embed/XStorage.hpp>
+#include <sfx2/docfile.hxx>
+#include <sfx2/fcontnr.hxx>
+#include <sot/formats.hxx>
+#include <sot/storage.hxx>
+#include <svtools/parhtml.hxx>
#include <tools/string.hxx>
#include <tools/date.hxx>
#include <tools/time.hxx>
#include <tools/datetime.hxx>
#include <tools/ref.hxx>
-#include <sot/formats.hxx>
-#include "swdllapi.h"
+#include <tools/urlobj.hxx>
+#include <swdllapi.h>
#include <swtypes.hxx>
#include <docfac.hxx> // SwDocFac
-
-#include <sot/storage.hxx>
+#include <errhdl.hxx>
+#include <iodetect.hxx>
// einige Forward - Deklarationen
class SfxFilterContainer;
@@ -210,7 +215,7 @@ protected:
#define SW_STREAM_READER 1
#define SW_STORAGE_READER 2
-class Reader
+class SW_DLLPUBLIC Reader
{
friend class SwReader;
SwDoc* pTemplate;
@@ -292,12 +297,6 @@ private:
virtual int SetStrmStgPtr();
};
-class RtfReader: public Reader
-{
- virtual ULONG Read( SwDoc &, const String& rBaseURL, SwPaM &,const String &);
-};
-
-
class AsciiReader: public Reader
{
friend class SwReader;
@@ -311,7 +310,7 @@ public:
virtual ULONG Read( SwDoc &, const String& rBaseURL, SwPaM &,const String &);
};
*/
-class StgReader : public Reader
+class SW_DLLPUBLIC StgReader : public Reader
{
String aFltName;
@@ -411,7 +410,7 @@ public:
extern void _InitFilter();
extern void _FinitFilter();
-extern SwRead ReadRtf, ReadAscii, /*ReadSwg, ReadSw3, */ReadHTML, ReadXML;
+extern SwRead ReadAscii, /*ReadSwg, ReadSw3, */ReadHTML, ReadXML;
//SW_DLLPUBLIC SwRead SwGetReaderSw3();
SW_DLLPUBLIC SwRead SwGetReaderXML();
@@ -435,7 +434,7 @@ extern BOOL SetHTMLTemplate( SwDoc &rDoc ); //Fuer Vorlagen aus HTML.vor laden s
class IDocumentSettingAccess;
class IDocumentStylePoolAccess;
-class Writer : public SvRefBase
+class SW_DLLPUBLIC Writer : public SvRefBase
{
SwAsciiOptions aAscOpts;
String sBaseURL;
@@ -555,7 +554,7 @@ SV_DECL_REF(Writer)
SV_IMPL_REF(Writer)
// Basisklasse fuer alle Storage-Writer
-class StgWriter : public Writer
+class SW_DLLPUBLIC StgWriter : public Writer
{
protected:
String aFltName;
@@ -636,81 +635,44 @@ public:
/* */
/////////////////////////////////////////////////////////////////////////////
-void GetRTFWriter( const String&, const String&, WriterRef& );
-void GetASCWriter( const String&, const String&, WriterRef& );
-//void GetSw3Writer( const String&, const String&, WriterRef& );
-void GetHTMLWriter( const String&, const String&, WriterRef& );
-void GetXMLWriter( const String&, const String&, WriterRef& );
-
-// Die folgende Klasse ist ein Wrappe fuer die Basic-I/O-Funktionen
-// des Writer 3.0. Alles ist statisch. Alle u.a. Filternamen sind die
-// Writer-internen Namen, d.h. die namen, die in INSTALL.INI vor dem
-// Gleichheitszeichen stehen, z.b. SWG oder ASCII.
+typedef Reader* (*FnGetReader)();
+typedef void (*FnGetWriter)(const String&, const String& rBaseURL, WriterRef&);
-class SW_DLLPUBLIC SwIoSystem
+struct SwReaderWriterEntry
{
-public:
- // suche ueber den internen FormatNamen den Filtereintrag
- static const SfxFilter* GetFilterOfFormat( const String& rFormat,
- const SfxFilterContainer* pCnt = 0 );
-
- // Feststellen des zu verwendenden Filters fuer die uebergebene
- // Datei. Der Filtername wird zurueckgeliefert. Konnte kein Filter
- // zurueckgeliefert werden, wird der Name des ASCII-Filters geliefert!
- static const SfxFilter* GetFileFilter( const String& rFileName,
- const String& rPrefFltName,
- SfxMedium* pMedium = 0 );
-
- // Feststellen ob das File in dem vorgegebenen Format vorliegt.
- // Z.z werden nur unsere eigene Filter unterstuetzt!!
- static BOOL IsFileFilter( SfxMedium& rMedium, const String& rFmtName,
- const SfxFilter** ppFlt = 0 );
-
- static BOOL IsValidStgFilter( SotStorage& , const SfxFilter& );
- static BOOL IsValidStgFilter( const com::sun::star::uno::Reference < com::sun::star::embed::XStorage >& rStg, const SfxFilter& rFilter);
-
- static bool IsDetectableText(const sal_Char* pBuf, ULONG &rLen,
- CharSet *pCharSet=0, bool *pSwap=0, LineEnd *pLineEnd=0, bool bEncodedFilter = false);
-// static bool IsDetectableW4W(const String& rFileName, const String& rUserData);
-
- static const SfxFilter* GetTextFilter(const sal_Char* pBuf, ULONG nLen);
- // gebe einen bestimmten Reader zurueck
- static Reader* GetReader( const String& rFltName );
- // gebe einen bestimmten Writer zurueck
- static void GetWriter( const String& rFltName, const String& rBaseURL, WriterRef& xWrt );
-
- static const String GetSubStorageName( const SfxFilter& rFltr );
+ Reader* pReader;
+ FnGetReader fnGetReader;
+ FnGetWriter fnGetWriter;
+ BOOL bDelReader;
+
+ SwReaderWriterEntry( const FnGetReader fnReader, const FnGetWriter fnWriter, BOOL bDel )
+ : pReader( NULL ), fnGetReader( fnReader ), fnGetWriter( fnWriter ), bDelReader( bDel )
+ {}
+
+ /// Get access to the reader
+ Reader* GetReader();
+
+ /// Get access to the writer
+ void GetWriter( const String& rNm, const String& rBaseURL, WriterRef& xWrt ) const;
};
+namespace SwReaderWriter
+{
+ /// Return reader based on ReaderWriterEnum
+ Reader* GetReader( ReaderWriterEnum eReader );
+
+ /// Return reader based on the name
+ Reader* GetReader( const String& rFltName );
+
+ /// Return writer based on the name
+ void GetWriter( const String& rFltName, const String& rBaseURL, WriterRef& xWrt );
+}
-// ----------------------------------
-// diese Filter sind immer vorhanden und koennen ueber die
-// Formatnamen gesucht werden. Alle anderen Filter sind nur intern
-// bekannt. Die UI-Seite benutzt die GetReader()/GetWriter() -Funktionen,
-// um die speziellen zu erhalten.
-
-//extern const sal_Char __FAR_DATA FILTER_SWG[]; // SWG-Filter
-extern const sal_Char __FAR_DATA FILTER_RTF[]; // RTF-Filter
-extern const sal_Char __FAR_DATA FILTER_TEXT[]; // Text-Filter mit Default-CodeSet
-extern const sal_Char __FAR_DATA FILTER_BAS[]; // StarBasic (identisch mit ANSI)
-//extern const sal_Char __FAR_DATA FILTER_W4W[]; // W4W-Filter
-extern const sal_Char __FAR_DATA FILTER_WW8[]; // WinWord 97-Filter
-//extern const sal_Char __FAR_DATA FILTER_SW3[]; // SW3-Storage Filter
-//extern const sal_Char __FAR_DATA FILTER_SW4[]; // SW4-Storage Filter
-//extern const sal_Char __FAR_DATA FILTER_SW4[]; // SW4-Storage Filter
-//extern const sal_Char __FAR_DATA FILTER_SW5[]; // SW5-Storage Filter
-//extern const sal_Char __FAR_DATA FILTER_SWGV[]; // SWG-Vorlagen Filter
-//extern const sal_Char __FAR_DATA FILTER_SW3V[]; // SW3-Storage Vorlagen Filter
-//extern const sal_Char __FAR_DATA FILTER_SW4V[]; // SW4-Storage Vorlagen Filter
-//extern const sal_Char __FAR_DATA FILTER_SW5V[]; // SW5-Storage Vorlagen Filter
-//extern const sal_Char __FAR_DATA FILTER_SWW4V[]; // SW/Web Storage Vorlagen Filter
-//extern const sal_Char __FAR_DATA FILTER_SWW5V[]; // SW/Web Storage Vorlagen Filter
-extern const sal_Char __FAR_DATA FILTER_TEXT_DLG[]; // text filter with encoding dialog
-extern const sal_Char __FAR_DATA FILTER_XML[]; // XML filter
-extern const sal_Char __FAR_DATA FILTER_XMLV[]; // XML filter
-extern const sal_Char __FAR_DATA FILTER_XMLVW[]; // XML filter
-
-SW_DLLPUBLIC const sal_Char* GetFILTER_XML();
-SW_DLLPUBLIC const sal_Char* GetFILTER_WW8();
+void GetRTFWriter( const String&, const String&, WriterRef& );
+void GetASCWriter( const String&, const String&, WriterRef& );
+//void GetSw3Writer( const String&, const String&, WriterRef& );
+void GetHTMLWriter( const String&, const String&, WriterRef& );
+void GetXMLWriter( const String&, const String&, WriterRef& );
+void GetWW8Writer( const String&, const String&, WriterRef& );
#endif
diff --git a/sw/inc/shellres.hxx b/sw/inc/shellres.hxx
index be63a2984742..4c7bb09ebe45 100644
--- a/sw/inc/shellres.hxx
+++ b/sw/inc/shellres.hxx
@@ -42,7 +42,7 @@
#include <svtools/svstdarr.hxx>
#endif
-struct ShellResource : public Resource
+struct SW_DLLPUBLIC ShellResource : public Resource
{
String aPostItAuthor;
String aPostItPage;
diff --git a/sw/inc/sw.mk b/sw/inc/sw.mk
index dffaeea33716..e827ec156025 100644
--- a/sw/inc/sw.mk
+++ b/sw/inc/sw.mk
@@ -37,6 +37,8 @@
CDEFS+=-DACCESSIBLE_LAYOUT
# define SW_DLLIMPLEMENTATION (see @ swdllapi.h)
+.IF "$(MAKING_LIBMSWORD)" != "TRUE"
CDEFS += -DSW_DLLIMPLEMENTATION
+.ENDIF
VISIBILITY_HIDDEN=TRUE
diff --git a/sw/inc/swatrset.hxx b/sw/inc/swatrset.hxx
index e420a4db5f2d..3c5df0617713 100644
--- a/sw/inc/swatrset.hxx
+++ b/sw/inc/swatrset.hxx
@@ -33,7 +33,7 @@
#include <tools/mempool.hxx>
#include <svtools/itemset.hxx>
#include <svtools/itempool.hxx>
-
+#include <swdllapi.h>
class SwModify;
class SwDoc;
@@ -171,7 +171,7 @@ public:
};
-class SwAttrSet : public SfxItemSet
+class SW_DLLPUBLIC SwAttrSet : public SfxItemSet
{
// Pointer fuers Modify-System
SwAttrSet *pOldSet, *pNewSet;
@@ -344,7 +344,7 @@ public:
};
//Helper for filters to find true lineheight of a font
-long AttrSetToLineHeight( const IDocumentSettingAccess& rIDocumentSettingAccess,
+SW_DLLPUBLIC long AttrSetToLineHeight( const IDocumentSettingAccess& rIDocumentSettingAccess,
const SwAttrSet &rSet,
const OutputDevice &rOut, sal_Int16 nScript);
#endif
diff --git a/sw/inc/swfltopt.hxx b/sw/inc/swfltopt.hxx
index 94ef51c83617..8b7e9c2ea451 100644
--- a/sw/inc/swfltopt.hxx
+++ b/sw/inc/swfltopt.hxx
@@ -32,7 +32,7 @@
#include <unotools/configitem.hxx>
-class SwFilterOptions : public utl::ConfigItem
+class SW_DLLPUBLIC SwFilterOptions : public utl::ConfigItem
{
public:
SwFilterOptions( sal_uInt16 nCnt, const sal_Char** ppNames,
diff --git a/sw/inc/swmodule.hxx b/sw/inc/swmodule.hxx
index 03aad91d2242..ab3311e2fee2 100644
--- a/sw/inc/swmodule.hxx
+++ b/sw/inc/swmodule.hxx
@@ -77,7 +77,7 @@ namespace com{ namespace sun{ namespace star{ namespace scanner{
class XScannerManager;
}}}}
-class SwModule: public SfxModule, public SfxListener
+class SW_DLLPUBLIC SwModule: public SfxModule, public SfxListener
{
String sActAuthor;
@@ -157,29 +157,29 @@ public:
void ExecOther(SfxRequest &); // Felder, Formel ..
// Benutzereinstellungen modifizieren
- SW_DLLPUBLIC const SwMasterUsrPref *GetUsrPref(sal_Bool bWeb) const;
+ const SwMasterUsrPref *GetUsrPref(sal_Bool bWeb) const;
const SwViewOption* GetViewOption(sal_Bool bWeb);
void ApplyUsrPref(const SwViewOption &, SwView*,
sal_uInt16 nDest = VIEWOPT_DEST_VIEW );
void ApplyUserMetric( FieldUnit eMetric, BOOL bWeb );
- SW_DLLPUBLIC void ApplyFldUpdateFlags(SwFldUpdateFlags eFldFlags);
- SW_DLLPUBLIC void ApplyLinkMode(sal_Int32 nNewLinkMode);
+ void ApplyFldUpdateFlags(SwFldUpdateFlags eFldFlags);
+ void ApplyLinkMode(sal_Int32 nNewLinkMode);
//default page mode for text grid
- SW_DLLPUBLIC void ApplyDefaultPageMode(sal_Bool bIsSquaredPageMode);
+ void ApplyDefaultPageMode(sal_Bool bIsSquaredPageMode);
// ConfigItems erzeugen
SwModuleOptions* GetModuleConfig() { return pModuleConfig;}
- SW_DLLPUBLIC SwPrintOptions* GetPrtOptions(sal_Bool bWeb);
- SW_DLLPUBLIC SwChapterNumRules* GetChapterNumRules();
+ SwPrintOptions* GetPrtOptions(sal_Bool bWeb);
+ SwChapterNumRules* GetChapterNumRules();
SwStdFontConfig* GetStdFontConfig() { return pStdFontConfig; }
SwNavigationConfig* GetNavigationConfig();
SwToolbarConfigItem*GetToolbarConfig() { return pToolbarConfig; }
SwToolbarConfigItem*GetWebToolbarConfig() { return pWebToolbarConfig; }
- SW_DLLPUBLIC SwDBConfig* GetDBConfig();
+ SwDBConfig* GetDBConfig();
svtools::ColorConfig& GetColorConfig();
- SW_DLLPUBLIC SvtAccessibilityOptions& GetAccessibilityOptions();
- SW_DLLPUBLIC SvtCTLOptions& GetCTLOptions();
+ SvtAccessibilityOptions& GetAccessibilityOptions();
+ SvtCTLOptions& GetCTLOptions();
SvtUserOptions& GetUserOptions();
SvtUndoOptions& GetUndoOptions();
diff --git a/sw/inc/swtable.hxx b/sw/inc/swtable.hxx
index 40aa72ec3d7c..1a62bb3d4dfd 100644
--- a/sw/inc/swtable.hxx
+++ b/sw/inc/swtable.hxx
@@ -85,7 +85,7 @@ typedef SwTableBox* SwTableBoxPtr;
SV_DECL_PTRARR_SORT( SwTableSortBoxes, SwTableBoxPtr, 25, 50 )
typedef SwTableLine* SwTableLinePtr;
-class SwTable: public SwClient //Client vom FrmFmt
+class SW_DLLPUBLIC SwTable: public SwClient //Client vom FrmFmt
{
using SwClient::IsModifyLocked;
@@ -328,7 +328,7 @@ public:
#endif
};
-class SwTableLine: public SwClient // Client vom FrmFmt
+class SW_DLLPUBLIC SwTableLine: public SwClient // Client vom FrmFmt
{
SwTableBoxes aBoxes;
SwTableBox *pUpper;
@@ -367,7 +367,7 @@ public:
bool hasSoftPageBreak() const;
};
-class SwTableBox: public SwClient //Client vom FrmFmt
+class SW_DLLPUBLIC SwTableBox: public SwClient //Client vom FrmFmt
{
friend class SwNodes; // um den Index umzusetzen !
friend void DelBoxNode(SwTableSortBoxes&); // um den StartNode* zu loeschen !
diff --git a/sw/inc/swtypes.hxx b/sw/inc/swtypes.hxx
index 9f23da9fdfa6..f19df7fd1894 100644
--- a/sw/inc/swtypes.hxx
+++ b/sw/inc/swtypes.hxx
@@ -103,9 +103,9 @@ const SwTwips lMinBorder = 1134;
#define UNDO_ACTION_COUNT 20
// Konstante Strings
-extern UniString aEmptyStr; // ""
+SW_DLLPUBLIC extern UniString aEmptyStr; // ""
extern ByteString aEmptyByteStr; // ""
-extern UniString aDotStr; // '.'
+SW_DLLPUBLIC extern UniString aDotStr; // '.'
//Zum Einfuegen von Beschriftungen (wie bzw. wo soll eingefuegt werden).
//Hier weil ein eigenes hxx nicht lohnt und es sonst nirgendwo so recht
@@ -208,7 +208,7 @@ const sal_Unicode cMarkSeperator = '|';
extern const sal_Char* __FAR_DATA pMarkToTable; // Strings stehen
extern const sal_Char* __FAR_DATA pMarkToFrame; // im Init.cxx
extern const sal_Char* __FAR_DATA pMarkToRegion;
-extern const sal_Char* __FAR_DATA pMarkToOutline;
+SW_DLLPUBLIC extern const sal_Char* __FAR_DATA pMarkToOutline;
extern const sal_Char* __FAR_DATA pMarkToText;
extern const sal_Char* __FAR_DATA pMarkToGraphic;
extern const sal_Char* __FAR_DATA pMarkToOLE;
diff --git a/sw/inc/txtatr.hxx b/sw/inc/txtatr.hxx
index fd9957c09e6d..50914169d6fc 100644
--- a/sw/inc/txtatr.hxx
+++ b/sw/inc/txtatr.hxx
@@ -81,7 +81,7 @@ public:
// ******************************
-class SwTxtRuby : public SwTxtAttrEnd, public SwClient
+class SW_DLLPUBLIC SwTxtRuby : public SwTxtAttrEnd, public SwClient
{
SwTxtNode* pMyTxtNd;
diff --git a/sw/inc/txtftn.hxx b/sw/inc/txtftn.hxx
index 80c372aad3e6..c2011babf8a9 100644
--- a/sw/inc/txtftn.hxx
+++ b/sw/inc/txtftn.hxx
@@ -39,7 +39,7 @@ class SwDoc;
// ATT_FTN **********************************************************
-class SwTxtFtn : public SwTxtAttr
+class SW_DLLPUBLIC SwTxtFtn : public SwTxtAttr
{
SwNodeIndex *pStartNode;
SwTxtNode* pMyTxtNd;
diff --git a/sw/inc/txtinet.hxx b/sw/inc/txtinet.hxx
index ac404ad5ac12..ef55bf69d5c9 100644
--- a/sw/inc/txtinet.hxx
+++ b/sw/inc/txtinet.hxx
@@ -38,7 +38,7 @@ class Color;
// ATT_INETFMT *********************************************
-class SwTxtINetFmt : public SwTxtAttrEnd, public SwClient
+class SW_DLLPUBLIC SwTxtINetFmt : public SwTxtAttrEnd, public SwClient
{
SwTxtNode* pMyTxtNd;
BOOL bVisited : 1; // Besuchter Link?
diff --git a/sw/inc/unoobj.hxx b/sw/inc/unoobj.hxx
index c7ec5d4ef73e..7893d198309c 100644
--- a/sw/inc/unoobj.hxx
+++ b/sw/inc/unoobj.hxx
@@ -710,7 +710,7 @@ public:
/*-----------------23.02.98 12:05-------------------
--------------------------------------------------*/
-class SwXTextRange : public cppu::WeakImplHelper8
+class SW_DLLPUBLIC SwXTextRange : public cppu::WeakImplHelper8
<
::com::sun::star::text::XTextRange,
::com::sun::star::lang::XUnoTunnel,
diff --git a/sw/inc/usrfld.hxx b/sw/inc/usrfld.hxx
index 30e7b9e7d741..55fb2ebd3d98 100644
--- a/sw/inc/usrfld.hxx
+++ b/sw/inc/usrfld.hxx
@@ -105,7 +105,7 @@ inline void SwUserFieldType::SetType(USHORT nSub)
Beschreibung: Benutzerfelder
--------------------------------------------------------------------*/
-class SwUserField : public SwValueField
+class SW_DLLPUBLIC SwUserField : public SwValueField
{
USHORT nSubType;