User: vg      
Date: 05/02/21 04:23:29

Modified:
 /dba/connectivity/source/drivers/mozab/
  MServices.cxx

Log:
 INTEGRATION: CWS mozab05 (1.2.46); FILE MERGED
 2005/01/24 08:04:56 windly 1.2.46.2: #i20088# fix build bugs on solaris sparc
 2005/01/17 05:30:43 windly 1.2.46.1: #i20088# Detect Mozilla Thunderbird 
Address Book: patchs for connectivity

File Changes:

Directory: /dba/connectivity/source/drivers/mozab/
==================================================

File [changed]: MServices.cxx
Url: 
http://dba.openoffice.org/source/browse/dba/connectivity/source/drivers/mozab/MServices.cxx?r1=1.2&r2=1.3
Delta lines:  +57 -8
--------------------
--- MServices.cxx       25 Jun 2004 18:29:48 -0000      1.2
+++ MServices.cxx       21 Feb 2005 12:23:26 -0000      1.3
@@ -66,6 +66,12 @@
 #ifndef _OSL_DIAGNOSE_H_
 #include <osl/diagnose.h>
 #endif
+#ifndef _COM_SUN_STAR_MOZILLA_XMOZILLABOOTSTRAP_HPP_
+#include <com/sun/star/mozilla/XMozillaBootstrap.hpp>
+#endif
+#ifndef CONNECTIVITY_SMOZILLABOOTSTRAP_HXX
+#include "bootstrap/MMozillaBootstrap.hxx"
+#endif
 
 using namespace connectivity::mozab;
 using ::rtl::OUString;
@@ -74,6 +80,7 @@
 using ::com::sun::star::registry::XRegistryKey;
 using ::com::sun::star::lang::XSingleServiceFactory;
 using ::com::sun::star::lang::XMultiServiceFactory;
+using ::com::sun::star::mozilla::XMozillaBootstrap;
 
 typedef Reference< XSingleServiceFactory > (SAL_CALL *createFactoryFunc)
                (
@@ -168,10 +175,17 @@
        {
                Reference< ::com::sun::star::registry::XRegistryKey > 
xKey(reinterpret_cast< 
::com::sun::star::registry::XRegistryKey*>(pRegistryKey));
 
+
                REGISTER_PROVIDER(
                        MozabDriver::getImplementationName_Static(), 
                        MozabDriver::getSupportedServiceNames_Static(), xKey);  
        
 
+               Sequence< ::rtl::OUString > aSNS( 1 );
+               aSNS[0] = ::rtl::OUString( 
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.mozilla.MozillaBootstrap"));
+               REGISTER_PROVIDER(
+                        ::rtl::OUString( 
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.mozilla.MozillaBootstrap")), 
+                        aSNS, xKey);           
+
                return sal_True;
        }
        catch (::com::sun::star::registry::InvalidRegistryException& )
@@ -181,7 +195,33 @@
 
        return sal_False;
 }
+typedef void* (SAL_CALL * OMozillaBootstrap_CreateInstanceFunction)(const 
Reference< XMultiServiceFactory >& _rxFactory );
+::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >  
SAL_CALL createMozillaBootstrap(const ::com::sun::star::uno::Reference< 
::com::sun::star::lang::XMultiServiceFactory >& _rxFactory) throw( 
::com::sun::star::uno::Exception )
+{              
+               const ::rtl::OUString sModuleName = 
::rtl::OUString::createFromAscii(SAL_MODULENAME( "mozabdrv2" ));
 
+               // load the dbtools library
+               oslModule s_hModule = osl_loadModule(sModuleName.pData, 0);
+               OSL_ENSURE(NULL != s_hModule, "MozabDriver::registerClient: 
could not load the dbtools library!");
+               if (NULL != s_hModule)
+               {
+
+                       // get the symbol for the method creating the factory
+                       const ::rtl::OUString sFactoryCreationFunc = 
::rtl::OUString( 
RTL_CONSTASCII_USTRINGPARAM("OMozillaBootstrap_CreateInstance"));
+                       // 
reinterpret_cast<OMozabConnection_CreateInstanceFunction> removed GNU C
+                       OMozillaBootstrap_CreateInstanceFunction 
s_pCreationFunc = 
(OMozillaBootstrap_CreateInstanceFunction)(osl_getSymbol(s_hModule, 
sFactoryCreationFunc.pData));
+
+                       if (NULL == s_pCreationFunc)
+                       {       // did not find the symbol
+                               OSL_ENSURE(sal_False, 
"MozabDriver::registerClient: could not find the symbol for creating the 
factory!");
+                               osl_unloadModule(s_hModule);
+                               s_hModule = NULL;
+                       }
+               MozillaBootstrap * pBootstrap = 
reinterpret_cast<MozillaBootstrap*>((*s_pCreationFunc)(_rxFactory));
+                       return *pBootstrap;
+               }
+               return NULL;
+}
 
//---------------------------------------------------------------------------------------
 extern "C" void* SAL_CALL component_getFactory(
                                        const sal_Char* pImplementationName,
@@ -191,17 +231,26 @@
        void* pRet = 0;
        if (pServiceManager)
        {
+               OUString aImplName( OUString::createFromAscii( 
pImplementationName ) );
                ProviderRequest aReq(pServiceManager,pImplementationName);
-
+               if (aImplName.equals(  
MozabDriver::getImplementationName_Static()  ))
+               {
                aReq.CREATE_PROVIDER(
                        MozabDriver::getImplementationName_Static(), 
                        MozabDriver::getSupportedServiceNames_Static(),
-                       MozabDriver_CreateInstance, 
::cppu::createSingleFactory) 
-               ;
-
+                               MozabDriver_CreateInstance, 
::cppu::createSingleFactory);
+               }
+               else if (aImplName.equals(  ::rtl::OUString( 
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.comp.mozilla.MozillaBootstrap"))  ))
+               {
+                       Sequence< ::rtl::OUString > aSNS( 1 );
+                       aSNS[0] = ::rtl::OUString( 
RTL_CONSTASCII_USTRINGPARAM("com.sun.star.mozilla.MozillaBootstrap"));
+                       aReq.CREATE_PROVIDER(
+                               aImplName, 
+                               aSNS,
+                               createMozillaBootstrap, 
::cppu::createSingleFactory);
+               }
                if(aReq.xRet.is())
                        aReq.xRet->acquire();
-
                pRet = aReq.getProvider();
        }
 




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to