Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index


OK, I've worked it out. What happens is that
comphelper::getProcessComponentContext()
is actually getting the concrete class ComponentContext, which implements
XNameContainer and XContainerContext.

All you need to do is to instantiate a new Reference< XNameContainer > like
so:

Reference< container::XNameContainer > xNameContainer( xContext, UNO_QUERY
);

You can then insert and remove properties at will.

Chris

On Mon, Dec 1, 2014 at 11:31 AM, Andrew Pitonyak <andrew@pitonyak.org>
wrote:

No stress on the number of mails.

I did not think that you could change a context after it was created...
But I would certainly try if I had a need. I know very little about this
specifically.

Chris Sherlock <chris.sherlock79@gmail.com> wrote:

Oh, and sorry for the number of emails, but I guess I'm assuming that you
can add a new property key at any point by insertByName()...

Thanks in advance, UNO is a little tricky at this level. At least that's
what I find... from what I can tell, it really comes down to the
cppuhelper::ComponentContext class which implements the XNameContainer
interface. *Please* correct me if I'm wrong :-)

Chris

On Mon, Dec 1, 2014 at 10:29 AM, Chris Sherlock <
chris.sherlock79@gmail.com> wrote:

So what about the following approach:

Reference< XComponentContext > xContext =
::comphelper::getProcessComponentContext();
::cppu::ContextEntry_Init aContextInfo[] =
{
    ::cppu::ContextEntry_Init("testkey", uno::Any() ),
}
xNewContext = ::cppu::createComponentContext(aContextInfo,
sizeof(aContextInfo) / sizeof (aHandlerContextInfo[0]), xContext);

Then to get access to the container, I use something like this:

Reference< container::XNameContainer > xNameContainer( xContext,
UNO_QUERY );

Is this the right approach? Will the delegate ComponentContext work?

Chris


On Mon, Dec 1, 2014 at 12:25 AM, Andrew Pitonyak <andrew@pitonyak.org>
wrote:

Guessing from memory and not east for me to verify at the Moment, but I
thought that the context was read only. I think that of you want to add
values you need to create a new one with the desired named value pairs.

Are you able to inspect an object to see of it supports setting
values...

I have done very little in this area and don't remember...


Chris Sherlock <chris.sherlock79@gmail.com> wrote:

Hi all,

How do you insert a value to be retrieved later into an
XComponentContext reference?

I see there is a XNameContainer, which is created by 
comphelper::NameContainer_createInstance(::cppu::UnoType<sal_Int32>::get())
or whatever value you want. From here you then do insertByName.

However, how do you then insert this into the component context?

Chris





Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.