> That's exactly what I ended up doing. I guess I was just a little too > green to do it right the first time. I didn't know how to pass a SAFEARRAY > correctly, so I thought I'd hide the problem and put it in a VARIANT :-) > > Strangely, this actually worked for my C++ clients.
Best I can tell, there is no reason it's not legal - it's just unusual :) You could argue that we should just recurse away on VT_VARIANT until we find a real type. I was kinda hoping you had a legitimate case it was failing with, as then it would have been clearer it was a bug :) Particularly, the top of that function has: /* skip past any variant references to a "real" variant (Why do we do this? Why is it only a VARIANT? whats the story, morning glory? */ while ( V_VT(var) == (VT_BYREF | VT_VARIANT) ) var = V_VARIANTREF(var); but the code fails to gracefully handle the non-byref variant case, as you found. Oh well, some other day (or if someone is keen, a bug couldn't hurt...) Cheers, Mark _______________________________________________ python-win32 mailing list python-win32@python.org http://mail.python.org/mailman/listinfo/python-win32