Joao,
En principio creo que no se puede porque la función sndPlaySound() de Microsoft solo admite dos tipos de ficheros: el identificador de un sonido del sistema ó el nombre de un fichero. Es decir, no permite que se le proporcione un handle de memoria.
Asi que lo único que se me ocurre es que guardes el fichero en una cadena y luego la grabes a disco y desde ahi puedas reproducir. Y podrias usar una cadena de Harbour y no tener que guardarlo en los recursos:
local cWavFile := Chr( xx ) + Chr( xx ) + Chr( xx ) + ... asi con cada byte del fichero WAV. Podrias facilmente crear un PRG que te genere esta cadena
http://msdn.microsoft.com/en-us/library/aa909803.aspxLong pointer to a null-terminated string that specifies the sound to play. This parameter can be either an entry in the registry or in WIN.INI that identifies a system sound, or it can be the name of a waveform-audio file. (If the function does not find the entry, the parameter is treated as a file name.) If this parameter is NULL, any currently playing sound is stopped.