[ Resending this mail since it did not reach previous time ]

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__


#include <com/sun/star/lang/Locale.idl>

//============================================================================

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
-----------------------

#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

//=============================================================================


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>

#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,

    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]


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>


Reply via email to