Using LoadResData with Binary DataLast reviewed: May 16, 1996Article ID: Q141505 |
The information in this article applies to:
SUMMARYVisual Basic 4.0 introduces a new function called LoadResData, which can be used to retrieve binary data from a resource (.res) file. The sample in this document demonstrates how to create a resource file and use binary data from it in all versions of Visual Basic 4.0.
MORE INFORMATIONThe following code is a resource script that can be compile by using the 16 and 32-bit versions of Rc.exe.
/////////////////////////////////////////////////////////////////////// ////// // Myres.rc - 16 & 32 bit script. This must be compiled into two .res // files using the 16 & 32 bit versions of RC. /////////////////////////////////////////////////////////////////////// ////// // Wave Resources - You must copy these files from your \Windows // directory to the directory where your .rc script resides. CHIMES WAVE DISCARDABLE "Chimes.wav" DING WAVE DISCARDABLE "Ding.wav" Steps to Create a Resource File
Steps to Run the Sample Application
(lpszSoundName As Any, ByVal uFlags AsLong) As Long #Else Private Declare Function sndPlaySound Lib "MMSYSTEM" ( _ lpszSoundName As Any, ByVal uFlags%) As Integer #End If '********************************************************************* ' Flag values for wFlags parameter. '********************************************************************* Public Const SND_SYNC = &H0 ' Play synchronously (default) 'Public Const SND_ASYNC = &H1 ' Play asynchronously (see ' note below!) Public Const SND_NODEFAULT = &H2 ' Don't use default sound Public Const SND_MEMORY = &H4 ' lpszSoundName points to a ' memory file. Public Const SND_LOOP = &H8 ' Loop the sound until next ' sndPlaySound. Public Const SND_NOSTOP = &H10 ' Don't stop any currently ' playing sound. '********************************************************************* ' Plays a wave file from a resource. '********************************************************************* Public Sub PlayWaveRes(vntResourceID As Variant, Optional vntFlags) '----------------------------------------------------------------- ' WARNING: If you want to play sound files asynchronously in ' Win32, then you MUST change bytSound() from a local ' variable to a module-level or static variable. Doing ' this prevents your array from being destroyed before ' sndPlaySound is complete. If you fail to do this, you ' will pass an invalid memory pointer, which will cause ' a GPF in the Multimedia Control Interface (MCI). '----------------------------------------------------------------- Dim bytSound() As Byte ' Always store binary data in byte arrays! bytSound = LoadResData(vntResourceID, "WAVE") If IsMissing(vntFlags) Then vntFlags = SND_NODEFAULT Or SND_SYNC Or SND_MEMORY End If If (vntFlags And SND_MEMORY) = 0 Then vntFlags = vntFlags Or SND_MEMORY End If sndPlaySound bytSound(0), vntFlags End Sub |
Additional reference words: vb4win vb4all 4.00 WAVE LOADRESDATA RESOURCES
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |