4 messages in org.openoffice.fr.progRe: [prog] Re: Répertoire d'installa...
FromSent OnAttachments
Philippe PonsFeb 22, 2008 1:01 am 
Philippe PonsFeb 22, 2008 1:49 am 
Bernard MarcellyFeb 22, 2008 5:58 am 
Philippe PonsFeb 22, 2008 9:30 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: [prog] Re: Répertoire d'installation de l'extensionActions...
From:Bernard Marcelly (marc@club-internet.fr)
Date:Feb 22, 2008 5:58:44 am
List:org.openoffice.fr.prog

Message de Philippe Pons date 2008-02-22 10:50 :

Philippe Pons <phpons <at> gmail.com> writes:

Est il possible dans le code d'une extension de récupérer son répertoire d'installation?

Je vois dans le dev guide qu'il existe une méthode getPackageLocation de l'interface XPackageInformationProvider Ca doit me donner l'info dont j'ai besoin mais comment l'utiliser? Comment déclarer une interface en OBasic?

Bonjour, En étudiant cette question j'ai encore appris quelque chose :-)

Cette interface très intéressante (disponible seulement à partir de OOo 2.3) est obtenue par un singleton. C'est similaire à un service, mais pas obtenable par CreateUnoService. Un gars de OOoForum a trouvé la réponse: <http://www.oooforum.org/forum/viewtopic.phtml?t=64169>

Il faut que l'extension comporte un fichier description.xml avec l'identificateur interne de cette extension. Exemple pour une identité "org.toto.test3":

dim sv As Object sv = GetDefaultContext().getByName("/singletons/com.sun.star.deployment.PackageInformationProvider") MsgBox sv.getPackageLocation("org.toto.test3")

On obtient le chemin URL du package.

Avec cette interface on peut aussi connaître quelles extensions sont installées, et si une mise à jour est disponible:

dim e as variant, x as variant e = sv.getExtensionList() for each x in e MsgBox("Extension " & x(0) & " version " & x(1)) next

e = sv.isUpdateAvailable("") for each x in e MsgBox("Extension " & x(0) & " version " & x(1)) next

______ Bernard