1
mirror of https://code.videolan.org/videolan/vlc synced 2024-08-06 16:44:19 +02:00

plugin.cpp, oleobject.cpp: fix for ShowDisplay/Visible on activation

vlccontrol.cpp: fixed small mem leak
This commit is contained in:
Damien Fouilleul 2006-01-23 12:00:00 +00:00
parent 22f28306ff
commit 3d24634c36
3 changed files with 14 additions and 8 deletions

View File

@ -163,8 +163,8 @@ HRESULT VLCOleObject::doInPlaceActivate(LPMSG lpMsg, LPOLECLIENTSITE pActiveSite
p_inPlaceSite->Release(); p_inPlaceSite->Release();
} }
pActiveSite->ShowObject(); if( _p_instance->getVisible() )
_p_instance->setVisible(TRUE); pActiveSite->ShowObject();
if( NULL != lpMsg ) if( NULL != lpMsg )
{ {

View File

@ -546,7 +546,7 @@ HRESULT VLCPlugin::onLoad(void)
** is the URL of the page the plugin is embedded into. Hence, if the MRL ** is the URL of the page the plugin is embedded into. Hence, if the MRL
** is a relative URL, we should end up with an absolute URL ** is a relative URL, we should end up with an absolute URL
*/ */
IOleClientSite *pClientSite; LPOLECLIENTSITE pClientSite;
if( SUCCEEDED(vlcOleObject->GetClientSite(&pClientSite)) && (NULL != pClientSite) ) if( SUCCEEDED(vlcOleObject->GetClientSite(&pClientSite)) && (NULL != pClientSite) )
{ {
IBindCtx *pBC = 0; IBindCtx *pBC = 0;
@ -776,7 +776,7 @@ HRESULT VLCPlugin::onActivateInPlace(LPMSG lpMesg, HWND hwndParent, LPCRECT lprc
SetWindowLongPtr(_videownd, GWLP_USERDATA, reinterpret_cast<LONG_PTR>(this)); SetWindowLongPtr(_videownd, GWLP_USERDATA, reinterpret_cast<LONG_PTR>(this));
if( getVisible() ) if( getVisible() )
ShowWindow(_inplacewnd, SW_SHOWNORMAL); ShowWindow(_inplacewnd, SW_SHOW);
/* set internal video width and height */ /* set internal video width and height */
vlc_value_t val; vlc_value_t val;
@ -813,10 +813,15 @@ HRESULT VLCPlugin::onInPlaceDeactivate(void)
void VLCPlugin::setVisible(BOOL fVisible) void VLCPlugin::setVisible(BOOL fVisible)
{ {
_b_visible = fVisible; if( fVisible != _b_visible )
if( isInPlaceActive() ) {
ShowWindow(_inplacewnd, fVisible ? SW_SHOWNORMAL : SW_HIDE); _b_visible = fVisible;
firePropChangedEvent(DISPID_Visible); if( isInPlaceActive() )
{
ShowWindow(_inplacewnd, fVisible ? SW_SHOW : SW_HIDE);
}
firePropChangedEvent(DISPID_Visible);
}
}; };
void VLCPlugin::setFocus(BOOL fFocus) void VLCPlugin::setFocus(BOOL fFocus)

View File

@ -371,6 +371,7 @@ STDMETHODIMP VLCControl::setVariable(BSTR name, VARIANT value)
hr = VariantChangeType(&arg, &value, 0, VT_BSTR); hr = VariantChangeType(&arg, &value, 0, VT_BSTR);
if( SUCCEEDED(hr) ) if( SUCCEEDED(hr) )
{ {
i_type = VLC_VAR_STRING;
val.psz_string = CStrFromBSTR(codePage, V_BSTR(&arg)); val.psz_string = CStrFromBSTR(codePage, V_BSTR(&arg));
VariantClear(&arg); VariantClear(&arg);
} }