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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à