FUNCDESC (Compact 2013)
3/26/2014
This structure is used to define a function description.
Syntax
typedef struct tagFUNCDESC {
MEMBERID memid;
/* [size_is(cScodes)] */ SCODE RPC_FAR* lprgscode;
/* [size_is(cParams)] */ ELEMDESC __RPC_FAR* lprgelemdescParam;
FUNCKIND funckind;
INVOKEKIND invkind;
CALLCONV callconv;
short cParams;
short cParamsOpt;
short oVft;
short cScodes;
ELEMDESC elemdescFunc;
WORD wFuncFlags;
} FUNCDESC;
Members
- memid
Specifies the function member identifier.
- lprgscode
Stores the count of errors a function can return on a 16-bit system.
- lprgelemdescParam
Indicates the size of the cParams member.
- funckind
Specifies whether the function is virtual, static, or dispatch-only.
- invkind
Invocation kind. Indicates if this is a property function, and if so, what kind.
- callconv
Specifies the function's calling convention.
- cParams
Count of total number of parameters, both required and optional.
- cParamsOpt
Count of optional parameters.
- oVft
For FUNC_VIRTUAL, specifies the offset in the VTBL.
- cScodes
Count of permitted return values.
- elemdescFunc
Contains the return type of the function.
- wFuncFlags
FUNCFLAGS value associated with the function.
Remarks
The cParamsOpt member specifies the form of optional parameters accepted by the function, as follows:
- A value of 0 specifies that no optional arguments are supported.
- A value of -1 specifies that the methods last parameter is a pointer to a safe array of variants. Any number of variant arguments greater than cParams -1 must be packaged by the caller into a safe array and passed as the final parameter. The caller must free this array of optional parameters after control is returned from the call.
- Any other number indicates that the last n parameters of the function are variants and do not need to be specified by the caller explicitly. The compiler or interpreter should fill in the parameters left unspecified as variants of type VT_ERROR with the value DISP_E_PARAMNOTFOUND.
For 16-bit systems, the members cScodesand 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 lprgscode is undefined.
Requirements
Header |
oaidl.h |