diff --git a/src/cascadia/ShellExtension/OpenTerminalHere.cpp b/src/cascadia/ShellExtension/OpenTerminalHere.cpp index bd748338d7a..e50c249986c 100644 --- a/src/cascadia/ShellExtension/OpenTerminalHere.cpp +++ b/src/cascadia/ShellExtension/OpenTerminalHere.cpp @@ -266,7 +266,16 @@ std::wstring OpenTerminalHere::_GetPathFromExplorer() const return path; } - auto shell = create_instance(CLSID_ShellWindows); + com_ptr shell; + try + { + shell = create_instance(CLSID_ShellWindows, CLSCTX_ALL); + } + catch (...) + { + //look like try_create_instance is not available no more + } + if (shell == nullptr) { return path; @@ -285,6 +294,7 @@ std::wstring OpenTerminalHere::_GetPathFromExplorer() const com_ptr tmp; if (FAILED(disp->QueryInterface(tmp.put()))) { + disp = nullptr; // get rid of DEBUG non-nullptr warning continue; } @@ -293,8 +303,11 @@ std::wstring OpenTerminalHere::_GetPathFromExplorer() const if (hwnd == tmpHWND) { browser = tmp; + disp = nullptr; // get rid of DEBUG non-nullptr warning break; //found } + + disp = nullptr; // get rid of DEBUG non-nullptr warning } if (browser != nullptr)