<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-2022-jp">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        text-align:justify;
        text-justify:inter-ideograph;
        font-size:10.5pt;
        font-family:DengXian;}
.MsoChpDefault
        {mso-style-type:export-only;}
/* Page Definitions */
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="ZH-CN" link="blue" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hello,</span></p>
<p class="MsoNormal"><span lang="EN-US">     I have a IDispatch related sdk header, say it contains two IDispatch interfaces:</span></p>
<p class="MsoNormal"><span lang="EN-US">```</span></p>
<p class="MsoNormal"><span lang="EN-US">interface _Foo : public IDispatch {…};</span></p>
<p class="MsoNormal"><span lang="EN-US">typedef interface Foo Foo; // No definition at all</span></p>
<p class="MsoNormal"><span lang="EN-US">```</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">`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.</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">As the sdk internal only uses the Foo interface, such as:</span></p>
<p class="MsoNormal"><span lang="EN-US">```</span></p>
<p class="MsoNormal"><span lang="EN-US">interface Bar : public IDispatch</span></p>
<p class="MsoNormal"><span lang="EN-US">{</span></p>
<p class="MsoNormal"><span lang="EN-US">      bool open(…, Foo** out);</span></p>
<p class="MsoNormal"><span lang="EN-US">      void dosomething(Foo* f);</span></p>
<p class="MsoNormal"><span lang="EN-US">};</span></p>
<p class="MsoNormal"><span lang="EN-US">```</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">So I use ConvertToSubClassCode to resolve the buggy sdk:</span></p>
<p class="MsoNormal"><span lang="EN-US">```</span></p>
<p class="MsoNormal"><span lang="EN-US">    class Foo /Abstract,NoDefaultCtors/</span></p>
<p class="MsoNormal"><span lang="EN-US">    {</span></p>
<p class="MsoNormal"><span lang="EN-US">    %ConvertToSubClassCode</span></p>
<p class="MsoNormal"><span lang="EN-US">        sipType = sipType__Foo;</span></p>
<p class="MsoNormal"><span lang="EN-US">    %End</span></p>
<p class="MsoNormal"><span lang="EN-US">    };</span></p>
<p class="MsoNormal"><span lang="EN-US">```</span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt">It works for `open`, but not for `</span><span lang="EN-US">dosomething` due to ConvertToSubClassCode make `open` returns a `_Foo`, they have no inherits from python’s view.</span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:SimSun">I can’</span><span style="font-size:12.0pt;font-family:SimSun">t<span lang="EN-US"> change the C++ sdk as it out of my control</span>.<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:SimSun">So is there any chance to make SIP works for such case?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:SimSun"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:12.0pt;font-family:SimSun">Thanks.<o:p></o:p></span></p>
</div>
</body>
</html>