mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 02:25:40 +00:00
[RSHELL]
* CMenuSite: Reworked the code to avoid SHIsSameObject, since newer versions of windows do not implement that function. The code should be equivalent, and does less unnecessary calls to QueryInterface. CORE-7879 svn path=/branches/shell-experiments/; revision=62432
This commit is contained in:
parent
7529c9897c
commit
64c34d24fd
1 changed files with 11 additions and 9 deletions
|
@ -103,7 +103,11 @@ HRESULT STDMETHODCALLTYPE CMenuSite::AddBand(IUnknown * punk)
|
||||||
|
|
||||||
#define TO_HRESULT(x) ((HRESULT)(S_OK+(x)))
|
#define TO_HRESULT(x) ((HRESULT)(S_OK+(x)))
|
||||||
|
|
||||||
if (SHIsSameObject(punk, m_BandObject))
|
CComPtr<IUnknown> pUnknown;
|
||||||
|
|
||||||
|
punk->QueryInterface(IID_PPV_ARG(IUnknown, &pUnknown));
|
||||||
|
|
||||||
|
if (pUnknown == m_BandObject)
|
||||||
return TO_HRESULT(0);
|
return TO_HRESULT(0);
|
||||||
|
|
||||||
if (m_BandObject)
|
if (m_BandObject)
|
||||||
|
@ -118,28 +122,26 @@ HRESULT STDMETHODCALLTYPE CMenuSite::AddBand(IUnknown * punk)
|
||||||
m_WinEventHandler = NULL;
|
m_WinEventHandler = NULL;
|
||||||
m_hWndBand = NULL;
|
m_hWndBand = NULL;
|
||||||
|
|
||||||
if (!punk)
|
if (!pUnknown)
|
||||||
return TO_HRESULT(0);
|
return TO_HRESULT(0);
|
||||||
|
|
||||||
hr = punk->QueryInterface(IID_PPV_ARG(IDeskBand, &m_DeskBand));
|
hr = pUnknown->QueryInterface(IID_PPV_ARG(IDeskBand, &m_DeskBand));
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
hr = punk->QueryInterface(IID_PPV_ARG(IWinEventHandler, &m_WinEventHandler));
|
hr = pUnknown->QueryInterface(IID_PPV_ARG(IWinEventHandler, &m_WinEventHandler));
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
hr = IUnknown_SetSite(punk, this->ToIUnknown());
|
hr = IUnknown_SetSite(pUnknown, this->ToIUnknown());
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
hr = IUnknown_GetWindow(punk, &m_hWndBand);
|
hr = IUnknown_GetWindow(pUnknown, &m_hWndBand);
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
m_BandObject = punk;
|
m_BandObject = pUnknown;
|
||||||
|
|
||||||
punk->AddRef();
|
|
||||||
|
|
||||||
return TO_HRESULT(0);
|
return TO_HRESULT(0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue