+ check StringCchLenA() vs. strnlen_s()

This commit is contained in:
Rainer Kottenhoff 2019-09-26 17:35:12 +02:00
parent 4b58cd6623
commit cc3fe6454f

View File

@ -371,11 +371,18 @@ WCHAR* StrNextTokW(WCHAR* strg, const WCHAR* tokens);
bool StrDelChrA(LPSTR pszSource, LPCSTR pCharsToRemove);
//==== StrSafe lstrlen() =======================================================
inline size_t StringCchLenA(LPCSTR s, size_t n) {
size_t len = (n ? n : STRSAFE_MAX_CCH); return (size_t)(!s ? 0 : (SUCCEEDED(StringCchLengthA(s, len, &len)) ? len : n));
//inline size_t StringCchLenA(LPCSTR s, size_t n) {
// n = (n ? n : STRSAFE_MAX_CCH); size_t len; return (size_t)(!s ? 0 : (SUCCEEDED(StringCchLengthA(s, n, &len)) ? len : n));
//}
//inline size_t StringCchLenW(LPCWSTR s, size_t n) {
// n = (n ? n : STRSAFE_MAX_CCH); size_t len; return (size_t)(!s ? 0 : (SUCCEEDED(StringCchLengthW(s, n, &len)) ? len : n));
//}
inline size_t StringCchLenA(LPCSTR s, size_t n) {
n = (n ? n : STRSAFE_MAX_CCH); return strnlen_s(s, n);
}
inline size_t StringCchLenW(LPCWSTR s, size_t n) {
size_t len = (n ? n : STRSAFE_MAX_CCH); return (size_t)(!s ? 0 : (SUCCEEDED(StringCchLengthW(s, len, &len)) ? len : n));
inline size_t StringCchLenW(LPCWSTR s, size_t n) {
n = (n ? n : STRSAFE_MAX_CCH); return wcsnlen_s(s, n);
}
#if defined(UNICODE) || defined(_UNICODE)