Using SndPlaySound to Play Wave Files
ID: Q133064
|
3.10 | 3.50
WINDOWS | WINDOWS NT
kbmm kbcode
The information in this article applies to:
-
Microsoft Windows Software Development Kit (SDK) 3.1
-
Microsoft Win32 Software Development Kit (SDK), version 3.5
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);
}
Additional query words:
kbinf win16sdk mmio mmioOpen mmioRead
Keywords :
Version : WINDOWS:3.1,3.5
Platform : WINDOWS
Issue type :