editeng/source/uno/unonrule.cxx                |    2 
 include/o3tl/enumarray.hxx                     |   17 ++
 oox/source/drawingml/chart/objectformatter.cxx |    9 -
 sw/source/core/unocore/unosett.cxx             |   12 -
 sw/source/filter/ww8/wrtw8esh.cxx              |    4 
 tools/source/fsys/urlobj.cxx                   |    1 
 vcl/win/window/salframe.cxx                    |  184 ++++++++++++-------------
 7 files changed, 124 insertions(+), 105 deletions(-)

New commits:
commit 37ec4442d70339dc8ec5fb8e4ec8984420b6e14d
Author:     Michael Stahl <michael.st...@allotropia.de>
AuthorDate: Thu Jun 16 11:28:05 2022 +0200
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Sat Jun 18 09:03:30 2022 +0200

    o3tl: ensure that the initializer of enumarray contains enough elements
    
    Currently this silently succeeds. Turns out oox already contains some
    too-short initializers, let's guess the missing properties are all
    invalid.
    
    One downside of the templated parameter pack approach in the enumarray 
ctor, as
    witnessed in vcl/win/window/salframe.cxx, is that argument types can no 
longer
    be implicitly deduced and thus need to be spelled explicitly now in certain
    cases.
    
    There were also three uses of enumarry with V being unsigned short (aka
    sal_uInt16) that started to cause narrowing conversion errors now and 
needed to
    be adapted:  In editeng/source/uno/unonrule.cxx the obvious fix was to use 
the
    proper type for V.  In sw/source/core/unocore/unosett.cxx with its odd mix 
of
    saL_Int16 and USHRT_MAX, lets keep things that way for now (probably 
awaiting
    later clean up) and use casts to avoid the implicit narrowing.  And in
    sw/source/filter/ww8/wrtw8esh.cxx the ESCHER_Prop_* values, while presumably
    conceptionally of type sal_uInt16, are plain #defines (thus of type int), so
    rather than changing V to int it looked more consistent to explicitly cast 
the
    ESCHER_Prop_* vlaues to sal_uInt16.
    
    (And in tools/source/fsys/urlobj.cxx the poor loplugin:redundantfcast 
started to
    unhelpfully kick in for (only) the first argument now.)
    
    Change-Id: If06c29e673ec7e565e283c6f447889cf1f777cb7
    Co-authored-by: Stephan Bergmann <sberg...@redhat.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135970
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>

diff --git a/editeng/source/uno/unonrule.cxx b/editeng/source/uno/unonrule.cxx
index 3e33d8e46237..5bd84cc10b42 100644
--- a/editeng/source/uno/unonrule.cxx
+++ b/editeng/source/uno/unonrule.cxx
@@ -67,7 +67,7 @@ const SvxAdjust aUnoToSvxAdjust[] =
     SvxAdjust::Block
 };
 
-const o3tl::enumarray<SvxAdjust, unsigned short> aSvxToUnoAdjust
+const o3tl::enumarray<SvxAdjust, sal_Int16> aSvxToUnoAdjust
 {
     text::HoriOrientation::LEFT,
     text::HoriOrientation::RIGHT,
diff --git a/include/o3tl/enumarray.hxx b/include/o3tl/enumarray.hxx
index a3c09d56bea0..6abfc9ac53ba 100644
--- a/include/o3tl/enumarray.hxx
+++ b/include/o3tl/enumarray.hxx
@@ -22,6 +22,7 @@
 
 #include <iterator>
 #include <type_traits>
+#include <utility>
 #include <cassert>
 
 namespace o3tl {
@@ -55,6 +56,20 @@ public:
 
     static const size_type max_index = static_cast<size_type>(E::LAST);
 
+    // If this ctor only had the args parameter pack, it would erroneously get 
picked as a better
+    // choice than the (implicit) copy ctor (taking a const lvalue reference) 
when a copy is made
+    // from a non-const lvalue enumarray; the easiest way to avoid that is the 
additional arg
+    // parameter; and to keep things simple that parameter is always passed by 
const lvalue
+    // reference for now even if there could be cases where passing it by 
rvalue reference might be
+    // beneficial or even necessary if V is a move-only type:
+    template<typename... T> constexpr enumarray(V const & arg, T && ...args):
+        detail_values{arg, std::forward<T>(args)...}
+    {
+        static_assert(sizeof... (T) == max_index);
+    }
+
+    enumarray() {}
+
     const V& operator[](E index) const
     {
         assert(index>=static_cast<E>(0) && index<=E::LAST);
@@ -78,7 +93,7 @@ public:
 
     V*               data()       { return detail_values; }
 
-//private:
+private:
     V detail_values[max_index + 1];
 };
 
diff --git a/oox/source/drawingml/chart/objectformatter.cxx 
b/oox/source/drawingml/chart/objectformatter.cxx
index 44b3d3a3f0ea..24094db5234a 100644
--- a/oox/source/drawingml/chart/objectformatter.cxx
+++ b/oox/source/drawingml/chart/objectformatter.cxx
@@ -450,7 +450,8 @@ const ShapePropertyIds spnCommonPropIds =
     PROP_FillStyle, PROP_FillColor, PROP_FillTransparence, 
PROP_FillTransparenceGradientName, PROP_FillGradientName,
     PROP_FillBitmapName, PROP_FillBitmapMode, PROP_FillBitmapSizeX, 
PROP_FillBitmapSizeY,
     PROP_FillBitmapPositionOffsetX, PROP_FillBitmapPositionOffsetY, 
PROP_FillBitmapRectanglePoint,
-    PROP_FillHatchName, PROP_FillBackground
+    PROP_FillHatchName, PROP_FillBackground,
+    PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID
 };
 
 const ShapePropertyIds spnLinearPropIds =
@@ -460,7 +461,8 @@ const ShapePropertyIds spnLinearPropIds =
     PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID,
     PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID,
     PROP_INVALID, PROP_INVALID, PROP_INVALID,
-    PROP_INVALID, PROP_INVALID
+    PROP_INVALID, PROP_INVALID,
+    PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID
 };
 
 const ShapePropertyIds spnFilledPropIds =
@@ -491,7 +493,8 @@ const ShapePropertyIds spnFilledPropIds =
     PROP_FillBitmapPositionOffsetY,
     PROP_FillBitmapRectanglePoint,
     PROP_HatchName,
-    PROP_FillBackground
+    PROP_FillBackground,
+    PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID
 };
 
 /** Property info for common chart objects, to be used in ShapePropertyMap. */
diff --git a/sw/source/core/unocore/unosett.cxx 
b/sw/source/core/unocore/unosett.cxx
index 648110971c33..e06e5fe42e50 100644
--- a/sw/source/core/unocore/unosett.cxx
+++ b/sw/source/core/unocore/unosett.cxx
@@ -242,12 +242,12 @@ static SwPageDesc* lcl_GetPageDesc(SwDoc* pDoc, const 
uno::Any& aValue)
 // Numbering
 const o3tl::enumarray<SvxAdjust, unsigned short> aSvxToUnoAdjust
 {
-    text::HoriOrientation::LEFT,   //3
-    text::HoriOrientation::RIGHT,  //1
-    USHRT_MAX,
-    text::HoriOrientation::CENTER, //2
-    USHRT_MAX,
-    USHRT_MAX
+    static_cast<unsigned short>(text::HoriOrientation::LEFT),   //3
+    static_cast<unsigned short>(text::HoriOrientation::RIGHT),  //1
+    static_cast<unsigned short>(USHRT_MAX),
+    static_cast<unsigned short>(text::HoriOrientation::CENTER), //2
+    static_cast<unsigned short>(USHRT_MAX),
+    static_cast<unsigned short>(USHRT_MAX)
 };
 
 const unsigned short aUnoToSvxAdjust[] =
diff --git a/sw/source/filter/ww8/wrtw8esh.cxx 
b/sw/source/filter/ww8/wrtw8esh.cxx
index 9881868a9e17..d2de899f2d3d 100644
--- a/sw/source/filter/ww8/wrtw8esh.cxx
+++ b/sw/source/filter/ww8/wrtw8esh.cxx
@@ -1880,8 +1880,8 @@ sal_Int32 SwBasicEscherEx::WriteFlyFrameAttr(const 
SwFrameFormat& rFormat,
     {
         static const o3tl::enumarray<SvxBoxItemLine, sal_uInt16> aExhperProp =
         {
-            ESCHER_Prop_dyTextTop,  ESCHER_Prop_dyTextBottom,
-            ESCHER_Prop_dxTextLeft, ESCHER_Prop_dxTextRight
+            sal_uInt16(ESCHER_Prop_dyTextTop),  
sal_uInt16(ESCHER_Prop_dyTextBottom),
+            sal_uInt16(ESCHER_Prop_dxTextLeft), 
sal_uInt16(ESCHER_Prop_dxTextRight)
         };
         const SvxBorderLine* pLine;
 
diff --git a/tools/source/fsys/urlobj.cxx b/tools/source/fsys/urlobj.cxx
index 00e3207b2d3b..12a1a797fba0 100644
--- a/tools/source/fsys/urlobj.cxx
+++ b/tools/source/fsys/urlobj.cxx
@@ -348,6 +348,7 @@ INetURLObject::getSchemeInfo(INetProtocol eTheScheme)
     static constexpr OUStringLiteral VND_CMIS = u"vnd.libreoffice.cmis";
 
     static o3tl::enumarray<INetProtocol, SchemeInfo> const map = {
+        // [-loplugin:redundantfcast]:
         SchemeInfo{
             EMPTY, "", false, false, false, false, false, false, false, false},
         SchemeInfo{
diff --git a/vcl/win/window/salframe.cxx b/vcl/win/window/salframe.cxx
index 567d95eec233..fac5bbfac242 100644
--- a/vcl/win/window/salframe.cxx
+++ b/vcl/win/window/salframe.cxx
@@ -2025,102 +2025,102 @@ void WinSalFrame::SetPointer( PointerStyle 
ePointerStyle )
     static o3tl::enumarray<PointerStyle, ImplPtrData> aImplPtrTab =
     {
     ImplPtrData{ nullptr, IDC_ARROW, 0 },                       // 
POINTER_ARROW
-    { nullptr, nullptr, SAL_RESID_POINTER_NULL },               // POINTER_NULL
-    { nullptr, IDC_WAIT, 0 },                                   // POINTER_WAIT
-    { nullptr, IDC_IBEAM, 0 },                                  // POINTER_TEXT
-    { nullptr, IDC_HELP, 0 },                                   // POINTER_HELP
-    { nullptr, IDC_CROSS, 0 },                                  // 
POINTER_CROSS
-    { nullptr, IDC_SIZEALL, 0 },                                // POINTER_MOVE
-    { nullptr, IDC_SIZENS, 0 },                                 // 
POINTER_NSIZE
-    { nullptr, IDC_SIZENS, 0 },                                 // 
POINTER_SSIZE
-    { nullptr, IDC_SIZEWE, 0 },                                 // 
POINTER_WSIZE
-    { nullptr, IDC_SIZEWE, 0 },                                 // 
POINTER_ESIZE
-    { nullptr, IDC_SIZENWSE, 0 },                               // 
POINTER_NWSIZE
-    { nullptr, IDC_SIZENESW, 0 },                               // 
POINTER_NESIZE
-    { nullptr, IDC_SIZENESW, 0 },                               // 
POINTER_SWSIZE
-    { nullptr, IDC_SIZENWSE, 0 },                               // 
POINTER_SESIZE
-    { nullptr, IDC_SIZENS, 0 },                                 // 
POINTER_WINDOW_NSIZE
-    { nullptr, IDC_SIZENS, 0 },                                 // 
POINTER_WINDOW_SSIZE
-    { nullptr, IDC_SIZEWE, 0 },                                 // 
POINTER_WINDOW_WSIZE
-    { nullptr, IDC_SIZEWE, 0 },                                 // 
POINTER_WINDOW_ESIZE
-    { nullptr, IDC_SIZENWSE, 0 },                               // 
POINTER_WINDOW_NWSIZE
-    { nullptr, IDC_SIZENESW, 0 },                               // 
POINTER_WINDOW_NESIZE
-    { nullptr, IDC_SIZENESW, 0 },                               // 
POINTER_WINDOW_SWSIZE
-    { nullptr, IDC_SIZENWSE, 0 },                               // 
POINTER_WINDOW_SESIZE
-    { nullptr, IDC_SIZEWE, 0 },                                 // 
POINTER_HSPLIT
-    { nullptr, IDC_SIZENS, 0 },                                 // 
POINTER_VSPLIT
-    { nullptr, IDC_SIZEWE, 0 },                                 // 
POINTER_HSIZEBAR
-    { nullptr, IDC_SIZENS, 0 },                                 // 
POINTER_VSIZEBAR
-    { nullptr, IDC_HAND, 0 },                                   // POINTER_HAND
-    { nullptr, IDC_HAND, 0 },                                   // 
POINTER_REFHAND
-    { nullptr, IDC_PEN, 0 },                                    // POINTER_PEN
-    { nullptr, nullptr, SAL_RESID_POINTER_MAGNIFY },            // 
POINTER_MAGNIFY
-    { nullptr, nullptr, SAL_RESID_POINTER_FILL },               // POINTER_FILL
-    { nullptr, nullptr, SAL_RESID_POINTER_ROTATE },             // 
POINTER_ROTATE
-    { nullptr, nullptr, SAL_RESID_POINTER_HSHEAR },             // 
POINTER_HSHEAR
-    { nullptr, nullptr, SAL_RESID_POINTER_VSHEAR },             // 
POINTER_VSHEAR
-    { nullptr, nullptr, SAL_RESID_POINTER_MIRROR },             // 
POINTER_MIRROR
-    { nullptr, nullptr, SAL_RESID_POINTER_CROOK },              // 
POINTER_CROOK
-    { nullptr, nullptr, SAL_RESID_POINTER_CROP },               // POINTER_CROP
-    { nullptr, nullptr, SAL_RESID_POINTER_MOVEPOINT },          // 
POINTER_MOVEPOINT
-    { nullptr, nullptr, SAL_RESID_POINTER_MOVEBEZIERWEIGHT },   // 
POINTER_MOVEBEZIERWEIGHT
-    { nullptr, nullptr, SAL_RESID_POINTER_MOVEDATA },           // 
POINTER_MOVEDATA
-    { nullptr, nullptr, SAL_RESID_POINTER_COPYDATA },           // 
POINTER_COPYDATA
-    { nullptr, nullptr, SAL_RESID_POINTER_LINKDATA },           // 
POINTER_LINKDATA
-    { nullptr, nullptr, SAL_RESID_POINTER_MOVEDATALINK },       // 
POINTER_MOVEDATALINK
-    { nullptr, nullptr, SAL_RESID_POINTER_COPYDATALINK },       // 
POINTER_COPYDATALINK
-    { nullptr, nullptr, SAL_RESID_POINTER_MOVEFILE },           // 
POINTER_MOVEFILE
-    { nullptr, nullptr, SAL_RESID_POINTER_COPYFILE },           // 
POINTER_COPYFILE
-    { nullptr, nullptr, SAL_RESID_POINTER_LINKFILE },           // 
POINTER_LINKFILE
-    { nullptr, nullptr, SAL_RESID_POINTER_MOVEFILELINK },       // 
POINTER_MOVEFILELINK
-    { nullptr, nullptr, SAL_RESID_POINTER_COPYFILELINK },       // 
POINTER_COPYFILELINK
-    { nullptr, nullptr, SAL_RESID_POINTER_MOVEFILES },          // 
POINTER_MOVEFILES
-    { nullptr, nullptr, SAL_RESID_POINTER_COPYFILES },          // 
POINTER_COPYFILES
-    { nullptr, IDC_NO, 0 },                                     // 
POINTER_NOTALLOWED
-    { nullptr, nullptr, SAL_RESID_POINTER_DRAW_LINE },          // 
POINTER_DRAW_LINE
-    { nullptr, nullptr, SAL_RESID_POINTER_DRAW_RECT },          // 
POINTER_DRAW_RECT
-    { nullptr, nullptr, SAL_RESID_POINTER_DRAW_POLYGON },       // 
POINTER_DRAW_POLYGON
-    { nullptr, nullptr, SAL_RESID_POINTER_DRAW_BEZIER },        // 
POINTER_DRAW_BEZIER
-    { nullptr, nullptr, SAL_RESID_POINTER_DRAW_ARC },           // 
POINTER_DRAW_ARC
-    { nullptr, nullptr, SAL_RESID_POINTER_DRAW_PIE },           // 
POINTER_DRAW_PIE
-    { nullptr, nullptr, SAL_RESID_POINTER_DRAW_CIRCLECUT },     // 
POINTER_DRAW_CIRCLECUT
-    { nullptr, nullptr, SAL_RESID_POINTER_DRAW_ELLIPSE },       // 
POINTER_DRAW_ELLIPSE
-    { nullptr, nullptr, SAL_RESID_POINTER_DRAW_FREEHAND },      // 
POINTER_DRAW_FREEHAND
-    { nullptr, nullptr, SAL_RESID_POINTER_DRAW_CONNECT },       // 
POINTER_DRAW_CONNECT
-    { nullptr, nullptr, SAL_RESID_POINTER_DRAW_TEXT },          // 
POINTER_DRAW_TEXT
-    { nullptr, nullptr, SAL_RESID_POINTER_DRAW_CAPTION },       // 
POINTER_DRAW_CAPTION
-    { nullptr, nullptr, SAL_RESID_POINTER_CHART },              // 
POINTER_CHART
-    { nullptr, nullptr, SAL_RESID_POINTER_DETECTIVE },          // 
POINTER_DETECTIVE
-    { nullptr, nullptr, SAL_RESID_POINTER_PIVOT_COL },          // 
POINTER_PIVOT_COL
-    { nullptr, nullptr, SAL_RESID_POINTER_PIVOT_ROW },          // 
POINTER_PIVOT_ROW
-    { nullptr, nullptr, SAL_RESID_POINTER_PIVOT_FIELD },        // 
POINTER_PIVOT_FIELD
-    { nullptr, nullptr, SAL_RESID_POINTER_CHAIN },              // 
POINTER_CHAIN
-    { nullptr, nullptr, SAL_RESID_POINTER_CHAIN_NOTALLOWED },   // 
POINTER_CHAIN_NOTALLOWED
-    { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_N },       // 
POINTER_AUTOSCROLL_N
-    { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_S },       // 
POINTER_AUTOSCROLL_S
-    { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_W },       // 
POINTER_AUTOSCROLL_W
-    { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_E },       // 
POINTER_AUTOSCROLL_E
-    { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NW },      // 
POINTER_AUTOSCROLL_NW
-    { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NE },      // 
POINTER_AUTOSCROLL_NE
-    { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_SW },      // 
POINTER_AUTOSCROLL_SW
-    { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_SE },      // 
POINTER_AUTOSCROLL_SE
-    { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NS },      // 
POINTER_AUTOSCROLL_NS
-    { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_WE },      // 
POINTER_AUTOSCROLL_WE
-    { nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NSWE },    // 
POINTER_AUTOSCROLL_NSWE
-    { nullptr, nullptr, SAL_RESID_POINTER_TEXT_VERTICAL },      // 
POINTER_TEXT_VERTICAL
-    { nullptr, nullptr, SAL_RESID_POINTER_PIVOT_DELETE },       // 
POINTER_PIVOT_DELETE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_NULL },    // POINTER_NULL
+    ImplPtrData{ nullptr, IDC_WAIT, 0 },                        // POINTER_WAIT
+    ImplPtrData{ nullptr, IDC_IBEAM, 0 },                       // POINTER_TEXT
+    ImplPtrData{ nullptr, IDC_HELP, 0 },                        // POINTER_HELP
+    ImplPtrData{ nullptr, IDC_CROSS, 0 },                       // 
POINTER_CROSS
+    ImplPtrData{ nullptr, IDC_SIZEALL, 0 },                     // POINTER_MOVE
+    ImplPtrData{ nullptr, IDC_SIZENS, 0 },                      // 
POINTER_NSIZE
+    ImplPtrData{ nullptr, IDC_SIZENS, 0 },                      // 
POINTER_SSIZE
+    ImplPtrData{ nullptr, IDC_SIZEWE, 0 },                      // 
POINTER_WSIZE
+    ImplPtrData{ nullptr, IDC_SIZEWE, 0 },                      // 
POINTER_ESIZE
+    ImplPtrData{ nullptr, IDC_SIZENWSE, 0 },                    // 
POINTER_NWSIZE
+    ImplPtrData{ nullptr, IDC_SIZENESW, 0 },                    // 
POINTER_NESIZE
+    ImplPtrData{ nullptr, IDC_SIZENESW, 0 },                    // 
POINTER_SWSIZE
+    ImplPtrData{ nullptr, IDC_SIZENWSE, 0 },                    // 
POINTER_SESIZE
+    ImplPtrData{ nullptr, IDC_SIZENS, 0 },                      // 
POINTER_WINDOW_NSIZE
+    ImplPtrData{ nullptr, IDC_SIZENS, 0 },                      // 
POINTER_WINDOW_SSIZE
+    ImplPtrData{ nullptr, IDC_SIZEWE, 0 },                      // 
POINTER_WINDOW_WSIZE
+    ImplPtrData{ nullptr, IDC_SIZEWE, 0 },                      // 
POINTER_WINDOW_ESIZE
+    ImplPtrData{ nullptr, IDC_SIZENWSE, 0 },                    // 
POINTER_WINDOW_NWSIZE
+    ImplPtrData{ nullptr, IDC_SIZENESW, 0 },                    // 
POINTER_WINDOW_NESIZE
+    ImplPtrData{ nullptr, IDC_SIZENESW, 0 },                    // 
POINTER_WINDOW_SWSIZE
+    ImplPtrData{ nullptr, IDC_SIZENWSE, 0 },                    // 
POINTER_WINDOW_SESIZE
+    ImplPtrData{ nullptr, IDC_SIZEWE, 0 },                      // 
POINTER_HSPLIT
+    ImplPtrData{ nullptr, IDC_SIZENS, 0 },                      // 
POINTER_VSPLIT
+    ImplPtrData{ nullptr, IDC_SIZEWE, 0 },                      // 
POINTER_HSIZEBAR
+    ImplPtrData{ nullptr, IDC_SIZENS, 0 },                      // 
POINTER_VSIZEBAR
+    ImplPtrData{ nullptr, IDC_HAND, 0 },                        // POINTER_HAND
+    ImplPtrData{ nullptr, IDC_HAND, 0 },                        // 
POINTER_REFHAND
+    ImplPtrData{ nullptr, IDC_PEN, 0 },                         // POINTER_PEN
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MAGNIFY }, // 
POINTER_MAGNIFY
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_FILL },    // POINTER_FILL
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_ROTATE },  // 
POINTER_ROTATE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_HSHEAR },  // 
POINTER_HSHEAR
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_VSHEAR },  // 
POINTER_VSHEAR
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MIRROR },  // 
POINTER_MIRROR
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_CROOK },   // 
POINTER_CROOK
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_CROP },    // POINTER_CROP
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MOVEPOINT }, // 
POINTER_MOVEPOINT
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MOVEBEZIERWEIGHT }, // 
POINTER_MOVEBEZIERWEIGHT
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MOVEDATA }, // 
POINTER_MOVEDATA
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_COPYDATA }, // 
POINTER_COPYDATA
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_LINKDATA }, // 
POINTER_LINKDATA
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MOVEDATALINK }, // 
POINTER_MOVEDATALINK
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_COPYDATALINK }, // 
POINTER_COPYDATALINK
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MOVEFILE }, // 
POINTER_MOVEFILE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_COPYFILE }, // 
POINTER_COPYFILE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_LINKFILE }, // 
POINTER_LINKFILE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MOVEFILELINK }, // 
POINTER_MOVEFILELINK
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_COPYFILELINK }, // 
POINTER_COPYFILELINK
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_MOVEFILES }, // 
POINTER_MOVEFILES
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_COPYFILES }, // 
POINTER_COPYFILES
+    ImplPtrData{ nullptr, IDC_NO, 0 },                          // 
POINTER_NOTALLOWED
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_LINE }, // 
POINTER_DRAW_LINE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_RECT }, // 
POINTER_DRAW_RECT
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_POLYGON }, // 
POINTER_DRAW_POLYGON
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_BEZIER }, // 
POINTER_DRAW_BEZIER
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_ARC }, // 
POINTER_DRAW_ARC
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_PIE }, // 
POINTER_DRAW_PIE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_CIRCLECUT }, // 
POINTER_DRAW_CIRCLECUT
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_ELLIPSE }, // 
POINTER_DRAW_ELLIPSE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_FREEHAND }, // 
POINTER_DRAW_FREEHAND
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_CONNECT }, // 
POINTER_DRAW_CONNECT
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_TEXT }, // 
POINTER_DRAW_TEXT
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DRAW_CAPTION }, // 
POINTER_DRAW_CAPTION
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_CHART },   // 
POINTER_CHART
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_DETECTIVE }, // 
POINTER_DETECTIVE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_PIVOT_COL }, // 
POINTER_PIVOT_COL
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_PIVOT_ROW }, // 
POINTER_PIVOT_ROW
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_PIVOT_FIELD }, // 
POINTER_PIVOT_FIELD
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_CHAIN },   // 
POINTER_CHAIN
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_CHAIN_NOTALLOWED }, // 
POINTER_CHAIN_NOTALLOWED
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_N }, // 
POINTER_AUTOSCROLL_N
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_S }, // 
POINTER_AUTOSCROLL_S
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_W }, // 
POINTER_AUTOSCROLL_W
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_E }, // 
POINTER_AUTOSCROLL_E
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NW }, // 
POINTER_AUTOSCROLL_NW
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NE }, // 
POINTER_AUTOSCROLL_NE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_SW }, // 
POINTER_AUTOSCROLL_SW
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_SE }, // 
POINTER_AUTOSCROLL_SE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NS }, // 
POINTER_AUTOSCROLL_NS
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_WE }, // 
POINTER_AUTOSCROLL_WE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_AUTOSCROLL_NSWE }, // 
POINTER_AUTOSCROLL_NSWE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_TEXT_VERTICAL }, // 
POINTER_TEXT_VERTICAL
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_PIVOT_DELETE }, // 
POINTER_PIVOT_DELETE
 
      // #i32329#
-    { nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_S },       // 
POINTER_TAB_SELECT_S
-    { nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_E },       // 
POINTER_TAB_SELECT_E
-    { nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_SE },      // 
POINTER_TAB_SELECT_SE
-    { nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_W },       // 
POINTER_TAB_SELECT_W
-    { nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_SW },      // 
POINTER_TAB_SELECT_SW
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_S }, // 
POINTER_TAB_SELECT_S
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_E }, // 
POINTER_TAB_SELECT_E
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_SE }, // 
POINTER_TAB_SELECT_SE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_W }, // 
POINTER_TAB_SELECT_W
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_TAB_SELECT_SW }, // 
POINTER_TAB_SELECT_SW
 
-    { nullptr, nullptr, SAL_RESID_POINTER_HIDEWHITESPACE },     // 
POINTER_HIDEWHITESPACE
-    { nullptr, nullptr, SAL_RESID_POINTER_SHOWWHITESPACE },     // 
POINTER_UNHIDEWHITESPACE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_HIDEWHITESPACE }, // 
POINTER_HIDEWHITESPACE
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_SHOWWHITESPACE }, // 
POINTER_UNHIDEWHITESPACE
 
-    { nullptr, nullptr, SAL_RESID_POINTER_FATCROSS }            // 
POINTER_FATCROSS
+    ImplPtrData{ nullptr, nullptr, SAL_RESID_POINTER_FATCROSS } // 
POINTER_FATCROSS
     };
 
     // Mousepointer loaded ?

Reply via email to