PASSSTRUCT 結構
PASSSTRUCT 結構的定義如下:
語法
typedef struct tagPassParm {
WORD parm_length;
WORD exit_code;
WORD in_length;
LPBYTE in_addr;
WORD out_length;
LPBYTE out_addr;
WORD trns_id;
WORD in_page;
WORD out_page;
WORD option;
} PASSSTRUCT;
成員
parm_length
提供的 參數。 傳遞的結構長度,通常設定為 24。 如果不需要或使用 選項 成員,則可以將此參數設定為 22。
exit_code
提供和傳回的參數。 在專案上,此成員必須設定為零。 傳回時,此成員會指出結束狀態。 傳回 exit_code 值的法律值如下:
0
表示函式成功完成的一般結束代碼。
1
不支援要求的轉換。
12
exit_code欄位未正確初始化為零。
128
來源輸入字串中的最後一個字元是 DBCS 前置位元組。
256
無法順利完成轉換,因為產生的轉換目的地字串長度超過 65535 個位元組。
257
嘗試載入其中一個檔案並初始化其中一個 TrnsDTx.dll 檔案時發生錯誤。
in_length
提供的 參數。 以位元組為單位指定輸入來源字串的長度。
in_addr
提供的 參數。 緩衝區的指標,其中包含要轉換的來源字串。
out_length
提供和傳回的參數。 指定輸出轉譯字串的可用長度上限,以位元組為單位。 傳回時,此成員會在成功時設定為已轉換輸出字串的長度,或緩衝區太小時所需的輸出緩衝區長度。
out_addr
提供的 參數。 緩衝區的指標,將在轉換之後包含輸出目的地字串。
trns_id
提供的 參數。 轉換識別碼,一律為零。
in_page
提供的 參數。 指定傳入來源字串的字碼頁。
out_page
提供的 參數。 指定輸出翻譯字串的字碼頁。
選項
如果parm_length設定為 24 , 則提供和傳回的參數。 做為提供的參數,這會指定一組可套用至翻譯程式的選項。 這些選項的可能值如下所示:
位 15-9
保留的。
位 8
將移出 (SO) /shift, (SI) 個位元組新增至轉換的輸出字串。
位 3-7
保留的。
位 2
如果設定此位,則使用 IBM 指定的 1 位元組程式碼資料表轉換輸入字串。 只有在從字碼頁 932 轉換為下列其中一個字碼頁時,此選項才有效:037、290、930 或 931。
如果這個位為零,則使用使用 SYSCTBL 公用程式建立的轉換資料表,轉換輸入來源字串。
如果是雙位元組字元,請一律使用 SYSCTBL 公用程式所建立的轉換資料表。
SYSCTBL.EXE 檔案是主機整合伺服器隨附的公用程式程式,提供可用來建立自訂轉換資料表以搭配 TrnsDT 函式使用的工具。
位 1
如果設定此位,則表示輸入來源字串開頭為 2 位元組字元。 一般而言,主機資料一律會在配對中包含 SO/SI 控制字元,但在轉換混合資料字串的一部分時,必須從不含 SO 控制字元的雙位元組字元開始轉換。 在此情況下,資料本身沒有足夠的資訊來判斷資料是否為雙位元組,因此必須設定位 1。
位 0
如果設定此位,則表示輸入來源字串包含 SO/SI 控制字元。 位 8 和位 0 應該設定如下:
從電腦轉換成主機位 8=1,位 0 =0 從主機轉換成 PC Bit 8=0,位 0=1
傳回時,如果最後一個字元是雙位元組字元, 選項 會設定為 4。