Distinguish LO Basic Built in Objects for User Objects

I just want to be able to identify which of the 4 categories an object falls into. It occurs to me (rightly or wrongly) that I may encounter situations (at some point) in my code where that context may be relevant. I’m simply trying to build a bridge in advance…

Your (@mikekaganski) “fun fact” may well. mean that Scripting members are no longer relevant to the discussion because we have already established their “UNOness”, I need to think on that one!

Do ALL UNO objects have the “com.sun.star.uno.XInterface” interface? And is the converse also true, that NO none UNO objects have the interface? If they do then that greatly simplifies my IsUNOObject function

From LibreOffice Developer’s Guide: Chapter 2 - Professional UNO:

Communication between UNO objects is based on object interfaces.

All interface types must inherit the com.sun.star.uno.XInterface root interface, either directly or in the inheritance hierarchy.

Thanks @sokol92 for that