Difference between revisions of "MainOOConnect"
From Apache OpenOffice Wiki
SergeMoutou (talk | contribs) m |
SergeMoutou (talk | contribs) m |
||
| Line 30: | Line 30: | ||
</source> | </source> | ||
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> and <idl>com.sun.star.frame.XComponentLoader</idl> interfaces | + | * <idl>com.sun.star.lang.XMultiServiceFactory</idl>, <idl>com.sun.star.uno.XInterface</idl> and <idl>com.sun.star.frame.XComponentLoader</idl>, <idl>com.sun.star.lang.XComponent</idl> interfaces |
| − | * <idl>com.sun.star.frame.Desktop</idl> service. | + | * <idl>com.sun.star.frame.Desktop</idl> service |
| + | * <idl>com.sun.star.beans.PropertyValue</idl> 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 [[IDL_Files_and_Cpp#IDL__and_C.2B.2B|here]] (if you are not a beginner). | 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 [[IDL_Files_and_Cpp#IDL__and_C.2B.2B|here]] (if you are not a beginner). | ||
Revision as of 16:46, 13 April 2009
//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 and com.sun.star.frame.XComponentLoader, 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).