For additional information about VARKIND, see the MSDN Library.
The common language runtime throws an exception when a COM method in native code returns an HRESULT. For more information, see How to: Map HRESULTs and Exceptions.
The VARDESC structure describes a symbolic constant. There is no memory associated with it.
The variable can be accessed only through IDispatch::Invoke.
The variable is a field or member of the type. It exists at a fixed offset within each instance of the type.
There is only one instance of the variable.