How to use "notify" callback with winmm.dll

J

Jpeg Jones

I have an Excel user form with a button that plays a wav file using
mciSendString. I am trying to make use of the notify parameter so I can take
some action when the file is done playing, but I can't get it to work. Here
is my relevant code:

Call mciSendString("play WavFile notify", 0, 0, AddressOf mciSendStringProc)

This is supposed to send the notify message to a procedure called
mciSendStringProc (located in a module). Here is the code for that:

Public Function mciSendStringProc(ByVal hWnd As Long, ByVal uMsg As Long,
ByVal wParam As Long, ByVal lParam As Long) As Long

MsgBox uMsg & wParam & lParam

mciSendStringProc = True

End Function

The wav file plays successfully, but I cannot get anything to happen when
it's finished.
 
C

Chip Pearson

See the code at http://www.cpearson.com/Excel/PlaySound.aspx. This
shows how to use the PlaySound API function to play a wav file
synchronously (wait for complete) or asynchronously.

Cordially,
Chip Pearson
Microsoft Most Valuable Professional
Excel Product Group, 1998 - 2009
Pearson Software Consulting, LLC
www.cpearson.com
(email on web site)


On Tue, 15 Sep 2009 15:43:03 -0700, Jpeg Jones <Jpeg
 
J

Jpeg Jones

Thanks, Chip. But I also need the user to be able to stop the wave file at
any time (using another button). Using the Wait parameter suspends the form
until the file is done. It seems like utilizing the dll's callback is the
solution, but I can't get it to work.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top