[SHELLFIND] Message handler for updating status bar text
[reactos.git] / dll / win32 / browseui / shellfind / CFindFolder.h
index 34f6165..236d353 100644 (file)
@@ -6,11 +6,13 @@
 #define SWM_UPDATE_STATUS (WM_USER + 1)
 
 class CFindFolder :
+        public CWindowImpl<CFindFolder>,
         public CComCoClass<CFindFolder, &CLSID_FindFolder>,
         public CComObjectRootEx<CComMultiThreadModelNoCS>,
         public IShellFolder2,
+        public IPersistFolder2,
         public IShellFolderViewCB,
-        public IPersistFolder2
+        public IContextMenuCB
 {
     // *** IShellFolder2 methods ***
     STDMETHODIMP GetDefaultSearchGUID(GUID *pguid);
@@ -47,17 +49,23 @@ class CFindFolder :
     STDMETHODIMP GetUIObjectOf(HWND hwndOwner, UINT cidl, PCUITEMID_CHILD_ARRAY apidl, REFIID riid, UINT *prgfInOut,
                                LPVOID *ppvOut);
 
-    STDMETHODIMP GetDisplayNameOf(PCUITEMID_CHILD pidl, DWORD dwFlags, LPSTRRET pName);
 
+    STDMETHODIMP GetDisplayNameOf(PCUITEMID_CHILD pidl, DWORD dwFlags, LPSTRRET pName);
     STDMETHODIMP SetNameOf(HWND hwndOwner, PCUITEMID_CHILD pidl, LPCOLESTR lpName, DWORD dwFlags,
                            PITEMID_CHILD *pPidlOut);
 
     //// *** IShellFolderViewCB methods ***
     STDMETHODIMP MessageSFVCB(UINT uMsg, WPARAM wParam, LPARAM lParam);
 
+    //// *** IContextMenuCB method ***
+    STDMETHODIMP CallBack(IShellFolder *psf, HWND hwndOwner, IDataObject *pdtobj, UINT uMsg, WPARAM wParam,
+                          LPARAM lParam);
+
 private:
     LPITEMIDLIST m_pidl;
     CComPtr<IShellFolder2> m_pisfInner;
+    CComPtr<IShellFolderView> m_shellFolderView;
+    CComPtr<IShellBrowser> m_shellBrowser;
 
     //// *** IPersistFolder2 methods ***
     STDMETHODIMP GetCurFolder(LPITEMIDLIST *pidl);
@@ -70,6 +78,10 @@ private:
     // *** IPersist methods ***
     STDMETHODIMP GetClassID(CLSID *pClassId);
 
+    LRESULT AddItem(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
+
+    LRESULT UpdateStatus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
+
 public:
     DECLARE_REGISTRY_RESOURCEID(IDR_FINDFOLDER)
 
@@ -77,6 +89,11 @@ public:
 
     DECLARE_PROTECT_FINAL_CONSTRUCT()
 
+    BEGIN_MSG_MAP(CFindFolder)
+        MESSAGE_HANDLER(SWM_ADD_ITEM, AddItem)
+        MESSAGE_HANDLER(SWM_UPDATE_STATUS, UpdateStatus)
+    END_MSG_MAP()
+
     BEGIN_COM_MAP(CFindFolder)
         COM_INTERFACE_ENTRY_IID(IID_IShellFolder2, IShellFolder2)
         COM_INTERFACE_ENTRY_IID(IID_IShellFolder, IShellFolder)
@@ -84,6 +101,7 @@ public:
         COM_INTERFACE_ENTRY_IID(IID_IPersistFolder2, IPersistFolder2)
         COM_INTERFACE_ENTRY_IID(IID_IPersistFolder, IPersistFolder)
         COM_INTERFACE_ENTRY_IID(IID_IPersist, IPersist)
+        COM_INTERFACE_ENTRY_IID(IID_IContextMenuCB, IContextMenuCB)
     END_COM_MAP()
 };