[CMAKE]
authorDavid Quintana <gigaherz@gmail.com>
Sun, 23 Feb 2014 16:44:54 +0000 (16:44 +0000)
committerDavid Quintana <gigaherz@gmail.com>
Sun, 23 Feb 2014 16:44:54 +0000 (16:44 +0000)
* Take MSVC workaround from trunk.

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

svn path=/branches/shell-experiments/; revision=62307

base/applications/CMakeLists.txt
base/shell/rshell/CMenuBand.cpp
base/shell/rshell/CStartMenu.cpp
cmake/msvc.cmake

index c379edc..ca7fba2 100644 (file)
@@ -16,6 +16,7 @@ add_subdirectory(kbswitch)
 add_subdirectory(logoff)
 add_subdirectory(magnify)
 add_subdirectory(mmc)
+add_subdirectory(mplay32)
 add_subdirectory(msconfig)
 add_subdirectory(mscutils)
 add_subdirectory(mstsc)
index fe23478..b71e6e3 100644 (file)
@@ -1118,7 +1118,9 @@ HRESULT CMenuSFToolbar::FillToolbar()
         tbb.fsStyle = 0;
 
         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);
         if (FAILED(hr))
@@ -1150,7 +1152,7 @@ HRESULT CMenuSFToolbar::FillToolbar()
     if (i == 0)
     {
         TBBUTTON tbb = { 0 };
-        PWSTR MenuString = L"(Empty)";
+        PCWSTR MenuString = L"(Empty)";
 
         tbb.fsState = 0/*TBSTATE_DISABLED*/;
         tbb.fsStyle = 0;
@@ -1301,7 +1303,9 @@ HRESULT CMenuSFToolbar::HasSubMenu(UINT uItem)
 {
     HRESULT hr;
     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;
     hr = psi->GetAttributes(SFGAO_FOLDER, &attrs);
@@ -1312,14 +1316,14 @@ HRESULT CMenuSFToolbar::HasSubMenu(UINT uItem)
 }
 
 CMenuBand::CMenuBand() :
-    m_site(NULL),
-    m_psmc(NULL),
     m_staticToolbar(NULL),
     m_SFToolbar(NULL),
+    m_site(NULL),
+    m_psmc(NULL),
+    m_subMenuChild(NULL),
     m_useBigIcons(FALSE),
     m_hotBar(NULL),
-    m_hotItem(-1),
-    m_subMenuChild(NULL)
+    m_hotItem(-1)
 {
     m_focusManager = CMenuFocusManager::AcquireManager();
 }
index d1b324c..08be0ba 100644 (file)
@@ -266,7 +266,7 @@ public:
 };
 
 extern "C"
-HRESULT
+HRESULT WINAPI
 CStartMenu_Constructor(REFIID riid, void **ppv)
 {
     IShellMenu* pShellMenu;
index ff82dfa..6bfe1e6 100644 (file)
@@ -121,7 +121,14 @@ set(CMAKE_ASM_CREATE_STATIC_LIBRARY ${CMAKE_C_CREATE_STATIC_LIBRARY})
 
 if(PCH)
     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)
             set(_pch_language CXX)