I'm a little confused now with the hungarian notation prefixes in WinAPI for CHAR strings and WCHAR strings. When we use a CHAR string usually such a prefix is used:
CHAR szString[] = "Hello";
We have a zero-terminated string szString so everything's fine. But when we use a WCHAR string usually such a prefix is used:
WCHAR pwszString[] = L"Hello";
It stands for pointer to zero-terminated wide string... but our type doesn't look like this. Pointer to zero-terminated wide string is WCHAR** or PWSTR*. Am I wrong? Why it's sz for CHAR strings and pwsz but not wsz for WCHAR strings?
p
(applied to an array, but implying that it's a pointer) is to mislead and confuse future maintainers. The code was hard to write, so why should it be any easier to read? – Casia