Difference between revisions of "MainOOConnect"

From Apache OpenOffice Wiki
Jump to: navigation, search
m
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>, <idl>com.sun.star.lang.XComponent</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.
+
# <idl>com.sun.star.beans.PropertyValue</idl> structure.
  
 
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).

Revision as of 15:41, 3 May 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 :

  1. com.sun.star.lang.XMultiServiceFactory, com.sun.star.uno.XInterface and com.sun.star.frame.XComponentLoader, com.sun.star.lang.XComponent interfaces
  2. com.sun.star.frame.Desktop service
  3. 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).

Template:Documentation/Note Template:Documentation/Note

Personal tools