Adding an implemented UNO interface
Lionel Élie Mamane
lionel at mamane.lu
Mon Sep 4 18:42:56 UTC 2023
On Mon, Sep 04, 2023 at 11:58:23AM +0200, Lionel Élie Mamane wrote:
> Reading up on ImplInheritanceHelper, I think you meant (or my question
> was unclear, but the answer to the question I had meant to ask is)
> typedef cppu::ImplInheritanceHelper <grault, css::corge > bar_BASE;
> class bar: public bar_BASE
> {
> ....
> }
Now we hit the problem that css::corge is an extension of an interface
already implemented by grault (let's call it css::qux), so css:qux
becomes an ambiguous base of class bar, as it is derived from twice
:-|
How do we solve that?
So to recap (and rename corge to qux2 for better clarity) we have:
/* qux2.idl contains:
*
* interface qux2 : qux
* {
* ... stuff ...
* )
*/
#include <grault.hxx>
/* grault.hxx contains:
*
* typedef ::cppu::WeakComponentImplHelper2 <
* css::baz,
* css::qux > grault_BASE;
*
* class grault : public grault_BASE { ... }
*/
typedef grault bar_BASE;
class bar : public bar_BASE
{
...
}
and what we want to achieve is to implement interface css::qux2 in
class bar. Surely there must be a recipe for that.
(For Stephan: css::qux above is css::sdbc::XConnection in the patch,
and qux2 is the newly introduced css::sdbc::XConnection2)
More information about the LibreOffice
mailing list