Using SndPlaySound to Play Wave Files (133064)
The information in this article applies to:
- Microsoft Windows Software Development Kit (SDK) 3.1
- Microsoft Platform Software Development Kit (SDK) 1.0, when used with:
- the operating system: Microsoft Windows 2000
This article was previously published under Q133064
3.10 | 3.50
WINDOWS | WINDOWS NT
kbmm kbcode
The sndPlaySound() multimedia API function is capable of playing memory
images using the SND_MEMORY flag if the waveform audio exists as a .WAV
file, a wave resource, or is dynamically constructed by the application.
When using the SND_MEMORY flag, the data must be allocated from global
memory using the GPTR and GMEM_SHARED flags and possess both the
RIFF and PCM information.
The following code demonstrates how to use the SND_MEMORY flag.
{ // Sample code to demonstrate SND_MEMORY flag and memory files.
// Sound resource bound within executable.
if (hWaveRes = FindResource(ghInst,"TADA","WAVE"))
{ // Resource intact; load into GLOBAL MEMORY/GMEM_SHARED memory
if (hGlobMem = LoadResource(ghInst,hWaveRes))
{ // Load resource into global memory and play.
// Play sound resource via sndPlaySound() using
// SND_MEMORY flag.
// Application waits until sndPlaySound completes
// given SND_SYNC.
// SND_MEMORY (first parameter is ptr to memory image
// vs. filename).
sndPlaySound((LPSTR)LockResource(hGlobMem),
SND_SYNC | SND_MEMORY);
FreeResource(hGlobMem); // Required in 16-bit
// applications.
} // Load resource into global memory and play.
else MessageBox(NULL,"No resource!","Multimedia Sampler!",
MB_ICONHAND);
GlobalFree(hGlobMem);
} // Resource found.
else MessageBox(NULL,"Lost resource!","Multimedia Sampler!",
MB_ICONHAND);
}
Modification Type: | Minor | Last Reviewed: | 7/11/2005 |
---|
Keywords: | kbinfo KB133064 |
---|
|