Merci pour votre réponse.
Je remarque qu'il faut toujours récupérer le ("com.sun.star.frame.Desktop").
Justement si j'arrive à instancier le Desktop, est il possible dans le 2. (qui
est en fait un Dispatch d'une string) d'envoyer une string (qui représente une
commande d'OpenOffice) pour effectuer cette commande.
En fait, OpenOffice comprendra t'il cette commande (ce que Word Fait, en lui
envoyant "FileOpen") ?
1. Pareil que ci-dessus, mais avec la chaine « com.sun.star.ServiceManager
». Ex : CREATEINSTANCE(« com.sun.star.ServiceManager » )
2. Pareil que ci-dessus. Ex : OLE_CALL(« FileOpen » ).
Le 1. Marche, d'ailleurs le petit icône OpenOffice apparaît en bas a droite dans
la barre des taches.
Le 2. ne marche pas, j'ai une RTE Windows m'indiquant que la Commande « FileOpen
» n'existe pas du coté de OpenOffice.
Pour piloter OpenOffice depuis OLE - COM, une fois obtenu le Service
Manager, on utilise uniquement des appels de l'API OpenOffice.org. Cette
API est très différente des commandes Microsoft Office.
L'objet Service Manager permet d'obtenir d'autres objets ou services,
qui sont utilisés pour obtenir d'autres objets, etc.
Typiquement cela donne:
objServiceManager= CREATEINSTANCE("com.sun.star.ServiceManager")
Stardesktop= objServiceManager.createInstance("com.sun.star.frame.Desktop")
maDoc = Stardesktop.loadComponentFromURL("private:factory/swriter",
"_blank", 0, args)
monTexte = maDoc.getText()
monTexte.setString("Hello World")
Avec certains languages, l'utilisation de l'API via COM est très
similaire à ce qu'on ferait avec Basic.