[BROWSEUI]
[reactos.git] / reactos / dll / win32 / browseui / explorerband.h
index c3522c5..0c5a8fc 100644 (file)
@@ -61,6 +61,7 @@ private:
     DWORD dwBandID;
     HIMAGELIST hImageList;
     HTREEITEM  hRoot;
+    HTREEITEM  oldSelected;
     
     // *** notification cookies ***
     DWORD adviseCookie;
@@ -68,10 +69,15 @@ private:
     
     void InitializeExplorerBand();
     void DestroyExplorerBand();
+    HRESULT ExecuteCommand(CComPtr<IContextMenu>& menu, UINT nCmd);
 
     BOOL OnTreeItemExpanding(LPNMTREEVIEW pnmtv);
     void OnSelectionChanged(LPNMTREEVIEW pnmtv);
 
+    // *** ATL event handlers ***
+    LRESULT OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
+    LRESULT ContextMenuHack(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
+
     // *** Helper functions ***
     NodeInfo* GetNodeInfo(HTREEITEM hItem);
     HRESULT UpdateBrowser(LPITEMIDLIST pidlGoto);
@@ -141,7 +147,7 @@ public:
     virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
     virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
     virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
-    
+
     // *** IDropTarget methods ***
     virtual HRESULT STDMETHODCALLTYPE DragEnter(IDataObject *pObj, DWORD glfKeyState, POINTL pt, DWORD *pdwEffect);
     virtual HRESULT STDMETHODCALLTYPE DragOver(DWORD glfKeyState, POINTL pt, DWORD *pdwEffect);
@@ -174,6 +180,8 @@ public:
     END_COM_MAP()
 
     BEGIN_MSG_MAP(CExplorerBand)
+        MESSAGE_HANDLER(WM_CONTEXTMENU, OnContextMenu)
+        MESSAGE_HANDLER(WM_RBUTTONDOWN, ContextMenuHack)
     END_MSG_MAP()
 };