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.