Meaning of "protected" members, in particular under the Automation bridge

The following code (run under Windows Script Host):

    var serviceManager = new ActiveXObject('com.sun.star.ServiceManager');
    var desktop =
serviceManager.defaultContext.getByName('/singletons/com.sun.star.frame.theDesktop');
    var document = desktop.loadComponentFromURL("private:factory/swriter",
"_blank", 0, []);
    var textSections = new
VBArray(document.StyleFamilies.ElementNames).toArray();
    WScript.Echo(textSections.length); // outputs 7 in my case

makes use of the protected function
com.sun.star.XStyleFamiliesSupplier::getStyleFamilies. This function is
described as protected in the
[GenericTextDocument](https://api.libreoffice.org/docs/idl/ref/servicecom_1_1sun_1_1star_1_1text_1_1GenericTextDocument.html)
documentation.

Usually, protected means the member is only accessible from within a derived
class, but that doesn't seem to be the case here.

1. What does "protected" mean in this context?

UNOIDL does not have such a public/protected/private concept.

However, the documentation at <https://api.libreoffice.org/docs/idl/ref/> is generated with a tool, Doxygen, that is also used to generate documentation for other languages besides UNOIDL (like C++ and Java).

Michael (on CC) extended Doxygen to also support UNOIDL. Looks like there is a bug somewhere that causes the generated output to mention "public" or "protected" where they don't make sense.