Kaydet (Commit) 4500afcc authored tarafından Michael Stahl's avatar Michael Stahl

try to fix GetVersionEx deprecation warnings from Windows SDK 8.1

Apparently GetVersionEx() is deprecated now, but the replacement header
"versionhelpers.h" does not exist in older SDKs (at least not in 8.0),
so try to determine the used SDK version by checking if the Windows 8.1
version constant _WIN32_WINNT_WINBLUE (0x0602) exists.

http://msdn.microsoft.com/en-us/library/windows/desktop/dn424972%28v=vs.85%29.aspx

Change-Id: Ia9224a8c76823ada7cb294a600046c6a0fc843ad
Reviewed-on: https://gerrit.libreoffice.org/14020Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarMichael Stahl <mstahl@redhat.com>
üst 913f777c
...@@ -68,12 +68,17 @@ LRESULT CALLBACK MediaPlayerWndProc_2( HWND hWnd,UINT nMsg, WPARAM nPar1, LPARAM ...@@ -68,12 +68,17 @@ LRESULT CALLBACK MediaPlayerWndProc_2( HWND hWnd,UINT nMsg, WPARAM nPar1, LPARAM
bool isWindowsVistaOrHigher() bool isWindowsVistaOrHigher()
{ {
// the Win32 SDK 8.1 deprecates GetVersionEx()
#ifdef _WIN32_WINNT_WINBLUE
return IsWindowsVistaOrGreater() ? true : false;
#else
// POST: return true if we are at least on Windows Vista // POST: return true if we are at least on Windows Vista
OSVERSIONINFO osvi; OSVERSIONINFO osvi;
ZeroMemory(&osvi, sizeof(osvi)); ZeroMemory(&osvi, sizeof(osvi));
osvi.dwOSVersionInfoSize = sizeof(osvi); osvi.dwOSVersionInfoSize = sizeof(osvi);
GetVersionEx(&osvi); GetVersionEx(&osvi);
return osvi.dwMajorVersion >= 6; return osvi.dwMajorVersion >= 6;
#endif
} }
......
...@@ -63,6 +63,10 @@ const sal_Unicode AMPERSAND_SIGN = L'&'; ...@@ -63,6 +63,10 @@ const sal_Unicode AMPERSAND_SIGN = L'&';
bool SAL_CALL IsWindowsVistaOrNewer() bool SAL_CALL IsWindowsVistaOrNewer()
{ {
// the Win32 SDK 8.1 deprecates GetVersionEx()
#ifdef _WIN32_WINNT_WINBLUE
return IsWindowsVistaOrGreater() ? true : false;
#else
OSVERSIONINFO osvi; OSVERSIONINFO osvi;
osvi.dwOSVersionInfoSize = sizeof(osvi); osvi.dwOSVersionInfoSize = sizeof(osvi);
...@@ -77,6 +81,7 @@ bool SAL_CALL IsWindowsVistaOrNewer() ...@@ -77,6 +81,7 @@ bool SAL_CALL IsWindowsVistaOrNewer()
sal::static_int_cast< unsigned int >(0)); sal::static_int_cast< unsigned int >(0));
return bRet; return bRet;
#endif
} }
......
...@@ -67,11 +67,17 @@ extern "C" UINT __stdcall InstallStartmenuFolderIcon( MSIHANDLE handle ) ...@@ -67,11 +67,17 @@ extern "C" UINT __stdcall InstallStartmenuFolderIcon( MSIHANDLE handle )
std::_tstring sDesktopFile = sOfficeMenuFolder + TEXT("Desktop.ini"); std::_tstring sDesktopFile = sOfficeMenuFolder + TEXT("Desktop.ini");
std::_tstring sIconFile = GetMsiProperty( handle, TEXT("INSTALLLOCATION") ) + TEXT("program\\soffice.exe"); std::_tstring sIconFile = GetMsiProperty( handle, TEXT("INSTALLLOCATION") ) + TEXT("program\\soffice.exe");
// the Win32 SDK 8.1 deprecates GetVersionEx()
#ifdef _WIN32_WINNT_WINBLUE
bool const bIsVistaOrLater = IsWindowsVistaOrGreater() ? true : false;
#else
OSVERSIONINFO osverinfo; OSVERSIONINFO osverinfo;
osverinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); osverinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx( &osverinfo ); GetVersionEx( &osverinfo );
bool const bIsVistaOrLater = (osverinfo.dwMajorVersion >= 6);
#endif
if (osverinfo.dwMajorVersion < 6 /* && osverinfo.dwMinorVersion */ ) if (!bIsVistaOrLater)
{ {
WritePrivateProfileString( WritePrivateProfileString(
TEXT(".ShellClassInfo"), TEXT(".ShellClassInfo"),
......
...@@ -172,6 +172,10 @@ HRESULT STDMETHODCALLTYPE CPropertySheet::Initialize( ...@@ -172,6 +172,10 @@ HRESULT STDMETHODCALLTYPE CPropertySheet::Initialize(
HRESULT STDMETHODCALLTYPE CPropertySheet::AddPages(LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam) HRESULT STDMETHODCALLTYPE CPropertySheet::AddPages(LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam)
{ {
// the Win32 SDK 8.1 deprecates GetVersionEx()
#ifdef _WIN32_WINNT_WINBLUE
bool bIsVistaOrLater = IsWindowsVistaOrGreater() ? true : false;
#else
// Get OS version (we don't need the summary page on Windows Vista or later) // Get OS version (we don't need the summary page on Windows Vista or later)
OSVERSIONINFO sInfoOS; OSVERSIONINFO sInfoOS;
...@@ -179,6 +183,7 @@ HRESULT STDMETHODCALLTYPE CPropertySheet::AddPages(LPFNADDPROPSHEETPAGE lpfnAddP ...@@ -179,6 +183,7 @@ HRESULT STDMETHODCALLTYPE CPropertySheet::AddPages(LPFNADDPROPSHEETPAGE lpfnAddP
sInfoOS.dwOSVersionInfoSize = sizeof( OSVERSIONINFO ); sInfoOS.dwOSVersionInfoSize = sizeof( OSVERSIONINFO );
GetVersionEx( &sInfoOS ); GetVersionEx( &sInfoOS );
bool bIsVistaOrLater = (sInfoOS.dwMajorVersion >= 6); bool bIsVistaOrLater = (sInfoOS.dwMajorVersion >= 6);
#endif
std::wstring proppage_header; std::wstring proppage_header;
......
...@@ -68,6 +68,10 @@ namespace internal ...@@ -68,6 +68,10 @@ namespace internal
bool IsWindowsXP() bool IsWindowsXP()
{ {
// the Win32 SDK 8.1 deprecates GetVersionEx()
#ifdef _WIN32_WINNT_WINBLUE
return IsWindowsXPOrGreater() ? true : false;
#else
OSVERSIONINFO osvi; OSVERSIONINFO osvi;
ZeroMemory(&osvi, sizeof(osvi)); ZeroMemory(&osvi, sizeof(osvi));
osvi.dwOSVersionInfoSize = sizeof(osvi); osvi.dwOSVersionInfoSize = sizeof(osvi);
...@@ -75,6 +79,7 @@ namespace internal ...@@ -75,6 +79,7 @@ namespace internal
return ((osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) && return ((osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) &&
((osvi.dwMajorVersion >= 5) && (osvi.dwMinorVersion >= 1))); ((osvi.dwMajorVersion >= 5) && (osvi.dwMinorVersion >= 1)));
#endif
} }
/* Calculate where to position the signet image. /* Calculate where to position the signet image.
......
...@@ -104,6 +104,10 @@ std::wstring GetResString(int ResId) ...@@ -104,6 +104,10 @@ std::wstring GetResString(int ResId)
*/ */
bool is_windows_xp_or_above() bool is_windows_xp_or_above()
{ {
// the Win32 SDK 8.1 deprecates GetVersionEx()
#ifdef _WIN32_WINNT_WINBLUE
return IsWindowsXPOrGreater() ? true : false;
#else
OSVERSIONINFO osvi; OSVERSIONINFO osvi;
ZeroMemory(&osvi, sizeof(osvi)); ZeroMemory(&osvi, sizeof(osvi));
osvi.dwOSVersionInfoSize = sizeof(osvi); osvi.dwOSVersionInfoSize = sizeof(osvi);
...@@ -116,6 +120,7 @@ bool is_windows_xp_or_above() ...@@ -116,6 +120,7 @@ bool is_windows_xp_or_above()
return true; return true;
} }
return false; return false;
#endif
} }
......
...@@ -451,6 +451,11 @@ SalInstance* CreateSalInstance() ...@@ -451,6 +451,11 @@ SalInstance* CreateSalInstance()
aSalShlData.mbW7 = 0; aSalShlData.mbW7 = 0;
memset( &aSalShlData.maVersionInfo, 0, sizeof(aSalShlData.maVersionInfo) ); memset( &aSalShlData.maVersionInfo, 0, sizeof(aSalShlData.maVersionInfo) );
aSalShlData.maVersionInfo.dwOSVersionInfoSize = sizeof( aSalShlData.maVersionInfo ); aSalShlData.maVersionInfo.dwOSVersionInfoSize = sizeof( aSalShlData.maVersionInfo );
// the Win32 SDK 8.1 deprecates GetVersionEx()
#ifdef _WIN32_WINNT_WINBLUE
aSalShlData.mbWXP = IsWindowsXPOrGreater() ? 1 : 0;
aSalShlData.mbW7 = IsWindows7OrGreater() ? 1 : 0;
#else
if ( GetVersionEx( &aSalShlData.maVersionInfo ) ) if ( GetVersionEx( &aSalShlData.maVersionInfo ) )
{ {
// Windows XP ? // Windows XP ?
...@@ -462,6 +467,7 @@ SalInstance* CreateSalInstance() ...@@ -462,6 +467,7 @@ SalInstance* CreateSalInstance()
( aSalShlData.maVersionInfo.dwMajorVersion == 6 && aSalShlData.maVersionInfo.dwMinorVersion >= 1 ) ) ( aSalShlData.maVersionInfo.dwMajorVersion == 6 && aSalShlData.maVersionInfo.dwMinorVersion >= 1 ) )
aSalShlData.mbW7 = 1; aSalShlData.mbW7 = 1;
} }
#endif
pSalData->mnAppThreadId = GetCurrentThreadId(); pSalData->mnAppThreadId = GetCurrentThreadId();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment