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 );