[ATL] Add CString.AllocSysString

This commit is contained in:
Mark Jansen 2017-12-24 01:28:16 +01:00
parent 6c92d5c14a
commit fa3e173515

View file

@ -143,6 +143,12 @@ public:
return ::vswprintf(pszDest, pszFormat, args);
}
static BSTR __cdecl AllocSysString(
_In_z_ LPCWSTR pszSource,
_In_ int nLength)
{
return ::SysAllocStringLen(pszSource, nLength);
}
};
@ -269,6 +275,19 @@ public:
return ::vsprintf(pszDest, pszFormat, args);
}
static BSTR __cdecl AllocSysString(
_In_z_ LPCSTR pszSource,
_In_ int nLength)
{
int nLen = ChTraitsCRT<wchar_t>::GetBaseTypeLength(pszSource, nLength);
BSTR bstr = ::SysAllocStringLen(NULL, nLen);
if (bstr)
{
ChTraitsCRT<wchar_t>::ConvertToBaseType(bstr, nLen, pszSource, nLength);
}
return bstr;
}
};
@ -797,8 +816,14 @@ public:
}
BSTR AllocSysString() const
{
return StringTraits::AllocSysString(CThisSimpleString::GetString(), CThisSimpleString::GetLength());
}
};
} //namespace ATL
#endif
#endif