diff --git a/examples/Plugins/ReaperEmbeddedViewPluginDemo.h b/examples/Plugins/ReaperEmbeddedViewPluginDemo.h index 614f1bd914..2d5b2659b9 100644 --- a/examples/Plugins/ReaperEmbeddedViewPluginDemo.h +++ b/examples/Plugins/ReaperEmbeddedViewPluginDemo.h @@ -121,13 +121,14 @@ public: return listener.handledEmbeddedUIMessage (msg, parm2, parm3); } - Steinberg::uint32 PLUGIN_API addRef() override { return (Steinberg::uint32) ++refCount; } - Steinberg::uint32 PLUGIN_API release() override { return (Steinberg::uint32) --refCount; } + Steinberg::uint32 PLUGIN_API addRef() override { return ++refCount; } + Steinberg::uint32 PLUGIN_API release() override { return --refCount; } Steinberg::tresult PLUGIN_API queryInterface (const Steinberg::TUID tuid, void** obj) override { if (std::memcmp (tuid, iid, sizeof (Steinberg::TUID)) == 0) { + ++refCount; *obj = this; return Steinberg::kResultOk; } @@ -138,7 +139,7 @@ public: private: EmbeddedViewListener& listener; - std::atomic refCount { 1 }; + std::atomic refCount { 1 }; }; JUCE_END_IGNORE_WARNINGS_GCC_LIKE @@ -237,11 +238,8 @@ public: int32_t queryIEditController (const Steinberg::TUID tuid, void** obj) override { - if (std::memcmp (tuid, embeddedUi.iid, sizeof (Steinberg::TUID)) == 0) - { - *obj = &embeddedUi; + if (embeddedUi.queryInterface (tuid, obj) == Steinberg::kResultOk) return Steinberg::kResultOk; - } *obj = nullptr; return Steinberg::kNoInterface;