ConvertToSubClassCode for IDispatch
Weitian Leung
Just_Fancy at live.com
Fri May 19 13:15:36 BST 2023
Hello,
I have a IDispatch related sdk header, say it contains two IDispatch interfaces:
```
interface _Foo : public IDispatch {…};
typedef interface Foo Foo; // No definition at all
```
`Foo` can be QueryInterface from `_Foo` in C++ (or just do a cast), and for this case I asume they are just the same class.
As the sdk internal only uses the Foo interface, such as:
```
interface Bar : public IDispatch
{
bool open(…, Foo** out);
void dosomething(Foo* f);
};
```
So I use ConvertToSubClassCode to resolve the buggy sdk:
```
class Foo /Abstract,NoDefaultCtors/
{
%ConvertToSubClassCode
sipType = sipType__Foo;
%End
};
```
It works for `open`, but not for `dosomething` due to ConvertToSubClassCode make `open` returns a `_Foo`, they have no inherits from python’s view.
I can’t change the C++ sdk as it out of my control.
So is there any chance to make SIP works for such case?
Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.riverbankcomputing.com/pipermail/pyqt/attachments/20230519/a960301b/attachment.htm>
More information about the PyQt
mailing list