Hi all,

Can anyone explain how MakePy interprets COM IDL?
 
If I define: 
 HRESULT Test([out] byte* outp);
Makepy generates:
 """method Test"""
 return self._ApplyTypes_(3, 1, (24, 0), ((16401, 2),), u'Test',
None,outp)
and I can interpret (16401,2) as VT_UI1, BYREF and OUT.
 
If, however, I define:
 HRESULT Test([in] long len, [in, size_is(len)] byte outp[]); 
MakePy generates:
 """method Test"""
 return self._ApplyTypes_(4, 1, (24, 0), ((16387, 3), (16401, 2)),
u'Test', None,len, outp)
and the marshalling of outp is still a pointer to a single byte, not an
array of bytes.
 
Manually editing the MakePy class to use a value of 16412 (i.e.
VT_CARRAY BYREF) gives me a 
'VARIANT Type is unknown' exception as does 16414 (VT_LPSTR)
Adding in 0x2000 to set VT_ARRAY leads to a 'Type mismatch' error.
 
 
Is there some doccumentation somewhere to tell me which VARIANT types I
can use and how to do arrays?
 
Many thanks,
Dave.
</PRE>
<p style="font-family:'Arial';font-size:8pt">
**********************************************************************<br>
Please consider the environment - do you really need to print this email?<br>
<br>
This email is intended only for the person(s) named above and may contain 
private and confidential information. If it has come to you in error, please 
destroy and permanently delete any copy in your possession and contact us on 
+44 (0) 161 480 4420. The information in this email is copyright &copy; CDL 
Group Holdings Limited. We cannot accept any liability for any loss or damage 
sustained as a result of software viruses. It is your responsibility to carry 
out such virus checking as is necessary before opening any attachment.<br>
Cheshire Datasystems Limited uses software which automatically screens incoming 
emails for inappropriate content and attachments. If the software identifies 
such content or attachment, the email will be forwarded to our Technology 
Department for checking. You should be aware that any email which you send to 
Cheshire Datasystems Limited is subject to this procedure. <br>
Cheshire Datasystems Limited, Strata House, Kings Reach Road, Stockport SK4 
2HD<br>
Registered in England and Wales with Company Number 3991057<br>
VAT registration: 727 1188 33</p>
<PRE> 
_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to