Difference between revisions of "MainOOConnectFR"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (New page: <source lang="cpp"> //Listing 0b Again our starting main Code int main( ) { //retrieve an instance of the remote service manager Reference< XMultiServiceFactory > rOfficeServiceManager...)
 
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
<source lang="cpp">
 
<source lang="cpp">
//Listing 0b Again our starting main Code
+
// code C++
 +
//Listing 0b Notre programme principal
 
int main( ) {
 
int main( ) {
//retrieve an instance of the remote service manager
+
//retrouve une instance service manager distant avec notre ooConnect()
 
     Reference< XMultiServiceFactory > rOfficeServiceManager;
 
     Reference< XMultiServiceFactory > rOfficeServiceManager;
 
     rOfficeServiceManager = ooConnect();
 
     rOfficeServiceManager = ooConnect();
 
     if( rOfficeServiceManager.is() ){
 
     if( rOfficeServiceManager.is() ){
         printf( "Connected sucessfully to the office\n" );
+
         printf( "Connecté avec succès à OpenOffice\n" );
 
     }
 
     }
  
Line 13: Line 14:
 
     OUString::createFromAscii( "com.sun.star.frame.Desktop" ));
 
     OUString::createFromAscii( "com.sun.star.frame.Desktop" ));
  
//query for the XComponentLoader interface
+
//demande de l'interface XComponentLoader interface
 
     Reference< XComponentLoader > rComponentLoader (Desktop, UNO_QUERY);
 
     Reference< XComponentLoader > rComponentLoader (Desktop, UNO_QUERY);
 
     if( rComponentLoader.is() ){
 
     if( rComponentLoader.is() ){
Line 25: Line 26:
 
         0,
 
         0,
 
         Sequence < ::com::sun::star::beans::PropertyValue >());
 
         Sequence < ::com::sun::star::beans::PropertyValue >());
// add code here
+
//*********************************
 +
// c'est ici que l'on rajoute le code présenté dans ce chapitre;
 +
//*********************************
 
     return 0;
 
     return 0;
 
}
 
}
 
</source>
 
</source>
Ce code est appelé un [[UNO_registery_and_Bootstrapping#The_Bootstrap|programme d'amorce]] et utilise :  
+
Ce code est appelé un [[Documentation/FR/Base_de_registres#Le_d.C3.A9marrage_.28Bootstrap.29|programme d'amorce ou de démarrage]] et utilise :  
 
# les interfaces <idl>com.sun.star.lang.XMultiServiceFactory</idl>, <idl>com.sun.star.uno.XInterface</idl>, <idl>com.sun.star.frame.XComponentLoader</idl> et <idl>com.sun.star.lang.XComponent</idl> interfaces
 
# les interfaces <idl>com.sun.star.lang.XMultiServiceFactory</idl>, <idl>com.sun.star.uno.XInterface</idl>, <idl>com.sun.star.frame.XComponentLoader</idl> et <idl>com.sun.star.lang.XComponent</idl> interfaces
 
# le service <idl>com.sun.star.frame.Desktop</idl>,
 
# le service <idl>com.sun.star.frame.Desktop</idl>,
 
# la structure UNO <idl>com.sun.star.beans.PropertyValue</idl>.
 
# la structure UNO <idl>com.sun.star.beans.PropertyValue</idl>.
  
Rappelez-vous que chaque fois que vous [[IDL_Files_and_Cpp#Getting_an_interface_in_C.2B.2B|demandez une interface]] vous devez ajouter des lignes de code si elles n'existent pas dans le code source ainsi que dans le makefile. Je vais en général ajouter des commentaires pour éviter les omissions. Vois pouvez trouver plus d'explications [[Documentation/FR/Fichiers_IDL_et_C%2B%2B#Obtention_d.27une_interface_en_C.2B.2B|ici]] (si vous n'êtes pas un débutant).
+
Rappelez-vous que chaque fois que vous [[Documentation/FR/Fichiers_IDL_et_C%2B%2B#Obtention_d.27une_interface_en_C.2B.2B|demandez une interface]] vous devez ajouter des lignes de code si elles n'existent pas dans le code source ainsi que dans le makefile. Je vais en général ajouter des commentaires pour éviter les omissions.
  
{{Documentation/Note|'''Note importante''' : Le point le plus important dans [[Documentation/FR/L%27automation_d%27OpenOffice.org_avec_un_binaire_ex%C3%A9cutable#La_cha.C3.AEne_de_compilation|la chaîne de compilation]] des exemples ci-après est que l'utilitaire <code>cppumaker</code> construira chacun des fichiers d'inclusion hpp et hdl que votre application utilisera. Le SDK ne fournit pas les fichiers hpp, mais vous devez les construire à partir des fichiers IDL qui eux sont fournis avec le SDK.}}
+
{{Note|'''Note importante''' : Le point le plus important dans [[Documentation/FR/L%27automation_d%27OpenOffice.org_avec_un_binaire_ex%C3%A9cutable#La_cha.C3.AEne_de_compilation|la chaîne de compilation]] des exemples ci-après est que l'utilitaire <code>cppumaker</code> construira chacun des fichiers d'inclusion hpp et hdl que votre application utilisera. Le SDK ne fournit pas les fichiers hpp, mais vous devez les construire à partir des fichiers IDL qui eux sont fournis avec le SDK.}}
{{Documentation/Note|Il est possible de construire tous les fichiers d'inclusion hpp lors de l'installation du SDK comme j'ai eu l'occasion de le mentionner pour l'installation [[Documentation/FR/Installation_du_SDK#Autres_descriptions_compl.C3.A9mentaires_d.27installation_sous_Windows|sous Windows]] installation. C'est naturellement possible de la même manière avec les autres systèmes d'exploitation. En procédant ainsi il ne vous faudra plus modifier votre MakeFile.}}
+
{{Note|Il est possible de construire tous les fichiers d'inclusion hpp lors de l'installation du SDK comme j'ai eu l'occasion de le mentionner pour l'installation [[Documentation/FR/Installation_du_SDK#Autres_descriptions_compl.C3.A9mentaires_d.27installation_sous_Windows|sous Windows]]. C'est naturellement possible aussi avec les autres systèmes d'exploitation. En procédant ainsi il ne vous faudra plus modifier votre MakeFile (sauf peut-être le chemin pour atteindre ces fichiers).}}
 +
[[Category:FR]]

Latest revision as of 17:11, 4 July 2018

// code C++
//Listing 0b Notre programme principal
int main( ) {
//retrouve une instance service manager distant avec notre ooConnect()
    Reference< XMultiServiceFactory > rOfficeServiceManager;
    rOfficeServiceManager = ooConnect();
    if( rOfficeServiceManager.is() ){
        printf( "Connecté avec succès à OpenOffice\n" );
    }
 
//get the desktop service using createInstance returns an XInterface type
    Reference< XInterface  > Desktop = rOfficeServiceManager->createInstance(
    OUString::createFromAscii( "com.sun.star.frame.Desktop" ));
 
//demande de l'interface XComponentLoader interface
    Reference< XComponentLoader > rComponentLoader (Desktop, UNO_QUERY);
    if( rComponentLoader.is() ){
        	printf( "XComponentloader successfully instanciated\n" );
    	}
 
//get an instance of the spreadsheet
    Reference< XComponent > xcomponent = rComponentLoader->loadComponentFromURL(
	OUString::createFromAscii("private:factory/scalc"),
        OUString::createFromAscii("_blank"),
        0,
        Sequence < ::com::sun::star::beans::PropertyValue >());
//*********************************
// c'est ici que l'on rajoute le code présenté dans ce chapitre;
//*********************************
    return 0;
}

Ce code est appelé un programme d'amorce ou de démarrage et utilise :

  1. les interfaces com.sun.star.lang.XMultiServiceFactory, com.sun.star.uno.XInterface, com.sun.star.frame.XComponentLoader et com.sun.star.lang.XComponent interfaces
  2. le service com.sun.star.frame.Desktop,
  3. la structure UNO com.sun.star.beans.PropertyValue.

Rappelez-vous que chaque fois que vous demandez une interface vous devez ajouter des lignes de code si elles n'existent pas dans le code source ainsi que dans le makefile. Je vais en général ajouter des commentaires pour éviter les omissions.

Documentation note.png Note importante : Le point le plus important dans la chaîne de compilation des exemples ci-après est que l'utilitaire cppumaker construira chacun des fichiers d'inclusion hpp et hdl que votre application utilisera. Le SDK ne fournit pas les fichiers hpp, mais vous devez les construire à partir des fichiers IDL qui eux sont fournis avec le SDK.
Documentation note.png Il est possible de construire tous les fichiers d'inclusion hpp lors de l'installation du SDK comme j'ai eu l'occasion de le mentionner pour l'installation sous Windows. C'est naturellement possible aussi avec les autres systèmes d'exploitation. En procédant ainsi il ne vous faudra plus modifier votre MakeFile (sauf peut-être le chemin pour atteindre ces fichiers).
Personal tools