X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=activex%2Foleinplaceobject.cpp;h=2caa045c5c3680778231fb4fe8e3ed4b8cd2e898;hb=869d0526e75f45969d918f0444da4debedf058a7;hp=80c4a519b35493ea2a259f8d4bff8b91ccc876fb;hpb=3d831e04ece115bb9ca379b9552370755453e46e;p=vlc diff --git a/activex/oleinplaceobject.cpp b/activex/oleinplaceobject.cpp index 80c4a519b3..2caa045c5c 100644 --- a/activex/oleinplaceobject.cpp +++ b/activex/oleinplaceobject.cpp @@ -1,7 +1,7 @@ /***************************************************************************** * oleinplaceobject.cpp: ActiveX control for VLC ***************************************************************************** - * Copyright (C) 2005 VideoLAN + * Copyright (C) 2005 the VideoLAN team * * Authors: Damien Fouilleul * @@ -17,7 +17,7 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ #include "plugin.h" @@ -30,18 +30,15 @@ using namespace std; STDMETHODIMP VLCOleInPlaceObject::GetWindow(HWND *pHwnd) { if( NULL == pHwnd ) - return E_INVALIDARG; + return E_POINTER; + *pHwnd = NULL; if( _p_instance->isInPlaceActive() ) { if( NULL != (*pHwnd = _p_instance->getInPlaceWindow()) ) return S_OK; - - return E_FAIL; } - *pHwnd = NULL; - - return E_UNEXPECTED; + return E_FAIL; }; STDMETHODIMP VLCOleInPlaceObject::ContextSensitiveHelp(BOOL fEnterMode) @@ -54,6 +51,7 @@ STDMETHODIMP VLCOleInPlaceObject::InPlaceDeactivate(void) if( _p_instance->isInPlaceActive() ) { UIDeactivate(); + _p_instance->onInPlaceDeactivate(); LPOLEOBJECT p_oleObject; @@ -85,26 +83,26 @@ STDMETHODIMP VLCOleInPlaceObject::UIDeactivate(void) if( _p_instance->hasFocus() ) { _p_instance->setFocus(FALSE); + } - LPOLEOBJECT p_oleObject; - if( SUCCEEDED(QueryInterface(IID_IOleObject, (void**)&p_oleObject)) ) + LPOLEOBJECT p_oleObject; + if( SUCCEEDED(QueryInterface(IID_IOleObject, (void**)&p_oleObject)) ) + { + LPOLECLIENTSITE p_clientSite; + if( SUCCEEDED(p_oleObject->GetClientSite(&p_clientSite)) ) { - LPOLECLIENTSITE p_clientSite; - if( SUCCEEDED(p_oleObject->GetClientSite(&p_clientSite)) ) + LPOLEINPLACESITE p_inPlaceSite; + + if( SUCCEEDED(p_clientSite->QueryInterface(IID_IOleInPlaceSite, (void**)&p_inPlaceSite)) ) { - LPOLEINPLACESITE p_inPlaceSite; - - if( SUCCEEDED(p_clientSite->QueryInterface(IID_IOleInPlaceSite, (void**)&p_inPlaceSite)) ) - { - p_inPlaceSite->OnUIDeactivate(FALSE); - p_inPlaceSite->Release(); - } - p_clientSite->Release(); + p_inPlaceSite->OnUIDeactivate(FALSE); + p_inPlaceSite->Release(); } - p_oleObject->Release(); + p_clientSite->Release(); } - return S_OK; + p_oleObject->Release(); } + return S_OK; } return E_UNEXPECTED; };