Describes a function, and is defined as follows:
typedef struct tagFUNCDESC {
MEMBERID memid; // Function member ID.
/* [size_is] */ SCODE __RPC_FAR *lprgscode;
/* [size_is] */ ELEMDESC __RPC_FAR *lprgelemdescParam; FUNCKIND funckind; // Specifies whether the // function is virtual, static, // or dispatch-only.
INVOKEKIND invkind; // Invocation kind. Indicates if this is a // property function, and if so, what kind.
CALLCONV callconv; // Specifies the function's calling
// convention.
short cParams; // Count of total number of parameters.
short cParamsOpt; // Count of optional parameters (detailed
// description follows).
short oVft; // For FUNC_VIRTUAL, specifies the offset in // the VTBL.
short cScodes; // Count of permitted return values.
ELEMDESC elemdescFunc; // Contains the return type of the function.
WORD wFuncFlags; // Definition of flags follows.
} FUNCDESC;
The cParams field specifies the total number of required and optional parameters.
The cParamsOpt field specifies the form of optional parameters accepted by the function, as follows:
For 16-bit systems (Macintosh), the fields cScodes and lprgscode store the count and the set of errors that a function can return. If cScodes = –1, then the set of errors is unknown. If cScodes = –1, or if cScodes = 0, then lprgscodeis undefined.