On Mon, 18 Jan 2021 09:59:11 +0100, R.Wieser wrote:
Hello all,
In a typelib (.IDL file) I'm trying to define a method with default values for some arguments:
HRESULT MyMethod([in] variant* Arg1, [in, defaultvalue(-1)] long Arg2, [in] long Arg3, [in] variant* Arg4, [in, defaultvalue(-1)] long Arg5, [in] variant* Arg6, [out, retval] variant* TheResult);
From VBScript I'm trying to call the method without specifying those "defaultvalue" arguments
TheResult = MyMethod(Arg1,,Arg3,Arg4,,Arg6)
Alas, I'm getting an error saying that the (Arg2 and Arg5) arguments are not optional.
My question: How come ? Those "defaultvalue" arguments locations are, AFAICS, known and fixed. What do I need to also specify to make the above work ?
Remark: using a one or more "defaultvalue" arguments at the end of a method (before the "retval" one) works fine.
Regards,
Rudy Wieser
The `defaultvalue` attribute requires the `optional` attribute.
HRESULT Func([in, optional, defaultvalue("something")] BSTR Text);
The remarks for both attributes in MSDN describe what are accepted by MIDL.
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)