La méthode getType
est supposée retourner un objet qui représente le type de l'élément passe dans la méthode:retourne réflexion de type com.sun.star.uno.XInterface pour tous les objets
var serviceManager = new ActiveXObject('com.sun.star.ServiceManager');
var desktop = serviceManager.createInstance("com.sun.star.frame.Desktop");
var document = desktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, []);
var coreReflection = serviceManager.createInstance("com.sun.star.reflection.CoreReflection");
// should return a type representing the com.sun.star.frame.Desktop type
var classInfo = coreReflection.getType(desktop);
Cependant, le classInfo
semble toujours contenir le type com.sun.star.uno.XInterface
:
// outputs com.sun.star.uno.XInterface
WScript.Echo(classInfo.getName());
même si je passe dans d'autres objets, la sortie est le même:
classInfo = coreReflection.getType(document);
WScript.Echo(classInfo.getName());
Comment puis-je connaître le type actuel?
(posté au ask.libreoffice)
Ces questions sont très probablement mieux posées sur les listes de diffusion des développeurs LibreOffice. Très probablement la seule personne qui peut répondre à de telles questions et donner des conseils sur la façon de mettre en œuvre un bon pont uno est Stephan Bergmann qui est un développeur LibreOffice payé. – moggi
@moggi Je ne suis pas (encore) intéressé par la mise en place d'un pont uno; Je suis intéressé à utiliser [le pont d'automatisation existant] (https://wiki.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Bridge/Automation_Bridge); mais merci beaucoup quand même. –
même dans ce cas, Stephan et la liste de diffusion pourraient être la meilleure approche. Par exemple. com.sun.star.frame.Desktop est un service et pas un type mais seul Stephan ou peut-être Michael connaîtrait les détails pour lesquels getType renvoie XInterface au lieu de l'une des autres interfaces. – moggi