Oh wait, it did more than that.  Here is part of my function:
BOOL CIntegrityErrorDlg::OnIntegritycontextmenuFilter(UINT id)
{
//...
	// restore new caret location
	hItem = m_DiagItems.findNode(m_DiagItems.GetRootItem(), CCWMultiColumnTreeCtrl::forwards, 20
		, [&nodeString](CCWMultiColumnTreeCtrl& rTree, HTREEITEM hItem)
	{
		return rTree.GetItemText(hItem) == nodeString;
	});
	m_DiagItems.Select(hItem, TVGN_CARET);
	m_DiagItems.EnsureVisible(hItem);
	m_Reset.ShowWindow(SW_SHOW);
	// unfreeze tree
	m_DiagItems.SetRedraw(TRUE);
	// invalidate tree control.
	m_DiagItems.Invalidate();
	return TRUE; // stop handling this message
}
and this is what I got:
class CIntegrityErrorDlg : public CGRPlusDialog
{
//...
	afx_msg BOOL restoreCaret( HTREEITEM &hItem, CString nodeString );
//...
};
BOOL CIntegrityErrorDlg::OnIntegritycontextmenuFilter(UINT id)
{
//...
	// restore new caret location
	return restoreCaret(hItem, nodeString);
	m_Reset.ShowWindow(SW_SHOW);
	// unfreeze tree
	m_DiagItems.SetRedraw(TRUE);
	// invalidate tree control.
	m_DiagItems.Invalidate();
	return TRUE; // stop handling this message
}
BOOL CIntegrityErrorDlg::restoreCaret( HTREEITEM &hItem, CString nodeString )
{
	hItem = m_DiagItems.findNode(m_DiagItems.GetRootItem(), CCWMultiColumnTreeCtrl::forwards, 20
		, [&nodeString](CCWMultiColumnTreeCtrl& rTree, HTREEITEM hItem)
	{
		return rTree.GetItemText(hItem) == nodeString;
	});
	m_DiagItems.Select(hItem, TVGN_CARET);
	m_DiagItems.EnsureVisible(hItem);
}
So, it wasn't at the end of the function and the code highlighted wasn't being assigned to anything, so why did it return a BOOL?  It should have returned void.
Also it put a return in the middle of the function.  Not sure what that's about.
A