Hi,
[Now I am able to include the hpp files. I updated other files also. ]
This is my code in table4.cxx:
Reference< XComponentContext > xContext(
::cppu::defaultBootstrap_InitialComponentContext() );
if(xContext.is())
{
Reference< XMultiComponentFactory > xMCF( xContext->getServiceManager() );
printf("\n1\n");
if(xMCF.is())
{
printf("\n2\n");
Reference< XMultiServiceFactory > xServiceManager
(::comphelper::getProcessServiceFactory());
Reference< XInterface > xInterface = xServiceManager->createInstance(
::rtl::OUString::createFromAscii("com.sun.star.i18n.OrdinalSuffix") );
Reference< XOrdinalSuffix > xos ( xInterface, UNO_QUERY );
if(xos.is())
{
printf("\n Success \n");
}
The problem is xos.is() returns false. I don't know what I am missing. I tried using XInitialization also.
(The printf's in ordinalsuffix.cxx too don't seem to be called)
Skeleton of other files:
XOrdinalSuffix.idl
--------------------------
#ifndef __com_sun_star_i18n_XOrdinal_Suffix_idl__
#define __com_sun_star_i18n_XOrdinal_Suffix_idl__
[Now I am able to include the hpp files. I updated other files also. ]
This is my code in table4.cxx:
Reference< XComponentContext > xContext(
::cppu::defaultBootstrap_InitialComponentContext() );
if(xContext.is())
{
Reference< XMultiComponentFactory > xMCF( xContext->getServiceManager() );
printf("\n1\n");
if(xMCF.is())
{
printf("\n2\n");
Reference< XMultiServiceFactory > xServiceManager
(::comphelper::getProcessServiceFactory());
Reference< XInterface > xInterface = xServiceManager->createInstance(
::rtl::OUString::createFromAscii("com.sun.star.i18n.OrdinalSuffix") );
Reference< XOrdinalSuffix > xos ( xInterface, UNO_QUERY );
if(xos.is())
{
printf("\n Success \n");
}
The problem is xos.is() returns false. I don't know what I am missing. I tried using XInitialization also.
(The printf's in ordinalsuffix.cxx too don't seem to be called)
Skeleton of other files:
XOrdinalSuffix.idl
--------------------------
#ifndef __com_sun_star_i18n_XOrdinal_Suffix_idl__
#define __com_sun_star_i18n_XOrdinal_Suffix_idl__
#include <com/sun/star/lang/Locale.idl>
//============================================================================
module com { module sun { module star { module i18n {
//============================================================================
module com { module sun { module star { module i18n {
//============================================================================
interface XOrdinalSuffix : com::sun::star::uno::XInterface
{
void getOrdinalSuffix([inout] string aValue, [in] long nDigits);
};
//============================================================================
}; }; }; };
//============================================================================
#endif
OrdinalSuffix.idl
-----------------------
void getOrdinalSuffix([inout] string aValue, [in] long nDigits);
};
//============================================================================
}; }; }; };
//============================================================================
#endif
OrdinalSuffix.idl
-----------------------
#ifndef __com_sun_star_i18n_Ordinal_Suffix_idl__
#define __com_sun_star_i18n_Ordinal_Suffix_idl__
#include <com/sun/star/lang/XServiceInfo.idl>
#ifndef __com_sun_star_i18n_XOrdinal_Suffix_idl__
#include <com/sun/star/i18n/XOrdinalSuffix.idl>
#endif
//=============================================================================
#include <com/sun/star/lang/XServiceInfo.idl>
#ifndef __com_sun_star_i18n_XOrdinal_Suffix_idl__
#include <com/sun/star/i18n/XOrdinalSuffix.idl>
#endif
//=============================================================================
module com { module sun { module star { module i18n {
service OrdinalSuffix
{
interface com::sun::star::i18n::XOrdinalSuffix;
interface com::sun::star::lang::XServiceInfo;
};
//=============================================================================
}; }; }; };
#endif
ordinalsuffix.hxx
--------------------------
#include <com/sun/star/i18n/XOrdinalSuffix.hpp>
{
interface com::sun::star::i18n::XOrdinalSuffix;
interface com::sun::star::lang::XServiceInfo;
};
//=============================================================================
}; }; }; };
#endif
ordinalsuffix.hxx
--------------------------
#include <com/sun/star/i18n/XOrdinalSuffix.hpp>
#include <cppuhelper/implbase2.hxx> // helper for implementations
#include <com/sun/star/lang/XServiceInfo.hpp>
namespace com { namespace sun { namespace star { namespace i18n {
class OrdinalSuffixImpl : public cppu::WeakImplHelper2
<
XOrdinalSuffix,
class OrdinalSuffixImpl : public cppu::WeakImplHelper2
<
XOrdinalSuffix,
com::sun::star::lang::XServiceInfo
>
{
public:
OrdinalSuffixImpl();
~OrdinalSuffixImpl();
OrdinalSuffixImpl(const com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory >& rxMSF);
virtual void SAL_CALL getOrdinalSuffix(rtl::OUString& aValue,long nDigits) throw(com::sun::star::uno::RuntimeException);
//XServiceInfo
virtual rtl::OUString SAL_CALL getImplementationName() throw(com::sun::star::uno::RuntimeException);
virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw(com::sun::star::uno::RuntimeException);
virtual com::sun::star::uno::Sequence < rtl::OUString > SAL_CALL getSupportedServiceNames() throw(com::sun::star::uno::RuntimeException);
private:
com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > _xServiceManager;
};
} } } }
ordinalsuffix.cxx
------------------------
#include <comphelper/processfactory.hxx>
#include "ordinalsuffix.hxx"
using namespace ::com::sun::star::i18n;
using namespace ::com::sun::star::uno;
using namespace ::rtl;
namespace com { namespace sun { namespace star { namespace i18n {
OrdinalSuffixImpl::OrdinalSuffixImpl()
{
printf("\n OrdinalSuffix called \n");
}
OrdinalSuffixImpl::OrdinalSuffixImpl(const com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory >& rxMSF)
: _xServiceManager( rxMSF )
{
printf("\n 2OrdinalSuffix called \n");
}
OrdinalSuffixImpl::~OrdinalSuffixImpl()
{
printf("\n ~OrdinalSuffix called \n");
}
void SAL_CALL
OrdinalSuffixImpl::getOrdinalSuffix(OUString &aValue, long nDigits) throw( RuntimeException )
{
printf("\n Here \n");
}
const sal_Char cOrdinalSuffix[] = "com.sun.star.i18n.OrdinalSuffix";
OUString SAL_CALL
OrdinalSuffixImpl::getImplementationName(void) throw( RuntimeException )
{
return OUString::createFromAscii(cOrdinalSuffix);
}
sal_Bool SAL_CALL
OrdinalSuffixImpl::supportsService(const OUString& rServiceName) throw( RuntimeException )
{
return !rServiceName.compareToAscii(cOrdinalSuffix);
}
Sequence< OUString > SAL_CALL
OrdinalSuffixImpl::getSupportedServiceNames(void) throw( RuntimeException )
{
Sequence< OUString > aRet(1);
aRet[0] = OUString::createFromAscii(cOrdinalSuffix);
return aRet;
}
} } } }
Thanks,
Muthu Subramanian
[muthusuba]
<mail history truncated>
public:
OrdinalSuffixImpl();
~OrdinalSuffixImpl();
OrdinalSuffixImpl(const com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory >& rxMSF);
virtual void SAL_CALL getOrdinalSuffix(rtl::OUString& aValue,long nDigits) throw(com::sun::star::uno::RuntimeException);
//XServiceInfo
virtual rtl::OUString SAL_CALL getImplementationName() throw(com::sun::star::uno::RuntimeException);
virtual sal_Bool SAL_CALL supportsService(const rtl::OUString& ServiceName) throw(com::sun::star::uno::RuntimeException);
virtual com::sun::star::uno::Sequence < rtl::OUString > SAL_CALL getSupportedServiceNames() throw(com::sun::star::uno::RuntimeException);
private:
com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory > _xServiceManager;
};
} } } }
ordinalsuffix.cxx
------------------------
#include <comphelper/processfactory.hxx>
#include "ordinalsuffix.hxx"
using namespace ::com::sun::star::i18n;
using namespace ::com::sun::star::uno;
using namespace ::rtl;
namespace com { namespace sun { namespace star { namespace i18n {
OrdinalSuffixImpl::OrdinalSuffixImpl()
{
printf("\n OrdinalSuffix called \n");
}
OrdinalSuffixImpl::OrdinalSuffixImpl(const com::sun::star::uno::Reference < com::sun::star::lang::XMultiServiceFactory >& rxMSF)
: _xServiceManager( rxMSF )
{
printf("\n 2OrdinalSuffix called \n");
}
OrdinalSuffixImpl::~OrdinalSuffixImpl()
{
printf("\n ~OrdinalSuffix called \n");
}
void SAL_CALL
OrdinalSuffixImpl::getOrdinalSuffix(OUString &aValue, long nDigits) throw( RuntimeException )
{
printf("\n Here \n");
}
const sal_Char cOrdinalSuffix[] = "com.sun.star.i18n.OrdinalSuffix";
OUString SAL_CALL
OrdinalSuffixImpl::getImplementationName(void) throw( RuntimeException )
{
return OUString::createFromAscii(cOrdinalSuffix);
}
sal_Bool SAL_CALL
OrdinalSuffixImpl::supportsService(const OUString& rServiceName) throw( RuntimeException )
{
return !rServiceName.compareToAscii(cOrdinalSuffix);
}
Sequence< OUString > SAL_CALL
OrdinalSuffixImpl::getSupportedServiceNames(void) throw( RuntimeException )
{
Sequence< OUString > aRet(1);
aRet[0] = OUString::createFromAscii(cOrdinalSuffix);
return aRet;
}
} } } }
Thanks,
Muthu Subramanian
[muthusuba]
On 4/10/06, Eike Rathke <
[EMAIL PROTECTED]> wrote:
Hi Muthu,
On Sun, Apr 09, 2006 at 20:58:54 +0530, Muthu Subramanian wrote:
> This is regarding i47233. I am trying to move the ordinal suffix part to
> i18npool.
> I created some skeleton code in i18npool and offapi. The problem is that i
> am not able
> to call the function from sc. Am I missing something here?
If you didn't omit anything, it looks like you don't have any UNO
service implementing the interface that could be instantiated.
<mail history truncated>
