HRESULT STDMETHODCALLTYPE CExplorerBand::OnWinEvent(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult)
{
BOOL bHandled;
+ LRESULT result;
+
if (uMsg == WM_NOTIFY)
{
NMHDR *pNotifyHeader = (NMHDR*)lParam;
switch (pNotifyHeader->code)
{
case TVN_ITEMEXPANDING:
- *theResult = OnTreeItemExpanding((LPNMTREEVIEW)lParam);
+ result = OnTreeItemExpanding((LPNMTREEVIEW)lParam);
+ if (theResult)
+ *theResult = result;
break;
case TVN_SELCHANGED:
OnSelectionChanged((LPNMTREEVIEW)lParam);
break;
case NM_RCLICK:
OnContextMenu(WM_CONTEXTMENU, (WPARAM)m_hWnd, GetMessagePos(), bHandled);
- *theResult = 1;
+ if (theResult)
+ *theResult = 1;
break;
case TVN_BEGINDRAG:
case TVN_BEGINRDRAG:
LPCITEMIDLIST pChild;
HRESULT hr;
- *theResult = 1;
+ if (theResult)
+ *theResult = 1;
NodeInfo *info = GetNodeInfo(dispInfo->item.hItem);
if (!info)
return E_FAIL;
return E_FAIL;
hr = pParent->GetAttributesOf(1, &pChild, &dwAttr);
- if (SUCCEEDED(hr) && (dwAttr & SFGAO_CANRENAME))
+ if (SUCCEEDED(hr) && (dwAttr & SFGAO_CANRENAME) && theResult)
*theResult = 0;
return S_OK;
}
NodeInfo *info = GetNodeInfo(dispInfo->item.hItem);
HRESULT hr;
- *theResult = 0;
+ if (theResult)
+ *theResult = 0;
if (dispInfo->item.pszText)
{
LPITEMIDLIST pidlNew;
LPCITEMIDLIST pidlChild;
hr = SHBindToParent(info->absolutePidl, IID_PPV_ARG(IShellFolder, &pParent), &pidlChild);
- if (!SUCCEEDED(hr) || !pParent.p)
- return E_FAIL;
+ if (!SUCCEEDED(hr) || !pParent.p)
+ return E_FAIL;
hr = pParent->SetNameOf(0, pidlChild, dispInfo->item.pszText, SHGDN_INFOLDER, &pidlNew);
if(SUCCEEDED(hr) && pidlNew)
// Navigate to our new location
UpdateBrowser(pidlNewAbs);
+ ILFree(pidlParent);
ILFree(pidlNewAbs);
ILFree(pidlNew);
- *theResult = 1;
+ if (theResult)
+ *theResult = 1;
}
return S_OK;
}