[vlc-devel] Re: VLC AX opens new framed desktop window instead of playing inside the host application's window
Jan Bölsche
jan at muskelfisch.com
Tue Dec 20 13:59:11 CET 2005
Thanks for your reply, Damien!
In IE the control works fine and in-place. I guess the Zinc container
just does not call the method onActivateInPlace(), which sets the
private variable you mentioned.
I figured out that the Container implementation used by Zinc is probably
Borlands TOleContainer (at least the WNDCLASS name of the container
window is TOleContainer as Spy++ indicates) If this is the case, the
problem probably occurs in a wider range of applications, those build
with C++ Builder or Delphi.
Borland claims that TOleContainer supports in-place activation (at least
in this irc session:
http://community.borland.com.redirect.keljob.com:8080/article/1,1410,20091,00.html)
but this is subject to furhter investigation.
Does anyone know about an ActiveX Control that analyzes the Container it
is embedded in? Would be helpful.
I guess I just have to find a place for this code
/* set internal video width and height */
vlc_value_t val;
val.i_int = posRect.right-posRect.left;
VLC_VariableSet(_i_vlc, "conf::width", val);
val.i_int = posRect.bottom-posRect.top;
VLC_VariableSet(_i_vlc, "conf::height", val);
/* set internal video parent window */
/* horrible cast there */
val.i_int = reinterpret_cast<int>(_videownd);
VLC_VariableSet(_i_vlc, "drawable", val);
in some of the other methods (probably one of IOleControl) that get's
called by
TOleContainer at initialization time.
jan
Damien Fouilleul wrote:
>The parent window is inherited through a private variable
>called 'drawable', which is set by the activex control on
>activation; and it is possible that the control does not get
>properly activated by Zinc, because it may not support
>windowed activex controls as most of them are typically
>windowless.
>Just to rule out other possiblities, have you tried using the
>activex control directly on internet explorer, you can use the
>following test page.
>
>http://trac.videolan.org/vlc/file/trunk/activex/test.html
>
>if you also get a framed window, then I would suggest that you
>reset your preferences, and try again.
>There might be some settings which may be conflicting,
>although I know of none, which would cause this effect.
>
>
>
>>yes, the cone logo is displayed at the position where the AX
>>
>>
>COntrol is
>
>
>>supposed to be: inside the App's Control Container Window
>>
>>
>(class
>
>
>>TOLEContainer). But right before playback starts, another
>>
>>
>window (class
>
>
>>VLC DirectX) with parent=NULL is created and inside that, a
>>
>>
>child window
>
>
>>(VLC DirectX video) that actually contains the overlay surface.
>>
>>I'm now looking at modules/video_output/directx/events.c,
>>
>>
>where these
>
>
>>windows are created.
>>
>>Especially at these lines:
>>
>>/* If an external window was specified, we'll draw in it. */
>> p_vout->p_sys->hparent =
>> vout_RequestWindow( p_vout, &p_vout->p_sys->i_window_x,
>> &p_vout->p_sys->i_window_y,
>> &p_vout->p_sys->i_window_width,
>> &p_vout->p_sys->i_window_height );
>>
>>So, i guess, if that TOleContainer window's handle would be in
>>p_vout->p_sys->hparent ,
>>everything would be fine. But how would it get there?
>>
>>Damien Fouilleul wrote:
>>
>>
>>
>>>do you see the cone logo when you are running your code ?
>>>
>>>Jan B�lsche wrote:
>>>
>>>
>>>
>>>>Hi! I'm new to this list and VLC development in general
>>>>
>>>>
>and run into
>
>
>>>>the following problem:
>>>>
>>>>When embedded into Zinc
>>>>
>>>>
>(http://www.multidmedia.com/software/zinc),
>
>
>>>>the VLC ActiveX control opens a new, framed desktop
>>>>
>>>>
>window with title
>
>
>>>>bar and everything right before starting playback of a
>>>>
>>>>
>video stream.
>
>
>>>>The window is of class "VLC DirectX video" and has the
>>>>
>>>>
>title "VLC
>
>
>>>>(hardware YUV overlay DirectX output)"
>>>>
>>>>I guess this is because the Zinc COM Container is
>>>>
>>>>
>somehow, let's say,
>
>
>>>>not the best on earth and doesn't suport in-place
>>>>
>>>>
>activation. But I
>
>
>>>>don't have hard facts about this yet.
>>>>
>>>>Just wanted to ask, if somebody has some ideas about this
>>>>
>>>>
>before
>
>
>>>>diving deeper into VLC sources.
>>>>
>>>>Thanks!
>>>> Jan
>>>>
>>>>Subversion daemon wrote:
>>>>
>>>>
>>>>
>>>>>r13809 | massiot | 2005-12-19 17:46:48 +0100 (Mon, 19
>>>>>
>>>>>
>Dec 2005) | 3
>
>
>>>>>lines
>>>>>Changed paths:
>>>>> M /trunk/src/input/es_out.c
>>>>> M /trunk/src/input/var.c
>>>>> M /trunk/src/libvlc.h
>>>>>
>>>>>* src/input/es_out.c: New --no-spu and --no-sout-spu
>>>>>
>>>>>
>options to disable
>
>
>>>>> processing of SPU elementary streams.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>--
>>This is the vlc-devel mailing-list, see
>>
>>
>http://www.videolan.org/vlc/
>
>
>>To unsubscribe, please read
>>
>>
>http://developers.videolan.org/lists.html
>
>
>>
>>
>
>Accédez au courrier électronique de La Poste : www.laposte.net ;
>Jusqu'au 25 décembre, participez au grand jeu du Calendrier de l'Avent et
> gagnez tous les jours de nombreux lots, + de 300 cadeaux en jeu !
>
>
>
>
>
--
This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html
More information about the vlc-devel
mailing list