Implementazione di FormatProperties
Monitoraggio di rete chiama la funzione FormatProperties per formattare i dati visualizzati nel riquadro dei dettagli dell'interfaccia utente di Monitoraggio di rete. In genere, FormatProperties viene chiamato per formattare la riga di riepilogo per un protocollo e quindi formattare tutte le istanze di proprietà del protocollo all'interno di un frame. Tuttavia, Monitoraggio di rete non identifica il numero di volte in cui FormatProperties viene chiamato per un parser specifico.
Quando si chiama FormatProperties, Monitoraggio di rete fornisce una struttura PROPERTYINST per ogni proprietà visualizzata. La struttura PROPERTYINST fornisce informazioni sui dati da visualizzare, incluso un puntatore alla struttura PROPERTYINFO che specifica la funzione da utilizzare per formattare la proprietà di dati visualizzata.
Nota
Quando si aggiunge una proprietà al database delle proprietà del parser, viene specificata una struttura PROPERTYINFO.
Monitoraggio di rete identifica la funzione di formato da chiamare per ogni istanza di proprietà. Il membro InstanceData della struttura PROPERTYINFO può specificare quanto segue:
Funzione FormatPropertyInstance per usare il formattatore generico fornito da Monitoraggio di rete.
- oppure -
Nome di una funzione di formato personalizzata fornita dal parser.
FormatPropertyInstance e le funzioni di formato personalizzato restituiscono i dati formattati visualizzati nel riquadro dei dettagli dell'interfaccia utente di Monitoraggio di rete.
La figura seguente illustra come Monitoraggio di rete identifica la funzione da chiamare per ogni istanza di proprietà.
La procedura seguente identifica i passaggi necessari per implementare FormatProperties.
Per implementare FormatProperties
- Usando una struttura del ciclo, chiamare la funzione di formato per ogni struttura PROPERTYINST passata al parser nel parametro lpPropInst della funzione FormatProperties .
Di seguito è riportata un'implementazione di base di 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;
}