The only experience I've had with any of these technologies that didn't end up inducing nausea was ATL. It made COM/ActiveX tolerable for common, simple use cases. I learned the CRTP while writing ATL components and applied it in my own C++ work to some success.
Using ActiveX, nowadays COM/UWP, is never an issue from Delphi, C++ Builder, .NET, Visual C++ via MFC, C++/CX, C++/WinRT, Eiffel.
I once did some Java EE in Eclipse. They both look mostly the same to me. A mountain of crufty crap covered with as much lip stick as it took to make it sort of flop along.
I'm sorry if I'm stepping on toes here, this is just my experience. May I ask what you're using component frameworks for these days? I spent 13 years professionally writing reservation and accounting client/server apps in Delphi but never even came close.
I'm not saying it was the right thing to do, but XUL and the component architecture were major reasons Mozilla took forever to be released, and then forever again to become usable.
And then a major reason why Firefox extensions became a thing long before using web tech was an option.
I tried to find uses for it back in the days, read a book and played around with it. What killed it for me was hooking into C meant dealing with Mozilla's internals a lot more than I would have preferred. These days serverless is common, but back then it was practically unheard of.
I did use Songbird [0] for a while, but it was always slow and buggy for me. And it never really went anywhere, not for a lack of trying from the looks of it.
ActiveX, Corba, Bonobo; they always seem to get so complex and bloated that no one wants anything to do with them when there are other options.
[0] https://en.wikipedia.org/wiki/Songbird_(software)