CRegKey::QueryStringValue

Seriously, who decided that MFC’s CRegKey::QueryStringValue should return a LONG instead of a CString?  It’s an MFC class.  MFC has a string class.  The purpose of this function is to query a string.  Why do I have to pass in a buffer and a buffer size?  Why can’t it just return me a string?

I miss working with the .NET Framework.