summaryrefslogtreecommitdiff
path: root/sw/inc
diff options
context:
space:
mode:
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;