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
提供的參數。 指定輸出翻譯字串的代碼頁。
選項
如果設定為24,則會提供並回傳參數 parm_length 。 作為提供的參數,這指定了一組可應用於翻譯過程的選項。 這些期權的可能值如下:
第15-9位
已保留。
第8位元
將移位出(SO)/移位入(SI)位元組加入轉換後的輸出字串。
第3至7位元
已保留。
位元 2
如果設定了這個位元,則使用 IBM 指定的 1 位元組碼表來轉換輸入字串。 此選項僅在從代碼頁 932 轉換為以下代碼頁之一時有效:037、290、930 或 931。
如果此位元為零,則使用 SYSCTBL 工具所建立的轉換表將輸入原始字串轉換。
對於雙位元組字元,請務必使用 SYSCTBL 工具所建立的轉換表。
SYSCTBL.EXE 檔案是隨 Host Integration Server 附贈的工具程式,提供一個可用於 TrnsDT 函式的自訂轉換表的工具。
位元1
若設定此位元,表示輸入來源字串以 2 位元組字元開頭。 一般來說,主機資料總是成對包含 SO/SI 控制字元,但在轉換部分混合編碼資料串時,需要從不含 SO 控制字元的雙字節字符開始進行轉換。 此時資料本身缺乏足夠資訊判斷是否為雙位元組,因此必須設定第 1 位元。
第0位元
若設定此位元,表示輸入來源字串包含 SO/SI 控制字元。 第 8 位元與第 0 位元應依下列方式設定:
從 PC 轉接到主機 位元 8=1,位元 0=0 從主機轉接到 PC 位元 8=0,位元 0=1
返回時,若最後一個字元是雙位元組, 選項 會設為 4。