Terry,
>So I've got VSTA completely embedded in our application and it actually seems to be working consistently.
Great!
> what are the rules for what types of parameters you can and can't use in an AddIn Event?
Same rules as passing anything else.
>This object inherits from System.EventArgs
Good programming practice; however, System.EventArgs are a special case for VSTA/ProxyGen and the inheritence is removed.
>One of the properties of this object is an XmlElement. When I try to
access it, I get an error "Return argument has an invalid type." Is
this breaking some rule about what can and can't be used across the
pipeline?
>Is it just as simple as teh fact that XmlElement isn't serializable?
Pretty much. The options that you have for this are to exclude that property, wrap it into a serializable/MBRO class, or convert it to something that is serializable or MBRO and pass that isntead (like using XmlElement.ToString()). If a System.Xml.Linq.XElement would work for you, that type is XmlSerializable so you should be able to pass it like a struct (excluding the type from the descriptor file then copying the implementation into the proxy like the ShapeAppBasic samples).
Hope this helps.
Thanks,
-Melody