[SHELLFIND] Add stop search command
authorBrock Mammen <brockmammen@gmail.com>
Tue, 20 Aug 2019 21:14:12 +0000 (16:14 -0500)
committerGiannis Adamopoulos <gadamopoulos@reactos.org>
Sun, 15 Sep 2019 16:46:36 +0000 (19:46 +0300)
dll/win32/browseui/shellfind/CFindFolder.cpp
dll/win32/browseui/shellfind/CFindFolder.h
dll/win32/browseui/shellfind/shellfind.h

index 7b65d83..1b8a49f 100644 (file)
@@ -266,6 +266,16 @@ LRESULT CFindFolder::StartSearch(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &
     return S_OK;
 }
 
+LRESULT CFindFolder::StopSearch(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
+{
+    if (m_hStopEvent)
+    {
+        SetEvent(m_hStopEvent);
+        m_hStopEvent = NULL;
+    }
+    return 0;
+}
+
 LRESULT CFindFolder::AddResult(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 {
     if (!lParam)
index 885e49b..532643d 100644 (file)
@@ -2,9 +2,6 @@
 
 #include "shellfind.h"
 
-#define SWM_ADD_ITEM (WM_USER + 0)
-#define SWM_UPDATE_STATUS (WM_USER + 1)
-
 class CFindFolder :
         public CWindowImpl<CFindFolder>,
         public CComCoClass<CFindFolder, &CLSID_FindFolder>,
@@ -87,6 +84,8 @@ private:
     // *** Message handlers ***
     LRESULT StartSearch(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
 
+    LRESULT StopSearch(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
+
     LRESULT AddResult(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
 
     LRESULT UpdateStatus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
@@ -106,6 +105,7 @@ public:
 
     BEGIN_MSG_MAP(CFindFolder)
         MESSAGE_HANDLER(WM_SEARCH_START, StartSearch)
+        MESSAGE_HANDLER(WM_SEARCH_STOP, StopSearch)
         MESSAGE_HANDLER(WM_SEARCH_ADD_RESULT, AddResult)
         MESSAGE_HANDLER(WM_SEARCH_UPDATE_STATUS, UpdateStatus)
     END_MSG_MAP()
index 0105d34..c955cf1 100644 (file)
@@ -27,8 +27,9 @@
 #include "../resource.h"
 
 #define WM_SEARCH_START          WM_USER + 0
-#define WM_SEARCH_ADD_RESULT     WM_USER + 1
-#define WM_SEARCH_UPDATE_STATUS  WM_USER + 2
+#define WM_SEARCH_STOP           WM_USER + 1
+#define WM_SEARCH_ADD_RESULT     WM_USER + 2
+#define WM_SEARCH_UPDATE_STATUS  WM_USER + 3
 
 struct SearchStart
 {