25 #define ASSERT(cond) \ 27 ERR ("ASSERTION %s AT %s:%d FAILED!\n", #cond, __FILE__, __LINE__) 73 memset(Band, 0,
sizeof(*Band));
85 return DBIF_VIEWMODE_VERTICAL;
87 return DBIF_VIEWMODE_NORMAL;
93 prbi->
cbSize =
sizeof(*prbi);
98 if (Band->
dbi.dwMask & DBIM_MINSIZE)
105 if (Band->
dbi.dwMask & DBIM_MAXSIZE)
111 if ((Band->
dbi.dwMask & (DBIM_INTEGRAL | DBIM_MODEFLAGS)) == (DBIM_INTEGRAL | DBIM_MODEFLAGS) &&
112 (Band->
dbi.dwModeFlags & DBIMF_VARIABLEHEIGHT))
118 if (Band->
dbi.dwMask & DBIM_ACTUAL)
122 prbi->
cx = Band->
dbi.ptActual.x;
126 if (Band->
dbi.dwMask & DBIM_TITLE)
133 if (Band->
dbi.dwMask & DBIM_MODEFLAGS)
137 if (Band->
dbi.dwModeFlags & DBIMF_FIXED)
139 if (Band->
dbi.dwModeFlags & DBIMF_FIXEDBMP)
141 if (Band->
dbi.dwModeFlags & DBIMF_VARIABLEHEIGHT)
143 if (Band->
dbi.dwModeFlags & DBIMF_DEBOSSED)
145 if (Band->
dbi.dwModeFlags & DBIMF_USECHEVRON)
147 if (Band->
dbi.dwModeFlags & DBIMF_BREAK)
149 if (Band->
dbi.dwModeFlags & DBIMF_TOPALIGN)
151 if ((Band->
dbi.dwModeFlags & DBIMF_NOGRIPPER) || (
m_dwStyle & BSIS_NOGRIPPER))
153 if ((Band->
dbi.dwModeFlags & DBIMF_ALWAYSGRIPPER) || (
m_dwStyle & BSIS_ALWAYSGRIPPER))
163 if ((Band->
dbi.dwMask & (DBIM_BKCOLOR | DBIM_MODEFLAGS)) == (DBIM_BKCOLOR | DBIM_MODEFLAGS) &&
164 (Band->
dbi.dwModeFlags & DBIMF_BKCOLOR))
180 Band->
dbi.dwMask = DBIM_MINSIZE | DBIM_MAXSIZE | DBIM_INTEGRAL |
181 DBIM_ACTUAL | DBIM_TITLE | DBIM_MODEFLAGS | DBIM_BKCOLOR;
197 if (uBand != (
UINT)-1)
201 WARN(
"Failed to update the rebar band!\n");
205 WARN(
"Failed to map rebar band id to index!\n");
243 CComPtr<IBandSite> pbs;
255 return ((dwState & BSSF_UNDELETEABLE) != 0) ?
S_FALSE :
S_OK;
289 CComPtr<IContextMenu> pcm;
293 hr = pcm->QueryContextMenu(hMenu, 0, 0,
UINT_MAX, CMF_NORMAL);
316 if (
hr ==
S_FALSE || (Band->
dbi.dwModeFlags & DBIMF_UNDELETEABLE) != 0)
319 if ((Band->
dbi.dwMask & DBIM_TITLE) == 0)
329 if (uCommand < idBandLast)
332 hr = pcm->InvokeCommand(&cmi);
370 hRet =
m_bands[
i].OleWindow->GetWindow(&hWndBand);
382 TRACE(
"destroying %p\n",
this);
406 CComPtr<IDeskBand> DeskBand;
407 CComPtr<IObjectWithSite> ObjWithSite;
408 CComPtr<IOleWindow> OleWindow;
409 CComPtr<IWinEventHandler> WndEvtHandler;
414 TRACE(
"(%p, %p)\n",
this, punk);
453 if (NewAllocated > 0xFFFF)
454 NewAllocated = 0xFFFF;
500 NewBand->
DeskBand = DeskBand.Detach();
505 hRet = ObjWithSite->SetSite(static_cast<IOleWindow *>(
this));
511 if (NewBand->
dbi.dwMask & DBIM_MODEFLAGS)
513 if (NewBand->
dbi.dwModeFlags & DBIMF_ADDTOFRONT)
536 WARN(
"IBandSite::AddBand(): Call to IDeskBand::SetSite() failed: %x\n", hRet);
541 if (uBand != (
UINT)-1)
545 ERR(
"Failed to delete band!\n");
549 ERR(
"Failed to map band id to index!\n");
563 TRACE(
"(%p, %u, %p)\n",
this, uBand, pdwBandID);
565 if (uBand == 0xffffffff)
593 TRACE(
"(%p, %u, %p, %p, %p, %d)\n",
this, dwBandID, ppstb, pdwState, pszName,
cchName);
605 if (pdwState !=
NULL)
607 FIXME(
"IBandSite::QueryBand() requests band state!\n");
613 FIXME(
"IBandSite::QueryBand() requests band name!\n");
623 TRACE(
"(%p, %u, %x, %x)\n",
this, dwBandID, dwMask, dwState);
638 TRACE(
"(%p, %u)\n",
this, dwBandID);
648 if (uBand != (
UINT)-1)
652 ERR(
"Could not delete band!\n");
656 ERR(
"Could not map band id to index!\n");
683 if ((pbsinfo->
dwMask & BSIM_STATE))
685 if ((pbsinfo->
dwMask & BSIM_STYLE))
697 if ((pbsinfo->
dwMask & BSIM_STATE))
699 if ((pbsinfo->
dwMask & BSIM_STYLE))
709 TRACE(
"(%p, %p, %u, %p, %p, %p)\n",
this,
hWnd, uMsg,
wParam,
lParam, plrResult);
779 TRACE(
"(%p, %p)\n",
this, phWnd);
790 FIXME(
"(%p, %d)\n",
this, fEnterMode);
822 _AtlBaseModule.GetModuleInstance(),
827 WARN(
"IDeskbarClient::SetDeskBarSite() failed to create ReBar control!\n");
839 TRACE(
"(%p, %x)\n",
this, dwMode);
845 if (dwMode & DBIF_VIEWMODE_VERTICAL)
848 if (dwMode & ~DBIF_VIEWMODE_VERTICAL)
849 FIXME(
"IDeskBarClient::SetModeDBC() unhandled modes: %x\n", dwStyle & ~DBIF_VIEWMODE_VERTICAL);
851 if (dwStyle != dwPrevStyle)
861 TRACE(
"(%p, %x)\n",
this, dwState);
873 FIXME(
"(%p, %x, %p)\n",
this, unknown1, unknown2);
880 FIXME(
"(%p, %p, %u, %p, %p)\n",
this, pguidCmdGroup, cCmds, prgCmds, pCmdText);
889 TRACE(
"(%p, %p, %u, %u, %p, %p)\n",
this, pguidCmdGroup, nCmdID, nCmdExecOpt, pvaIn, pvaOut);
894 if (
IsEqualIID(*pguidCmdGroup, IID_IDeskBand))
914 FIXME(
"IOleCommandTarget::Exec(): Unsupported command ID %d\n", nCmdID);
922 WARN(
"IOleCommandTarget::Exec(): Unsupported command group GUID\n");
1011 return CBandSite::_CreatorClass::CreateInstance(pUnkOuter,
riid,
ppv);
virtual HRESULT STDMETHODCALLTYPE GetBandSiteInfo(BANDSITEINFO *pbsinfo)
virtual HRESULT STDMETHODCALLTYPE QueryService(REFGUID guidService, REFIID riid, void **ppvObject)
virtual HRESULT STDMETHODCALLTYPE DragLeave()
VOID WINAPI CoTaskMemFree(LPVOID ptr)
virtual HRESULT STDMETHODCALLTYPE GetSizeMax(ULARGE_INTEGER *pcbSize)
virtual HRESULT STDMETHODCALLTYPE QueryBand(DWORD dwBandID, IDeskBand **ppstb, DWORD *pdwState, LPWSTR pszName, int cchName)
HRESULT _IsBandDeletable(DWORD dwBandID)
struct BandObject * m_bands
BOOL WINAPI TrackPopupMenuEx(_In_ HMENU, _In_ UINT, _In_ int, _In_ int, _In_ HWND, _In_opt_ LPTPMPARAMS)
VOID _BuildBandInfo(struct BandObject *Band, REBARBANDINFOW *prbi)
GLint GLint GLint GLint GLint x
#define MAKEINTRESOURCEA(i)
struct BandObject * _GetBandFromHwnd(HWND hwnd)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define IID_PPV_ARG(Itype, ppType)
BOOL WINAPI DestroyWindow(_In_ HWND)
virtual HRESULT STDMETHODCALLTYPE GetWindow(HWND *lphwnd)
virtual HRESULT STDMETHODCALLTYPE HasFocusIO()
HRESULT WINAPI RSHELL_CBandSite_CreateInstance(LPUNKNOWN pUnkOuter, REFIID riid, void **ppv)
virtual HRESULT STDMETHODCALLTYPE DragOver(DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
_In_ PSID _Out_writes_to_opt_ cchName LPSTR _Inout_ LPDWORD cchName
virtual HRESULT STDMETHODCALLTYPE Save(IStream *pStm, BOOL fClearDirty)
void _FreeBand(struct BandObject *Band)
virtual HRESULT STDMETHODCALLTYPE AddBand(IUnknown *punk)
static const struct bandInfoStruct bandInfo[9]
virtual HRESULT STDMETHODCALLTYPE SetDeskBarSite(IUnknown *punkSite)
virtual HRESULT STDMETHODCALLTYPE RemoveBand(DWORD dwBandID)
virtual HRESULT STDMETHODCALLTYPE DragEnter(IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
#define CCS_NOPARENTALIGN
HRESULT _OnContextMenu(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *plrResult)
#define RBBS_VARIABLEHEIGHT
virtual HRESULT STDMETHODCALLTYPE UIActivateDBC(DWORD dwState)
virtual HRESULT STDMETHODCALLTYPE EnumBands(UINT uBand, DWORD *pdwBandID)
BOOL WINAPI DeleteMenu(_In_ HMENU, _In_ UINT, _In_ UINT)
virtual HRESULT STDMETHODCALLTYPE Load(IStream *pStm)
virtual HRESULT STDMETHODCALLTYPE GetBandObject(DWORD dwBandID, REFIID riid, void **ppv)
#define FAILED_UNEXPECTEDLY(hr)
#define STDMETHODCALLTYPE
virtual HRESULT STDMETHODCALLTYPE QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText)
DWORD WINAPI CheckMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
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)
#define memcpy(s1, s2, n)
virtual HRESULT STDMETHODCALLTYPE OnFocusChangeIS(struct IUnknown *paramC, int param10)
REFIID LPVOID * ppvObject
virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorIO(LPMSG lpMsg)
virtual HRESULT STDMETHODCALLTYPE LoadFromStreamBS(IStream *, const GUID &, void **)
BOOL WINAPI DestroyMenu(_In_ HMENU)
HRESULT GetWindow([out] HWND *phwnd)
virtual HRESULT STDMETHODCALLTYPE GetClassID(CLSID *pClassID)
UINT _GetBandID(struct BandObject *Band)
virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(BOOL fEnterMode)
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
HRESULT _UpdateAllBands()
virtual HRESULT STDMETHODCALLTYPE Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut)
virtual HRESULT STDMETHODCALLTYPE IsDirty()
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
CComPtr< IOleWindow > m_site
GLint GLint GLint GLint GLint GLint y
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
virtual HRESULT STDMETHODCALLTYPE GetSize(DWORD dwWhich, LPRECT prc)
#define RBBS_GRIPPERALWAYS
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
HMENU WINAPI CreatePopupMenu(void)
HRESULT GetBandInfo([in] DWORD dwBandID, [in] DWORD dwViewMode, [in, out] DESKBANDINFO *pdbi)
#define MM_SUBMENUSHAVEIDS
HMENU WINAPI LoadMenuW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
struct BandObject * _GetBandByID(DWORD dwBandID)
HRESULT _UpdateBand(struct BandObject *Band)
IWinEventHandler * WndEvtHandler
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
virtual HRESULT STDMETHODCALLTYPE IsWindowOwner(HWND hWnd)
#define MAKEINTRESOURCEW(i)
BOOL WINAPI ScreenToClient(_In_ HWND, _Inout_ LPPOINT)
nsresult QueryInterface(nsIIDRef riid, void **result)
virtual HRESULT STDMETHODCALLTYPE SetBandState(DWORD dwBandID, DWORD dwMask, DWORD dwState)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
virtual HRESULT STDMETHODCALLTYPE SetModeDBC(DWORD dwMode)
static void *static void *static LPDIRECTPLAY IUnknown * pUnk
virtual HRESULT STDMETHODCALLTYPE SaveToStreamBS(IUnknown *, IStream *)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
virtual HRESULT STDMETHODCALLTYPE Drop(IDataObject *pDataObj, DWORD grfKeyState, POINTL pt, DWORD *pdwEffect)
#define IsEqualIID(riid1, riid2)
virtual HRESULT STDMETHODCALLTYPE SetBandSiteInfo(const BANDSITEINFO *pbsinfo)
virtual HRESULT STDMETHODCALLTYPE OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult)
#define MM_DONTREMOVESEPS
virtual HRESULT STDMETHODCALLTYPE UIActivateIO(BOOL fActivate, LPMSG lpMsg)