Difference between revisions of "OOConnectFR"
From Apache OpenOffice Wiki
SergeMoutou (Talk | contribs) m (New page: <source lang="cpp"> // Listing 0 // C++ #include <stdio.h> #include <cppuhelper/bootstrap.hxx> #include <com/sun/star/bridge/XUnoUrlResolver.hpp> #include <com/sun/star/lang/XMultiServiceF...) |
SergeMoutou (Talk | contribs) m |
||
Line 6: | Line 6: | ||
#include <com/sun/star/bridge/XUnoUrlResolver.hpp> | #include <com/sun/star/bridge/XUnoUrlResolver.hpp> | ||
#include <com/sun/star/lang/XMultiServiceFactory.hpp> | #include <com/sun/star/lang/XMultiServiceFactory.hpp> | ||
− | // | + | // on ajoute la ligne ci-apres |
#include <com/sun/star/frame/XComponentLoader.hpp> | #include <com/sun/star/frame/XComponentLoader.hpp> | ||
Line 12: | Line 12: | ||
using namespace com::sun::star::lang; | using namespace com::sun::star::lang; | ||
using namespace com::sun::star::bridge; | using namespace com::sun::star::bridge; | ||
− | // | + | // ajouté aussi : |
using namespace com::sun::star::frame; | using namespace com::sun::star::frame; | ||
Line 18: | Line 18: | ||
using namespace cppu; | using namespace cppu; | ||
− | // | + | // appel de la fonction de démarrage |
Reference< XMultiServiceFactory > ooConnect(){ | Reference< XMultiServiceFactory > ooConnect(){ | ||
// create the initial component context | // create the initial component context | ||
Line 24: | Line 24: | ||
defaultBootstrap_InitialComponentContext(); | defaultBootstrap_InitialComponentContext(); | ||
− | // | + | // obtention du servicemanager à partir du context |
Reference< XMultiComponentFactory > rServiceManager = | Reference< XMultiComponentFactory > rServiceManager = | ||
rComponentContext->getServiceManager(); | rComponentContext->getServiceManager(); | ||
Line 68: | Line 68: | ||
'''Note : '''vous devez éventuellement changer le port de "port=8100" avec "port=2083" pour les SDK récents (après 2.X). | '''Note : '''vous devez éventuellement changer le port de "port=8100" avec "port=2083" pour les SDK récents (après 2.X). | ||
− | Il serait bon de regarder : | + | Il serait bon de regarder aussi : |
# les interfaces <idl>com.sun.star.uno.XComponentContext</idl>, <idl>com.sun.star.lang.XMultiComponentFactory</idl>, <idl>com.sun.star.uno.XInterface</idl>, <idl>com.sun.star.bridge.XUnoUrlResolver</idl> et <idl>com.sun.star.lang.XMultiServiceFactory</idl>, | # les interfaces <idl>com.sun.star.uno.XComponentContext</idl>, <idl>com.sun.star.lang.XMultiComponentFactory</idl>, <idl>com.sun.star.uno.XInterface</idl>, <idl>com.sun.star.bridge.XUnoUrlResolver</idl> et <idl>com.sun.star.lang.XMultiServiceFactory</idl>, | ||
# et aussi le service <idl>com.sun.star.bridge.UnoUrlResolver</idl>. | # et aussi le service <idl>com.sun.star.bridge.UnoUrlResolver</idl>. |
Revision as of 16:28, 7 May 2009
// Listing 0 // C++ #include <stdio.h> #include <cppuhelper/bootstrap.hxx> #include <com/sun/star/bridge/XUnoUrlResolver.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> // on ajoute la ligne ci-apres #include <com/sun/star/frame/XComponentLoader.hpp> using namespace com::sun::star::uno; using namespace com::sun::star::lang; using namespace com::sun::star::bridge; // ajouté aussi : using namespace com::sun::star::frame; using namespace rtl; using namespace cppu; // appel de la fonction de démarrage Reference< XMultiServiceFactory > ooConnect(){ // create the initial component context Reference< XComponentContext > rComponentContext = defaultBootstrap_InitialComponentContext(); // obtention du servicemanager à partir du context Reference< XMultiComponentFactory > rServiceManager = rComponentContext->getServiceManager(); // instantiate a sample service with the servicemanager. Reference< XInterface > rInstance = rServiceManager->createInstanceWithContext( OUString::createFromAscii("com.sun.star.bridge.UnoUrlResolver" ),rComponentContext ); // Query for the XUnoUrlResolver interface Reference< XUnoUrlResolver > rResolver( rInstance, UNO_QUERY ); if( ! rResolver.is() ){ printf( "Error: Couldn't instantiate com.sun.star.bridge.UnoUrlResolver service\n" ); return NULL; } try { // resolve the uno-url rInstance = rResolver->resolve( OUString::createFromAscii( "uno:socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" ) ); if( ! rInstance.is() ){ printf( "StarOffice.ServiceManager is not exported from remote counterpart\n" ); return NULL; } // query for the simpler XMultiServiceFactory interface, sufficient for scripting Reference< XMultiServiceFactory > rOfficeServiceManager (rInstance, UNO_QUERY); if( ! rOfficeServiceManager.is() ){ printf( "XMultiServiceFactory interface is not exported for StarOffice.ServiceManager\n" ); return NULL; } return rOfficeServiceManager; } catch( Exception &e ){ OString o = OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US ); printf( "Error: %s\n", o.pData->buffer ); return NULL; } return NULL; }
Note : vous devez éventuellement changer le port de "port=8100" avec "port=2083" pour les SDK récents (après 2.X).
Il serait bon de regarder aussi :