Structure EXCEPINFO (oaidl.h)

Décrit une exception qui s’est produite pendant IDispatch ::Invoke.

Syntaxe

typedef struct tagEXCEPINFO {
  WORD      wCode;
  WORD      wReserved;
  BSTR      bstrSource;
  BSTR      bstrDescription;
  BSTR      bstrHelpFile;
  DWORD     dwHelpContext;
  ULONG_PTR pvReserved;
  ULONG_PTR pfnDeferredFillIn;
  SCODE     scode;
} EXCEPINFO, *LPEXCEPINFO;

Membres

wCode

Code d'erreur. Les codes d’erreur doivent être supérieurs à 1000. Ce champ ou le champ scode doivent être renseignés ; l’autre doit avoir la valeur 0.

wReserved

Réservé. Doit correspondre à 0.

bstrSource

Nom de la source d’exception. Généralement, il s'agit d'un nom d'application. Ce champ doit être renseigné par l’implémenteur d’IDispatch.

bstrDescription

Description de l’exception à afficher. Si aucune description n’est disponible, utilisez null.

bstrHelpFile

Chemin d’accès complet au fichier d’aide. Si aucune aide n’est disponible, utilisez null.

dwHelpContext

ID de contexte d’aide.

pvReserved

Réservé. Doit être NULL.

pfnDeferredFillIn

Fournit un remplissage différé. Si le remplissage différé n’est pas souhaité, ce champ doit avoir la valeur Null.

scode

Valeur de retour qui décrit l’erreur. Ce champ ou wCode (mais pas les deux) doivent être renseignés ; l’autre doit avoir la valeur 0. (Versions Windows 16 bits uniquement.)

Remarques

Utilisez le champ pfnDeferredFillIn pour permettre à un objet de différer le remplissage des champs bstrDescription, bstrHelpFile et dwHelpContext jusqu’à ce qu’ils soient nécessaires. Ce champ peut être utilisé, par exemple, si le chargement de la chaîne pour l’erreur est une opération chronophage. Pour utiliser le remplissage différé, l’objet place un pointeur de fonction dans cet emplacement et ne remplit aucun des autres champs, à l’exception de wCode, qui est obligatoire.

Pour obtenir des informations supplémentaires, l’appelant transmet la structure EXCEPINFO à la fonction de rappel pexcepinfo , qui remplit les informations supplémentaires. Lorsque l’objet ActiveX et le client ActiveX sont dans des processus différents, l’objet ActiveX appelle pfnDeferredFillIn avant de revenir au contrôleur.

Configuration requise

Condition requise Valeur
En-tête oaidl.h