PLAYER.FRM

VERSION 5.00 
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.1#0"; "COMDLG32.OCX"
Object = "{6B7E6392-850A-101B-AFC0-4210102A8DA7}#1.1#0"; "COMCTL32.OCX"
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 1545
ClientLeft = 3915
ClientTop = 1530
ClientWidth = 4515
LinkTopic = "Form1"
PaletteMode = 1 'UseZOrder
ScaleHeight = 1545
ScaleWidth = 4515
Begin VB.Timer Timer1
Interval = 200
Left = 3720
Top = 1200
End
Begin VB.CommandButton StopButton
Caption = "&Stop"
Height = 495
Left = 2160
TabIndex = 3
Top = 120
Width = 735
End
Begin VB.CommandButton PlayButton
Caption = "&Play"
Height = 495
Left = 1200
TabIndex = 2
Top = 120
Width = 735
End
Begin VB.CommandButton OpenButton
Caption = "&Open"
Height = 495
Left = 240
TabIndex = 0
Top = 120
Width = 735
End
Begin ComctlLib.Slider Slider1
Height = 375
Left = 240
TabIndex = 1
Top = 840
Width = 3735
_ExtentX = 6588
_ExtentY = 661
_Version = 327680
End
Begin MSComDlg.CommonDialog CommonDialog1
Left = 3240
Top = 1200
_ExtentX = 847
_ExtentY = 847
_Version = 327680
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim pMC As Object
Dim bOpen As Boolean
Dim bPlay As Boolean
Dim bSeeking As Boolean

Private Sub Form_Load()

Set pMC = Nothing
bOpen = False
bPlay = False
bSeeking = False

End Sub




Private Sub OpenButton_Click()
If bPlay Then pMC.Stop
If bOpen Then Set pMC = Nothing
bOpen = False

Set pMC = New FilgraphManager

CommonDialog1.ShowOpen
pMC.RenderFile CommonDialog1.filename

Rem make window appear
Dim pVW As IVideoWindow
Set pVW = pMC
pVW.Visible = True
Set pVW = Nothing

bOpen = True


End Sub

Private Sub PlayButton_Click()
If Not bOpen Then Exit Sub
If bPlay Then Exit Sub

pMC.Run
bPlay = True
OpenButton.Enabled = False
PlayButton.Enabled = False

End Sub



Private Sub Slider1_Change()

bSeeking = False
If Not bPlay Then
pMC.Stop
End If

End Sub

Private Sub Slider1_Scroll()

If Not bOpen Then Exit Sub

bSeeking = True
pMC.Pause

Dim pMP As IMediaPosition
Set pMP = pMC

Dim v As Double
v = Slider1.Value - Slider1.Min
v = v / Slider1.Max * pMP.Duration
pMP.CurrentPosition = v
Set pMP = Nothing


End Sub

Private Sub StopButton_Click()
If Not bOpen Then Exit Sub
pMC.Stop
bPlay = False
OpenButton.Enabled = True
PlayButton.Enabled = True

End Sub

Private Sub Timer1_Timer()

If Not bOpen Then Exit Sub

If bSeeking Then Exit Sub

Dim pMP As IMediaPosition
Set pMP = pMC

Dim curpos As Double
Dim length As Double
Dim mark As Long

curpos = pMP.CurrentPosition
length = pMP.Duration
mark = (curpos / length) * 10

If Slider1.Value <> mark Then
Slider1.Value = mark
End If

Set pMP = Nothing

If Not bPlay Then Exit Sub

Dim pME As IMediaEvent
Dim EventCode As Long
Set pME = pMC

On Error Resume Next
pME.WaitForCompletion 0, EventCode

Set pME = Nothing

If EventCode = 0 Then Exit Sub

pMC.Stop
bPlay = False
OpenButton.Enabled = True
PlayButton.Enabled = True

End Sub