A pointer cast on primitive types is never a good idea, it makes the compiler think that the pointed data is of another type than its actual type. There's no conversion at all, so it almost ends up in undefined behaviour.
sfEvent gives you a sfUint32 character, and sfText_setUnicodeString takes a const sfUint32*. Is there a good reason for storing your string as a wchar_t? If so, you'll have to convert using dedicated functions, as wchar_t uses UCS-2 encoding on Windows, and SFML gives you UTF-32 characters.