[vararg [, optional-attributes]] return-type function-name([optional-param-attributes] param-list, SAFEARRAY(VARIANT) last-param-name)
[vararg] VARIANT_BOOL Button([in]SAFEARRAY(VARIANT) psa);
The vararg attribute specifies that the function takes a variable number of arguments. To accomplish this, the last argument must be a safe array of VARIANT type that contains all the remaining arguments.
You cannot apply the optional or defaultvalue attributes to any parameters in a function that has the vararg attribute.
ODL File Syntax, ODL File Example, Generating a Type Library With MIDL, Differences Between MIDL and MKTYPLIB