SystemParametersInfo establece el fondo de pantalla completamente en negro (usando SPI_SETDESKWALLPAPER)

Intento cambiar mi fondo de escritorio. Funciona bien cuando lo uso así:

SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, "C:\\1.jpg", SPIF_SENDCHANGE);

Pero cuando lo uso así, el fondo de escritorio se establece completamente en negro:

std::string s = "C:\\1.jpg";
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, &s, SPIF_SENDCHANGE);

Traté de obtener más información mediante el usoGetLastError(), pero el valor de retorno es solo 0. También intenté usar archivos .png, pero esto no cambia nada.

¿Alguna idea de lo que estoy haciendo mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta