* Take MSVC workaround from trunk.

[RSHELL]
* Fix GCC build.
* Add a couple error checks.

svn path=/branches/shell-experiments/; revision=62307
This commit is contained in:
David Quintana 2014-02-23 16:44:54 +00:00
parent d0f3e72c8e
commit 04a3726c09
4 changed files with 21 additions and 9 deletions

View file

@ -16,6 +16,7 @@ add_subdirectory(kbswitch)
add_subdirectory(logoff) add_subdirectory(logoff)
add_subdirectory(magnify) add_subdirectory(magnify)
add_subdirectory(mmc) add_subdirectory(mmc)
add_subdirectory(mplay32)
add_subdirectory(msconfig) add_subdirectory(msconfig)
add_subdirectory(mscutils) add_subdirectory(mscutils)
add_subdirectory(mstsc) add_subdirectory(mstsc)

View file

@ -1118,7 +1118,9 @@ HRESULT CMenuSFToolbar::FillToolbar()
tbb.fsStyle = 0; tbb.fsStyle = 0;
CComPtr<IShellItem> psi; CComPtr<IShellItem> psi;
SHCreateShellItem(NULL, m_shellFolder, item, &psi); hr = SHCreateShellItem(NULL, m_shellFolder, item, &psi);
if (FAILED(hr))
return hr;
hr = psi->GetDisplayName(SIGDN_NORMALDISPLAY, &MenuString); hr = psi->GetDisplayName(SIGDN_NORMALDISPLAY, &MenuString);
if (FAILED(hr)) if (FAILED(hr))
@ -1150,7 +1152,7 @@ HRESULT CMenuSFToolbar::FillToolbar()
if (i == 0) if (i == 0)
{ {
TBBUTTON tbb = { 0 }; TBBUTTON tbb = { 0 };
PWSTR MenuString = L"(Empty)"; PCWSTR MenuString = L"(Empty)";
tbb.fsState = 0/*TBSTATE_DISABLED*/; tbb.fsState = 0/*TBSTATE_DISABLED*/;
tbb.fsStyle = 0; tbb.fsStyle = 0;
@ -1301,7 +1303,9 @@ HRESULT CMenuSFToolbar::HasSubMenu(UINT uItem)
{ {
HRESULT hr; HRESULT hr;
CComPtr<IShellItem> psi; CComPtr<IShellItem> psi;
SHCreateShellItem(NULL, m_shellFolder, GetPidlFromId(uItem), &psi); hr = SHCreateShellItem(NULL, m_shellFolder, GetPidlFromId(uItem), &psi);
if (FAILED(hr))
return S_FALSE;
SFGAOF attrs; SFGAOF attrs;
hr = psi->GetAttributes(SFGAO_FOLDER, &attrs); hr = psi->GetAttributes(SFGAO_FOLDER, &attrs);
@ -1312,14 +1316,14 @@ HRESULT CMenuSFToolbar::HasSubMenu(UINT uItem)
} }
CMenuBand::CMenuBand() : CMenuBand::CMenuBand() :
m_site(NULL),
m_psmc(NULL),
m_staticToolbar(NULL), m_staticToolbar(NULL),
m_SFToolbar(NULL), m_SFToolbar(NULL),
m_site(NULL),
m_psmc(NULL),
m_subMenuChild(NULL),
m_useBigIcons(FALSE), m_useBigIcons(FALSE),
m_hotBar(NULL), m_hotBar(NULL),
m_hotItem(-1), m_hotItem(-1)
m_subMenuChild(NULL)
{ {
m_focusManager = CMenuFocusManager::AcquireManager(); m_focusManager = CMenuFocusManager::AcquireManager();
} }

View file

@ -266,7 +266,7 @@ public:
}; };
extern "C" extern "C"
HRESULT HRESULT WINAPI
CStartMenu_Constructor(REFIID riid, void **ppv) CStartMenu_Constructor(REFIID riid, void **ppv)
{ {
IShellMenu* pShellMenu; IShellMenu* pShellMenu;

View file

@ -121,7 +121,14 @@ set(CMAKE_ASM_CREATE_STATIC_LIBRARY ${CMAKE_C_CREATE_STATIC_LIBRARY})
if(PCH) if(PCH)
macro(add_pch _target _pch _sources) macro(add_pch _target _pch _sources)
set(_gch ${CMAKE_CURRENT_BINARY_DIR}/${_target}.pch)
# Workaround for the MSVC toolchain (MSBUILD) /MP bug
set(_temp_gch ${CMAKE_CURRENT_BINARY_DIR}/${_target}.pch)
if(MSVC_IDE)
file(TO_NATIVE_PATH ${_temp_gch} _gch)
else()
set(_gch ${_temp_gch})
endif()
if(IS_CPP) if(IS_CPP)
set(_pch_language CXX) set(_pch_language CXX)