From 18ff0f4e9b3cea213a4f4a2c0c608e02e467168a Mon Sep 17 00:00:00 2001 From: Arkady Trestman Date: Thu, 8 Oct 2009 22:22:00 +0000 Subject: [PATCH] treat DISPATCH_METHOD and ( DISPATCH_METHOD or DISPATCH_PROPERTYGET ) the same --- direct/src/plugin_activex/PPPandaObject.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/direct/src/plugin_activex/PPPandaObject.cpp b/direct/src/plugin_activex/PPPandaObject.cpp index b37dd079b1..12ec4d8fae 100644 --- a/direct/src/plugin_activex/PPPandaObject.cpp +++ b/direct/src/plugin_activex/PPPandaObject.cpp @@ -154,8 +154,13 @@ STDMETHODIMP PPandaObject::Invoke( switch ( wFlags ) { - case DISPATCH_METHOD: + case ( DISPATCH_METHOD ): + case ( DISPATCH_METHOD | DISPATCH_PROPERTYGET ): { + // NOTE: http://msdn.microsoft.com/en-us/library/ms221479.aspx + // The member is invoked as a method. If a property has the same name, + // both the DISPATCH_METHOD and the DISPATCH_PROPERTYGET flag may be set. + bool hasMethod( false ); hr = m_interface->P3DHasMethod( m_p3dObject, name, hasMethod ); if ( SUCCEEDED( hr ) && hasMethod ) @@ -164,12 +169,12 @@ STDMETHODIMP PPandaObject::Invoke( } } break; - case DISPATCH_PROPERTYGET: + case ( DISPATCH_PROPERTYGET ): { hr = m_interface->P3DGetProperty( m_p3dObject, name, pvarResult ); } break; - case DISPATCH_PROPERTYPUT: + case ( DISPATCH_PROPERTYPUT ): { bool result( false ); hr = m_interface->P3DSetProperty( m_p3dObject, name, pdispparams, result );