Difference between revisions of "MainOOConnect"
From Apache OpenOffice Wiki
SergeMoutou (Talk | contribs) m |
m |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | < | + | <syntaxhighlight lang="cpp"> |
//Listing 0b Again our starting main Code | //Listing 0b Again our starting main Code | ||
int main( ) { | int main( ) { | ||
Line 28: | Line 28: | ||
return 0; | return 0; | ||
} | } | ||
− | </ | + | </syntaxhighlight> |
This code is called a [[UNO_registery_and_Bootstrapping#The_Bootstrap|bootstrap]] and uses : | This code is called a [[UNO_registery_and_Bootstrapping#The_Bootstrap|bootstrap]] and uses : | ||
# <idl>com.sun.star.lang.XMultiServiceFactory</idl>, <idl>com.sun.star.uno.XInterface</idl>, <idl>com.sun.star.frame.XComponentLoader</idl> and <idl>com.sun.star.lang.XComponent</idl> interfaces | # <idl>com.sun.star.lang.XMultiServiceFactory</idl>, <idl>com.sun.star.uno.XInterface</idl>, <idl>com.sun.star.frame.XComponentLoader</idl> and <idl>com.sun.star.lang.XComponent</idl> interfaces | ||
Line 36: | Line 36: | ||
Remember each time you [[IDL_Files_and_Cpp#Getting_an_interface_in_C.2B.2B|query for an interface]] you have to add code lines (if they don't exist) in the source code and a line in the makefile. I will generally add comments to prevent omissions. You can find more explanations [[IDL_Files_and_Cpp#IDL__and_C.2B.2B|here]] (if you are not a beginner). | Remember each time you [[IDL_Files_and_Cpp#Getting_an_interface_in_C.2B.2B|query for an interface]] you have to add code lines (if they don't exist) in the source code and a line in the makefile. I will generally add comments to prevent omissions. You can find more explanations [[IDL_Files_and_Cpp#IDL__and_C.2B.2B|here]] (if you are not a beginner). | ||
− | {{ | + | {{Note|'''Important Note''' : The more important point in the [[UNO_automation_with_a_binary_%28executable%29#The_Compilation_Chain|compilation chain]] of the examples above is that <code>cppumaker</code> will construct every hpp and hdl files you need in your application. The SDK doesn't provide every hpp files, but you have to construt them starting from IDL files provided by SDK.}} |
− | {{ | + | {{Note|It is possible to construct all the hpp files when installing the SDK as [[SDKInstallation#Other_Windows_Installations_descriptions|mentioned in a Windows]] installation. It's also possible with other OS. In doing so, you don't need modifying your MakeFile.}} |
+ | [[Category:API]] |
Latest revision as of 14:33, 1 October 2021
//Listing 0b Again our starting main Code int main( ) { //retrieve an instance of the remote service manager Reference< XMultiServiceFactory > rOfficeServiceManager; rOfficeServiceManager = ooConnect(); if( rOfficeServiceManager.is() ){ printf( "Connected sucessfully to the office\n" ); } //get the desktop service using createInstance returns an XInterface type Reference< XInterface > Desktop = rOfficeServiceManager->createInstance( OUString::createFromAscii( "com.sun.star.frame.Desktop" )); //query for the 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 >()); // add code here return 0; }
This code is called a bootstrap and uses :
- com.sun.star.lang.XMultiServiceFactory, com.sun.star.uno.XInterface, com.sun.star.frame.XComponentLoader and com.sun.star.lang.XComponent interfaces
- com.sun.star.frame.Desktop service
- com.sun.star.beans.PropertyValue structure.
Remember each time you query for an interface you have to add code lines (if they don't exist) in the source code and a line in the makefile. I will generally add comments to prevent omissions. You can find more explanations here (if you are not a beginner).
Important Note : The more important point in the compilation chain of the examples above is that cppumaker will construct every hpp and hdl files you need in your application. The SDK doesn't provide every hpp files, but you have to construt them starting from IDL files provided by SDK.
|
It is possible to construct all the hpp files when installing the SDK as mentioned in a Windows installation. It's also possible with other OS. In doing so, you don't need modifying your MakeFile. |