[SHELLFIND] Rename data members
[reactos.git] / dll / win32 / browseui / shellfind / CSearchBar.h
1 /*
2 * PROJECT: ReactOS Search Shell Extension
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: Search UI
5 * COPYRIGHT: Copyright 2019 Brock Mammen
6 */
7
8 #pragma once
9
10 #include "shellfind.h"
11
12 class CSearchBar :
13 public CComCoClass<CSearchBar, &CLSID_FileSearchBand>,
14 public CComObjectRootEx<CComMultiThreadModelNoCS>,
15 public IDeskBand,
16 public IObjectWithSite,
17 public IInputObject,
18 public IPersistStream,
19 public IOleCommandTarget,
20 public IServiceProvider,
21 public IBandNavigate,
22 public IWinEventHandler,
23 public INamespaceProxy,
24 public IDispatch,
25 public CDialogImpl<CSearchBar>
26 {
27
28 private:
29 // *** BaseBarSite information ***
30 CComPtr<IUnknown> m_pSite;
31 CComPtr<IAddressEditBox> m_AddressEditBox;
32 BOOL m_bVisible;
33
34 HRESULT GetSearchResultsFolder(IShellBrowser **ppShellBrowser, HWND *pHwnd, IShellFolder **ppShellFolder);
35 BOOL GetAddressEditBoxPath(WCHAR (&szPath)[MAX_PATH]);
36 void SetSearchInProgress(BOOL bInProgress);
37 HRESULT ExecuteCommand(CComPtr<IContextMenu>& menu, UINT nCmd);
38
39 // *** ATL event handlers ***
40 LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
41 LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
42 LRESULT OnSearchButtonClicked(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled);
43 LRESULT OnStopButtonClicked(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled);
44 LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
45
46 public:
47 CSearchBar();
48 virtual ~CSearchBar();
49
50 // *** IOleWindow methods ***
51 virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND *lphwnd);
52 virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode);
53
54 // *** IDockingWindow methods ***
55 virtual HRESULT STDMETHODCALLTYPE CloseDW(DWORD dwReserved);
56 virtual HRESULT STDMETHODCALLTYPE ResizeBorderDW(const RECT *prcBorder, IUnknown *punkToolbarSite, BOOL fReserved);
57 virtual HRESULT STDMETHODCALLTYPE ShowDW(BOOL fShow);
58
59 // *** IDeskBand methods ***
60 virtual HRESULT STDMETHODCALLTYPE GetBandInfo(DWORD dwBandID, DWORD dwViewMode, DESKBANDINFO *pdbi);
61
62 // *** IObjectWithSite methods ***
63 virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown *pUnkSite);
64 virtual HRESULT STDMETHODCALLTYPE GetSite(REFIID riid, void **ppvSite);
65
66 // *** IOleCommandTarget methods ***
67 virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds [], OLECMDTEXT *pCmdText);
68 virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut);
69
70 // *** IServiceProvider methods ***
71 virtual HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, REFIID riid, void **ppvObject);
72
73 // *** IInputObject methods ***
74 virtual HRESULT STDMETHODCALLTYPE UIActivateIO(BOOL fActivate, LPMSG lpMsg);
75 virtual HRESULT STDMETHODCALLTYPE HasFocusIO();
76 virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorIO(LPMSG lpMsg);
77
78 // *** IPersist methods ***
79 virtual HRESULT STDMETHODCALLTYPE GetClassID(CLSID *pClassID);
80
81 // *** IPersistStream methods ***
82 virtual HRESULT STDMETHODCALLTYPE IsDirty();
83 virtual HRESULT STDMETHODCALLTYPE Load(IStream *pStm);
84 virtual HRESULT STDMETHODCALLTYPE Save(IStream *pStm, BOOL fClearDirty);
85 virtual HRESULT STDMETHODCALLTYPE GetSizeMax(ULARGE_INTEGER *pcbSize);
86
87 // *** IWinEventHandler methods ***
88 virtual HRESULT STDMETHODCALLTYPE OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult);
89 virtual HRESULT STDMETHODCALLTYPE IsWindowOwner(HWND hWnd);
90
91 // *** IBandNavigate methods ***
92 virtual HRESULT STDMETHODCALLTYPE Select(long paramC);
93
94 // *** INamespaceProxy ***
95 virtual HRESULT STDMETHODCALLTYPE GetNavigateTarget(long paramC, long param10, long param14);
96 virtual HRESULT STDMETHODCALLTYPE Invoke(long paramC);
97 virtual HRESULT STDMETHODCALLTYPE OnSelectionChanged(long paramC);
98 virtual HRESULT STDMETHODCALLTYPE RefreshFlags(long paramC, long param10, long param14);
99 virtual HRESULT STDMETHODCALLTYPE CacheItem(long paramC);
100
101 // *** IDispatch methods ***
102 virtual HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo);
103 virtual HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
104 virtual HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
105 virtual HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
106
107 enum { IDD = IDD_SEARCH_DLG };
108
109 DECLARE_REGISTRY_RESOURCEID(IDR_EXPLORERBAND)
110 DECLARE_NOT_AGGREGATABLE(CSearchBar)
111
112 DECLARE_PROTECT_FINAL_CONSTRUCT()
113
114 BEGIN_COM_MAP(CSearchBar)
115 COM_INTERFACE_ENTRY_IID(IID_IDispatch, IDispatch)
116 COM_INTERFACE_ENTRY_IID(DIID_DSearchCommandEvents, IDispatch)
117 COM_INTERFACE_ENTRY_IID(IID_IWinEventHandler, IWinEventHandler)
118 COM_INTERFACE_ENTRY_IID(IID_IBandNavigate, IBandNavigate)
119 COM_INTERFACE_ENTRY_IID(IID_INamespaceProxy, INamespaceProxy)
120 COM_INTERFACE_ENTRY2_IID(IID_IOleWindow, IOleWindow, IDeskBand)
121 COM_INTERFACE_ENTRY2_IID(IID_IDockingWindow, IDockingWindow, IDeskBand)
122 COM_INTERFACE_ENTRY_IID(IID_IDeskBand, IDeskBand)
123 COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite)
124 COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
125 COM_INTERFACE_ENTRY_IID(IID_IServiceProvider, IServiceProvider)
126 COM_INTERFACE_ENTRY_IID(IID_IInputObject, IInputObject)
127 COM_INTERFACE_ENTRY2_IID(IID_IPersist, IPersist, IPersistStream)
128 COM_INTERFACE_ENTRY_IID(IID_IPersistStream, IPersistStream)
129 END_COM_MAP()
130
131 BEGIN_MSG_MAP(CSearchBar)
132 MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
133 MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
134 MESSAGE_HANDLER(WM_SIZE, OnSize)
135 COMMAND_HANDLER(IDC_SEARCH_BUTTON, BN_CLICKED, OnSearchButtonClicked)
136 COMMAND_HANDLER(IDC_SEARCH_STOP_BUTTON, BN_CLICKED, OnStopButtonClicked)
137 END_MSG_MAP()
138 };