svtools/source/dialogs/insdlg.cxx | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-)
New commits: commit 600dfc9d39883b4150b7d773a5a2de483a4c94b6 Author: Mike Kaganski <[email protected]> AuthorDate: Mon Nov 16 10:28:40 2020 +0300 Commit: Mike Kaganski <[email protected]> CommitDate: Mon Nov 16 10:00:02 2020 +0100 tdf#138229: make OleObjectDescriptor match OBJECTDESCRIPTOR on _WIN64 ... broken since tools::Long is 64-bit on that platform, and thus Point and Size are not equal to POINTL and SIZEL. Change-Id: I8cf53f778ece89415687c6966d8e079fb0cf6189 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105910 Reviewed-by: Noel Grandin <[email protected]> Reviewed-by: Mike Kaganski <[email protected]> Tested-by: Jenkins diff --git a/svtools/source/dialogs/insdlg.cxx b/svtools/source/dialogs/insdlg.cxx index 4c0701406ed8..4698d4f186c8 100644 --- a/svtools/source/dialogs/insdlg.cxx +++ b/svtools/source/dialogs/insdlg.cxx @@ -34,6 +34,14 @@ using namespace ::com::sun::star; +#if defined _WIN32 +#include <prewin.h> +#include <oleidl.h> +#include <postwin.h> +#else +typedef Size SIZEL; +typedef Point POINTL; +#endif // this struct conforms to the Microsoft // OBJECTDESCRIPTOR -> see oleidl.h @@ -46,13 +54,22 @@ struct OleObjectDescriptor sal_uInt32 cbSize; ClsId clsid; sal_uInt32 dwDrawAspect; - Size sizel; - Point pointl; + SIZEL sizel; + POINTL pointl; sal_uInt32 dwStatus; sal_uInt32 dwFullUserTypeName; sal_uInt32 dwSrcOfCopy; }; +#if defined _WIN32 +static_assert(sizeof(OleObjectDescriptor) == sizeof(OBJECTDESCRIPTOR)); +// check the two fields that we use here +static_assert(offsetof(OleObjectDescriptor, dwFullUserTypeName) + == offsetof(OBJECTDESCRIPTOR, dwFullUserTypeName)); +static_assert(offsetof(OleObjectDescriptor, dwSrcOfCopy) + == offsetof(OBJECTDESCRIPTOR, dwSrcOfCopy)); +#endif + } /********************** SvObjectServerList ******************************** _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
