ReactOS 0.4.16-dev-1176-g64fda67
CISFBand Class Reference

#include <CISFBand.h>

Inheritance diagram for CISFBand:
Collaboration diagram for CISFBand:

Public Member Functions

 CISFBand ()
 
virtual ~CISFBand ()
 
HRESULT CreateSimpleToolbar (HWND hWndParent)
 
STDMETHOD() ContainsWindow (IN HWND hWnd)
 
STDMETHOD() GetSite (IN REFIID riid, OUT void **ppvSite) override
 
STDMETHOD() SetSite (IN IUnknown *pUnkSite) override
 
STDMETHOD() GetWindow (OUT HWND *phwnd) override
 
STDMETHOD() ContextSensitiveHelp (IN BOOL fEnterMode) override
 
STDMETHOD() ShowDW (IN BOOL bShow) override
 
STDMETHOD() CloseDW (IN DWORD dwReserved) override
 
STDMETHOD() ResizeBorderDW (LPCRECT prcBorder, IUnknown *punkToolbarSite, BOOL fReserved) override
 
STDMETHOD() GetBandInfo (IN DWORD dwBandID, IN DWORD dwViewMode, IN OUT DESKBANDINFO *pdbi) override
 
STDMETHOD() GetClassID (OUT CLSID *pClassID) override
 
STDMETHOD() GetSizeMax (OUT ULARGE_INTEGER *pcbSize) override
 
STDMETHOD() IsDirty () override
 
STDMETHOD() Load (IN IStream *pStm) override
 
STDMETHOD() Save (IN IStream *pStm, IN BOOL fClearDirty) override
 
STDMETHOD() OnWinEvent (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) override
 
STDMETHOD() IsWindowOwner (HWND hWnd) override
 
STDMETHOD() Exec (IN const GUID *pguidCmdGroup, IN DWORD nCmdID, IN DWORD nCmdexecopt, IN VARIANT *pvaIn, IN OUT VARIANT *pvaOut) override
 
STDMETHOD() QueryStatus (IN const GUID *pguidCmdGroup, IN ULONG cCmds, IN OUT OLECMD prgCmds[], IN OUT OLECMDTEXT *pCmdText) override
 
STDMETHOD() GetBandInfoSFB (PBANDINFOSFB pbi) override
 
STDMETHOD() InitializeSFB (IShellFolder *psf, PCIDLIST_ABSOLUTE pidl) override
 
STDMETHOD() SetBandInfoSFB (PBANDINFOSFB pbi) override
 
STDMETHOD() GetCommandString (UINT_PTR idCmd, UINT uFlags, UINT *pwReserved, LPSTR pszName, UINT cchMax) override
 
STDMETHOD() InvokeCommand (LPCMINVOKECOMMANDINFO pici) override
 
STDMETHOD() QueryContextMenu (HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) override
 
LRESULT OnChangeNotify (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnTimer (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
LRESULT OnDestroy (UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
 
- Public Member Functions inherited from ATL::CComObjectRootEx< CComMultiThreadModelNoCS >
 ~CComObjectRootEx ()
 
ULONG InternalAddRef ()
 
ULONG InternalRelease ()
 
void Lock ()
 
void Unlock ()
 
HRESULT _AtlInitialConstruct ()
 
- Public Member Functions inherited from ATL::CComObjectRootBase
 CComObjectRootBase ()
 
 ~CComObjectRootBase ()
 
void SetVoid (void *)
 
HRESULT _AtlFinalConstruct ()
 
HRESULT FinalConstruct ()
 
void InternalFinalConstructAddRef ()
 
void InternalFinalConstructRelease ()
 
void FinalRelease ()
 
- Public Member Functions inherited from IObjectWithSite
HRESULT SetSite ([in] IUnknown *pUnkSite)
 
HRESULT GetSite ([in] REFIID riid, [out, iid_is(riid)] PVOID *ppvSite)
 
- Public Member Functions inherited from IUnknown
HRESULT QueryInterface ([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
 
ULONG AddRef ()
 
ULONG Release ()
 
- Public Member Functions inherited from IDeskBand
HRESULT GetBandInfo ([in] DWORD dwBandID, [in] DWORD dwViewMode, [in, out] DESKBANDINFO *pdbi)
 
- Public Member Functions inherited from IDockingWindow
HRESULT ShowDW ([in] BOOL fShow)
 
HRESULT CloseDW ([in] DWORD dwReserved)
 
HRESULT ResizeBorderDW ([in] LPCRECT prcBorder, [in] IUnknown *punkToolbarSite, [in] BOOL fReserved)
 
- Public Member Functions inherited from IOleWindow
HRESULT GetWindow ([out] HWND *phwnd)
 
HRESULT ContextSensitiveHelp ([in] BOOL fEnterMode)
 
- Public Member Functions inherited from IPersistStream
HRESULT IsDirty ()
 
HRESULT Load ([in, unique] IStream *pStm)
 
HRESULT Save ([in, unique] IStream *pStm, [in] BOOL fClearDirty)
 
HRESULT GetSizeMax ([out] ULARGE_INTEGER *pcbSize)
 
- Public Member Functions inherited from IPersist
HRESULT GetClassID ([out] CLSID *pClassID)
 
- Public Member Functions inherited from IOleCommandTarget
HRESULT QueryStatus ([in, unique] const GUID *pguidCmdGroup, [in] ULONG cCmds, [in, out, size_is(cCmds)] OLECMD prgCmds[], [in, out, unique] OLECMDTEXT *pCmdText)
 
HRESULT Exec ([in, unique] const GUID *pguidCmdGroup, [in] DWORD nCmdID, [in] DWORD nCmdexecopt, [in, unique] VARIANT *pvaIn, [in, out, unique] VARIANT *pvaOut)
 
HRESULT QueryContextMenu ([in] HMENU hmenu, [in] UINT indexMenu, [in] UINT idCmdFirst, [in] UINT idCmdLast, [in] UINT uFlags)
 
HRESULT InvokeCommand ([in] LPCMINVOKECOMMANDINFO lpici)
 
HRESULT GetCommandString ([in] UINT_PTR idCmd, [in] UINT uType, [out] UINT *pwReserved, [out, size_is(cchMax)] LPSTR pszName, [in] UINT cchMax)
 

Private Member Functions

BOOL RegisterChangeNotify (_In_ BOOL bRegister)
 
HRESULT AddToolbarButtons ()
 
void DeleteToolbarButtons ()
 
HRESULT RefreshToolbar ()
 
HRESULT SetImageListIconSize (_In_ BOOL bSmall)
 
HRESULT BandInfoChanged ()
 
HRESULT ShowHideText (_In_ BOOL bShow)
 

Private Attributes

DWORD m_BandID
 
CComPtr< IUnknownm_Site
 
CComPtr< IShellFolderm_pISF
 
CComHeapPtr< ITEMIDLIST_ABSOLUTEm_pidl
 
UINT m_uChangeNotify
 
BOOL m_bShowText
 
BOOL m_bSmallIcon
 
BOOL m_QLaunch
 

Additional Inherited Members

- Public Types inherited from IObjectWithSite
typedef IObjectWithSiteLPOBJECTWITHSITE
 
- Public Types inherited from IUnknown
typedef IUnknownLPUNKNOWN
 
- Public Types inherited from IOleWindow
typedef IOleWindowLPOLEWINDOW
 
- Public Types inherited from IPersistStream
typedef IPersistStreamLPPERSISTSTREAM
 
- Public Types inherited from IPersist
typedef IPersistLPPERSIST
 
- Public Types inherited from IOleCommandTarget
enum  OLECMDF {
  OLECMDF_SUPPORTED = 0x1 , OLECMDF_ENABLED = 0x2 , OLECMDF_LATCHED = 0x4 , OLECMDF_NINCHED = 0x8 ,
  OLECMDF_INVISIBLE = 0x10 , OLECMDF_DEFHIDEONCTXTMENU = 0x20
}
 
enum  OLECMDTEXTF { OLECMDTEXTF_NONE = 0 , OLECMDTEXTF_NAME = 1 , OLECMDTEXTF_STATUS = 2 }
 
enum  OLECMDEXECOPT { OLECMDEXECOPT_DODEFAULT = 0 , OLECMDEXECOPT_PROMPTUSER = 1 , OLECMDEXECOPT_DONTPROMPTUSER = 2 , OLECMDEXECOPT_SHOWHELP = 3 }
 
enum  OLECMDID {
  OLECMDID_OPEN = 1 , OLECMDID_NEW = 2 , OLECMDID_SAVE = 3 , OLECMDID_SAVEAS = 4 ,
  OLECMDID_SAVECOPYAS = 5 , OLECMDID_PRINT = 6 , OLECMDID_PRINTPREVIEW = 7 , OLECMDID_PAGESETUP = 8 ,
  OLECMDID_SPELL = 9 , OLECMDID_PROPERTIES = 10 , OLECMDID_CUT = 11 , OLECMDID_COPY = 12 ,
  OLECMDID_PASTE = 13 , OLECMDID_PASTESPECIAL = 14 , OLECMDID_UNDO = 15 , OLECMDID_REDO = 16 ,
  OLECMDID_SELECTALL = 17 , OLECMDID_CLEARSELECTION = 18 , OLECMDID_ZOOM = 19 , OLECMDID_GETZOOMRANGE = 20 ,
  OLECMDID_UPDATECOMMANDS = 21 , OLECMDID_REFRESH = 22 , OLECMDID_STOP = 23 , OLECMDID_HIDETOOLBARS = 24 ,
  OLECMDID_SETPROGRESSMAX = 25 , OLECMDID_SETPROGRESSPOS = 26 , OLECMDID_SETPROGRESSTEXT = 27 , OLECMDID_SETTITLE = 28 ,
  OLECMDID_SETDOWNLOADSTATE = 29 , OLECMDID_STOPDOWNLOAD = 30 , OLECMDID_ONTOOLBARACTIVATED = 31 , OLECMDID_FIND = 32 ,
  OLECMDID_DELETE = 33 , OLECMDID_HTTPEQUIV = 34 , OLECMDID_HTTPEQUIV_DONE = 35 , OLECMDID_ENABLE_INTERACTION = 36 ,
  OLECMDID_ONUNLOAD = 37 , OLECMDID_PROPERTYBAG2 = 38 , OLECMDID_PREREFRESH = 39 , OLECMDID_SHOWSCRIPTERROR = 40 ,
  OLECMDID_SHOWMESSAGE = 41 , OLECMDID_SHOWFIND = 42 , OLECMDID_SHOWPAGESETUP = 43 , OLECMDID_SHOWPRINT = 44 ,
  OLECMDID_CLOSE = 45 , OLECMDID_ALLOWUILESSSAVEAS = 46 , OLECMDID_DONTDOWNLOADCSS = 47 , OLECMDID_UPDATEPAGESTATUS = 48 ,
  OLECMDID_PRINT2 = 49 , OLECMDID_PRINTPREVIEW2 = 50 , OLECMDID_SETPRINTTEMPLATE = 51 , OLECMDID_GETPRINTTEMPLATE = 52 ,
  OLECMDID_PAGEACTIONBLOCKED = 55 , OLECMDID_PAGEACTIONUIQUERY = 56 , OLECMDID_FOCUSVIEWCONTROLS = 57 , OLECMDID_FOCUSVIEWCONTROLSQUERY = 58 ,
  OLECMDID_SHOWPAGEACTIONMENU = 59 , OLECMDID_ADDTRAVELENTRY = 60 , OLECMDID_UPDATETRAVELENTRY = 61 , OLECMDID_UPDATEBACKFORWARDSTATE = 62 ,
  OLECMDID_OPTICAL_ZOOM = 63 , OLECMDID_OPTICAL_GETZOOMRANGE = 64 , OLECMDID_WINDOWSTATECHANGED = 65 , OLECMDID_ACTIVEXINSTALLSCOPE = 66 ,
  OLECMDID_UPDATETRAVELENTRY_DATARECOVERY = 67 , OLECMDID_SHOWTASKDLG = 68 , OLECMDID_POPSTATEEVENT = 69 , OLECMDID_VIEWPORT_MODE = 70 ,
  OLECMDID_LAYOUT_VIEWPORT_WIDTH = 71 , OLECMDID_VISUAL_VIEWPORT_EXCLUDE_BOTTOM = 72 , OLECMDID_USER_OPTICAL_ZOOM = 73 , OLECMDID_PAGEAVAILABLE = 74 ,
  OLECMDID_GETUSERSCALABLE = 75 , OLECMDID_UPDATE_CARET = 76 , OLECMDID_ENABLE_VISIBILITY = 77 , OLECMDID_MEDIA_PLAYBACK = 78
}
 
typedef IOleCommandTargetLPOLECOMMANDTARGET
 
typedef enum IOleCommandTarget::OLECMDF OLECMDF
 
typedef struct IOleCommandTarget::_tagOLECMD OLECMD
 
typedef struct IOleCommandTarget::_tagOLECMDTEXT OLECMDTEXT
 
typedef enum IOleCommandTarget::OLECMDTEXTF OLECMDTEXTF
 
typedef enum IOleCommandTarget::OLECMDEXECOPT OLECMDEXECOPT
 
typedef enum IOleCommandTarget::OLECMDID OLECMDID
 
- Public Types inherited from IContextMenu
typedef IContextMenuLPCONTEXTMENU
 
typedef struct IContextMenu::tagCMINVOKECOMMANDINFO CMINVOKECOMMANDINFO
 
typedef struct IContextMenu::tagCMINVOKECOMMANDINFOLPCMINVOKECOMMANDINFO
 
typedef struct IContextMenu::tagCMInvokeCommandInfoEx CMINVOKECOMMANDINFOEX
 
typedef struct IContextMenu::tagCMInvokeCommandInfoExLPCMINVOKECOMMANDINFOEX
 
- Static Public Member Functions inherited from ATL::CComObjectRootBase
static void WINAPI ObjectMain (bool)
 
static const struct _ATL_CATMAP_ENTRYGetCategoryMap ()
 
static HRESULT WINAPI InternalQueryInterface (void *pThis, const _ATL_INTMAP_ENTRY *pEntries, REFIID iid, void **ppvObject)
 
- Public Attributes inherited from ATL::CComObjectRootBase
LONG m_dwRef
 
- Static Public Attributes inherited from IContextMenu
static const WCHAR CMDSTR_NEWFOLDERW [] = {'N','e','w','F','o','l','d','e','r',0}
 
static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0}
 
static const WCHAR CMDSTR_VIEWDETAILSW [] = {'V','i','e','w','D','e','t','a','i','l','s',0}
 

Detailed Description

Definition at line 14 of file CISFBand.h.

Constructor & Destructor Documentation

◆ CISFBand()

CISFBand::CISFBand ( )

Definition at line 33 of file CISFBand.cpp.

34 : m_BandID(0)
39{
40}
UINT m_uChangeNotify
Definition: CISFBand.h:33
DWORD m_BandID
Definition: CISFBand.h:27
BOOL m_QLaunch
Definition: CISFBand.h:38
BOOL m_bShowText
Definition: CISFBand.h:36
BOOL m_bSmallIcon
Definition: CISFBand.h:37
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117

◆ ~CISFBand()

CISFBand::~CISFBand ( )
virtual

Definition at line 42 of file CISFBand.cpp.

43{
44}

Member Function Documentation

◆ AddToolbarButtons()

HRESULT CISFBand::AddToolbarButtons ( )
private

Definition at line 70 of file CISFBand.cpp.

71{
72 CComPtr<IEnumIDList> pEnum;
73 HRESULT hr = m_pISF->EnumObjects(0, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS, &pEnum);
75 return hr;
76
77 LPITEMIDLIST pidl;
78 for (INT iItem = 0; pEnum->Next(1, &pidl, NULL) == S_OK; ++iItem)
79 {
80 STRRET strret;
81 hr = m_pISF->GetDisplayNameOf(pidl, SHGDN_NORMAL, &strret);
82
83 WCHAR szText[MAX_PATH];
85 szText[0] = UNICODE_NULL;
86 else
87 StrRetToBufW(&strret, pidl, szText, _countof(szText));
88
90 TBBUTTON tb = { iImage, iItem, TBSTATE_ENABLED, BTNS_AUTOSIZE, { 0 },
91 (DWORD_PTR)pidl, (INT_PTR)szText };
93 }
94
96 return BandInfoChanged();
97}
HRESULT BandInfoChanged()
Definition: CISFBand.cpp:152
CComPtr< IShellFolder > m_pISF
Definition: CISFBand.h:31
#define NULL
Definition: types.h:112
#define MAX_PATH
Definition: compat.h:34
HRESULT WINAPI StrRetToBufW(LPSTRRET src, const ITEMIDLIST *pidl, LPWSTR dest, UINT len)
Definition: string.c:1530
#define FAILED_UNEXPECTEDLY
Definition: utils.cpp:30
int WINAPI SHMapPIDLToSystemImageListIndex(IShellFolder *sh, LPCITEMIDLIST pidl, int *pIndex)
Definition: iconcache.cpp:772
#define S_OK
Definition: intsafe.h:52
static const WCHAR tb[]
Definition: suminfo.c:285
#define UNICODE_NULL
#define TB_AUTOSIZE
Definition: commctrl.h:1137
#define BTNS_AUTOSIZE
Definition: commctrl.h:1004
#define TB_INSERTBUTTONW
Definition: commctrl.h:1265
#define TBSTATE_ENABLED
Definition: commctrl.h:974
HRESULT hr
Definition: shlfolder.c:183
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
#define _countof(array)
Definition: sndvol32.h:70
#define DWORD_PTR
Definition: treelist.c:76
int32_t INT_PTR
Definition: typedefs.h:64
int32_t INT
Definition: typedefs.h:58
LONG_PTR LPARAM
Definition: windef.h:208
#define SendMessage
Definition: winuser.h:5871
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by CreateSimpleToolbar(), and RefreshToolbar().

◆ BandInfoChanged()

HRESULT CISFBand::BandInfoChanged ( )
private

Definition at line 152 of file CISFBand.cpp.

153{
154 if (!m_Site)
155 return S_OK;
158 return hr;
159 return S_OK;
160}
CComPtr< IUnknown > m_Site
Definition: CISFBand.h:28
HRESULT WINAPI IUnknown_Exec(IUnknown *lpUnknown, REFGUID pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
Definition: ordinal.c:1087
@ DBID_BANDINFOCHANGED
Definition: shobjidl.idl:2528

Referenced by AddToolbarButtons(), InvokeCommand(), and SetBandInfoSFB().

◆ CloseDW()

STDMETHODIMP CISFBand::CloseDW ( IN DWORD  dwReserved)
override

Definition at line 276 of file CISFBand.cpp.

277{
278 if (m_hWnd)
279 {
281 return S_OK;
282 }
283
284 return E_FAIL;
285}
#define E_FAIL
Definition: ddrawi.h:102
BOOL WINAPI DestroyWindow(_In_ HWND)

◆ ContainsWindow()

STDMETHODIMP CISFBand::ContainsWindow ( IN HWND  hWnd)

Definition at line 402 of file CISFBand.cpp.

403{
404 if (hWnd == m_hWnd || IsChild(hWnd))
405 {
406 TRACE("CISFBand::ContainsWindow(0x%p) returns S_OK\n", hWnd);
407 return S_OK;
408 }
409
410 return S_FALSE;
411}
HWND hWnd
Definition: settings.c:17
#define TRACE(s)
Definition: solgame.cpp:4
#define S_FALSE
Definition: winerror.h:2357
BOOL WINAPI IsChild(_In_ HWND, _In_ HWND)

◆ ContextSensitiveHelp()

STDMETHODIMP CISFBand::ContextSensitiveHelp ( IN BOOL  fEnterMode)
override

Definition at line 259 of file CISFBand.cpp.

260{
261 /* FIXME: Implement */
262 return E_NOTIMPL;
263}
#define E_NOTIMPL
Definition: ddrawi.h:99

◆ CreateSimpleToolbar()

HRESULT CISFBand::CreateSimpleToolbar ( HWND  hWndParent)

Definition at line 46 of file CISFBand.cpp.

47{
48 // Create the toolbar.
50 HWND hwndToolbar = ::CreateWindowExW(0, TOOLBARCLASSNAMEW, NULL, style, 0, 0, 0, 0,
51 hWndParent, NULL, 0, NULL);
52 if (!hwndToolbar)
53 return E_FAIL;
54
55 SubclassWindow(hwndToolbar);
56 ATLASSERT(m_hWnd);
57
60
61 return AddToolbarButtons();
62}
#define ATLASSERT(x)
Definition: CComVariant.cpp:10
Arabic default style
Definition: afstyles.h:94
HRESULT ShowHideText(_In_ BOOL bShow)
Definition: CISFBand.cpp:162
HRESULT SetImageListIconSize(_In_ BOOL bSmall)
Definition: CISFBand.cpp:139
HRESULT AddToolbarButtons()
Definition: CISFBand.cpp:70
unsigned long DWORD
Definition: ntddk_ex.h:95
#define WS_CHILD
Definition: pedump.c:617
#define TBSTYLE_LIST
Definition: commctrl.h:993
#define CCS_NODIVIDER
Definition: commctrl.h:2253
#define TOOLBARCLASSNAMEW
Definition: commctrl.h:943
#define TBSTYLE_FLAT
Definition: commctrl.h:992
#define CCS_NORESIZE
Definition: commctrl.h:2250
#define SubclassWindow(hwnd, lpfn)
Definition: windowsx.h:542
HWND WINAPI CreateWindowExW(_In_ DWORD dwExStyle, _In_opt_ LPCWSTR lpClassName, _In_opt_ LPCWSTR lpWindowName, _In_ DWORD dwStyle, _In_ int X, _In_ int Y, _In_ int nWidth, _In_ int nHeight, _In_opt_ HWND hWndParent, _In_opt_ HMENU hMenu, _In_opt_ HINSTANCE hInstance, _In_opt_ LPVOID lpParam)

Referenced by SetSite().

◆ DeleteToolbarButtons()

void CISFBand::DeleteToolbarButtons ( )
private

Definition at line 99 of file CISFBand.cpp.

100{
101 // Assumption: Deleting a button causes the remaining buttons to shift,
102 // so the next button always appears at index 0. This ensures the loop
103 // progresses and avoids infinite loops.
104 TBBUTTON tb;
105 while (SendMessage(TB_GETBUTTON, 0, (LPARAM)&tb))
106 {
109 }
110}
VOID WINAPI CoTaskMemFree(LPVOID ptr)
Definition: ifs.c:442
#define TB_DELETEBUTTON
Definition: commctrl.h:1108
#define TB_GETBUTTON
Definition: commctrl.h:1109

Referenced by OnDestroy(), and RefreshToolbar().

◆ Exec()

STDMETHODIMP CISFBand::Exec ( IN const GUID pguidCmdGroup,
IN DWORD  nCmdID,
IN DWORD  nCmdexecopt,
IN VARIANT pvaIn,
IN OUT VARIANT pvaOut 
)
override

Definition at line 509 of file CISFBand.cpp.

510{
511 if (IsEqualIID(*pguidCmdGroup, IID_IBandSite))
512 return S_OK;
513
514 if (IsEqualIID(*pguidCmdGroup, IID_IDeskBand))
515 {
516 if (nCmdID == DBID_SETWINDOWTHEME)
517 {
518 if (pvaIn && V_VT(pvaIn) == VT_BSTR && V_BSTR(pvaIn))
519 {
520 SetWindowTheme(m_hWnd, V_BSTR(pvaIn), NULL);
521 }
522 }
523 return S_OK;
524 }
525
527
528 return E_NOTIMPL;
529}
#define UNIMPLEMENTED
Definition: ntoskrnl.c:15
@ VT_BSTR
Definition: compat.h:2303
#define V_VT(A)
Definition: oleauto.h:211
#define V_BSTR(A)
Definition: oleauto.h:226
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
@ DBID_SETWINDOWTHEME
Definition: shobjidl.idl:2534
HRESULT WINAPI SetWindowTheme(_In_ HWND hwnd, _In_ LPCWSTR pszSubAppName, _In_ LPCWSTR pszSubIdList)
Definition: uxthemesupp.c:69

◆ GetBandInfo()

STDMETHODIMP CISFBand::GetBandInfo ( IN DWORD  dwBandID,
IN DWORD  dwViewMode,
IN OUT DESKBANDINFO pdbi 
)
override

Definition at line 293 of file CISFBand.cpp.

294{
295 TRACE("CTaskBand::GetBandInfo(0x%x,0x%x,0x%p) hWnd=0x%p\n", dwBandID, dwViewMode, pdbi, m_hWnd);
296
297 if (m_hWnd && pdbi)
298 {
299 m_BandID = dwBandID;
300
301 RECT actualRect;
302 POINTL actualSize;
303 POINTL idealSize;
304 POINTL maxSize;
305 POINTL itemSize;
306
307 GetWindowRect(&actualRect);
308 actualSize.x = actualRect.right - actualRect.left;
309 actualSize.y = actualRect.bottom - actualRect.top;
310
311 // Obtain the ideal size, to be used as min and max
312 SendMessageW(m_hWnd, TB_AUTOSIZE, 0, 0);
313 SendMessageW(m_hWnd, TB_GETMAXSIZE, 0, reinterpret_cast<LPARAM>(&maxSize));
314
315 idealSize = maxSize;
316 SendMessageW(m_hWnd, TB_GETIDEALSIZE, FALSE, reinterpret_cast<LPARAM>(&idealSize));
317
318 // Obtain the button size, to be used as the integral size
319 DWORD size = SendMessageW(m_hWnd, TB_GETBUTTONSIZE, 0, 0);
320 itemSize.x = GET_X_LPARAM(size);
321 itemSize.y = GET_Y_LPARAM(size);
322
323 if (pdbi->dwMask & DBIM_MINSIZE)
324 {
325 if (m_QLaunch)
326 pdbi->ptMinSize.x = idealSize.x;
327 else
328 pdbi->ptMinSize.x = -1;
329 pdbi->ptMinSize.y = idealSize.y;
330 }
331 if (pdbi->dwMask & DBIM_MAXSIZE)
332 {
333 pdbi->ptMaxSize = maxSize;
334 }
335 if (pdbi->dwMask & DBIM_INTEGRAL)
336 {
337 pdbi->ptIntegral = itemSize;
338 }
339 if (pdbi->dwMask & DBIM_ACTUAL)
340 {
341 pdbi->ptActual = actualSize;
342 }
343 if (pdbi->dwMask & DBIM_TITLE)
344 {
345 if (m_QLaunch || !ILGetDisplayNameEx(NULL, m_pidl, pdbi->wszTitle, ILGDN_INFOLDER))
346 {
347 pdbi->dwMask &= ~DBIM_TITLE;
348 }
349 }
350 if (pdbi->dwMask & DBIM_MODEFLAGS)
351 {
352 pdbi->dwModeFlags = DBIMF_NORMAL | DBIMF_VARIABLEHEIGHT | DBIMF_USECHEVRON | DBIMF_NOMARGINS | DBIMF_BKCOLOR;
353 if (m_QLaunch)
354 {
355 pdbi->dwModeFlags |= DBIMF_ADDTOFRONT;
356 }
357 }
358 if (pdbi->dwMask & DBIM_BKCOLOR)
359 pdbi->dwMask &= ~DBIM_BKCOLOR;
360
361 return S_OK;
362 }
363
364 return E_FAIL;
365}
CComHeapPtr< ITEMIDLIST_ABSOLUTE > m_pidl
Definition: CISFBand.h:32
GLsizeiptr size
Definition: glext.h:5919
BOOL WINAPI ILGetDisplayNameEx(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPVOID path, DWORD type)
Definition: pidl.c:171
#define TB_GETIDEALSIZE
Definition: commctrl.h:1284
#define TB_GETBUTTONSIZE
Definition: commctrl.h:1160
#define TB_GETMAXSIZE
Definition: commctrl.h:1189
LONG y
Definition: windef.h:330
LONG x
Definition: windef.h:329
LONG right
Definition: windef.h:308
LONG bottom
Definition: windef.h:309
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
#define ILGDN_INFOLDER
Definition: undocshell.h:73
#define GET_Y_LPARAM(lp)
Definition: windowsx.h:300
#define GET_X_LPARAM(lp)
Definition: windowsx.h:299
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

◆ GetBandInfoSFB()

STDMETHODIMP CISFBand::GetBandInfoSFB ( PBANDINFOSFB  pbi)
override

Definition at line 533 of file CISFBand.cpp.

534{
535 if (pbi->dwMask == ISFB_MASK_IDLIST)
536 {
537 pbi->pidl = ILClone(m_pidl);
538 if (!pbi->pidl)
539 return E_OUTOFMEMORY;
540 return S_OK;
541 }
542
543 return E_NOTIMPL;
544}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
Definition: pidl.c:237
#define ISFB_MASK_IDLIST
Definition: shlobj.h:2793
_Inout_ PERBANDINFO * pbi
Definition: winddi.h:3917

◆ GetClassID()

STDMETHODIMP CISFBand::GetClassID ( OUT CLSID pClassID)
override

Definition at line 369 of file CISFBand.cpp.

370{
371 *pClassID = CLSID_ISFBand;
372 return S_OK;
373}

◆ GetCommandString()

STDMETHODIMP CISFBand::GetCommandString ( UINT_PTR  idCmd,
UINT  uFlags,
UINT pwReserved,
LPSTR  pszName,
UINT  cchMax 
)
override

Implements IContextMenu.

Definition at line 615 of file CISFBand.cpp.

616{
617 /*HRESULT hr = E_INVALIDARG;
618
619 if (idCmd == IDM_DISPLAY)
620 {
621 switch (uFlags)
622 {
623 case GCS_HELPTEXTW:
624 // Only useful for pre-Vista versions of Windows that
625 // have a Status bar.
626 hr = StringCchCopyW(reinterpret_cast<PWSTR>(pszName),
627 cchMax,
628 L"Display File Name");
629 break;
630
631 case GCS_VERBW:
632 // GCS_VERBW is an optional feature that enables a caller
633 // to discover the canonical name for the verb that is passed in
634 // through idCommand.
635 hr = StringCchCopyW(reinterpret_cast<PWSTR>(pszName),
636 cchMax,
637 L"DisplayFileName");
638 break;
639 }
640 }
641 return hr; */
642
643 return S_OK;
644}

◆ GetSite()

STDMETHODIMP CISFBand::GetSite ( IN REFIID  riid,
OUT void **  ppvSite 
)
override

Definition at line 231 of file CISFBand.cpp.

232{
233 TRACE("CISFBand::GetSite(0x%p,0x%p)\n", riid, ppvSite);
234
235 HRESULT hr;
236 if (m_Site != NULL)
237 {
238 hr = m_Site->QueryInterface(riid, ppvSite);
239 if (FAILED(hr)) return hr;
240 }
241
242 *ppvSite = NULL;
243 return E_FAIL;
244}
REFIID riid
Definition: atlbase.h:39
#define FAILED(hr)
Definition: intsafe.h:51

◆ GetSizeMax()

STDMETHODIMP CISFBand::GetSizeMax ( OUT ULARGE_INTEGER pcbSize)
override

Definition at line 394 of file CISFBand.cpp.

395{
396 TRACE("CISFBand::GetSizeMax called\n");
397 return S_OK;
398}

◆ GetWindow()

STDMETHODIMP CISFBand::GetWindow ( OUT HWND phwnd)
override

Definition at line 248 of file CISFBand.cpp.

249{
250 if (!m_hWnd)
251 return E_FAIL;
252 if (!phwnd)
253 return E_POINTER;
254 *phwnd = m_hWnd;
255
256 return S_OK;
257}
#define E_POINTER
Definition: winerror.h:2365

◆ InitializeSFB()

STDMETHODIMP CISFBand::InitializeSFB ( IShellFolder psf,
PCIDLIST_ABSOLUTE  pidl 
)
override

Definition at line 546 of file CISFBand.cpp.

547{
548 HRESULT hr;
549
550 if (!psf && !pidl)
551 return E_INVALIDARG;
552
553 if (psf && pidl)
554 return E_INVALIDARG;
555
556 m_pidl.Free();
557
558 if (pidl != NULL)
559 {
560 CComPtr<IShellFolder> psfDesktop;
561 hr = SHGetDesktopFolder(&psfDesktop);
563 return hr;
564
565 if (_ILIsDesktop(pidl))
566 {
567 m_pISF = psfDesktop;
568 }
569 else
570 {
571 hr = psfDesktop->BindToObject(pidl, NULL, IID_PPV_ARG(IShellFolder, &m_pISF));
573 return hr;
574 }
575
576 m_pidl.Attach(ILClone(pidl));
577 if (!m_pidl)
578 ERR("Out of memory\n");
579 }
580
581 if (psf != NULL)
582 {
583 CComPtr<IPersistFolder2> ppf2;
586 return hr;
587
588 hr = ppf2->GetCurFolder(&m_pidl);
590 return hr;
591
593 m_pISF = psf;
594 }
595
596 return S_OK;
597}
BOOL _ILIsDesktop(LPCITEMIDLIST pidl)
Definition: CBandSite.h:24
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
#define ERR(fmt,...)
Definition: precomp.h:57
#define E_INVALIDARG
Definition: ddrawi.h:101
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
#define IID_PPV_ARG(Itype, ppType)

◆ InvokeCommand()

STDMETHODIMP CISFBand::InvokeCommand ( LPCMINVOKECOMMANDINFO  pici)
override

Implements IContextMenu.

Definition at line 646 of file CISFBand.cpp.

647{
648 if (!HIWORD(pici->lpVerb))
649 {
650 switch (LOWORD(pici->lpVerb))
651 {
652 case IDM_LARGE_ICONS:
653 {
655 if (FAILED(hr))
656 return hr;
657 return BandInfoChanged();
658 }
659 case IDM_SMALL_ICONS:
660 {
662 if (FAILED(hr))
663 return hr;
664 return BandInfoChanged();
665 }
666 case IDM_OPEN_FOLDER:
667 {
668 SHELLEXECUTEINFOW shexinfo = { sizeof(shexinfo) };
669 shexinfo.fMask = SEE_MASK_IDLIST;
670 shexinfo.lpVerb = L"open";
671 shexinfo.lpIDList = m_pidl;
672 shexinfo.nShow = SW_SHOW;
673 if (!ShellExecuteExW(&shexinfo))
674 return E_FAIL;
675 break;
676 }
677 case IDM_SHOW_TEXT:
678 {
680 return BandInfoChanged();
681 }
682 default:
683 return E_FAIL;
684 }
685 }
686
687 return S_OK;
688}
#define IDM_SMALL_ICONS
Definition: resource.h:72
#define IDM_OPEN_FOLDER
Definition: resource.h:75
#define IDM_LARGE_ICONS
Definition: resource.h:71
#define IDM_SHOW_TEXT
Definition: resource.h:73
#define L(x)
Definition: ntvdm.h:50
#define LOWORD(l)
Definition: pedump.c:82
#define SEE_MASK_IDLIST
Definition: shellapi.h:27
BOOL WINAPI DECLSPEC_HOTPATCH ShellExecuteExW(LPSHELLEXECUTEINFOW sei)
Definition: shlexec.cpp:2474
#define HIWORD(l)
Definition: typedefs.h:247
#define SW_SHOW
Definition: winuser.h:786

◆ IsDirty()

STDMETHODIMP CISFBand::IsDirty ( void  )
override

Implements IPersistStream.

Definition at line 375 of file CISFBand.cpp.

376{
377 /* The object hasn't changed since the last save! */
378 return S_FALSE;
379}

◆ IsWindowOwner()

STDMETHODIMP CISFBand::IsWindowOwner ( HWND  hWnd)
override

Definition at line 495 of file CISFBand.cpp.

496{
497 return (hWnd == m_hWnd) ? S_OK : S_FALSE;
498}

◆ Load()

STDMETHODIMP CISFBand::Load ( IN IStream pStm)
override

Definition at line 381 of file CISFBand.cpp.

382{
383 TRACE("CISFBand::Load called\n");
384 /* Nothing to do */
385 return S_OK;
386}

◆ OnChangeNotify()

LRESULT CISFBand::OnChangeNotify ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 185 of file CISFBand.cpp.

186{
187 // This code reduces the redrawing cost by coalescing multiple change events
190 return 0;
191}
#define TIMER_REFRESH_DELAY
Definition: CISFBand.cpp:28
#define TIMERID_DELAYED_REFRESH
Definition: CISFBand.cpp:27
UINT_PTR WINAPI SetTimer(_In_opt_ HWND, _In_ UINT_PTR, _In_ UINT, _In_opt_ TIMERPROC)
BOOL WINAPI KillTimer(_In_opt_ HWND, _In_ UINT_PTR)

◆ OnDestroy()

LRESULT CISFBand::OnDestroy ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 194 of file CISFBand.cpp.

195{
200 UnsubclassWindow();
201 bHandled = FALSE;
202 return 0;
203}
BOOL RegisterChangeNotify(_In_ BOOL bRegister)
Definition: CISFBand.cpp:112
void DeleteToolbarButtons()
Definition: CISFBand.cpp:99
#define SW_HIDE
Definition: winuser.h:779
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)

◆ OnTimer()

LRESULT CISFBand::OnTimer ( UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
BOOL bHandled 
)

Definition at line 174 of file CISFBand.cpp.

175{
177 {
180 }
181 return 0;
182}
HRESULT RefreshToolbar()
Definition: CISFBand.cpp:64
WPARAM wParam
Definition: combotst.c:138

◆ OnWinEvent()

STDMETHODIMP CISFBand::OnWinEvent ( HWND  hWnd,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam,
LRESULT theResult 
)
override

Definition at line 413 of file CISFBand.cpp.

414{
415 switch (uMsg)
416 {
417 case WM_COMMAND:
418 {
419 TBBUTTON tb;
421 if (chk)
423
424 if (theResult)
425 *theResult = TRUE;
426 break;
427 }
428 case WM_NOTIFY:
429 {
430 switch (((LPNMHDR)lParam)->code)
431 {
432 case NM_RCLICK:
433 {
434 HRESULT hr;
435 POINT pt = ((LPNMMOUSE)lParam)->pt; // Already in screen coordinates
436 CComPtr<IContextMenu> picm;
437 HMENU fmenu = CreatePopupMenu();
438 TBBUTTON tb;
439
440 bool chk = SendMessage(m_hWnd, TB_GETBUTTON, ((LPNMMOUSE)lParam)->dwItemSpec, (LPARAM)&tb);
441 LPITEMIDLIST pidl = (LPITEMIDLIST)tb.dwData;
442
443 if (chk)
444 {
445 hr = m_pISF->GetUIObjectOf(m_hWnd, 1, &pidl, IID_NULL_PPV_ARG(IContextMenu, &picm));
447 return hr;
448
449 hr = picm->QueryContextMenu(fmenu, 0, 1, 0x7FFF, CMF_DEFAULTONLY);
451 return hr;
452
453 int id = TrackPopupMenuEx(fmenu, TPM_LEFTALIGN | TPM_BOTTOMALIGN | TPM_RETURNCMD, pt.x, pt.y, m_hWnd, 0);
454 if (id > 0)
455 {
457 info.cbSize = sizeof(info);
458 info.fMask = CMIC_MASK_PTINVOKE;
459 if (GetKeyState(VK_CONTROL) < 0)
460 {
461 info.fMask |= CMIC_MASK_CONTROL_DOWN;
462 }
463 if (GetKeyState(VK_SHIFT) < 0)
464 {
465 info.fMask |= CMIC_MASK_SHIFT_DOWN;
466 }
467 info.hwnd = m_hWnd;
468 info.lpVerb = MAKEINTRESOURCEA(id - 1);
469 info.nShow = SW_SHOWNORMAL;
470 info.ptInvoke = pt;
471 picm->InvokeCommand((LPCMINVOKECOMMANDINFO)&info);
472 }
473 }
474 DestroyMenu(fmenu);
475
476 if (theResult)
477 *theResult = TRUE;
478 break;
479 }
480 default:
481 if (theResult)
482 *theResult = FALSE;
483 }
484
485 break;
486 }
487 default:
488 if (theResult)
489 *theResult = FALSE;
490 }
491
492 return S_OK;
493}
LPARAM lParam
Definition: combotst.c:139
HRESULT WINAPI SHInvokeDefaultCommand(HWND hWnd, IShellFolder *lpFolder, LPCITEMIDLIST lpApidl)
Definition: ordinal.c:3060
#define pt(x, y)
Definition: drawing.c:79
unsigned int BOOL
Definition: ntddk_ex.h:94
struct IContextMenu::tagCMINVOKECOMMANDINFO * LPCMINVOKECOMMANDINFO
struct IContextMenu::tagCMInvokeCommandInfoEx CMINVOKECOMMANDINFOEX
if(dx< 0)
Definition: linetemp.h:194
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
#define NM_RCLICK
Definition: commctrl.h:133
struct tagNMMOUSE * LPNMMOUSE
#define WM_NOTIFY
Definition: richedit.h:61
Definition: inflate.c:139
#define SW_SHOWNORMAL
Definition: winuser.h:781
HMENU WINAPI CreatePopupMenu(void)
Definition: menu.c:838
#define WM_COMMAND
Definition: winuser.h:1759
#define TPM_BOTTOMALIGN
Definition: winuser.h:2404
#define VK_CONTROL
Definition: winuser.h:2222
BOOL WINAPI TrackPopupMenuEx(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _In_ HWND, _In_opt_ LPTPMPARAMS)
#define TPM_LEFTALIGN
Definition: winuser.h:2396
#define MAKEINTRESOURCEA(i)
Definition: winuser.h:581
BOOL WINAPI DestroyMenu(_In_ HMENU)
#define VK_SHIFT
Definition: winuser.h:2221
#define TPM_RETURNCMD
Definition: winuser.h:2406
SHORT WINAPI GetKeyState(_In_ int)
#define IID_NULL_PPV_ARG(Itype, ppType)

◆ QueryContextMenu()

STDMETHODIMP CISFBand::QueryContextMenu ( HMENU  hmenu,
UINT  indexMenu,
UINT  idCmdFirst,
UINT  idCmdLast,
UINT  uFlags 
)
override

Implements IContextMenu.

Definition at line 690 of file CISFBand.cpp.

691{
693
695
696 if (m_bSmallIcon)
697 {
700 }
701 else
702 {
705 }
706
707 if (_ILIsDesktop(m_pidl))
709
710 UINT idMax = Shell_MergeMenus(hmenu, GetSubMenu(qMenu, 0), indexMenu, idCmdFirst, idCmdLast, MM_SUBMENUSHAVEIDS);
711 DestroyMenu(qMenu);
712 return MAKE_HRESULT(SEVERITY_SUCCESS, 0, USHORT(idMax - idCmdFirst +1));
713}
#define IDM_POPUPMENU
Definition: resource.h:70
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:838
#define MAKE_HRESULT(sev, fac, code)
Definition: dmerror.h:30
static HMENU hmenu
Definition: win.c:66
unsigned int UINT
Definition: ndis.h:50
#define MAKEINTRESOURCE(i)
Definition: ntverrsrc.c:25
unsigned short USHORT
Definition: pedump.c:61
UINT WINAPI Shell_MergeMenus(HMENU hmDst, HMENU hmSrc, UINT uInsert, UINT uIDAdjust, UINT uIDAdjustMax, ULONG uFlags)
Definition: shlmenu.c:856
#define MM_SUBMENUSHAVEIDS
Definition: shlobj.h:2537
#define SEVERITY_SUCCESS
Definition: winerror.h:64
#define MF_BYCOMMAND
Definition: winuser.h:202
BOOL WINAPI DeleteMenu(_In_ HMENU, _In_ UINT, _In_ UINT)
#define MF_CHECKED
Definition: winuser.h:132
#define MF_UNCHECKED
Definition: winuser.h:204
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
#define LoadMenu
Definition: winuser.h:5845

◆ QueryStatus()

STDMETHODIMP CISFBand::QueryStatus ( IN const GUID pguidCmdGroup,
IN ULONG  cCmds,
IN OUT OLECMD  prgCmds[],
IN OUT OLECMDTEXT pCmdText 
)
override

Definition at line 502 of file CISFBand.cpp.

503{
505
506 return E_NOTIMPL;
507}

◆ RefreshToolbar()

HRESULT CISFBand::RefreshToolbar ( )
private

Definition at line 64 of file CISFBand.cpp.

65{
67 return AddToolbarButtons();
68}

Referenced by OnTimer().

◆ RegisterChangeNotify()

BOOL CISFBand::RegisterChangeNotify ( _In_ BOOL  bRegister)
private

Definition at line 112 of file CISFBand.cpp.

113{
114 if (bRegister)
115 {
116 if (!m_pidl)
117 return FALSE;
118#define SHCNE_WATCH (SHCNE_RENAMEITEM | SHCNE_CREATE | SHCNE_DELETE | SHCNE_MKDIR | \
119 SHCNE_RMDIR | SHCNE_UPDATEDIR | SHCNE_UPDATEITEM | SHCNE_UPDATEIMAGE | \
120 SHCNE_RENAMEFOLDER | SHCNE_ASSOCCHANGED)
124 1, &entry);
125 return m_uChangeNotify != 0;
126 }
127 else // De-register?
128 {
129 if (m_uChangeNotify)
130 {
132 m_uChangeNotify = 0;
133 return TRUE;
134 }
135 return FALSE;
136 }
137}
#define SHCNE_WATCH
#define WM_ISFBAND_CHANGE_NOTIFY
Definition: CISFBand.h:12
EXTERN_C ULONG WINAPI SHChangeNotifyRegister(HWND hwnd, INT fSources, LONG wEventMask, UINT uMsg, INT cItems, SHChangeNotifyEntry *lpItems)
EXTERN_C BOOL WINAPI SHChangeNotifyDeregister(ULONG hNotify)
uint32_t entry
Definition: isohybrid.c:63
#define SHCNRF_NewDelivery
Definition: shlobj.h:1946
#define SHCNRF_ShellLevel
Definition: shlobj.h:1944

Referenced by OnDestroy(), and SetSite().

◆ ResizeBorderDW()

STDMETHODIMP CISFBand::ResizeBorderDW ( LPCRECT  prcBorder,
IUnknown punkToolbarSite,
BOOL  fReserved 
)
override

Implements IDockingWindow.

Definition at line 287 of file CISFBand.cpp.

288{
289 /* No need to implement this method */
290 return E_NOTIMPL;
291}

◆ Save()

STDMETHODIMP CISFBand::Save ( IN IStream pStm,
IN BOOL  fClearDirty 
)
override

Definition at line 388 of file CISFBand.cpp.

389{
390 /* Nothing to do */
391 return S_OK;
392}

◆ SetBandInfoSFB()

STDMETHODIMP CISFBand::SetBandInfoSFB ( PBANDINFOSFB  pbi)
override

Definition at line 599 of file CISFBand.cpp.

600{
601 if ((pbi->dwMask & ISFB_MASK_STATE) &&
602 (pbi->dwState & ISFB_STATE_QLINKSMODE) &&
603 (pbi->dwStateMask & ISFB_STATE_QLINKSMODE))
604 {
605 m_QLaunch = TRUE;
607 return BandInfoChanged();
608 }
609
610 return E_NOTIMPL;
611}
#define ISFB_MASK_STATE
Definition: shlobj.h:2792
#define ISFB_STATE_QLINKSMODE
Definition: shlobj.h:2795

◆ SetImageListIconSize()

HRESULT CISFBand::SetImageListIconSize ( _In_ BOOL  bSmall)
private

Definition at line 139 of file CISFBand.cpp.

140{
141 m_bSmallIcon = bSmall;
142
143 CComPtr<IImageList> piml;
146 return hr;
147
148 SendMessage(TB_SETIMAGELIST, 0, (LPARAM)(HIMAGELIST)piml.Detach());
149 return S_OK;
150}
#define TB_SETIMAGELIST
Definition: commctrl.h:1150
#define SHIL_SMALL
Definition: shellapi.h:186
#define SHIL_LARGE
Definition: shellapi.h:185
HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv)
Definition: shellord.c:2674

Referenced by CreateSimpleToolbar(), and InvokeCommand().

◆ SetSite()

STDMETHODIMP CISFBand::SetSite ( IN IUnknown pUnkSite)
override

Definition at line 208 of file CISFBand.cpp.

209{
210 HRESULT hr;
212
213 TRACE("CISFBand::SetSite(0x%p)\n", pUnkSite);
214
215 hr = IUnknown_GetWindow(pUnkSite, &hwndParent);
216 if (FAILED(hr))
217 {
218 TRACE("Querying site window failed: 0x%x\n", hr);
219 return hr;
220 }
221 m_Site = pUnkSite;
222
225 return hr;
226
228 return S_OK;
229}
HRESULT CreateSimpleToolbar(HWND hWndParent)
Definition: CISFBand.cpp:46
static HWND hwndParent
Definition: cryptui.c:300
HRESULT WINAPI IUnknown_GetWindow(IUnknown *lpUnknown, HWND *lphWnd)
Definition: ordinal.c:1336

◆ ShowDW()

STDMETHODIMP CISFBand::ShowDW ( IN BOOL  bShow)
override

Definition at line 265 of file CISFBand.cpp.

266{
267 if (m_hWnd)
268 {
269 ShowWindow(bShow ? SW_SHOW : SW_HIDE);
270 return S_OK;
271 }
272
273 return E_FAIL;
274}

◆ ShowHideText()

HRESULT CISFBand::ShowHideText ( _In_ BOOL  bShow)
private

Definition at line 162 of file CISFBand.cpp.

163{
164 // NOTE: TBSTYLE_EX_MIXEDBUTTONS hides non-BTNS_SHOWTEXT buttons' text.
165 m_bShowText = bShow;
167 return S_OK;
168}
#define TB_SETEXTENDEDSTYLE
Definition: commctrl.h:1190
#define TBSTYLE_EX_MIXEDBUTTONS
Definition: commctrl.h:1012

Referenced by CreateSimpleToolbar(), InvokeCommand(), and SetBandInfoSFB().

Member Data Documentation

◆ m_BandID

DWORD CISFBand::m_BandID
private

Definition at line 27 of file CISFBand.h.

Referenced by GetBandInfo().

◆ m_bShowText

BOOL CISFBand::m_bShowText
private

Definition at line 36 of file CISFBand.h.

Referenced by CreateSimpleToolbar(), InvokeCommand(), QueryContextMenu(), and ShowHideText().

◆ m_bSmallIcon

BOOL CISFBand::m_bSmallIcon
private

Definition at line 37 of file CISFBand.h.

Referenced by CreateSimpleToolbar(), QueryContextMenu(), and SetImageListIconSize().

◆ m_pidl

CComHeapPtr<ITEMIDLIST_ABSOLUTE> CISFBand::m_pidl
private

◆ m_pISF

CComPtr<IShellFolder> CISFBand::m_pISF
private

Definition at line 31 of file CISFBand.h.

Referenced by AddToolbarButtons(), InitializeSFB(), and OnWinEvent().

◆ m_QLaunch

BOOL CISFBand::m_QLaunch
private

Definition at line 38 of file CISFBand.h.

Referenced by GetBandInfo(), and SetBandInfoSFB().

◆ m_Site

CComPtr<IUnknown> CISFBand::m_Site
private

Definition at line 28 of file CISFBand.h.

Referenced by BandInfoChanged(), GetSite(), and SetSite().

◆ m_uChangeNotify

UINT CISFBand::m_uChangeNotify
private

Definition at line 33 of file CISFBand.h.

Referenced by RegisterChangeNotify().


The documentation for this class was generated from the following files: