0

MSTAPI インターフェイスを実装して対話するコードをいくつか継承しました。リクエストIDがどこで初期化されているか(または初期化されているかどうか)に興味があります。リクエスト ID とは、たとえばLINE_REPLY MessageidRequestへのパラメーターを意味します。

私が興味を持っている理由は、TSP とクライアントがリクエスト ID を表示している場合、典型的なシーケンスとして次のように表示され、双方が数字に同意するからです。

66304
66303
66286
66269
66252
66235
...

0x00010300最初の値は (私には何の意味もありませんが、概数です) に変換され、そこからリクエスト IDが減少します。(リクエスト ID が内部的に符号付き 2 バイト整数として扱われている場合を除きますが、これは可能であると思います。)

どちらか一方が何かを初期化しているはずなのに、不適切なものに初期化していないか、初期化しているのではないかと思います。

リクエストIDがどのように機能するか知っている人はいますか? MSTAPI によって内部的に生成され、TSP とクライアントの両方に提供される不透明な番号ですか? 誰でもこれを説明する参考文献を指摘できますか?

ありがとう。

4

1 に答える 1

1

リクエストIDは、すべての非同期操作に対してTAPIによって内部的に生成されます。プログラムがlineMakeCallなどの非同期TAPI関数を呼び出すと、TAPIはこの操作の要求IDを返します。同じリクエストIDがTSPI_lineMakeCallでTSPに提供されます。TSPがMakeCall操作を完了すると、TSPはこの要求IDを使用してCompletionProcコールバックを呼び出し、この操作が終了したことをTAPIに通知します。その後、TAPIは同じリクエストIDを使用してLINE_REPLYメッセージをアプリケーションに送信するため、lineMakeCall操作が完了したことがわかります。

于 2009-11-08T08:32:51.503 に答える