ReactOS 0.4.16-dev-334-g4d9f67c
CExplorerBand.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS shdocvw
3 * LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4 * PURPOSE: Explorer bar
5 * COPYRIGHT: Copyright 2016 Sylvain Deverre <deverre dot sylv at gmail dot com>
6 * Copyright 2020-2024 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
7 */
8
9#pragma once
10
11#include "CNSCBand.h"
12
14 : public CNSCBand
15 , public CComCoClass<CExplorerBand, &CLSID_ExplorerBand>
16 , public CComObjectRootEx<CComMultiThreadModelNoCS>
17 , public IDispatch
18{
19public:
21 virtual ~CExplorerBand();
22
23 STDMETHODIMP GetClassID(CLSID *pClassID) override;
26
27 // *** IDispatch methods ***
28 STDMETHODIMP GetTypeInfoCount(UINT *pctinfo) override;
29 STDMETHODIMP GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) override;
30 STDMETHODIMP GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) override;
31 STDMETHODIMP Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr) override;
32
35
37
43 COM_INTERFACE_ENTRY_IID(IID_IInputObject, IInputObject)
46 COM_INTERFACE_ENTRY_IID(IID_IOleCommandTarget, IOleCommandTarget)
47 COM_INTERFACE_ENTRY_IID(IID_IServiceProvider, IServiceProvider)
48 COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu)
49 COM_INTERFACE_ENTRY_IID(IID_IBandNavigate, IBandNavigate)
50 COM_INTERFACE_ENTRY_IID(IID_IWinEventHandler, IWinEventHandler)
51 COM_INTERFACE_ENTRY_IID(IID_INamespaceProxy, INamespaceProxy)
55
56protected:
57 INT _GetRootCsidl() override;
58 DWORD _GetTVStyle() override;
59 DWORD _GetTVExStyle() override;
60 DWORD _GetEnumFlags() override;
62 void _DestroyTreeView() override;
63 BOOL _WantsRootItem() override;
64 BOOL _GetTitle(LPWSTR pszTitle, INT cchTitle) override;
65 void _SortItems(HTREEITEM hParent) override;
69 _Out_ HTREEITEM *phItem,
70 _In_ BOOL bExpand,
72 _In_ BOOL bSelect);
73 static INT CALLBACK _CompareTreeItems(LPARAM p1, LPARAM p2, LPARAM p3); // Used by _SortItems
74};
#define STDMETHODIMP
Definition: basetyps.h:43
const GUID IID_IUnknown
void _DestroyTreeView() override
static INT CALLBACK _CompareTreeItems(LPARAM p1, LPARAM p2, LPARAM p3)
STDMETHODIMP GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId) override
STDMETHODIMP OnSelectionChanged(_In_ PCIDLIST_ABSOLUTE pidl) override
STDMETHODIMP GetTypeInfoCount(UINT *pctinfo) override
void _SortItems(HTREEITEM hParent) override
STDMETHODIMP GetClassID(CLSID *pClassID) override
STDMETHODIMP Invoke(_In_ PCIDLIST_ABSOLUTE pidl) override
BOOL _NavigateToPIDL(_In_ LPCITEMIDLIST dest, _Out_ HTREEITEM *phItem, _In_ BOOL bExpand, _In_ BOOL bInsert, _In_ BOOL bSelect)
BOOL _WantsRootItem() override
DWORD _GetEnumFlags() override
STDMETHODIMP GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo) override
DWORD _GetTVStyle() override
INT _GetRootCsidl() override
DWORD _GetTVExStyle() override
BOOL _GetTitle(LPWSTR pszTitle, INT cchTitle) override
BOOL _NavigateToCurrentFolder()
HRESULT _CreateTreeView(HWND hwndParent) override
virtual ~CExplorerBand()
static BOOL bInsert
Definition: cmdinput.c:121
static HWND hwndParent
Definition: cryptui.c:300
#define CALLBACK
Definition: compat.h:35
#define IDR_EXPLORERBAND
Definition: resource.h:3
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
const IID IID_IObjectWithSite
static char * dest
Definition: rtl.c:135
static LPOLESTR
Definition: stg_prop.c:27
static VARIANTARG static DISPID
Definition: ordinal.c:52
unsigned int UINT
Definition: ndis.h:50
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
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
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42
int32_t INT
Definition: typedefs.h:58
_In_ DWORD _Out_ _In_ WORD wFlags
Definition: wincon.h:531
LONG_PTR LPARAM
Definition: windef.h:208
WCHAR * LPWSTR
Definition: xmlstorage.h:184