diff --git a/Telegram/SourceFiles/platform/win/specific_win.cpp b/Telegram/SourceFiles/platform/win/specific_win.cpp index 87fa697a5..97c2f1c89 100644 --- a/Telegram/SourceFiles/platform/win/specific_win.cpp +++ b/Telegram/SourceFiles/platform/win/specific_win.cpp @@ -28,6 +28,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include #include +#include #include #include @@ -546,5 +547,27 @@ void psSendToMenu(bool send, bool silent) { } bool psLaunchMaps(const Data::LocationPoint &point) { + IApplicationAssociationRegistration *aar = nullptr; + + const auto hr = CoCreateInstance( + CLSID_ApplicationAssociationRegistration, + nullptr, + CLSCTX_INPROC, + __uuidof(IApplicationAssociationRegistration), + reinterpret_cast(&aar)); + + if (SUCCEEDED(hr && aar)) { + LPWSTR current_app = nullptr; + const auto result = aar->QueryCurrentDefault( + L"bingmaps", + AT_URLPROTOCOL, + AL_EFFECTIVE, + ¤t_app); + + if (FAILED(result)) { + return false; + } + } + return QDesktopServices::openUrl(qsl("bingmaps:?lvl=16&collection=point.%1_%2_Point").arg(point.latAsString()).arg(point.lonAsString())); }