ストリーム・メッセージの本文には、値のストリームが含まれており、それぞれの値には関連付けられたデータ型があります。
値のデータ型は、表 1 のリストにある XMS データ型のいずれかです。
アプリケーションがストリーム・メッセージを作成した後のメッセージの本文は、書き込み専用です。アプリケーションは、C または C++ の場合には StreamMessage クラスの適切な書き込みメソッドを、.NET の場合には IStreamMessage インターフェースの適切な書き込みメソッドを呼び出すことにより、アプリケーション・データを本文にアセンブルします。アプリケーションが値をメッセージ・ストリームに書き込むたびに、その値とデータ型はアプリケーションによって書き込まれた前の値の直後にアセンブルされます。XMS は、アセンブルされた最後の値の位置を記憶するために内部のカーソルを維持しています。
アプリケーションがメッセージを送信すると、メッセージの本文は読み取り専用になります。このモードのとき、アプリケーションはメッセージの送信を複数回実行することができます。
アプリケーションがストリーム・メッセージを受信するときのメッセージの本文は、読み取り専用です。アプリケーションは、C または C++ の場合には StreamMessage クラスの適切な読み取りメソッドを、.NET の場合には IStreamMessage インターフェースの適切な読み取りメソッドを使用して、メッセージ・ストリームのコンテンツを読み取ることができます。アプリケーションは、値を順番に読み取り、XMS は、読み取られた最後の値の位置を記憶するために内部のカーソルを維持しています。
C インターフェースのみを使用する場合、アプリケーションは、value パラメーターの NULL ポインター、またはアプリケーションが xmsStreamMsgReadBytes() または xmsStreamMsgReadObject() を呼び出す場合には buffer パラメーターの NULL ポインターを使用して読み取り関数を呼び出すことにより、値を読み取らずにスキップオーバーすることができます。ストリング値のスキップオーバーの方法について詳しくは、xmsStreamMsgReadString – ストリングの読み取りを参照してください。
アプリケーションがメッセージ・ストリームから値を読み取る場合、その値は XMS によって別のデータ型に変換できます。例えば、メッセージ・ストリームから整数を読み取るため、アプリケーションは Read String メソッドを呼び出すことができ、これにより整数がストリングとして戻されます。サポートされる型変換は、XMS によってプロパティーの値が 1 つのデータ型から別のデータ型に変換される場合にサポートされる型変換と同じです。したがって、サポートされる型変換について詳しくは、プロパティー値のデータ型の暗黙的な変換を参照してください。
アプリケーションがメッセージ・ストリームから値を読み込もうとするときにエラーが発生すると、カーソルは次に進みません。アプリケーションは、別のデータ型として値の読み取りを試みることにより、エラーから回復できます。
ストリーム・メッセージの本文が書き込み専用のときに、C または C++ の場合には StreamMessage クラスの Reset メソッド、または .NET の場合には IStreamMessage インターフェースの Reset メソッドをアプリケーションが呼び出すと、本文は読み取り専用になります。このメソッドはまた、メッセージ・ストリームの先頭でカーソルを位置変更します。
ストリーム・メッセージの本文が読み取り専用のときに、C または C++ の場合には Message クラスの Clear Body メソッドを、または .NET の場合には IMessage インターフェースの Clear Body メソッドをアプリケーションが呼び出すと、本文は書き込み専用になります。このメソッドにより、本文もクリアされます。