Fix css.awt.XSystemDependentMenuPeer.getMenuHandle
...to return an ANY containing a 64-bit HYPER instead of a 32-bit LONG for SYSTEM_WIN32 (which covers both 32-bit and 64-bit versions of Windows), so that the HMENU value (which is effectively a void*) is not truncated for the 64-bit build. This should effectively be URE ABI compatible for the 32-bit build, as there the HYPER value will fit into 32 bits, so extracting a LONG from the ANY should still work. Change-Id: Ief3de5924f672e8f6bbe6df08c15439456ca036f Reviewed-on: https://gerrit.libreoffice.org/20045 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
This commit is contained in:
@@ -377,7 +377,7 @@ HRESULT DocumentHolder::InPlaceActivate(
|
||||
uno::UNO_QUERY);
|
||||
aAny = xSDMP->getMenuHandle(
|
||||
aProcessIdent,lang::SystemDependent::SYSTEM_WIN32);
|
||||
sal_Int32 tmp;
|
||||
sal_Int64 tmp;
|
||||
if( aAny >>= tmp )
|
||||
m_nMenuHandle = HMENU(tmp);
|
||||
m_xLayoutManager->hideElement(
|
||||
|
@@ -210,7 +210,8 @@ Any SAL_CALL MenuBarManager::getMenuHandle( const Sequence< sal_Int8 >& /*Proces
|
||||
#ifdef _WIN32
|
||||
if( SystemType == SystemDependent::SYSTEM_WIN32 )
|
||||
{
|
||||
a <<= (long) aSystemMenuData.hMenu;
|
||||
a <<= sal_Int64(
|
||||
reinterpret_cast<sal_IntPtr>(aSystemMenuData.hMenu));
|
||||
}
|
||||
#else
|
||||
(void) SystemType;
|
||||
|
Reference in New Issue
Block a user