Index: src/chext/DropMenuExt.cpp =================================================================== diff -u -N -r3d1de44762647618faf9b5b3a87f89b293899d8d -rc33d4855ebf17772c28012a66c829a1f21d080f5 --- src/chext/DropMenuExt.cpp (.../DropMenuExt.cpp) (revision 3d1de44762647618faf9b5b3a87f89b293899d8d) +++ src/chext/DropMenuExt.cpp (.../DropMenuExt.cpp) (revision c33d4855ebf17772c28012a66c829a1f21d080f5) @@ -119,9 +119,7 @@ TShellMenuItemPtr spRootMenuItem = m_tShellExtMenuConfig.GetCommandRoot(); m_tContextMenuHandler.Init(spRootMenuItem, hMenu, idCmdFirst, indexMenu, m_tShellExtData, m_tShellExtMenuConfig.GetShowShortcutIcons(), bIntercept); - HRESULT hResult = MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, m_tContextMenuHandler.GetLastCommandID() - idCmdFirst + 1); - BOOST_LOG_HRESULT(rLogger, hResult) << L""; - return hResult; + return MAKE_HRESULT(SEVERITY_SUCCESS, FACILITY_NULL, m_tContextMenuHandler.GetLastCommandID() - idCmdFirst + 1); } STDMETHODIMP CDropMenuExt::InvokeCommand(LPCMINVOKECOMMANDINFO lpici) Index: src/chext/HResultFormatter.cpp =================================================================== diff -u -N -r3d1de44762647618faf9b5b3a87f89b293899d8d -rc33d4855ebf17772c28012a66c829a1f21d080f5 --- src/chext/HResultFormatter.cpp (.../HResultFormatter.cpp) (revision 3d1de44762647618faf9b5b3a87f89b293899d8d) +++ src/chext/HResultFormatter.cpp (.../HResultFormatter.cpp) (revision c33d4855ebf17772c28012a66c829a1f21d080f5) @@ -34,6 +34,10 @@ case S_FALSE: wstr << L" (S_FALSE)"; break; + case E_FAIL: + wstr << L" (E_FAIL)"; + break; + default: { chcore::TString strDesc = chcore::TWin32ErrorFormatter::FormatWin32ErrorCodeWithFallback(hResult, nullptr, false); Index: src/chext/ShellExtControl.cpp =================================================================== diff -u -N -r3d1de44762647618faf9b5b3a87f89b293899d8d -rc33d4855ebf17772c28012a66c829a1f21d080f5 --- src/chext/ShellExtControl.cpp (.../ShellExtControl.cpp) (revision 3d1de44762647618faf9b5b3a87f89b293899d8d) +++ src/chext/ShellExtControl.cpp (.../ShellExtControl.cpp) (revision c33d4855ebf17772c28012a66c829a1f21d080f5) @@ -53,9 +53,9 @@ DWORD dwLastError = ERROR_SUCCESS; m_hMemory = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(SHELLEXT_DATA), _T("CHShellExtControlData")); // name of map object + dwLastError = GetLastError(); // NOTE: last error is needed also for success case (for already exists status) if(!m_hMemory) { - dwLastError = GetLastError(); BOOST_LOG_HRESULT(rLogger, dwLastError) << L"Cannot create file mapping."; ReleaseMutex(m_hMutex); CloseHandle(m_hMutex); @@ -65,7 +65,9 @@ m_pShellExtData = (SHELLEXT_DATA*)MapViewOfFile(m_hMemory, FILE_MAP_READ | FILE_MAP_WRITE, 0, 0, 0); if(!m_pShellExtData) { - BOOST_LOG_SEV(rLogger, error) << L"Cannot map view of file."; + DWORD dwError = GetLastError(); // NOTE: do not overwrite dwLastError, as the value is needed later + + BOOST_LOG_HRESULT(rLogger, dwError) << L"Cannot map view of file."; ReleaseMutex(m_hMutex); CloseHandle(m_hMutex); CloseHandle(m_hMemory); @@ -75,7 +77,14 @@ if(dwLastError != ERROR_ALREADY_EXISTS) { - BOOST_LOG_SEV(rLogger, debug) << L"Copy Handler is not running. Disabling shell extension."; + if(dwLastError == ERROR_SUCCESS) + { + BOOST_LOG_SEV(rLogger, debug) << L"Copy Handler is not running. Disabling shell extension."; + } + else + { + BOOST_LOG_HRESULT(rLogger, dwLastError) << L"Copy Handler is not running. Disabling shell extension."; + } m_pShellExtData->m_lFlags = 0; m_pShellExtData->m_lID = GetTickCount(); }