::CharLowerBuffW(pszSource, nSrcLength);
}
+ static DWORD GetEnvironmentVariable(
+ _In_z_ LPCWSTR pszVar,
+ _Out_writes_opt_(nBufLength) LPWSTR pszBuf,
+ _In_opt_ int nBufLength)
+ {
+ return ::GetEnvironmentVariableW(pszVar, pszBuf, nBufLength);
+ }
+
static void __cdecl MakeUpper(
_Out_writes_(nSrcLength) LPWSTR pszSource,
_In_ int nSrcLength)
::CharLowerBuffA(pszSource, nSrcLength);
}
+ static DWORD GetEnvironmentVariable(
+ _In_z_ LPCSTR pszVar,
+ _Out_writes_opt_(nBufLength) LPSTR pszBuf,
+ _In_opt_ int nBufLength)
+ {
+ return ::GetEnvironmentVariableA(pszVar, pszBuf, nBufLength);
+ }
+
static void __cdecl MakeUpper(
_Out_writes_(nSrcLength) LPSTR pszSource,
_In_ int nSrcLength)
*this = static_cast<const YCHAR*>(strSrc);
}
+protected:
+ /* helper function */
+ template <typename T_CHAR>
+ void LoadFromPtr_(_In_opt_z_ const T_CHAR* pszSrc)
+ {
+ if (pszSrc == NULL)
+ return;
+ if (IS_INTRESOURCE(pszSrc))
+ LoadString(LOWORD(pszSrc));
+ else
+ *this = pszSrc;
+ }
+
+public:
CStringT(_In_opt_z_ const XCHAR* pszSrc) :
- CThisSimpleString( StringTraits::GetDefaultManager() )
+ CThisSimpleString(StringTraits::GetDefaultManager())
{
- // FIXME: Check whether pszSrc is not a resource string ID!
- *this = pszSrc;
+ LoadFromPtr_(pszSrc);
}
- CStringT(
- _In_opt_z_ const XCHAR* pszSrc,
- _In_ IAtlStringMgr* pStringMgr) :
- CThisSimpleString( pStringMgr )
+ CStringT(_In_opt_z_ const XCHAR* pszSrc,
+ _In_ IAtlStringMgr* pStringMgr) : CThisSimpleString(pStringMgr)
{
- // FIXME: Check whether pszSrc is not a resource string ID!
- *this = pszSrc;
+ LoadFromPtr_(pszSrc);
}
CStringT(_In_opt_z_ const YCHAR* pszSrc) :
- CThisSimpleString( StringTraits::GetDefaultManager() )
+ CThisSimpleString(StringTraits::GetDefaultManager())
{
- // FIXME: Check whether pszSrc is not a resource string ID!
- *this = pszSrc;
+ LoadFromPtr_(pszSrc);
}
- CStringT(
- _In_opt_z_ const YCHAR* pszSrc,
- _In_ IAtlStringMgr* pStringMgr) :
- CThisSimpleString( pStringMgr )
+ CStringT(_In_opt_z_ const YCHAR* pszSrc,
+ _In_ IAtlStringMgr* pStringMgr) : CThisSimpleString(pStringMgr)
{
- // FIXME: Check whether pszSrc is not a resource string ID!
- *this = pszSrc;
+ LoadFromPtr_(pszSrc);
}
- CStringT(
- _In_reads_z_(nLength) const XCHAR* pch,
- _In_ int nLength) :
+ CStringT(_In_reads_z_(nLength) const XCHAR* pch,
+ _In_ int nLength) :
CThisSimpleString(pch, nLength, StringTraits::GetDefaultManager())
{
}
- CStringT(
- _In_reads_z_(nLength) const YCHAR* pch,
- _In_ int nLength) :
+ CStringT(_In_reads_z_(nLength) const YCHAR* pch,
+ _In_ int nLength) :
CThisSimpleString(pch, nLength, StringTraits::GetDefaultManager())
{
}
return *this;
}
+ BOOL LoadString(_In_ UINT nID)
+ {
+ return LoadString(_AtlBaseModule.GetResourceInstance(), nID);
+ }
+
_Check_return_ BOOL LoadString(_In_ HINSTANCE hInstance,
_In_ UINT nID)
{
return TRUE;
}
+ BOOL GetEnvironmentVariable(_In_z_ PCXSTR pszVar)
+ {
+ int nLength = StringTraits::GetEnvironmentVariable(pszVar, NULL, 0);
+
+ if (nLength > 0)
+ {
+ PXSTR pszBuffer = CThisSimpleString::GetBuffer(nLength);
+ StringTraits::GetEnvironmentVariable(pszVar, pszBuffer, nLength);
+ CThisSimpleString::ReleaseBuffer();
+ return TRUE;
+ }
+
+ CThisSimpleString::Empty();
+ return FALSE;
+ }
+
CStringT& MakeLower()
{
int nLength = CThisSimpleString::GetLength();
}
- //void __cdecl Format(UINT nFormatID, ...)
- //{
- // va_list args;
- // va_start(args, dwMessageId);
- // CStringT formatString;
- // formatString.LoadString(?????);
- // FormatV(formatString, args);
- // va_end(args);
- //}
+ void __cdecl Format(UINT nFormatID, ...)
+ {
+ va_list args;
+ va_start(args, nFormatID);
+ CStringT formatString;
+ if (formatString.LoadString(nFormatID))
+ FormatV(formatString, args);
+ va_end(args);
+ }
void __cdecl Format(PCXSTR pszFormat, ...)
{