Using SndPlaySound to Play Wave FilesLast reviewed: August 17, 1995Article ID: Q133064 |
The information in this article applies to:
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 reference words: 3.10 3.50 kbinf win16sdk mmio mmioOpen mmioRead
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |