ti manca l'oggetto window
codice:
Option Explicit
Private Type RECTANGLE
Left As Integer
Top As Integer
Width As Integer
Height As Integer
End Type
Private DSAudio As IBasicAudio
Private DSVideo As IBasicVideo
Private DSWindow As IVideoWindow
Private DSControl As IMediaControl
Private DSPos As IMediaPosition
Const WS_VISIBLE = &H10000000
Private Sub cmd_Apri_Click()
Dim r As RECTANGLE
Dim ls_Filename As String
r.Top = 0
r.Left = 0
r.Width = pic_screen.Width
r.Height = pic_screen.Height
cd1.ShowOpen
ls_Filename = cd1.Filename
Call OpenFile(ls_Filename, r, pic_screen.hWnd, False)
End Sub
Private Sub cmd_Play_Click()
If Not (DSControl Is Nothing) Then
DSControl.Run
End If
End Sub
Private Sub cmd_stop_Click()
DSControl.Stop
End Sub
Private Sub OpenFile(Filename As String, _
Rect As RECTANGLE, _
FhWnd As Long, fullScreen As Boolean )
On Error Resume Next
Screen.MousePointer = vbHourglass
Call termina
Set DSControl = New FilgraphManager 'crea il controllo
Call DSControl.RenderFile(Filename) 'carica il file
'crea il controllo del volume
Set DSAudio = DSControl
DSAudio.Volume = 0 'regola il volume come normale
DSAudio.Balance = 0 'centra l'audio
Set DSWindow = DSControl
'finestra visibile
DSWindow.WindowStyle = WS_VISIBLE
'dimensioni del controllo
DSWindow.Top = Rect.Top
DSWindow.Left = Rect.Left
DSWindow.Width = Rect.Width
DSWindow.Height = Rect.Height
'dove lo mostro
DSWindow.Owner = FhWnd
DSWindow.FullScreenMode = fullScreen
Set DSPos = DSControl 'crea il controllo della posizione
DSPos.Rate = 1
Screen.MousePointer = vbDefault
End Sub
Private Sub termina()
On Error Resume Next
DSControl.Stop
DSWindow.Owner = 0
Set DSAudio = Nothing
Set DSVideo = Nothing
Set DSControl = Nothing
Set DSWindow = Nothing
Set DSPos = Nothing
End Sub
questo è un player semplicissimo
ti serve una picturebox pic_screen
tre commandbutton (cmd_Apri, cmd_Stop, cmd_Play)
e una commndialog (CD1)