By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,968 Members | 1,871 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,968 IT Pros & Developers. It's quick & easy.

Trying to use Playsound in A97...

P: n/a
MLH
I have a line of code that works when called
from a procedure in Access 2.0 form...

PlaySound("C:\cr\help\Help0018.wav", 0)

I imported what I thought was needed into
A97. However, running it is unsuccessful.
I get an error saying "file mmsystem not found".
I think I've violated some API call protocol.

Here's the PlaySound() function in an A97 standard module:
Function PlaySound(msound, MyParm As Variant)
'================================================= =================
' The following function PlaySound calls the Windows API function
'================================================= =================
On Error GoTo PlaySound_Err
If IsNull(MyParm) Then MyParm = 1
Dim XX%, ErrorMsg As String

' The following COULD be values to 5 of system constants listed below
'0 ' wait until sound is finished playing
'1 ' don't wait for finish
'2 ' play no default sound if sound doesn't exist
'8 ' play sound in an infinite loop (until next apiPlaySound)
'16 ' don't interrupt a playing sound

'
SND_ASYNC These are all API
'XX% = sndPlaySound(msound, 1)' play mmwave sound ' SND_LOOP
system constants
XX% = sndPlaySound(msound, MyParm) ' play mmwave sound '
SND_MEMORY for the second
If XX% = 0 Then GoTo SounDidntPlay '
SND_NODEFAULT parameter to the
'
SND_NOSTOP sndPlaySound func-
PlaySound_Exit: ' SND_SYNC
tion.
Exit Function

'Flags for playing the sound. The following values are defined at
http://www.mentalis.org/apilist/sndPlaySound.shtml
SND_ASYNC: 'The sound is played asynchronously and the function
returns immediately after beginning the sound. To terminate an
asynchronously played sound, call sndPlaySound with lpszSoundName set
to NULL.
SND_LOOP: 'The sound plays repeatedly until sndPlaySound is called
again with the lpszSoundName parameter set to NULL. You must also
specify the SND_ASYNC flag to loop sounds.
SND_MEMORY: 'The parameter specified by lpszSoundName points to an
image of a waveform sound in memory.
SND_NODEFAULT: 'If the sound cannot be found, the function returns
silently without playing the default sound.
SND_NOSTOP: 'If a sound is currently playing, the function immediately
returns FALSE, without playing the requested sound.
SND_SYNC: 'The sound is played synchronously and the function does not
return until the sound ends.

SounDidntPlay:
ErrorMsg = "Sound Didn't Play!" & CRLF
MsgBox ErrorMsg, 48, "Sound Didn't Play - " & MyApp$ & ", rev. " &
MY_VERSION$
GoTo PlaySound_Exit

PlaySound_Err:
Dim r As String, Z As String, Message3 As String
r = "The following unexpected error occurred in Function PlaySound
():"
Z = CRLF & CRLF & Str$(Err) & ": " & Quote & Error$ & Quote
Message3 = r & Z
MsgBox Message3, 48, "Unexpected Error - " & MyApp$ & ", rev. " &
MY_VERSION$
Resume PlaySound_Exit

End Function
And here is my declaration in another global module...
Declare Function sndPlaySound% Lib "mmsystem" (ByVal filename$, ByVal
SND_ASYNC%)

Can anyone help me?
Nov 13 '05 #1
Share this Question
Share on Google+
5 Replies


P: n/a
MLH
I have found the dll file in several places. So, I'm sure I
have it. There must be some other reason for A97 to
report that it cannot be found???

Directory of C:\windows\system

08/18/2001 08:00 AM 68,928 MMSYSTEM.DLL
1 File(s) 68,928 bytes

Directory of C:\windows\system32

08/18/2001 08:00 AM 68,928 mmsystem.dll
1 File(s) 68,928 bytes

Directory of C:\windows\system32\dllcache

08/18/2001 08:00 AM 68,928 mmsystem.dll
1 File(s) 68,928 bytes
Nov 13 '05 #2

P: n/a
MLH <CR**@NorthState.net> wrote in
news:pd********************************@4ax.com:
I have a line of code that works when called
from a procedure in Access 2.0 form...

PlaySound("C:\cr\help\Help0018.wav", 0)


Access 2.0 was 16-bit, so any APIs you use would be 16-bit APIs. You
can't (well, shouldn't) use those in A97, but use the 32-bit API
calls instead. This should give you what you want:

http://www.mvps.org/access/api/api0011.htm

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 13 '05 #3

P: n/a
MLH
I thought the declare statement I am using was a 32-bit API procedure.
But, checking the site you directed me to, the code looks quite a
bit different. Will give it a try. Thanks, David.

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Access 2.0 was 16-bit, so any APIs you use would be 16-bit APIs. You
can't (well, shouldn't) use those in A97, but use the 32-bit API
calls instead. This should give you what you want:

http://www.mvps.org/access/api/api0011.htm


Nov 13 '05 #4

P: n/a
MLH <CR**@NorthState.net> wrote in
news:i3********************************@4ax.com:
Access 2.0 was 16-bit, so any APIs you use would be 16-bit APIs.
You can't (well, shouldn't) use those in A97, but use the 32-bit
API calls instead. This should give you what you want:

http://www.mvps.org/access/api/api0011.htm


I thought the declare statement I am using was a 32-bit API
procedure. But, checking the site you directed me to, the code
looks quite a bit different. Will give it a try. Thanks, David.


If it worked in Access 2, it couldn't possibly be 32-bit.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 13 '05 #5

P: n/a
MLH
Touche. Little more brain-death catching up with me in
where that little piece of info must-a-been stored. Thx.

If it worked in Access 2, it couldn't possibly be 32-bit.


Nov 13 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.