From ee45bbe4c6969256378115430eb74e5dbeab3269 Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 9 Mar 2017 00:10:32 +0300 Subject: [PATCH] Alpha 1.0.20: fix crash in old Windows versions. A shell32 method SHCreateItemFromParsingName was used without checking if it was successfully loaded from shell32.dll (Vista+). --- Telegram/SourceFiles/platform/win/file_utilities_win.cpp | 8 +++++++- Telegram/SourceFiles/platform/win/specific_win.cpp | 7 ------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Telegram/SourceFiles/platform/win/file_utilities_win.cpp b/Telegram/SourceFiles/platform/win/file_utilities_win.cpp index a8922e562..83adda30a 100644 --- a/Telegram/SourceFiles/platform/win/file_utilities_win.cpp +++ b/Telegram/SourceFiles/platform/win/file_utilities_win.cpp @@ -135,8 +135,14 @@ void UnsafeOpenEmailLink(const QString &email) { } bool UnsafeShowOpenWithDropdown(const QString &filepath, QPoint menuPosition) { + if (!Dlls::SHAssocEnumHandlers || !Dlls::SHCreateItemFromParsingName) { + return false; + } + auto window = App::wnd(); - if (!window) return false; + if (!window) { + return false; + } auto parentHWND = window->psHwnd(); auto wstringPath = QDir::toNativeSeparators(filepath).toStdWString(); diff --git a/Telegram/SourceFiles/platform/win/specific_win.cpp b/Telegram/SourceFiles/platform/win/specific_win.cpp index c6c93f25f..c8611da4e 100644 --- a/Telegram/SourceFiles/platform/win/specific_win.cpp +++ b/Telegram/SourceFiles/platform/win/specific_win.cpp @@ -84,9 +84,6 @@ using namespace Platform; namespace { QStringList _initLogs; - bool useOpenWith = false; - bool useOpenAs = false; - bool useShellapi = false; bool themeInited = false; bool finished = true; QMargins simpleMargins, margins; @@ -96,10 +93,6 @@ namespace { public: _PsInitializer() { Dlls::start(); - - useOpenWith = (Dlls::SHAssocEnumHandlers != nullptr) && (Dlls::SHCreateItemFromParsingName != nullptr); - useOpenAs = (Dlls::SHOpenWithDialog != nullptr) || (Dlls::OpenAs_RunDLL != nullptr); - useShellapi = (Dlls::SHQueryUserNotificationState != nullptr); } }; _PsInitializer _psInitializer;