Versuche mich gerade einwenig mit Interfaces .... und Graphen
(man findet eigentlich darüber nichts in PB ... )
habe da ein Problem und zwar bekomm ich IGraphBuilder::AddSourceFilter nicht wirklich auf die Reihe
weis wer wie man einen Source-Filter richtig initialisiert ?
möchte zB.: "a.avi" in den "AVI/WAV File Source" Filter laden .... aber mit der Syntax stimmt da irgendwas nicht ????
Code: Alles auswählen
Debug lpGB\AddSourceFilter(@"N:\a.avi",@"AVI/WAV_File_Source",@lpSource_Filter)
Code: Alles auswählen
#CLSCTX_INPROC_SERVER = $1
#VFW_E_NOT_FOUND = $80040216
#MAX_FILTER_NAME = 128
Structure FilterInfo
achName.b[#MAX_FILTER_NAME]
lpFilterGraph.IFilterGraph
EndStructure
CoInitialize_(0)
Debug CoCreateInstance_(?CLSID_FilterGraph, #NULL,#CLSCTX_INPROC_SERVER,?IID_IGraphBuilder,@lpGB.IGraphBuilder)
Debug CoCreateInstance_(?CLSID_Source_Filter, #NULL, #CLSCTX_INPROC_SERVER,?IID_IBaseFilter,@lpSource_Filter.IBaseFilter)
Debug CoCreateInstance_(?CLSID_Avi_Splitter, #NULL, #CLSCTX_INPROC_SERVER,?IID_IBaseFilter,@lpAvi_Splitter.IBaseFilter)
Debug lpGB\AddSourceFilter(@"N:\a.avi",@"AVI/WAV_File_Source",@lpSource_Filter)
Debug #VFW_E_NOT_FOUND
Debug lpGB\AddFilter(lpAvi_Splitter, @"AVI_Splitter")
Debug lpGB\EnumFilters(@lpEnum.IEnumFilters)
While lpEnum\Next(1,@Filter.IBaseFilter,0) = #S_OK
Filter\QueryFilterinfo(@info.FilterInfo)
Debug PeekS(@info\achName)
Wend
lpGB\Release()
lpSource_Filter\Release()
lpAvi_Splitter\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
CLSID_Avi_Splitter:
Data.l $1B544C20
Data.w $FD0B,$11CE
Data.b $8C,$63,$00,$AA,$00,$44,$B5,$1E
IID_IBaseFilter:
Data.l $56A86895
Data.w $0AD4,$11CE
Data.b $B0,$3A,$00,$20,$AF,$0B,$A7,$70
EndDataSection
andi256