Hello, evrerybody! Do you know of the existance of such examples - DirecShow programming under MASM? I would appreciate some info on this topic, because I was trying to do some kind of video player, but after examining the DirectX includes from Scronty and Caleb, I found that the so important IGraphBuilder interface isn't included. And therefore because of my poor knowledge of these high level structures I need good examples or ready materials. I prefer the first, so I ask you for some examples. Waiting...



/siddhartha
Posted on 2004-11-06 11:45:46 by siddhartha
if the IGraphBuilder definition isn't included, you can create it yourself. Either using a similar approach as in the other definitions, or using OA32 or ATC. In the latter, it's really easy to define new interfaces :) see the OOP forum for more info on both OOPs
Posted on 2004-11-06 12:10:10 by Ultrano
OK, I'll try but I know that I don't manage with COM, ATC, etc. The other thing I know, is that IGraphBuilder inherits IFilterGraph. I don't know anything about inheritance and such things, so a little help on the topic will be greatly appreciated!


/siddhartha
Posted on 2004-11-06 12:13:33 by siddhartha
It's COM alright. In ATC, you need just these defines of the object:


EnterHostedClass
class IFilterGraph,,COM compatible
virtual QueryInterface
virtual AddRef
virtual Release
virtual AddFilter
virtual RemoveFilter
virtual EnumFilters
virtual FindFilterByName
virtual ConnectDirect
virtual Reconnect
virtual Disconnect
virtual SetDefaultSyncSource
endclass

class IGraphBuilder,IFilterGraph,COM compatible
virtual Connect
virtual Render
virtual RenderFile
virtual AddSourceFilter
virtual SetLogFile
virtual Abort
virtual ShouldOperationContinue
endclass
LeaveHostedClass


and to use them:


Graph1 dd 0
set Graph1 as IGraphBuilder
.. fill here Graph1 with the address of the instance
pcall Graph1.Render,ppinOut
..
pcall Graph1.Release

Simple, isn't it :)


Here: http://www.win32asmcommunity.net/phpBB2/viewtopic.php?p=152279#152279
is a simple COM example in OA32 and ATC. COM can't be simpler than that ;)
Posted on 2004-11-06 14:23:06 by Ultrano