41 lines
682 B
C++
41 lines
682 B
C++
#pragma once
|
|
|
|
#include <functional>
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
// String Ignore Case Less Structure
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
|
struct StringIgnoreCaseLess :
|
|
public std::binary_function<_bstr_t, _bstr_t, bool>
|
|
{
|
|
bool operator()(const _bstr_t& x, const _bstr_t& y) const
|
|
{
|
|
bool bLess;
|
|
|
|
LPCTSTR pszThis = x;
|
|
LPCTSTR pszThat = y;
|
|
|
|
if (pszThis == pszThat)
|
|
{
|
|
bLess = false;
|
|
}
|
|
else if (pszThis == NULL)
|
|
{
|
|
bLess = true;
|
|
}
|
|
else if (pszThat == NULL)
|
|
{
|
|
bLess = false;
|
|
}
|
|
else
|
|
{
|
|
bLess = _tcsicmp(pszThis, pszThat) < 0;
|
|
}
|
|
|
|
return bLess;
|
|
}
|
|
};
|