WebSphere Message Service Clients for C/C++ and .NET, Version 1.2 作業系統: Linux, Windows

會以值形式來傳回位元組陣列的 C 函數

這個主題說明以值形式來傳回位元組陣列之 C 函數所用的介面。

在 C API 中,某些函數會以參數形式傳回位元組陣列。這些函數皆使用相同的介面來擷取位元組陣列。以下是 PropertyContext 類別中的 xmsGetByteArrayProperty() 函數(為這些函數之一)範例:
xmsRC xmsGetByteArrayProperty(xmsHObj object
                              xmsCHAR *propertyName,
                              xmsSBYTE *propertyValue,
                              xmsINT length,
                              xmsINT *actualLength
                              xmsHErrorBlock errorBlock) const;
以下三個參數控制位元組陣列的擷取:
propertyValue
此參數為應用程式所提供之緩衝區的指標, 而 XMS 會將陣列中的位元組複製到這個緩衝區中。
length
這個參數為緩衝區的長度(以位元組計)。應用程式在呼叫前必須先設定這個輸入參數。如果您指定的是 XMSC_QUERY_SIZE, 則不會傳回位元組陣列,而會將其長度放在 actualLength 參數中傳回。
actualLength
這個輸出參數是陣列中要讓 XMS 複製到緩衝區中的位元組數。如果您在輸入中為這個參數指定一個空值指標, 則不會傳回陣列的長度。

如果緩衝區不夠儲存整個陣列,XMS 會傳回截斷成符合緩衝區長度的陣列, 以及將 actualLength 參數設為整個陣列的長度,並傳回 XMS_E_DATA_TRUNCATED 錯誤碼。

xmsBytesMsgReadBytes()xmsStreamMsgReadBytes() 這兩個函數的介面略有不同。當應用程式使用這兩個函數之一時, 可藉由連續呼叫該函數分段擷取位元組陣列。從內部游標的現行位置起, 每一次呼叫會將位元組讀取到應用程式提供的緩衝區中, 而 returnedLength 輸出參數會告訴應用程式已讀取到緩衝區的位元組數。函數的介面中雖沒有等同於 actualLength 的參數, 但應用程式可指定 XMSC_QUERY_SIZE 來判斷從游標的現行位置起陣列中所剩的位元組數。


Concept topic

使用條款 | 評比此網頁

時間戳記前次更新: 25 Apr 2006
(C) Copyright IBM Corporation 2005. All Rights Reserved.
本資訊中心採用 Eclipse 技術。(http://www.eclipse.org)