串流訊息是一種其主體包含一個值串流(其中每一個值都有一個相關聯的資料類型)的訊息。
主體的內容會依序寫入和讀取。
當應用程式從訊息串流中讀取值時,該值可由 XMS 轉換成另一種資料類型。如需這種隱含轉換形式的相關資訊,請參閱串流訊息。
函數 | 說明 |
---|---|
xmsStreamMsgReadBoolean | 從訊息串流中讀取 Boolean 值。 |
xmsStreamMsgReadByte | 從訊息串流中讀取一個帶正負號的 8 位元整數。 |
xmsStreamMsgReadBytes | 從訊息串流中讀取位元組陣列。 |
xmsStreamMsgReadBytesByRef | 取得訊息串流中之位元組陣列的指標, 並取得陣列的長度。 |
xmsStreamMsgReadChar | 從訊息串流中讀取一個二位元組字元。 |
xmsStreamMsgReadDouble | 從訊息串流中讀取一個 8 位元組的倍精準度浮點數。 |
xmsStreamMsgReadFloat | 從訊息串流中讀取一個 4 位元組的浮點數。 |
xmsStreamMsgReadInt | 從訊息串流中讀取一個帶正負號的 32 位元整數。 |
xmsStreamMsgReadLong | 從訊息串流中讀取一個帶正負號的 64 位元整數。 |
xmsStreamMsgReadObject | 從訊息串流中讀取一值,並傳回其資料類型。 |
xmsStreamMsgReadShort | 從訊息串流中讀取一個帶正負號的 16 位元整數。 |
xmsStreamMsgReadString | 從訊息串流中讀取一個字串。 |
xmsStreamMsgReset | 將訊息主體變成唯讀模式, 並將游標重新定位在訊息串流開頭。 |
xmsStreamMsgWriteBoolean | 將 Boolean 值寫入訊息串流中。 |
xmsStreamMsgWriteByte | 將位元組寫入訊息串流中。 |
xmsStreamMsgWriteBytes | 將位元組陣列寫入訊息串流中。 |
xmsStreamMsgWriteChar | 將字元當成 2 位元組寫入訊息串流中, 並從次序高的位元組開始。 |
xmsStreamMsgWriteDouble | 將倍精準度浮點數轉換成長整數, 並將長整數當成 8 位元組寫入訊息串流中,且從次序高的位元組開始。 |
xmsStreamMsgWriteFloat | 將浮點數轉換成整數, 並將整數當成 4 位元組寫入訊息串流中,且從次序高的位元組開始。 |
xmsStreamMsgWriteInt | 將整數當成 4 位元組寫入訊息串流中, 並從次序高的位元組開始。 |
xmsStreamMsgWriteLong | 將長整數當成 8 位元組寫入訊息串流中, 並從次序高的位元組開始。 |
xmsStreamMsgWriteObject | 使用指定的資料類型,將值寫入訊息串流中。 |
xmsStreamMsgWriteShort | 將短整數當成 2 位元組寫入訊息串流中, 並從次序高的位元組開始。 |
xmsStreamMsgWriteString | 將字串寫入訊息串流中。 |
xmsRC xmsStreamMsgReadBoolean(xmsHMsg message, xmsBOOL *value, xmsHErrorBlock errorBlock);
xmsRC xmsStreamMsgReadByte(xmsHMsg message, xmsSBYTE *value, xmsHErrorBlock errorBlock);
xmsRC xmsStreamMsgReadBytes(xmsHMsg message, xmsSBYTE *buffer, xmsINT bufferLength, xmsINT *returnedLength, xmsHErrorBlock errorBlock);
如果陣列中的位元組數小於或等於緩衝區的長度, 則會將整個陣列讀入緩衝區中。如果陣列中的位元組數大於緩衝區長度, 則緩衝區中會填入一部分的陣列, 且內部游標會標出下一個要讀取的位元組位置。後續的 xmsStreamMsgReadBytes() 呼叫會從游標現行位置開始讀取陣列中的位元組。
如果您在輸入中指定一個空值指標, 則呼叫會略過位元組陣列而不會讀取。
如果您在輸入中指定一個空值指標, 則函數不會傳回任何值。
xmsRC xmsStreamMsgReadBytesByRef(xmsHMsg message, xmsSBYTE **array, xmsINT *length, xmsHErrorBlock errorBlock);
如需如何使用此函數的相關資訊, 請參閱會以參照形式來傳回字串或位元組陣列的 C 函數。
xmsRC xmsStreamMsgReadChar(xmsHMsg message, xmsCHAR16 *value, xmsHErrorBlock errorBlock);
xmsRC xmsStreamMsgReadDouble(xmsHMsg message, xmsDOUBLE *value, xmsHErrorBlock errorBlock);
xmsRC xmsStreamMsgReadFloat(xmsHMsg message, xmsFLOAT *value, xmsHErrorBlock errorBlock);
xmsRC xmsStreamMsgReadInt(xmsHMsg message, xmsINT *value, xmsHErrorBlock errorBlock);
xmsRC xmsStreamMsgReadLong(xmsHMsg message, xmsLONG *value, xmsHErrorBlock errorBlock);
xmsRC xmsstreamMsgReadObject(xmsHMsg message, xmsSBYTE *buffer, xmsINT bufferLength, xmsINT *actualLength, xmsOBJECT_TYPE *objectType, xmsHErrorBlock errorBlock);
如需如何使用此函數的相關資訊, 請參閱會以值形式來傳回位元組陣列的 C 函數。
如果您在輸入中指定一個空值指標, 則呼叫會略過該值而不會讀取。
xmsRC xmsStreamMsgReadShort(xmsHMsg message, xmsSHORT *value, xmsHErrorBlock errorBlock);
xmsRC xmsStreamMsgReadString(xmsHMsg message, xmsCHAR *buffer, xmsINT bufferLength, xmsINT *actualLength, xmsHErrorBlock errorBlock);
從訊息串流中讀取一個字串。必要時, XMS 會將字串中的字元轉換成區域字碼頁。
如需如何使用此函數的相關資訊, 請參閱會以值形式來傳回字串的 C 函數。
如果您指定 XMSC_QUERY_SIZE, 則不會傳回字串,而會將其長度放在 actualLength 參數中傳回,且游標不會前進。
如果您指定 XMSC_SKIP, 則函數會略過該字串而不會讀取。
xmsRC xmsStreamMsgWriteObject(xmsHMsg message, xmsSBYTE *value, xmsINT length, xmsOBJECT_TYPE objectType, xmsHErrorBlock errorBlock);
xmsRC xmsStreamMsgWriteString(xmsHMsg message, xmsCHAR *value, xmsINT length, xmsHErrorBlock errorBlock);