The List View control makes a copy of the string whose address is assigned to the LVGROUP pszHeader member.
You can empirically determine this is the case by using a debugger to change the string value pointed to by pszHeader during execution. If the List View control only stored the pointer value then those subsequent changes would be reflected in the control during execution, but they are not.