ReactOS 0.4.16-dev-1099-g3bb27eb
addresseditbox.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Explorer
3 * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4 * PURPOSE: The combo box of the address band
5 * COPYRIGHT: Copyright 2009 Andrew Hill <ash77 at domain reactos.org>
6 * Copyright 2023-2025 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
7 */
8
9#pragma once
10
12 public CWindowImpl<CAddressEditBox, CWindow, CControlWinTraits>,
13 public CComCoClass<CAddressEditBox, &CLSID_AddressEditBox>,
14 public CComObjectRootEx<CComMultiThreadModelNoCS>,
15 public IWinEventHandler,
16 public IDispatch,
17 public IAddressBand,
18 public IAddressEditBox,
19 public IOleCommandTarget,
20 public IPersistStream,
21 public IShellService
22{
23private:
24 CContainedWindow fCombobox;
25 CContainedWindow fEditWindow;
27 CComPtr<IUnknown> fSite;
28 CComHeapPtr<ITEMIDLIST_ABSOLUTE> m_pidlLastParsed;
30public:
33private:
35 void AddComboBoxItem(LPITEMIDLIST pidl, int index, int indent);
36 void FillOneLevel(int index, int levelIndent, int indent);
41 BOOL GetComboBoxText(CComHeapPtr<WCHAR>& pszText);
43public:
44 // *** IShellService methods ***
45 STDMETHOD(SetOwner)(IUnknown *) override;
46
47 // *** IAddressBand methods ***
48 STDMETHOD(FileSysChange)(long param8, long paramC) override;
49 STDMETHOD(Refresh)(long param8) override;
50
51 // *** IAddressEditBox methods ***
52 STDMETHOD(Init)(HWND comboboxEx, HWND editControl, long param14, IUnknown *param18) override;
53 STDMETHOD(SetCurrentDir)(PCWSTR pszPath) override;
54 STDMETHOD(ParseNow)(long paramC) override;
55 STDMETHOD(Execute)(long paramC) override;
56 STDMETHOD(Save)(long paramC) override;
57
58 // *** IWinEventHandler methods ***
59 STDMETHOD(OnWinEvent)(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) override;
61
62 // *** IOleCommandTarget methods ***
63 STDMETHOD(QueryStatus)(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[ ], OLECMDTEXT *pCmdText) override;
64 STDMETHOD(Exec)(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut) override;
65
66 // *** IDispatch methods ***
67 STDMETHOD(GetTypeInfoCount)(UINT *pctinfo) override;
68 STDMETHOD(GetTypeInfo)(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) override;
69 STDMETHOD(GetIDsOfNames)(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) override;
70 STDMETHOD(Invoke)(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) override;
71
72 // *** IPersist methods ***
73 STDMETHOD(GetClassID)(CLSID *pClassID) override;
74
75 // *** IPersistStream methods ***
76 STDMETHOD(IsDirty)() override;
77 STDMETHOD(Load)(IStream *pStm) override;
78 STDMETHOD(Save)(IStream *pStm, BOOL fClearDirty) override;
79 STDMETHOD(GetSizeMax)(ULARGE_INTEGER *pcbSize) override;
80
81 // message handlers
83
86
88
92
94 COM_INTERFACE_ENTRY_IID(IID_IShellService, IShellService)
95 COM_INTERFACE_ENTRY_IID(IID_IAddressBand, IAddressBand)
96 COM_INTERFACE_ENTRY_IID(IID_IAddressEditBox, IAddressEditBox)
97 COM_INTERFACE_ENTRY_IID(IID_IWinEventHandler, IWinEventHandler)
98 COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
103};
HWND hWnd
Definition: settings.c:17
#define STDMETHOD(m)
Definition: basetyps.h:62
#define STDMETHODCALLTYPE
Definition: bdasup.h:9
STDMETHOD() GetClassID(CLSID *pClassID) override
HRESULT RefreshAddress()
STDMETHOD() GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) override
void FillOneLevel(int index, int levelIndent, int indent)
CContainedWindow fEditWindow
HRESULT GetAbsolutePidl(PIDLIST_ABSOLUTE *pAbsolutePIDL)
STDMETHOD() ParseNow(long paramC) override
CContainedWindow fCombobox
CComPtr< IUnknown > fSite
CComHeapPtr< ITEMIDLIST_ABSOLUTE > m_pidlLastParsed
HRESULT STDMETHODCALLTYPE ShowFileNotFoundError(HRESULT hRet)
STDMETHOD() SetCurrentDir(PCWSTR pszPath) override
STDMETHOD() QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText) override
LPITEMIDLIST GetItemData(int index)
STDMETHOD() GetTypeInfoCount(UINT *pctinfo) override
STDMETHOD() Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) override
LRESULT OnSettingChange(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
STDMETHOD() IsWindowOwner(HWND hWnd) override
void AddComboBoxItem(LPITEMIDLIST pidl, int index, int indent)
STDMETHOD() Save(long paramC) override
STDMETHOD() SetOwner(IUnknown *) override
STDMETHOD() Execute(long paramC) override
STDMETHOD() IsDirty() override
void PopulateComboBox(LPITEMIDLIST pidl)
STDMETHOD() OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) override
STDMETHOD() Load(IStream *pStm) override
BOOL GetComboBoxText(CComHeapPtr< WCHAR > &pszText)
STDMETHOD() GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) override
STDMETHOD() GetSizeMax(ULARGE_INTEGER *pcbSize) override
STDMETHOD() FileSysChange(long param8, long paramC) override
STDMETHOD() Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut) override
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define IDR_ADDRESSEDITBOX
Definition: resource.h:96
static const WCHAR indent[]
Definition: object.c:1156
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
GLuint index
Definition: glext.h:6031
REFIID riid
Definition: atlbase.h:39
#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
void Refresh(void)
Definition: magnifier.c:317
static LPOLESTR
Definition: stg_prop.c:27
static VARIANTARG static DISPID
Definition: ordinal.c:52
unsigned int UINT
Definition: ndis.h:50
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
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
const uint16_t * PCWSTR
Definition: typedefs.h:57
uint32_t ULONG
Definition: typedefs.h:59
_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_SETTINGCHANGE
Definition: winuser.h:1640