Hi Daniel ( its been a while ;-) )
Daniel Boelzle wrote:
Hello Jayant Balraj Madavi,

just tried the following which works like specified:

            uno::Any a( static_cast<sal_Int32>(42) );
            uno::Sequence<uno::Any> seq( &a, 1 );
            typedef uno::Sequence< uno::Sequence<uno::Any> > seqseqT;
            seqseqT seqseq( &seq, 1 );
            uno::Any a2;
            a2 <<= seqseq;
            seqseqT dest;
            bool succ = (a2 >>= dest);
            sal_Int32 n = dest[0][0].get<sal_Int32>();

This leads me to the assumption that the Any is not filled with data at
all in getValue().

regards,
-Daniel

looking at this, seems this is really a basic problem ( bug? ).
the basic code is something like;

Dim obj1 as myModule.XSomething
Dim obj2 as myModule.XSomething

obj1.Value = obj2.Value


where obj1 & obj2 are uno objects with Value as an attribute e.g.

module myModule
{
    interface XSomething
    {
        [attribute] any Value;
    }
}

the code ( in a previous posting ) getValue() returns an uno::Any containing uno::Sequence< uno::Sequence< uno::Any > > and of course setValue() takes a ref to an uno::Any containing uno::Sequence< uno::Sequence< uno::Any > >

this fails because when Basic unwraps the any it converts it into a sequence of sequence of ( the type the Any contains )

so for example in the code that Jayant posted the sequence in question is
uno::Sequence< uno::Sequence< uno::Any > > where the Any contains a rtl::OUString
.
then setValue() fails because it is sent a
uno::Sequence< uno::Sequence< rtl::OUString> > by Basic instead of the expected type and of course the test mentioned fails.... because it should.


Noel





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

Reply via email to