ich werde den code in nächster zeit mal ausprobieren und weiter dran arbeiten.
Dankeschön

Code: Alles auswählen
file.s = "D:\1.avi" ; anpassen
#CLSCTX_INPROC_SERVER = $1
#MAX_FILTER_NAME = 128
Structure FilterInfo
achName.b[#MAX_FILTER_NAME]
lpFilterGraph.IFilterGraph
EndStructure
Enumeration
#PINDIR_INPUT
#PINDIR_OUTPUT
EndEnumeration
CoInitialize_(0)
CoCreateInstance_ (?CLSID_FilterGraph, #Null,#CLSCTX_INPROC_SERVER,?IID_IGraphBuilder,@lpGB.IGraphBuilder)
lpGB\QueryInterface(?IID_IMediaControl,@lpMC.IMediaControl)
CoCreateInstance_ (?CLSID_Source_Filter, #Null, #CLSCTX_INPROC_SERVER,?IID_IBaseFilter,@lpSource_Filter.IBaseFilter)
CoCreateInstance_ (?CLSID_VideoRenderer, #Null, #CLSCTX_INPROC_SERVER,?IID_IBaseFilter,@lpVRender.IBaseFilter)
; SOURCE Filter
Dim wavFile.w(Len(file))
MultiByteToWideChar_(#CP_ACP, 0, file, -1, wavFile(), Len(file))
lpGB\AddSourceFilter(@wavFile(), @wavFile(), @lpSource_Filter)
lpSource_Filter\EnumPins(@lpNUM.IEnumPins)
While lpNUM\Next(1,@lpPin.IPin,0) = #S_OK
lpPin\QueryDirection(@a)
If a = #PINDIR_OUTPUT
lpSource_FilterPinOut = lpPin
EndIf
Wend
; Renderer
lpGB\AddFilter(lpVRender, @"Video_Renderer")
lpVRender\EnumPins(@lpNUM.IEnumPins)
While lpNUM\Next(1,@lpPin.Ipin,0) = #S_OK
lpPin\QueryDirection(@a)
If a = #PINDIR_INPUT
lpVRenderPinIn = lpPin
EndIf
Wend
; Pins verbinden
lpGB\Connect(lpSource_FilterPinOut,lpVRenderPinIn)
; Verwendete Filter anzeigen
lpGB\EnumFilters(@lpEnum.IEnumFilters)
While lpEnum\Next(1,@lpFilter.IBaseFilter,0) = #S_OK
lpFilter\QueryFilterinfo(@info.FilterInfo)
Debug PeekS(@info\achName)
Wend
; Wiedergabe starten
lpMC\Run()
OpenWindow(0,500,500,100,100,"Test")
Repeat
Select WindowEvent()
Case 0
Delay(1)
Case #PB_Event_CloseWindow
quit = #True
EndSelect
Until quit = #True
; Freigabe
lpFilter\Release()
lpEnum\Release()
lpPin\Release()
lpNUM\Release()
lpVRender\Release()
lpSource_Filter\Release()
lpMC\Release()
lpGB\Release()
CoUninitialize_()
DataSection
CLSID_FilterGraph:
Data.l $E436EBB3
Data.w $524F,$11CE
Data.b $9F,$53,$00,$20,$AF,$0B,$A7,$70
IID_IGraphBuilder:
Data.l $56A868A9
Data.W $0AD4,$11CE
Data.b $B0,$3A,$00,$20,$AF,$0B,$A7,$70
CLSID_Source_Filter:
Data.l $D3588AB0
Data.w $0781,$11CE
Data.b $B0,$3A,$00,$20,$AF,$0B,$A7,$70
IID_IBaseFilter:
Data.l $56A86895
Data.w $0AD4,$11CE
Data.b $B0,$3A,$00,$20,$AF,$0B,$A7,$70
CLSID_VideoRenderer:
Data.l $70E102B0
Data.w $5556,$11CE
Data.b $97,$C0,$00,$AA,$00,$55,$59,$5A
IID_IMediaControl:
Data.l $56A868B1
Data.w $0AD4,$11CE
Data.b $B0,$3A,$00,$20,$AF,$0B,$A7,$70
EndDataSection