Structure FUNCDESC (oaidl.h)

Décrit une fonction.

Syntaxe

typedef struct tagFUNCDESC {
  MEMBERID   memid;
  SCODE      *lprgscode;
  ELEMDESC   *lprgelemdescParam;
  FUNCKIND   funckind;
  INVOKEKIND invkind;
  CALLCONV   callconv;
  SHORT      cParams;
  SHORT      cParamsOpt;
  SHORT      oVft;
  SHORT      cScodes;
  ELEMDESC   elemdescFunc;
  WORD       wFuncFlags;
} FUNCDESC, *LPFUNCDESC;

Membres

memid

ID de membre de la fonction.

lprgscode

Code d'état.

lprgelemdescParam

Description de l’élément.

funckind

Indique le type de fonction (virtuelle, statique ou dispatch-only).

invkind

Type d’appel. Indique s’il s’agit d’une fonction de propriété et, le cas échéant, quel type.

callconv

Convention d’appel.

cParams

Nombre total de paramètres.

cParamsOpt

Nombre de paramètres facultatifs.

oVft

Pour FUNC_VIRTUAL, spécifie le décalage dans le VTBL.

cScodes

Nombre de valeurs de retour possibles.

elemdescFunc

Type de retour de la fonction.

wFuncFlags

Indicateurs de fonction. Consultez FUNCFLAGS.

Remarques

Le champ cParams spécifie le nombre total de paramètres obligatoires et facultatifs.

Le champ cParamsOpt spécifie la forme des paramètres facultatifs acceptés par la fonction, comme suit :

  • La valeur 0 spécifie qu’aucun argument facultatif n’est pris en charge.
  • La valeur –1 spécifie que le dernier paramètre de la méthode est un pointeur vers un tableau sécurisé de variantes. Tout nombre d’arguments variants supérieurs à cParams –1 doit être empaqueté par l’appelant dans un tableau sécurisé et passé comme paramètre final. Ce tableau de paramètres facultatifs doit être libéré par l’appelant après le retour du contrôle à partir de l’appel.
  • Tout autre nombre indique que les n derniers paramètres de la fonction sont des variantes et n’ont pas besoin d’être spécifiés explicitement par l’appelant. Les paramètres non spécifiés doivent être renseignés par le compilateur ou l’interpréteur en tant que variantes de type VT_ERROR avec la valeur DISP_E_PARAMNOTFOUND.

Configuration requise

Condition requise Valeur
En-tête oaidl.h