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
提供的參數。 指定輸出翻譯字串的代碼頁。

選項
如果設定為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。