Fix some assertions now that they are enabled (#3524)
authorMark Jansen <mark.jansen@reactos.org>
Wed, 10 Mar 2021 22:43:06 +0000 (23:43 +0100)
committerGitHub <noreply@github.com>
Wed, 10 Mar 2021 22:43:06 +0000 (07:43 +0900)
Fix some assertions, hack out some others (they need more ATL work).
CORE-17505

base/shell/explorer/syspager.cpp
base/shell/explorer/taskswnd.cpp
base/shell/explorer/traywnd.cpp
dll/shellext/netshell/lanstatusui.cpp
dll/win32/shell32/shellmenu/CMenuToolbars.cpp
dll/win32/shell32/shellmenu/CMenuToolbars.h
sdk/include/reactos/rosctrls.h

index 7e61b00..d6f729d 100644 (file)
@@ -1231,7 +1231,10 @@ void CNotifyToolbar::Initialize(HWND hWndParent, CBalloonQueue * queue)
         TBSTYLE_FLAT | TBSTYLE_TOOLTIPS | TBSTYLE_WRAPABLE | TBSTYLE_TRANSPARENT |
         CCS_TOP | CCS_NORESIZE | CCS_NOPARENTALIGN | CCS_NODIVIDER;
 
-    SubclassWindow(CToolbar::Create(hWndParent, styles));
+    HWND toolbar = CToolbar::Create(hWndParent, styles);
+    //HACK: We have not created this toolbar properly, so we need to subclass it now!
+    m_hWnd = NULL;
+    SubclassWindow(toolbar);
 
     // Force the toolbar tooltips window to always show tooltips even if not foreground
     HWND tooltipsWnd = (HWND)SendMessageW(TB_GETTOOLTIPS);
index f8f4147..03a2b3f 100644 (file)
@@ -287,6 +287,8 @@ public:
 
         HWND toolbar = CToolbar::Create(hWndParent, styles);
         SetDrawTextFlags(DT_NOPREFIX, DT_NOPREFIX);
+        //HACK: We have not created this toolbar properly, so we need to subclass it now!
+        m_hWnd = NULL;
         return SubclassWindow(toolbar);
     }
 };
index 8dd491b..8dad6c4 100644 (file)
@@ -200,7 +200,11 @@ public:
 
     VOID Initialize()
     {
-        SubclassWindow(m_hWnd);
+        //HACK: We have not created this button properly, so we need to subclass it now!
+        HWND button = m_hWnd;
+        m_hWnd = NULL;
+        SubclassWindow(button);
+
         SetWindowTheme(m_hWnd, L"Start", NULL);
 
         m_ImageList = ImageList_LoadImageW(hExplorerInstance,
@@ -214,6 +218,8 @@ public:
         UpdateSize();
     }
 
+    // Hack:
+    // Use DECLARE_WND_SUPERCLASS instead!
     HWND Create(HWND hwndParent)
     {
         WCHAR szStartCaption[32];
index 9210699..19b0e67 100644 (file)
@@ -915,6 +915,7 @@ CLanStatus::InitializeNetTaskbarNotifications()
     Index = 1;
     while (TRUE)
     {
+        pNetCon.Release();
         hr = pEnumCon->Next(1, &pNetCon, &Count);
         if (hr != S_OK)
             break;
index 86bacd2..984be9e 100644 (file)
@@ -398,7 +398,7 @@ HRESULT CMenuToolbarBase::CreateToolbar(HWND hwndParent, DWORD dwFlags)
         rc.bottom = 1;
     }
 
-    SubclassWindow(CToolbar::Create(hwndParent, tbStyles, tbExStyles));
+    CToolbar::Create(hwndParent, tbStyles, tbExStyles);
 
     SetWindowTheme(m_hWnd, L"", L"");
 
@@ -1163,7 +1163,8 @@ HRESULT  CMenuStaticToolbar::SetMenu(
     m_hwndMenu = hwnd;
     m_dwMenuFlags = dwFlags;
 
-    ClearToolbar();
+    if (IsWindow())
+        ClearToolbar();
 
     return S_OK;
 }
@@ -1408,7 +1409,8 @@ HRESULT CMenuSFToolbar::SetShellFolder(IShellFolder *psf, LPCITEMIDLIST pidlFold
     m_hKey = hKey;
     m_dwMenuFlags = dwFlags;
 
-    ClearToolbar();
+    if (IsWindow())
+        ClearToolbar();
 
     return S_OK;
 }
index 6463166..a7ecb45 100644 (file)
@@ -135,6 +135,8 @@ private:
         MESSAGE_HANDLER(WM_COMMAND, OnWinEventWrap)
         MESSAGE_HANDLER(WM_NOTIFY, OnWinEventWrap)
         MESSAGE_HANDLER(WM_TIMER, OnPopupTimer)
+    ALT_MSG_MAP(1)
+        // No pager specific handlers yet
     END_MSG_MAP()
 };
 
index 73e7cfa..0f1d7f7 100644 (file)
@@ -251,6 +251,8 @@ class CToolbar :
 {
 public: // Configuration methods
 
+    // Hack:
+    // Use DECLARE_WND_SUPERCLASS instead!
     HWND Create(HWND hWndParent, DWORD dwStyles = 0, DWORD dwExStyles = 0)
     {
         if (!dwStyles)