ActiveMovie: setting my DirectDraw?
Posted on 1997-08-13
I have DirectDraw application working in full-screen 640x480x16, and
all that I need - to force ActiveMovie play any movies on my primary
surface and not to open any other windows. But this is not so trivial
task as I thought before. Let me illustrate my problems by describing
what I do:
1) Init DirectDraw, creating flipping primary surface with one
back-buffer. All initialized OK
2) Create IGraphBuilder and call RenderFile with 320x240x24 AVI. OK,
here the graph have been successfully built
3) Acquire IDirectDrawVideo interface from VideoRenderer via
CoCreateInstance and call the following methods: SetDirectDraw(pMyDD),
SetSwitches(AMDDS_PS), UseWhenFullScreen(-1). All OK
4) Documentation said that GraphBuilder would automatically switch to
fullscreen mode and use DirectDraw when requested. Well, do it. I
query IVideoWindow interface from the graph and call its
5) Do some checking. Aquire IDirectDrawVideo again and call some
methods. And...here all is bad: GetDirectDraw reports NULL,
GetSurfaceType - 0 and GetSurfaceDesc - 80004005 (E_FAIL). Visually,
ActiveMovie have created another full-screen window (of screen
resolution) and play video in it.
What I am doing wrong? I did not find any intelligible suggestions in
AM help. At the point, I've tried to move my step 3 before
initializing of AM of even before graph building - nothing helps. May
be anybody will do?
Thanks in advance.
Best regards, Al