got error below:

OUString::createFromAscii( "com.sun.star.frame.Desktop" ));

//    got error
/**
 Unhandled exception at 0x013c1773 in ooConnect.exe: 0xC0000005: Access
violation reading location 0x00000000.
**/


http://wiki.services.openoffice.org/wiki/Calc/API/Programming

#include "OOo.h"


// a procedure for what the so called boostrap
Reference< XMultiServiceFactory > ooConnect(){
   // create the initial component context
   Reference< XComponentContext > rComponentContext =
                defaultBootstrap_InitialComponentContext();

   // retrieve the servicemanager from the 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;
}

//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" ));

//    got error
/**
 Unhandled exception at 0x013c1773 in ooConnect.exe: 0xC0000005: Access
violation reading location 0x00000000.
**/

//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;
}

-- 
 作智慧的减法 ...

                体会生活的微妙的富足  ...

      嗯 ...

Reply via email to