Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
A version of this page is also available for
4/8/2010

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 cParamsmember.

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

FUNCFLAGSvalue associated with the function.

Remarks

The cParamsOptmember 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 nparameters 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 lprgscodestore 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.

Requirements

Header oaidl.h
Windows Embedded CE Windows CE 2.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also