public IWinEventHandler,
public IOleCommandTarget
{
- CComPtr<ITrayWindow> Tray;
- CComPtr<IUnknown> punkSite;
+ CComPtr<ITrayWindow> m_Tray;
+ CComPtr<IUnknown> m_Site;
- HWND hWnd;
- DWORD dwBandID;
+ HWND m_hWnd;
+ DWORD m_BandID;
public:
CTaskBand() :
- hWnd(NULL),
- dwBandID(0)
+ m_hWnd(NULL),
+ m_BandID(0)
{
}
virtual HRESULT STDMETHODCALLTYPE GetRebarBandID(
OUT DWORD *pdwBandID)
{
- if (dwBandID != (DWORD) -1)
+ if (m_BandID != (DWORD) -1)
{
if (pdwBandID != NULL)
- *pdwBandID = dwBandID;
+ *pdwBandID = m_BandID;
return S_OK;
}
knows the parent window of the Rebar control it creates when
calling ITaskBarClient::SetDeskBarSite()! However, once we
created a window we return the task switch window! */
- if (hWnd != NULL)
- *phwnd = hWnd;
+ if (m_hWnd != NULL)
+ *phwnd = m_hWnd;
else
- *phwnd = Tray->GetHWND();
+ *phwnd = m_Tray->GetHWND();
TRACE("ITaskBand::GetWindow(0x%p->0x%p)\n", phwnd, *phwnd);
IN DWORD dwViewMode,
IN OUT DESKBANDINFO *pdbi)
{
- TRACE("ITaskBand::GetBandInfo(0x%x,0x%x,0x%p) hWnd=0x%p\n", dwBandID, dwViewMode, pdbi, hWnd);
+ TRACE("ITaskBand::GetBandInfo(0x%x,0x%x,0x%p) hWnd=0x%p\n", dwBandID, dwViewMode, pdbi, m_hWnd);
- if (hWnd != NULL)
+ if (m_hWnd != NULL)
{
/* The task band never has a title */
pdbi->dwMask &= ~DBIM_TITLE;
/* Save the band ID for future use in case we need to check whether a given band
is the task band */
- this->dwBandID = dwBandID;
+ m_BandID = dwBandID;
TRACE("H: %d, Min: %d,%d, Integral.y: %d Actual: %d,%d\n", (dwViewMode & DBIF_VIEWMODE_VERTICAL) == 0,
pdbi->ptMinSize.x, pdbi->ptMinSize.y, pdbi->ptIntegral.y,
virtual HRESULT STDMETHODCALLTYPE SetSite(IUnknown *pUnkSite)
{
- HRESULT hRet = E_FAIL;
+ HRESULT hRet;
+ HWND hwndSite;
TRACE("ITaskBand::SetSite(0x%p)\n", pUnkSite);
- /* Release the current site */
- if (punkSite != NULL)
+ hRet = IUnknown_GetWindow(pUnkSite, &hwndSite);
+ if (FAILED(hRet))
{
- punkSite->Release();
+ TRACE("Querying site window failed: 0x%x\n", hRet);
+ return hRet;
}
- punkSite = NULL;
- hWnd = NULL;
+ TRACE("CreateTaskSwitchWnd(Parent: 0x%p)\n", hwndSite);
- if (pUnkSite != NULL)
+ HWND hwndTaskSwitch = CreateTaskSwitchWnd(hwndSite, m_Tray);
+ if (!hwndTaskSwitch)
{
- IOleWindow *OleWindow;
-
- /* Check if the site supports IOleWindow */
- hRet = pUnkSite->QueryInterface(IID_PPV_ARG(IOleWindow, &OleWindow));
- if (SUCCEEDED(hRet))
- {
- HWND hWndParent = NULL;
-
- hRet = OleWindow->GetWindow(
- &hWndParent);
- if (SUCCEEDED(hRet))
- {
- /* Attempt to create the task switch window */
-
- TRACE("CreateTaskSwitchWnd(Parent: 0x%p)\n", hWndParent);
- hWnd = CreateTaskSwitchWnd(hWndParent, Tray);
- if (hWnd != NULL)
- {
- punkSite = pUnkSite;
- hRet = S_OK;
- }
- else
- {
- TRACE("CreateTaskSwitchWnd() failed!\n");
- OleWindow->Release();
- hRet = E_FAIL;
- }
- }
- else
- OleWindow->Release();
- }
- else
- TRACE("Querying IOleWindow failed: 0x%x\n", hRet);
+ ERR("CreateTaskSwitchWnd failed");
+ return E_FAIL;
}
- return hRet;
+ m_Site = pUnkSite;
+ m_hWnd = hwndTaskSwitch;
+
+ return S_OK;
}
virtual HRESULT STDMETHODCALLTYPE GetSite(
{
TRACE("ITaskBand::GetSite(0x%p,0x%p)\n", riid, ppvSite);
- if (punkSite != NULL)
+ if (m_Site != NULL)
{
- return punkSite->QueryInterface(riid, ppvSite);
+ return m_Site->QueryInterface(riid, ppvSite);
}
*ppvSite = NULL;
virtual HRESULT STDMETHODCALLTYPE ContainsWindow(
IN HWND hWnd)
{
- if (hWnd == hWnd ||
- IsChild(hWnd, hWnd))
+ if (hWnd == m_hWnd ||
+ IsChild(m_hWnd, hWnd))
{
TRACE("ITaskBand::ContainsWindow(0x%p) returns S_OK\n", hWnd);
return S_OK;
virtual HRESULT STDMETHODCALLTYPE IsWindowOwner(HWND hWnd)
{
- return (hWnd == this->hWnd) ? S_OK : S_FALSE;
+ return (hWnd == m_hWnd) ? S_OK : S_FALSE;
}
/*****************************************************************************/
HRESULT STDMETHODCALLTYPE _Init(IN OUT ITrayWindow *tray)
{
- Tray = tray;
- dwBandID = (DWORD) -1;
+ m_Tray = tray;
+ m_BandID = (DWORD) -1;
return S_OK;
}