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 :
Fonction FormatPropertyInstance pour utiliser le formateur générique fourni par network Monitor.
– ou –
Nom d’une fonction de format personnalisée que l’analyseur fournit.
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.
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;
}