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

See Also

Reference

Automation Structures