If you read through old code, you will often find casts
that seem redundant.
SendMessage(hwndListBox, LB_ADDSTRING, 0, (LPARAM)(LPSTR)"string");
Why was "string" cast to LPSTR?
It's already an LPSTR!
These are leftovers from 16-bit Windows.
Recall that in 16-bit Windows, pointers were near by default.
Consequently, "string" was a near ...