Implementando FormatProperties
O Monitor de Rede chama a função FormatProperties para formatar os dados exibidos no painel de detalhes da interface do usuário do Monitor de Rede. Normalmente, FormatProperties é chamado para formatar a linha de resumo de um protocolo e, em seguida, formatar todas as instâncias de propriedade do protocolo dentro de um quadro. No entanto, o Monitor de Rede não identifica o número de vezes que FormatProperties é chamado para um analisador específico.
Ao chamar FormatProperties, o Monitor de Rede fornece uma estrutura PROPERTYINST para cada propriedade exibida. A estrutura PROPERTYINST fornece informações sobre os dados a serem exibidos, incluindo um ponteiro para a estrutura PROPERTYINFO que especifica a função a ser usada para formatar a propriedade de dados exibida.
Observação
Uma estrutura PROPERTYINFO é especificada ao adicionar uma propriedade ao banco de dados de propriedade do analisador.
O Monitor de Rede identifica a função de formato a ser chamada para cada instância de propriedade. O membro InstanceData da estrutura PROPERTYINFO pode especificar o seguinte:
A função FormatPropertyInstance para usar o formatador genérico que o Monitor de Rede fornece.
– ou –
O nome de uma função de formato personalizado que o analisador fornece.
As funções FormatPropertyInstance e custom format retornam os dados formatados exibidos no painel de detalhes da interface do usuário do Monitor de Rede.
A ilustração a seguir mostra como o Monitor de Rede identifica a função a ser chamada para cada instância de propriedade.
O procedimento a seguir identifica as etapas necessárias para implementar FormatProperties.
Para implementar FormatProperties
- Usando uma estrutura de loop, chame a função format para cada estrutura PROPERTYINST que é passada para o analisador no parâmetro lpPropInst da função FormatProperties .
Veja a seguir uma implementação básica 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;
}