次の方法で共有


FormatProperties の実装

ネットワーク モニターは FormatProperties 関数を呼び出して、ネットワーク モニター UI の詳細ウィンドウに表示されるデータを書式設定します。 通常、 FormatProperties は、プロトコルの概要行を書式設定し、フレーム内のプロトコルのすべてのプロパティ インスタンスを書式設定するために呼び出されます。 ただし、ネットワーク モニターでは、特定のパーサーに対して FormatProperties が呼び出される回数は識別されません。

FormatProperties を呼び出すと、ネットワーク モニターは、表示される各プロパティの PROPERTYINST 構造体を提供します。 PROPERTYINST 構造体は、表示するデータに関する情報を提供します。これには、表示されるデータ プロパティの書式設定に使用する関数を指定する PROPERTYINFO 構造体へのポインターが含まれます。

Note

プロパティをパーサーのプロパティ データベースに追加するときに、PROPERTYINFO 構造体が指定されます。

 

Network Monitor は、各プロパティ インスタンスに対して呼び出す format 関数を識別します。 PROPERTYINFO 構造体の InstanceData メンバーは、次を指定できます。

FormatPropertyInstance 関数とカスタム書式関数は、ネットワーク モニター UI の詳細ウィンドウに表示される書式設定されたデータを返します。

次の図は、Network Monitor が各プロパティ インスタンスに対して呼び出す関数を識別する方法を示しています。

ネットワーク モニターが呼び出す関数を識別する方法

次の手順では、 FormatProperties を実装するために必要な手順を示します。

FormatProperties を実装するには

  • ループ構造を使用して、FormatProperties 関数の lpPropInst パラメーターでパーサーに渡される PROPERTYINST 構造体ごとに format 関数を呼び出します。

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;
  }