機能拡張

定数と構造体を拡張するためのプロビジョニングは、デバイスに依存しない方法と、デバイス固有の (ベンダー固有の) 方法の両方で行われます。 スカラー列挙体である定数では、値の範囲は将来の一般的な拡張用に予約されます。 残りの値は、デバイス固有として識別されます。 ベンダーは、これらの値の意味を任意の方法で定義できます。 それらの解釈は、LINEDEVCAPS データ構造で提供される拡張 ID にキー付けされます。 ビット フラグとして定義されている定数の場合、下位ビットの範囲が予約されます。高位ビットは拡張固有の場合があります。 拡張値とビット配列では、最上位の値または上位ビットダウンのビットを使用することをお勧めします。 これにより、将来的に行う必要がある場合は、共通部分と延長部分の間で境界線を移動するオプションが残ります。 データ構造の拡張には、固定パーツの一部であるサイズ/オフセットを持つ可変サイズのフィールドが割り当てられます。 TAPI では、許可されるデバイス固有の拡張機能をデータ構造ごとに記述します。

アプリケーションは、特定の拡張機能識別子を認識するだけでなく、アプリケーションとサービス プロバイダーが操作する拡張機能のバージョン番号をネゴシエートする必要があります。 これは、 lineGetDevCaps 関数の 2 番目のバージョン ネゴシエーション フェーズで行われます。

拡張識別子は、グローバルに一意の識別子です。 拡張識別子の中央レジストリはありません。 代わりに、ツールキットで使用できるユーティリティによって製造元によってローカルに生成されます。 この数値は、グローバルな一意性を保証するために、一意の LAN アドレス、時刻、乱数などの部分で構成されます。 グローバル一意識別子は、HP/DEC の汎用一意識別子と区別できるように設計されているため、それらと完全に互換性があります。