Difference between revisions of "Documentation/DevGuide/ProUNO/C++/Establishing Interprocess Connections"
From Apache OpenOffice Wiki
< Documentation | DevGuide
(Initial author Sun Microsystems, Inc.) |
|||
(7 intermediate revisions by 4 users not shown) | |||
Line 6: | Line 6: | ||
|NextPage=Documentation/DevGuide/ProUNO/C++/Transparent Use of Office UNO Components | |NextPage=Documentation/DevGuide/ProUNO/C++/Transparent Use of Office UNO Components | ||
}} | }} | ||
+ | {{Documentation/DevGuideLanguages|Documentation/DevGuide/ProUNO/C++/{{SUBPAGENAME}}}} | ||
{{DISPLAYTITLE:Establishing Interprocess Connections}} | {{DISPLAYTITLE:Establishing Interprocess Connections}} | ||
<!--<idltopic>com.sun.star.bridge.UnoUrlResolver;com.sun.star.bridge.XUnoUrlResolver;com.sun.star.uno.XComponentContext;com.sun.star.lang.XMultiComponentFactory;com.sun.star.lang.DisposedException;com.sun.star.lang.ServiceManager</idltopic>--> | <!--<idltopic>com.sun.star.bridge.UnoUrlResolver;com.sun.star.bridge.XUnoUrlResolver;com.sun.star.uno.XComponentContext;com.sun.star.lang.XMultiComponentFactory;com.sun.star.lang.DisposedException;com.sun.star.lang.ServiceManager</idltopic>--> | ||
− | Any language binding supported by UNO establishes interprocess connections using a local service manager to create the services necessary to connect to the office. Refer to chapter [[Documentation/DevGuide/ProUNO/UNO Interprocess Connections|UNO Interprocess Connections]] for additional information. The following client program connects to a running office and retrieves the <idl>com.sun.star.lang.XMultiServiceFactory</idl> in C++: | + | Any language binding supported by UNO establishes interprocess connections using a local service manager to create the services necessary to connect to the office. Refer to chapter [[Documentation/DevGuide/ProUNO/UNO Interprocess Connections|UNO Interprocess Connections]] for additional information. The following client program connects to a running office and retrieves the <idl>com.sun.star.lang.XMultiServiceFactory</idl> in C++: |
− | + | ||
+ | <!--[SOURCE:ProfUNO/CppBinding/office_connect.cxx]--> | ||
+ | <syntaxhighlight lang="cpp"> | ||
#include <stdio.h> | #include <stdio.h> | ||
Line 78: | Line 80: | ||
return 0; | return 0; | ||
} | } | ||
− | + | </syntaxhighlight> | |
{{PDL1}} | {{PDL1}} | ||
− | [[Category: Professional UNO]] | + | |
+ | [[Category:Documentation/Developer's Guide/Professional UNO]] |
Latest revision as of 13:00, 23 December 2020
Any language binding supported by UNO establishes interprocess connections using a local service manager to create the services necessary to connect to the office. Refer to chapter UNO Interprocess Connections for additional information. The following client program connects to a running office and retrieves the com.sun.star.lang.XMultiServiceFactory in C++:
#include <stdio.h> #include <cppuhelper/bootstrap.hxx> #include <com/sun/star/bridge/XUnoUrlResolver.hpp> #include <com/sun/star/lang/XMultiServiceFactory.hpp> using namespace com::sun::star::uno; using namespace com::sun::star::lang; using namespace com::sun::star::bridge; using namespace rtl; using namespace cppu; int main( ) { // create the initial component context Reference< XComponentContext > rComponentContext = defaultBootstrap_InitialComponentContext(); // retrieve the service manager from the context Reference< XMultiComponentFactory > rServiceManager = rComponentContext->getServiceManager(); // instantiate a sample service with the service manager. 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 1; } try { // resolve the uno-URL rInstance = rResolver->resolve( OUString::createFromAscii( "uno:socket,host=localhost,port=2002;urp;StarOffice.ServiceManager" ) ); if( ! rInstance.is() ) { printf( "StarOffice.ServiceManager is not exported from remote process\n" ); return 1; } // query for the simpler XMultiServiceFactory interface, sufficient for scripting Reference< XMultiServiceFactory > rOfficeServiceManager (rInstance, UNO_QUERY); if( ! rOfficeServiceManager.is() ) { printf( "XMultiServiceFactory interface is not exported\n" ); return 1; } printf( "Connected sucessfully to the office\n" ); } catch( Exception &e ) { OString o = OUStringToOString( e.Message, RTL_TEXTENCODING_ASCII_US ); printf( "Error: %s\n", o.pData->buffer ); return 1; } return 0; }
Content on this page is licensed under the Public Documentation License (PDL). |