Partager via


Implémentation de FormatProperties

Le Moniteur réseau appelle la fonction FormatProperties pour mettre en forme les données affichées dans le volet d’informations de l’interface utilisateur du Moniteur réseau. En règle générale, FormatProperties est appelé pour mettre en forme la ligne récapitulative d’un protocole, puis pour mettre en forme toutes les instances de propriété du protocole dans un cadre. Toutefois, network Monitor n’identifie pas le nombre de fois où FormatProperties est appelé pour un analyseur spécifique.

Lors de l’appel de FormatProperties, network Monitor fournit une structure PROPERTYINST pour chaque propriété qu’il affiche. La structure PROPERTYINST fournit des informations sur les données à afficher, notamment un pointeur vers la structure PROPERTYINFO qui spécifie la fonction à utiliser pour mettre en forme la propriété de données affichées.

Notes

Une structure PROPERTYINFO est spécifiée lors de l’ajout d’une propriété à la base de données de propriétés de l’analyseur.

 

Network Monitor identifie la fonction de format à appeler pour chaque propriété instance. Le membre InstanceData de la structure PROPERTYINFO peut spécifier les éléments suivants :

Les fonctions FormatPropertyInstance et format personnalisé retournent les données mises en forme affichées dans le volet d’informations de l’interface utilisateur du Moniteur réseau.

L’illustration suivante montre comment Network Monitor identifie la fonction à appeler pour chaque propriété instance.

comment le moniteur réseau identifie la fonction à appeler

La procédure suivante identifie les étapes nécessaires pour implémenter FormatProperties.

Pour implémenter FormatProperties

  • À l’aide d’une structure de boucle, appelez la fonction de format pour chaque structure PROPERTYINST passée à l’analyseur dans le paramètre lpPropInst de la fonction FormatProperties .

Voici une implémentation de base de FormatProperties.

#include <windows.h>

DWORD BHAPI MyProtocolFormatProperties( HFRAME hFrame,
                                        LPBYTE         pMacFrame,
                                        LPBYTE         pBLRPLATEFrame,
                                        DWORD          nPropertyInsts
                                        LPPROPERTYINST  p)
  {
    while( nPropertyInsts-- > 0)
      {
         ( (FORMAT) p->lpPropertyInfo->InstanceData) ) (p);
         p++;
      }
  return BHERR_SUCCESS;
  }