From: Jpeg Jones Jpeg on
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.
From: Chip Pearson on
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
Jones(a)discussions.microsoft.com> wrote:

>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.
From: Jpeg Jones on
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.

"Chip Pearson" wrote:

> 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
> Jones(a)discussions.microsoft.com> wrote:
>
> >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.
>