Bonjour Teddy Gestel
Message du 2005-12-21 16:26:
Je travaille avec un langage proprietaire qui permet aussi de faire de l'OLE.
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.
Plus d'information sur COM :
- dans le SDK, voir Developer's Guide chapter 3.4.4 Automation Bridge
- sur OOoForum, voir Using COM for OOo with different language
<http://www.oooforum.org/forum/viewtopic.phtml?t=9815>
lire surtout le début du fil.
Plus d'information sur l'API OpenOffice.org :
Livre Programmation OpenOffice.org 2
<http://www.eyrolles.com/Informatique/Livre/9782212117639/livre-programmation-openoffice-org-2.php>
Bonne journée
Bernard