11#include <commoncontrols.h>
80 CComPtr<IEnumIDList> pEndl;
83 hr =
m_pISF->EnumObjects(0, SHCONTF_FOLDERS|SHCONTF_NONFOLDERS, &pEndl);
94 hr =
m_pISF->GetDisplayNameOf(pidl, SHGDN_NORMAL, &stret);
120 TRACE(
"CISFBand::SetSite(0x%p)\n", pUnkSite);
125 TRACE(
"Querying site window failed: 0x%x\n",
hr);
139 TRACE(
"CISFBand::GetSite(0x%p,0x%p)\n",
riid, ppvSite);
211 TRACE(
"CTaskBand::GetBandInfo(0x%x,0x%x,0x%p) hWnd=0x%p\n", dwBandID, dwViewMode, pdbi, m_hWnd);
224 actualSize.
x = actualRect.
right - actualRect.
left;
225 actualSize.
y = actualRect.
bottom - actualRect.
top;
239 if (pdbi->dwMask & DBIM_MINSIZE)
242 pdbi->ptMinSize.x = idealSize.
x;
244 pdbi->ptMinSize.x = -1;
245 pdbi->ptMinSize.y = idealSize.
y;
247 if (pdbi->dwMask & DBIM_MAXSIZE)
249 pdbi->ptMaxSize = maxSize;
251 if (pdbi->dwMask & DBIM_INTEGRAL)
253 pdbi->ptIntegral = itemSize;
255 if (pdbi->dwMask & DBIM_ACTUAL)
257 pdbi->ptActual = actualSize;
259 if (pdbi->dwMask & DBIM_TITLE)
263 pdbi->dwMask &= ~DBIM_TITLE;
266 if (pdbi->dwMask & DBIM_MODEFLAGS)
268 pdbi->dwModeFlags = DBIMF_NORMAL | DBIMF_VARIABLEHEIGHT | DBIMF_USECHEVRON | DBIMF_NOMARGINS | DBIMF_BKCOLOR;
271 pdbi->dwModeFlags |= DBIMF_ADDTOFRONT;
274 if (pdbi->dwMask & DBIM_BKCOLOR)
275 pdbi->dwMask &= ~DBIM_BKCOLOR;
287 *pClassID = CLSID_ISFBand;
301 TRACE(
"CISFBand::Load called\n");
316 TRACE(
"CISFBand::GetSizeMax called\n");
327 TRACE(
"CISFBand::ContainsWindow(0x%p) returns S_OK\n",
hWnd);
357 CComPtr<IContextMenu> picm;
370 hr = picm->QueryContextMenu(fmenu, 0, 1, 0x7FFF, CMF_DEFAULTONLY);
379 info.fMask = CMIC_MASK_PTINVOKE;
382 info.fMask |= CMIC_MASK_CONTROL_DOWN;
386 info.fMask |= CMIC_MASK_SHIFT_DOWN;
432 if (
IsEqualIID(*pguidCmdGroup, IID_IBandSite))
437 if (
IsEqualIID(*pguidCmdGroup, IID_IDeskBand))
481 CComPtr<IShellFolder> psfDesktop;
502 CComPtr<IPersistFolder2> ppf2;
599 memset(&shexinfo, 0x0,
sizeof(shexinfo));
601 shexinfo.
cbSize =
sizeof(shexinfo);
671 return ShellObjectCreator<CISFBand>(
riid,
ppv);
BOOL _ILIsDesktop(LPCITEMIDLIST pidl)
HRESULT WINAPI SHGetDesktopFolder(IShellFolder **psf)
HRESULT WINAPI RSHELL_CISFBand_CreateInstance(REFIID riid, void **ppv)
STDMETHOD() ContextSensitiveHelp(IN BOOL fEnterMode) override
HRESULT CreateSimpleToolbar(HWND hWndParent)
CComPtr< IUnknown > m_Site
STDMETHOD() ShowDW(IN BOOL bShow) override
STDMETHOD() Load(IN IStream *pStm) override
STDMETHOD() SetSite(IN IUnknown *pUnkSite) override
STDMETHOD() GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT *pwReserved, LPSTR pszName, UINT cchMax) override
STDMETHOD() InitializeSFB(IShellFolder *psf, PCIDLIST_ABSOLUTE pidl) override
STDMETHOD() CloseDW(IN DWORD dwReserved) override
STDMETHOD() QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) override
STDMETHOD() OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult) override
STDMETHOD() GetBandInfo(IN DWORD dwBandID, IN DWORD dwViewMode, IN OUT DESKBANDINFO *pdbi) override
STDMETHOD() ContainsWindow(IN HWND hWnd)
STDMETHOD() InvokeCommand(LPCMINVOKECOMMANDINFO pici) override
STDMETHOD() ResizeBorderDW(LPCRECT prcBorder, IUnknown *punkToolbarSite, BOOL fReserved) override
STDMETHOD() Exec(IN const GUID *pguidCmdGroup, IN DWORD nCmdID, IN DWORD nCmdexecopt, IN VARIANT *pvaIn, IN OUT VARIANT *pvaOut) override
STDMETHOD() IsDirty() override
STDMETHOD() QueryStatus(IN const GUID *pguidCmdGroup, IN ULONG cCmds, IN OUT OLECMD prgCmds[], IN OUT OLECMDTEXT *pCmdText) override
STDMETHOD() GetWindow(OUT HWND *phwnd) override
STDMETHOD() GetSizeMax(OUT ULARGE_INTEGER *pcbSize) override
STDMETHOD() GetSite(IN REFIID riid, OUT void **ppvSite) override
STDMETHOD() IsWindowOwner(HWND hWnd) override
STDMETHOD() GetClassID(OUT CLSID *pClassID) override
CComPtr< IShellFolder > m_pISF
STDMETHOD() SetBandInfoSFB(PBANDINFOSFB pbi) override
STDMETHOD() GetBandInfoSFB(PBANDINFOSFB pbi) override
STDMETHOD() Save(IN IStream *pStm, IN BOOL fClearDirty) override
#define FAILED_UNEXPECTEDLY(hr)
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
HRESULT WINAPI IUnknown_Exec(IUnknown *lpUnknown, REFGUID pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
HRESULT WINAPI SHInvokeDefaultCommand(HWND hWnd, IShellFolder *lpFolder, LPCITEMIDLIST lpApidl)
HRESULT WINAPI IUnknown_GetWindow(IUnknown *lpUnknown, HWND *lphWnd)
#define MAKE_HRESULT(sev, fac, code)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
int WINAPI SHMapPIDLToSystemImageListIndex(IShellFolder *sh, LPCITEMIDLIST pidl, int *pIndex)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
unsigned __int3264 UINT_PTR
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
#define MAKEINTRESOURCE(i)
LPITEMIDLIST WINAPI ILClone(LPCITEMIDLIST pidl)
BOOL WINAPI ILGetDisplayNameEx(LPSHELLFOLDER psf, LPCITEMIDLIST pidl, LPVOID path, DWORD type)
#define TB_SETEXTENDEDSTYLE
#define TBSTYLE_EX_MIXEDBUTTONS
struct tagNMMOUSE * LPNMMOUSE
#define IsEqualIID(riid1, riid2)
HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv)
#define ISFB_STATE_QLINKSMODE
#define MM_SUBMENUSHAVEIDS
ITEMIDLIST UNALIGNED * LPITEMIDLIST
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
HRESULT WINAPI SetWindowTheme(_In_ HWND hwnd, _In_ LPCWSTR pszSubAppName, _In_ LPCWSTR pszSubIdList)
_Inout_ PERBANDINFO * pbi
HMENU WINAPI CreatePopupMenu(void)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI DeleteMenu(_In_ HMENU, _In_ UINT, _In_ UINT)
BOOL WINAPI TrackPopupMenuEx(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _In_ HWND, _In_opt_ LPTPMPARAMS)
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
BOOL WINAPI IsChild(_In_ HWND, _In_ HWND)
#define MAKEINTRESOURCEA(i)
BOOL WINAPI DestroyMenu(_In_ HMENU)
BOOL WINAPI DestroyWindow(_In_ HWND)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
SHORT WINAPI GetKeyState(_In_ int)
#define IID_PPV_ARG(Itype, ppType)
#define IID_NULL_PPV_ARG(Itype, ppType)