ReactOS 0.4.16-dev-1093-g93e9710
CSearchBar.h
Go to the documentation of this file.
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
12class 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 IDispatch,
20 public CDialogImpl<CSearchBar>
21{
22
23private:
24 // *** BaseBarSite information ***
29
30 HRESULT GetSearchResultsFolder(IShellBrowser **ppShellBrowser, HWND *pHwnd, IShellFolder **ppShellFolder);
32 void SetSearchInProgress(BOOL bInProgress);
35
36 // *** ATL event handlers ***
39 LRESULT OnSearchButtonClicked(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled);
40 LRESULT OnStopButtonClicked(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled);
41 LRESULT OnLocationEditChange(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled);
42 LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled);
43
44public:
46 virtual ~CSearchBar();
47
48 // *** IOleWindow methods ***
49 STDMETHOD(GetWindow)(HWND *lphwnd) override;
50 STDMETHOD(ContextSensitiveHelp)(BOOL fEnterMode) override;
51
52 // *** IDockingWindow methods ***
54 STDMETHOD(ResizeBorderDW)(const RECT *prcBorder, IUnknown *punkToolbarSite, BOOL fReserved) override;
55 STDMETHOD(ShowDW)(BOOL fShow) override;
56
57 // *** IDeskBand methods ***
58 STDMETHOD(GetBandInfo)(DWORD dwBandID, DWORD dwViewMode, DESKBANDINFO *pdbi) override;
59
60 // *** IObjectWithSite methods ***
61 STDMETHOD(SetSite)(IUnknown *pUnkSite) override;
62 STDMETHOD(GetSite)(REFIID riid, void **ppvSite) override;
63
64 // *** IInputObject methods ***
65 STDMETHOD(UIActivateIO)(BOOL fActivate, LPMSG lpMsg) override;
66 STDMETHOD(HasFocusIO)() override;
67 STDMETHOD(TranslateAcceleratorIO)(LPMSG lpMsg) override;
68
69 // *** IPersist methods ***
70 STDMETHOD(GetClassID)(CLSID *pClassID) override;
71
72 // *** IPersistStream methods ***
73 STDMETHOD(IsDirty)() override;
74 STDMETHOD(Load)(IStream *pStm) override;
75 STDMETHOD(Save)(IStream *pStm, BOOL fClearDirty) override;
76 STDMETHOD(GetSizeMax)(ULARGE_INTEGER *pcbSize) override;
77
78 // *** IDispatch methods ***
79 STDMETHOD(GetTypeInfoCount)(UINT *pctinfo) override;
80 STDMETHOD(GetTypeInfo)(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) override;
81 STDMETHOD(GetIDsOfNames)(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) override;
82 STDMETHOD(Invoke)(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) override;
83
84 enum { IDD = IDD_SEARCH_DLG };
85
88
90
93 COM_INTERFACE_ENTRY_IID(DIID_DWebBrowserEvents, IDispatch)
94 COM_INTERFACE_ENTRY_IID(DIID_DSearchCommandEvents, IDispatch)
99 COM_INTERFACE_ENTRY_IID(IID_IInputObject, IInputObject)
103
112};
#define STDMETHOD(m)
Definition: basetyps.h:62
STDMETHOD() HasFocusIO() override
Definition: CSearchBar.cpp:674
STDMETHOD() CloseDW(DWORD dwReserved) override
Definition: CSearchBar.cpp:537
STDMETHOD() ContextSensitiveHelp(BOOL fEnterMode) override
Definition: CSearchBar.cpp:529
STDMETHOD() Save(IStream *pStm, BOOL fClearDirty) override
Definition: CSearchBar.cpp:717
CComPtr< IUnknown > m_pSite
Definition: CSearchBar.h:25
STDMETHOD() GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) override
Definition: CSearchBar.cpp:744
LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CSearchBar.cpp:490
STDMETHOD() IsDirty() override
Definition: CSearchBar.cpp:705
virtual ~CSearchBar()
Definition: CSearchBar.cpp:181
LRESULT OnSearchButtonClicked(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
Definition: CSearchBar.cpp:310
BOOL m_bVisible
Definition: CSearchBar.h:28
STDMETHOD() GetClassID(CLSID *pClassID) override
Definition: CSearchBar.cpp:695
STDMETHOD() GetWindow(HWND *lphwnd) override
Definition: CSearchBar.cpp:521
HRESULT GetSearchResultsFolder(IShellBrowser **ppShellBrowser, HWND *pHwnd, IShellFolder **ppShellFolder)
Definition: CSearchBar.cpp:263
STDMETHOD() Load(IStream *pStm) override
Definition: CSearchBar.cpp:711
LRESULT OnStopButtonClicked(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
Definition: CSearchBar.cpp:395
STDMETHOD() ResizeBorderDW(const RECT *prcBorder, IUnknown *punkToolbarSite, BOOL fReserved) override
Definition: CSearchBar.cpp:544
STDMETHOD() SetSite(IUnknown *pUnkSite) override
Definition: CSearchBar.cpp:610
INT_PTR m_RealItemIndex
Definition: CSearchBar.h:27
HRESULT TrySubscribeToSearchEvents()
Definition: CSearchBar.cpp:759
STDMETHOD() GetSizeMax(ULARGE_INTEGER *pcbSize) override
Definition: CSearchBar.cpp:723
STDMETHOD() GetSite(REFIID riid, void **ppvSite) override
Definition: CSearchBar.cpp:648
STDMETHOD() Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) override
Definition: CSearchBar.cpp:774
STDMETHOD() ShowDW(BOOL fShow) override
Definition: CSearchBar.cpp:550
STDMETHOD() GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) override
Definition: CSearchBar.cpp:738
LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CSearchBar.cpp:256
STDMETHOD() GetTypeInfoCount(UINT *pctinfo) override
Definition: CSearchBar.cpp:732
void SetSearchInProgress(BOOL bInProgress)
Definition: CSearchBar.cpp:750
STDMETHOD() TranslateAcceleratorIO(LPMSG lpMsg) override
Definition: CSearchBar.cpp:679
LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
Definition: CSearchBar.cpp:185
STDMETHOD() GetBandInfo(DWORD dwBandID, DWORD dwViewMode, DESKBANDINFO *pdbi) override
Definition: CSearchBar.cpp:561
LOCATIONITEM * GetAddressEditBoxLocations(WCHAR *szPath)
Definition: CSearchBar.cpp:451
LRESULT OnLocationEditChange(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
Definition: CSearchBar.cpp:405
STDMETHOD() UIActivateIO(BOOL fActivate, LPMSG lpMsg) override
Definition: CSearchBar.cpp:658
void TrySetFocus(UINT Source)
Definition: CSearchBar.cpp:874
CComPtr< IAddressEditBox > m_AddressEditBox
Definition: CSearchBar.h:26
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define IDC_SEARCH_BUTTON
Definition: resource.h:170
#define IDC_SEARCH_COMBOBOX
Definition: resource.h:172
#define IDR_FILESEARCHBAND
Definition: resource.h:111
#define IDD_SEARCH_DLG
Definition: resource.h:166
#define IDC_SEARCH_STOP_BUTTON
Definition: resource.h:171
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
REFIID riid
Definition: atlbase.h:39
#define COM_INTERFACE_ENTRY2_IID(iid, x, x2)
Definition: atlcom.h:609
#define BEGIN_COM_MAP(x)
Definition: atlcom.h:581
#define COM_INTERFACE_ENTRY_IID(iid, x)
Definition: atlcom.h:601
#define DECLARE_PROTECT_FINAL_CONSTRUCT()
Definition: atlcom.h:679
#define DECLARE_NOT_AGGREGATABLE(x)
Definition: atlcom.h:651
#define DECLARE_REGISTRY_RESOURCEID(x)
Definition: atlcom.h:645
#define END_COM_MAP()
Definition: atlcom.h:592
#define MESSAGE_HANDLER(msg, func)
Definition: atlwin.h:1926
#define BEGIN_MSG_MAP(theClass)
Definition: atlwin.h:1898
#define END_MSG_MAP()
Definition: atlwin.h:1917
#define COMMAND_HANDLER(id, code, func)
Definition: atlwin.h:1944
LPCWSTR szPath
Definition: env.c:37
const IID IID_IObjectWithSite
static LPOLESTR
Definition: stg_prop.c:27
static VARIANTARG static DISPID
Definition: ordinal.c:52
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
Definition: mswsock.h:95
unsigned int UINT
Definition: ndis.h:50
_In_ UINT _In_ UINT _In_ PNDIS_PACKET Source
Definition: ndis.h:3169
const GUID IID_IOleWindow
const GUID IID_IDispatch
const GUID IID_IPersist
Definition: proxy.cpp:14
const GUID IID_IPersistStream
Definition: proxy.cpp:13
#define REFIID
Definition: guiddef.h:118
DWORD LCID
Definition: nls.h:13
int32_t INT_PTR
Definition: typedefs.h:64
_In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon.h:531
LONG_PTR LPARAM
Definition: windef.h:208
LONG_PTR LRESULT
Definition: windef.h:209
UINT_PTR WPARAM
Definition: windef.h:207
#define WM_SIZE
Definition: winuser.h:1622
#define WM_SETFOCUS
Definition: winuser.h:1624
#define WM_INITDIALOG
Definition: winuser.h:1750
#define BN_CLICKED
Definition: winuser.h:1936
#define CBN_EDITCHANGE
Definition: winuser.h:1986
__wchar_t WCHAR
Definition: xmlstorage.h:180