There is no way of expressing size_of once the IDL is in TypeLib form.
It is
effectively ignored. However, it is used in the proxy and stub functions generated. I'm not sure what interface it is marshalling here, but your error would appear to be elsewhere.
How does typelib marshalling handle arrays? It's marshalling IDispatch, and this parameter is in IDispatch::GetIDsFromNames().
my guess would be that IDispatch has a custom marshaller defined in windows. You should be able to verify this in the registry (though I don't remember how).
Kelly