[Libreoffice-commits] core.git: cui/source

Mike Kaganski (via logerrit) logerrit at kemper.freedesktop.org
Wed Mar 17 13:14:52 UTC 2021


 cui/source/options/optgdlg.cxx |   17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

New commits:
commit 1ec33490e92d884b75371e9227605f7d2f4f17e3
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Wed Mar 17 07:28:39 2021 +0100
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Wed Mar 17 14:14:08 2021 +0100

    Use COMReference here
    
    Change-Id: Ic9a12de597724e17c575336bb313f50ad1cecfa0
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112612
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>

diff --git a/cui/source/options/optgdlg.cxx b/cui/source/options/optgdlg.cxx
index f15171e38103..673815bb60ab 100644
--- a/cui/source/options/optgdlg.cxx
+++ b/cui/source/options/optgdlg.cxx
@@ -89,6 +89,7 @@
 #include <o3tl/char16_t2wchar_t.hxx>
 #include <prewin.h>
 #include <shobjidl.h>
+#include <systools/win32/comtools.hxx>
 #include <postwin.h>
 #endif
 using namespace ::com::sun::star::uno;
@@ -367,20 +368,22 @@ IMPL_LINK_NOARG( OfaMiscTabPage, TwoFigureHdl, weld::SpinButton&, void )
 IMPL_STATIC_LINK_NOARG(OfaMiscTabPage, FileAssocClick, weld::Button&, void)
 {
     const bool bUninit = SUCCEEDED(CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED));
-    IApplicationAssociationRegistrationUI* pIf = nullptr;
-    HRESULT res = CoCreateInstance(CLSID_ApplicationAssociationRegistrationUI, nullptr,
-                                   CLSCTX_INPROC_SERVER, IID_IApplicationAssociationRegistrationUI,
-                                   reinterpret_cast<LPVOID*>(&pIf));
-
-    if (SUCCEEDED(res) && pIf)
+    try
     {
+        auto pIf
+            = sal::systools::COMReference<IApplicationAssociationRegistrationUI>().CoCreateInstance(
+                CLSID_ApplicationAssociationRegistrationUI, nullptr, CLSCTX_INPROC_SERVER);
+
         // LaunchAdvancedAssociationUI only works for applications registered under
         // Software\RegisteredApplications. See scp2/source/ooo/registryitem_ooo.scp
         const OUString expanded = Translate::ExpandVariables("%PRODUCTNAME %PRODUCTVERSION");
         // This will only show "To change your default apps, go to Settings > Apps > Default apps"
         // on Win10; this is expected. At least this will self-document it to users.
         pIf->LaunchAdvancedAssociationUI(o3tl::toW(expanded.getStr()));
-        pIf->Release();
+    }
+    catch (...)
+    {
+        // Just ignore any error here: this is not something we need to make sure to succeed
     }
     if (bUninit)
         CoUninitialize();


More information about the Libreoffice-commits mailing list